2021/01/27(水) [n年前の日記]
#1 [love2d] love2dをWebブラウザ上で動かしたい
ふと、love2d用のスクリプトをWebブラウザで動かせないかなと思い立った。
love2d というのは、2Dゲームを作れるフレームワークというか、ゲームエンジンというか。スクリプトの記述はLua言語。無料で利用できる。Windows/Linux/Mac/Android/iOS上で動くらしい。
_LoVE - Free 2D Game Engine
ちなみに、「LoVE」の「o」が妙な文字になってるのが正式名称らしいけど、それだとググった時に都合が悪いので「love2d」と書くことが多い。
少しググってみたら、love.js なるものがあるそうで、ソレを使えば love2d を JavaScript に変換してWebブラウザ上で動かせるようになるらしい。
_Davidobot/love.js: LoVE ported to the web using Emscripten, updated to the latest Emscripten and LOVE (v11.3)
_TannerRogalsky/love.js: LoVE ported to the web using Emscripten
love2d 0.10.0 まで対応してる版と、11.3 に対応してる版がある模様。npm だか Node.js だかをインストールしないと利用できないっぽい。
※ 2021/01/28追記。11.3に対応してると思ったが勘違いで、0.11.0-rc3までの対応だった。
それとは別に、LoVE Web Builder なるサイトに遭遇。
_LoVE Web Builder - Home
Webブラウザ上で .love ファイルを渡してやると、Webサーバ上でビルドして HTML + JavaScript に変換してくれる。ただ、love2d 0.11.1 までしか対応してないらしい。
love2d というのは、2Dゲームを作れるフレームワークというか、ゲームエンジンというか。スクリプトの記述はLua言語。無料で利用できる。Windows/Linux/Mac/Android/iOS上で動くらしい。
_LoVE - Free 2D Game Engine
ちなみに、「LoVE」の「o」が妙な文字になってるのが正式名称らしいけど、それだとググった時に都合が悪いので「love2d」と書くことが多い。
少しググってみたら、love.js なるものがあるそうで、ソレを使えば love2d を JavaScript に変換してWebブラウザ上で動かせるようになるらしい。
_Davidobot/love.js: LoVE ported to the web using Emscripten, updated to the latest Emscripten and LOVE (v11.3)
_TannerRogalsky/love.js: LoVE ported to the web using Emscripten
love2d 0.10.0 まで対応してる版と、11.3 に対応してる版がある模様。npm だか Node.js だかをインストールしないと利用できないっぽい。
※ 2021/01/28追記。11.3に対応してると思ったが勘違いで、0.11.0-rc3までの対応だった。
それとは別に、LoVE Web Builder なるサイトに遭遇。
_LoVE Web Builder - Home
Webブラウザ上で .love ファイルを渡してやると、Webサーバ上でビルドして HTML + JavaScript に変換してくれる。ただ、love2d 0.11.1 までしか対応してないらしい。
◎ LoVE Web Builderを試用。 :
せっかくだから、LoVE Web Builder を利用して、HTML + JavaScript に変換できるか試してみる。
環境は、Windows10 x64 20H2 + Firefox 85.0 x64。
ちなみに、.love ファイルの作り方は、関連ファイル(conf.lua、main.lua 等々)を、まとめて1つの .zip ファイルに圧縮して、拡張子を .zip から .love にリネームするだけ。要するに、.love ファイルの実態は .zip ファイル。
そんなわけで、2つほど変換してみた。
_helloworld_like_tic80.html (カーソルキーで上下左右にキャラが動く)
_cubic_bezier.html (マウスの動きに合わせて触手が動く)
さて、動くだろうか…。一応、手元の環境、Windows10 x64 20H2 + Firefox 85.0 x64 では動いてるけど…。
環境は、Windows10 x64 20H2 + Firefox 85.0 x64。
- 公式サイトの「Package Your Game」というリンクをクリック。変換用のページが開く。
- 参照ボタンをクリックして、ローカルに保存されている .love ファイルを指定。
- タイトルやウインドウサイズ等を指定。
- 「Build Package」をクリックすればビルドされて、生成されたファイル群を zip ファイルの形でダウンロードできる。
ちなみに、.love ファイルの作り方は、関連ファイル(conf.lua、main.lua 等々)を、まとめて1つの .zip ファイルに圧縮して、拡張子を .zip から .love にリネームするだけ。要するに、.love ファイルの実態は .zip ファイル。
そんなわけで、2つほど変換してみた。
_helloworld_like_tic80.html (カーソルキーで上下左右にキャラが動く)
_cubic_bezier.html (マウスの動きに合わせて触手が動く)
さて、動くだろうか…。一応、手元の環境、Windows10 x64 20H2 + Firefox 85.0 x64 では動いてるけど…。
◎ ローカル環境で簡易Webサーバを起動して動作確認。 :
変換・生成されたファイル群は、Webサーバにアップロードしないと動作確認ができないらしい。ローカル環境で動作確認したい場合は、Python を利用して、一時的に簡易Webサーバを立ち上げて確認することができる。
_Python の http.server を使って簡単にWebサーバーを立てる - サーバーワークスエンジニアブログ
_pythonでローカルwebサーバを立ち上げる - Qiita
DOS窓を開いて、.html や .js が置いてあるフォルダをカレントディレクトリにして…。
簡易Webサーバが起動する際に、Windows10のファイアウォールが反応するけれど、「アクセスを許可する」を選んでしまってOK。
_Windows10/アプリごとのファイアウォール設定の変更 - Windowsと暮らす
_Python の http.server を使って簡単にWebサーバーを立てる - サーバーワークスエンジニアブログ
_pythonでローカルwebサーバを立ち上げる - Qiita
DOS窓を開いて、.html や .js が置いてあるフォルダをカレントディレクトリにして…。
- Python 3.x の場合 : python -m http.server 8000
- Python 2.x の場合 : python -m SimpleHTTPServer 8000
簡易Webサーバが起動する際に、Windows10のファイアウォールが反応するけれど、「アクセスを許可する」を選んでしまってOK。
_Windows10/アプリごとのファイアウォール設定の変更 - Windowsと暮らす
[ ツッコむ ]
以上です。