uLove (日本語)
このページは、もはや Löve とは関連性がありません。
|
uLove (さらに µLÖVE としても知られています) の機能性としては標準仕様のサブセットでありバイナリおよびメモリのフットプリント、および適正要件を引き下げることを意図しています。それは特に携帯用ゲーム機器(Dingoo, WIZ, など)、携帯端末(携帯電話, PDA, Nanonotes など)、またはコンテキストを抑制した (ウェブ・プラグイン)ものなどのような性能または許容を制限されたデバイスおよびコンテキストを対象として意図されています。
標準規格
LÖVE のどのような移植であっても uLove にて定義された機能以上のものを提供しているかもしれませんが、それは一般的ではないため機能削除が許可されるものがあります。
- uLove アーカイブ・ファイルは明示的に Zip ファイルです("名目上" は LÖVE と同様です)。
- uLove は画像フォントに対応する必要があり、特にベクトル・フォント (TTF のような)を省略するかもしれません。
- uLove は LÖVE が標準フォントを供給するのと同様の事例で標準フォントを対象デバイスへ適切な大きさにて供給する必要があります。しかしながら、このフォントは "Vera Sans" という名称の後、または 指定することが許されていません。
- uLove は Ogg Vorbis 音声に対応する必要がありますが、それ以外全ての音声形式を省略するかもしれません。
- uLove は PNG, および未圧縮 Targa (TGA) 画像形式に対応する必要があります。それ以外全ての画像形式を省略するかもしれません。
- uLove は love.mouse, love.keyboard, および love.joystick を省略するかもしれません。恐らく uLove ホストは最低でもそれらの一つは提供しますが、それらはどれも要求されません。
- uLove は love.physics を省略するかもしれません。
- uLove は LuaSocket を省略するかもしれません。
意味
上記の制限に加え、さらに Lover 達はそれらを認識する必要があります:
- uLove を実行する多くのデバイスではメモリ制限があり、大抵は 32MB またはそれ以下です。
- uLove により対象となる多くのデバイスでは標準的なシステムより処理能力は相当非力です。
- uLove が対象とする多くのデバイスでは LÖVE で使用されるグラフィックスの高速化機能がありません。これは特に LÖVE において痛みがない様々な伝統的に遅い動作が、さらに本当に遅くなることを意味します...。
- アルファ透明度は 50% 以外です (そして恐らく一般的な透明度です)
- 回転は 90° の倍数ではありません
- 非-POW2 画像の尺度変更 (そして恐らく一般的には拡大・縮小です)
- uLove を実行する多くのデバイスでは低解像度であり、傾向としては 320x240 またはそれ以下です。
- uLove が対象とする多くのデバイスでは恐らく実行速度向上の維持のためにハードウェアの奇癖および専有に依存するでしょう。特に、非-二の累乗画像は動作速度の低下、または完全に失敗するでしょう。
- uLove は多くの異種デバイスを対象としているため、 uLove によるゲームはデバイスの能力を測定してその結果として自ら調整を行うために love.joystick および love.graphics.checkMode といった関数を使用すべきです。
- uLove により対象となる多くのデバイスでは操作方法に制限があり、通常は d-パッドおよび4つの表側のボタン (A, B, スタート, セレクト, または相当品)に依存する物が全てです。
- uLove を実行する多くのデバイスでは完全にマウスへの対応はなく、マウスの代わりにタッチパネルがあります。覚えておくことは:
- 通常においてタッチパネルは精度が不足しています。
- タッチパネルは通常においてクリックまたはマウス押し下げといったイベントの生成を行わずにポインターの移動させることはできません。
- タッチパネルは相対的ではなく、絶対的なポインティング・デバイスです(すなわち、マウスは決してデルタではなく、常に特定の場所へ移動します)。
基礎研究
これらは uLove を提供するために標準 LÖVE ソースへ追加を課す必要のある物を纏めた覚え書きです。
- 既存の OpenGL バックエンドを OpenGL/ES へ変換、または新規 OpenGL/ES バックエンドを開発するかのどちらかが必要になるでしょう。
- 動作対象の定義・コンパイルには LÖVE からの大量の依存性を削除するための定義が必要があるでしょう(適切な箇所にある軽微な依存物を選択してそれら置換 します)。
- OpenGL 非対応システムに対して新型 SDL ベースのバックエンドを作成する必要があるでしょう。