LÖVE (Love2D) 入門編:1.インストール

(2018.1.27. 公開) (2018.8.26. 対象をバージョン 11 系列に変更)

1. Windows/Mac OS X

 LÖVE のホームページ (https://love2d.org/) に「Download LÖVE」という表示があるので、ここからダウンロードする。

 ZIP 形式をダウンロードして、好きなところに展開しておく。Mac の場合は /Applications に入れておくと、使う時に探し回らなくて済む。

2. Raspberry Pi (Raspbian Jessie, Stretch)

(2018.2.4. Stretch 対応について追記)
(2018.2.12. Stretch に対応するため全面的に書き換え)
(2018.7.30. shut-term-keys を同梱)
(2018.8.7. SDL2.0.8 に tslib 用パッチを当てて再ビルド)

 インストール用のファイルをまとめたものを love2d-install.tgz として置いておきました。下のように進める。

$ curl -L http://d-alchemy.xyz/software/love/love2d-install.tgz >love2d-install.tgz
$ tar xvzf love2d-install.tgz
$ cd love2d-install
$ sh install.sh
$ cd ..

 apt-get でもインストールできるようだが、たぶん GUI (X Window) 上で動くバージョンになる(未確認)。上でインストールするものは、X Window を使わない設定でビルドしてあるので、はるかに動作が軽い。Raspberry Pi A+ や Zero でも十分使える。

 自分でビルドするためのスクリプトも作成しました:love2d-build.sh。バージョン番号を書き換えれば、別のバージョンもビルドできる。ただし、古いバージョンだとあちこちで引っかかるので、0.10 より古いものはやめた方がいいかも。

$ curl -L http://d-alchemy.xyz/software/love/love2d-build.sh >love2d-build.sh
$ sh love2d-build.sh update  #  必要なパッケージをインストール(時間かかる)
$ sh love2d-build.sh build   #  ビルドする。Pi3 で約30分。

 (2018.7.30.追記) なお、このバージョンの Love2D は、正常終了した時にそれまでのキー入力をターミナルに吐き出す不具合がある。(参考:「端末へのキー入力を無視してくれる shut-term-keys をRaspberry Pi Zero Wにインストールしてみたり」:mieki256 さん)。そこで、shut-term-keys を同梱するようにした。

3. 動作チェック

 動作チェックのために、単体で立ち上げてみる。Windows, Mac はアプリケーションをダブルクリックする。

 Raspberry Pi では下のように打ち込む。

$ /usr/local/games/love/run_love.sh

 ちょっと煩雑なので、~/.bash_profile に次の内容を書いておく。(nano ~/.bash_profile と打ち込んで、下の内容を追加記入し、ctrl-X → Yes で終了すればよい。)

alias love=/usr/local/games/love/run_love.sh

 これを設定しておけば、次にログインした時からは love と打つだけで LÖVE を起動できる。

2018.2.4. 追記:最初は /usr/local/games/love/bin/love を直接起動するように書いていたが、Raspbian Stretch では環境変数をセットしないといけないことがわかった。このため、run_love.sh というスクリプトから起動するように変更し、上記もそのように修正した。

 こういう画面が出てくれば成功。

(2018.8.26. 追記) 現在、バージョン 11.x を対象にして記述しています。以前は、バージョン 0.10.x を対象にしていました。バージョン 0.10.x から 11.x になった際に、love.graphics.setColor(), love.graphics.setBackgroundColor() の仕様が変更になりました。引数が以前は 0〜255 の数値だったのが、現在は 0〜1 の数値になっています。サンプルプログラムの色表示がおかしいときは、これらの関数の引数をチェックしてみてください。

 (2018.2.12. 追記) たぶん以下の問題点は解決できたと思います。

 なお、Raspberry Pi Jessie の場合、AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse" というメッセージが出る。これはどうも抑制できないみたい(参考:LÖVE Forum: Love2d on a Raspberry Pi and Adafruit TFT2.8 screen)。

 (2018.2.4. 追記) また、Stretch の場合は、次のようなメッセージが出る。対策は検討中。

Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

 (2018.2.10. 追記) Stretch だと発音が著しく遅れる。また、A+/Zero だと "Illegal instruction" で落ちてしまう。ちょっと使い物にならない。LÖVE を使うなら、当面は Jessie にとどめておいた方が無難なようだ。

目次