A.I.M.S.

 無駄にどこで話題にするか悩みましたが、プログラム系の話題ははてなにしようと思ったのでここで。

 つい、この間、D.N.A.Softwareさん*1が、ゲームエンジンA.I.M.S.を公開されました。
 でまぁ、なんで話題にしようかと思ったのかというと、Luna(現在はSeleneにバージョンがアップ)をバックエンドに、Luaで記述するエンジンだからです。
 ゲームプログラムというのは、大雑把に↓のような構成になっていて

 通常は全部をC++とかのコンパイル言語でやるわけです。しかし、今は最上位のゲームルールがとにかく複雑怪奇なもんで、いちいちコンパイルやってるとどうしても時間が掛かるわけです。なのでそれを補助するためにスクリプトと呼ばれてるものを作ったりもするわけですが、それも特化させてゲームごとに作るのもダルい。というわけで、コンパイル言語やRubyPerlなどの本気インタープリンタ言語よりも軽く動く言語に担わせようぜ! ということで、「Lightweight Language」(以下LL)と呼ばれてるやつらが注目されています。
 実際プロユースでもすでに利用されていて、某ラグナロクとか某FarCryとか某小さな王様と約束の国ですとか、その他いろいろあります。
 でまぁ、Luaはその第一人者的な言語で、GCが……とか色々言われてますが、日本語書籍(入門Luaプログラミング)も出せるぐらいの言語です。

 でまぁ、この構成って俺も次のゲームフレームワークで使おうと思ってたんですよね。C++な部分はエンジンに特化して、LLに機能提供するだけにして、制御は全部LL任せ、という。
 A.I.M.S.ではLuaな部分はイベント駆動式になっているのでActionScriptみたいな感じに見えますね。メインループはエンジンの方で担っている模様。 俺はメインループすらもLLで書こうかなと思っていたり。

 エンジンは自作するか、何か探してくるかで思案中。自作したい気分ではあるんですが、それやってるといつまでも終わらなくなりそうという罠が。なので、エンジン物色中。今、一番有力なのはIrrlicht Engine。2Dがどれだけ扱いやすいかが、まず第一なので近いうちに検証予定。
 本当はXNAに移ろうと思ったんですが、コンテンツパイプラインがいまいち気にくわないのと、Squirrel.NETが無いのでC#からSquirrel*2が使えないのがなんとも。Squirrel.NETを自作してXNAというのも無くは無いんですが……。

 ま、ようは何かと参考させてもらおうかなと思っているわけです、はいw

*1:老舗の同人ゲームサークルさん

*2:俺が使おう思っているLL。OOP脳なのでクラスが使いたんですw