困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Luaの話~1:基本編~

これから、数回の渡り、アプリ開発で得たLuaの知見を共有していく。
今回は、Luaその物の理解を深めるために、基本的な情報を共有していく。

 

Luaの特徴は、ネットでググッて貰えれば色々出てくる。
オーソドックスにWikipediaを見てもらえればいいと思う。
主に言われているのは

 

・高速(処理が「遅くない」)
・軽量(アプリ容量が増えない、メモリ使用量が少ない)
・他の言語に組み込む事が容易。というより、組み込まれて使われることが考えられている

 

こんな所だろうか。


実際に、小規模アプリ開発をした筆者の意見を言うと

>高速(処理が「遅くない」)
確かに、遅くは無い。2Dのシンプルなシューティングで、弾数が画面に200以上、あたり判定の総当たりが1万超える程度だったら、
30fpsは普通に出る(60fps付近は出ているはずだが、60fps行ってるかと言われると怪しい)
ただ、ゲームの体感としては遅くないだけであり、C#との比較で、フィボナッチ数列を求めるアルゴリズムを実行、比較した時は、数倍の差になったので、
実用に耐えうるかつ、スクリプト言語の中で早いだけであり、コンパイル言語と比較すれば当然遅い。

 

>軽量(アプリ容量が増えない、メモリ使用量が少ない)
これに関しては、LuaVMの容量は、一つVMを立ち上げる程度なら、1MBの差も感じられない程だった。
通常、一個あれば十分なはずなので、これに関しては評判の通りに使えるはずだ。

 

>他の言語に組み込む事が容易。というより、組み込まれて使われることが考えられている
これに関しては、C++バインディングの場合は、そこまで難しくない。
ただ、Unityに関して言えば、ネイティブプラグイン化して、更に連携部分の処理をそこそこ書かなければいけないし、
GITHUBなどにアップされている既成の物は、一部を除いて使いづらかったりするので、敷居が少しだけ高いかもしれない。