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
love2d というのは、Lua言語 + SDL2 で2Dゲームを作れるフレームワーク・ゲームエンジン。Windows, Mac, Linux, Android, iOS上で動くらしい。無料で使える。
_LoVE - Free 2D Game Engine
◎ aptでインストールできる版について。 :
まずは、ディストリビューションに用意されてる版をインストールして試してみたい。
Debian Linux系(Raspberry Pi OSもDebian系)は、love という名前で love2d のパッケージが用意されている。
以下でインストールできる。
ただ、Raspberry Pi Zero W上でインストールして動かそうとしても、OpenGL(OpenGLES)が無効の状態だと、表示がめちゃくちゃになる上に、描画速度も遅い。
OpenGLを有効化すると、表示も正常になって、そこそこ滑らかに動いてくれた。OpenGLの有効化は、 _昨日の日記 にメモしてある。
Raspbian stretch の頃は音を出すだけで love2d がエラーを出して落ちてしまったけど、buster では少なくとも落ちたりはしなかった。一応、buster向けパッケージは、落ちない程度には修正されているということだろうか…?
ただ、love2d の現行版は 11.3 なので、できれば 11.3 を使いたい…。また、X11を経由(?)せずにGPU(VC4)を働かせる方向で表示すれば、OpenGLを有効にしなくても描画が速くなるので、できればその状態で動かしたい…。
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 が残ってるそうで…。
/usr/include/tslib.h も存在しているように見える。どこまで何を修正すればいいのやら。
また、スクリプト内で OpenAL のソースをDLするための記述があるけれど、OpenALの入手先URLが今現在は変わってしまったようで、そのあたりの修正も必要になりそうだなと…。
_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
必要なパッケージを入手。
love2d のソース、love-11.3-linux-src.tar.gz を、wget を使ってDLして解凍。
_love2d/love: LoVE is an awesome 2D game framework for Lua.
_Releases - love2d/love
3時間ほどかかったけれど、ビルドできた。configure を走らせた際に --prefix=/usr/local を指定しておいたので、/usr/local/bin/ に love がコピーされた。
自作のスクリプトを動かしてみた。
_mieki256/love2d_stg_sample02: love2d sample. top view scroll shooting game.
OpenGLは有効状態、かつ、1920 x 1080のデスクトップ画面上で動作確認。
しかし、Raspbian stretch上で、SDL2のX11サポートを無効にした版を使って動かした時は、1280x720@60Hzの画面上で50FPS前後で動いていたので、Raspberry Pi OS buster 上でも同様に、SDL2をビルドし直してみたい…。
_「子供の科学」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-devbuster上では、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ぐらいで動いた。
しかし、Raspbian stretch上で、SDL2のX11サポートを無効にした版を使って動かした時は、1280x720@60Hzの画面上で50FPS前後で動いていたので、Raspberry Pi OS buster 上でも同様に、SDL2をビルドし直してみたい…。
◎ 2021/02/24追記。 :
[ ツッコむ ]
以上です。