mieki256's diary



2021/02/23(火) [n年前の日記]

#1 [love2d][raspberrypi] love2d を Raspberry Pi OS buster上でインストールしてみたい

love2d を Raspberry Pi Zero W + Raspberry Pi OS buster 上でインストールしてみたい。

love2d というのは、Lua言語 + SDL2 で2Dゲームを作れるフレームワーク・ゲームエンジン。Windows, Mac, Linux, Android, iOS上で動くらしい。無料で使える。

_LoVE - Free 2D Game Engine

aptでインストールできる版について。 :

まずは、ディストリビューションに用意されてる版をインストールして試してみたい。

Debian Linux系(Raspberry Pi OSもDebian系)は、love という名前で love2d のパッケージが用意されている。
  • Debian buster の場合、love2d のバージョンは 11.1。
  • Debian stretch の場合、love2d のバージョンは 0.9.1、

以下でインストールできる。
sudo apt install love
/usr/bin/love にインストールされた。
$ ls -alF /usr/bin/love*
lrwxrwxrwx 1 root root      22  2月 23 01:38 /usr/bin/love -> /etc/alternatives/love*
-rwxr-xr-x 1 root root 2974432  8月  4  2018 /usr/bin/love-11.1*

$ ls -alF /etc/alternatives/love*
lrwxrwxrwx 1 root root 18  2月 23 01:38 /etc/alternatives/love -> /usr/bin/love-11.1*
lrwxrwxrwx 1 root root 34  2月 23 01:38 /etc/alternatives/love.6.gz -> /usr/share/man/man6/love-11.1.6.gz

ただ、Raspberry Pi Zero W上でインストールして動かそうとしても、OpenGL(OpenGLES)が無効の状態だと、表示がめちゃくちゃになる上に、描画速度も遅い。

OpenGLを有効化すると、表示も正常になって、そこそこ滑らかに動いてくれた。OpenGLの有効化は、 _昨日の日記 にメモしてある。

Raspbian stretch の頃は音を出すだけで love2d がエラーを出して落ちてしまったけど、buster では少なくとも落ちたりはしなかった。一応、buster向けパッケージは、落ちない程度には修正されているということだろうか…?

ただ、love2d の現行版は 11.3 なので、できれば 11.3 を使いたい…。また、X11を経由(?)せずにGPU(VC4)を働かせる方向で表示すれば、OpenGLを有効にしなくても描画が速くなるので、できればその状態で動かしたい…。

stretch向けスクリプトは動かず。 :

Raspbian stretch上なら、下記ページのスクリプトを使わせてもらうことで、ビルドが通って動いた記憶があるのだけど。

_Digitalians' Alchemy | LoVE (Love2D) 入門編 | インストール

しかし、Raspberry Pi OS buster (Raspbian buster) 上でスクリプトを動かすと、tslib が無いと言われてしまう。

ググってみたら、以下のやり取りを見かけた。

_adafruit-pitft.sh: Fails to install on buster since tslib was renamed to libts0 - Issue #46 - adafruit/Raspberry-Pi-Installer-Scripts

Debian stretch で tslib と呼ばれていたパッケージは、Debian buster で libts0 にリネームされてしまったらしい…。しかしソースパッケージとしては tslib が残ってるそうで…。

sudo apt install evtest libts0 libts-dev libts-bin

/usr/include/tslib.h も存在しているように見える。どこまで何を修正すればいいのやら。

また、スクリプト内で OpenAL のソースをDLするための記述があるけれど、OpenALの入手先URLが今現在は変わってしまったようで、そのあたりの修正も必要になりそうだなと…。

X11版をビルド。 :

tslib 関係はどうもよく分からんので、まずは X11上で動く love2d 11.3 を用意できないか試してみる。以下のページを参考にさせてもらって作業。

_「子供の科学」Raspbian に LOVE (Love2D) をインストールする: Digitalians' Alchemy

必要なパッケージを入手。
sudo apt install autotools-dev automake libtool libdevil-dev libluajit-5.1-dev libphysfs-dev libsdl2-dev libopenal-dev libogg-dev libvorbis-dev libflac-dev libflac++-dev libmodplug-dev libmpg123-dev libmng-dev libturbojpeg0-dev libtheora-dev

sudo apt install libudev-dev libasound2-dev libdbus-1-dev libfreeimage-dev libsndfile1-dev libtiff5-dev libwebp-dev cmake

sudo apt install build-essential pkg-config libfreetype6-dev
buster上では、libturbojpeg というパッケージは無いと言われてしまう。試しに libturbojpeg0-dev にしておいたけど、これでいいのだろうか…?

love2d のソース、love-11.3-linux-src.tar.gz を、wget を使ってDLして解凍。

_love2d/love: LoVE is an awesome 2D game framework for Lua.
_Releases - love2d/love

wget https://github.com/love2d/love/releases/download/11.3/love-11.3-linux-src.tar.gz
tar xvzf love-11.3-linux-src.tar.gz
cd love-11.3./configure --prefix=/usr/local | tee configure.log
make | tee make.log
sudo make install | tee makeinstall.log

3時間ほどかかったけれど、ビルドできた。configure を走らせた際に --prefix=/usr/local を指定しておいたので、/usr/local/bin/ に love がコピーされた。

自作のスクリプトを動かしてみた。

_mieki256/love2d_stg_sample02: love2d sample. top view scroll shooting game.

OpenGLは有効状態、かつ、1920 x 1080のデスクトップ画面上で動作確認。
  • 640x480のウインドウ表示で動かしたところ、30FPS前後で動いた。
  • F11キーを押してフルスクリーン表示にした場合は、10-15FPSぐらいで動いた。
30FPS前後で動かせるなら、悪くない気もする。

しかし、Raspbian stretch上で、SDL2のX11サポートを無効にした版を使って動かした時は、1280x720@60Hzの画面上で50FPS前後で動いていたので、Raspberry Pi OS buster 上でも同様に、SDL2をビルドし直してみたい…。

2021/02/24追記。 :


以上、1 日分です。

過去ログ表示

Prev - 2021/02 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project