最近、ゲームの設定ファイル的に使えそうな組み込み言語ということで、Luaを調べたり使ったりしていました。
とりあえず、tolua++を使ってLuaの関数にC++のクラスを渡して操作させることまではできました。
便利ですね、これは。
例えばC++側で描画インタフェースクラスを定義して、それをLua側の描画関数に渡して描画…なんてこともできます。
S-RPG製作の編成画面の表示構成を外に出したりできるわけで、開発時のトライ&チェックがしやすいことはもちろん、カスタマイズ性の面からいっても有用です。
実際にそれをやるとなるとオーバーヘッドの考慮は必要ですけどね(固定表示部分は最初に内部でテクスチャにしておく等)。
しかしここまでやったところでもっと使えそうな組み込み言語を見つけてしまいました。
それはSquirrelという言語です。
上述のページを見て貰えれば大体わかりますが、Luaと比較したときの利点として次のようなものがあります。
逆に欠点としては次のようなものがあります。
=
演算子を使って代入することができず、 <-
演算子を使う必要がある。
ちなみにライセンスはzlib/libpngライセンス(LuaはMITライセンス)。
著作権を偽らず、かつライセンス表記さえしておけば、特に使用に関する制限はありません。
SqPlusに付いているサンプル(?)のDXSquirrelがこの言語の凄さの一端を見せつけています。
SquirrelのコードだけでDirectXによる描画を行っています(サンプルに必要なクラスしか実装されていませんが)。
コードがC/C++ライクなので見るだけで大体何をやっているのかわかるのも凄いところ。
ゲーム業界の一部ではLuaからSquirrelに移行する向きがあるらしいですが、それも納得というものです。
とりあえず、Squirrelを使って編成画面を表示するサンプルとか作ってみようかな。