読者です 読者をやめる 読者になる 読者になる

プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

cocos2d-x JavaScriptのサンプルを動かしてみた所感

JavaScriptは結構好きな言語。
プログラムは一行でも短く書けると嬉しい病気なので、JavaScriptのように言語制約が緩くて変態文法が可能な言語は好物と言える。

cocos2d-xのjsテンプレートはJavaScriptでiOSゲームを開発できる。
組み込みにはSpiderMonkeyを使用しているらしい。これはC言語によるJavaScript実装ライブラリだ。

JavaScriptを使える人は多いし、使ったことがなくても構文がC言語に似てるから学習コストも低いだろう。
しかし、cocos2d-x JavaScriptにはいくつか問題がある。

今回はcocos2d-xで使えるスクリプト言語としてLuaと比較しながら、cocos2d-x JavaScriptの問題点を挙げる。
※なお、テンプレートのサンプルプログラムを計測しただけなので、実際とは異なる部分があるかも知れない。

問題点1:でかい

ビルド後のサイズがLuaより10MB以上でかくなる。プロジェクトのファイルを見たところ、SpiderMonkeyのライブラリだけで20MBを超えていた。
テンプレートを作成した直後にビルドしたシミュレータ用のappファイルは、cocos2d-x単体だと4.4MB、Luaが6.7MB、SpiderMonkeyが21.5MB。

問題点2:メモリ使用量も多い

画面に何も表示しないアプリケーションで計測。
素のcocos2d-xと比べLuaは3MB、SpiderMonkeyは13MB消費。

問題点3:自動でバインドするツールがあるかわからない

多分あるとは思うけど、SpiderMonkeyで使えるバインドツールorライブラリが見つからなかった。
自分でバインドすると結構手間がかかる。


JavaScriptで組めるというのはcocos2d-xのメリットとしてとても大きいので、もっと軽量化してツールが充実してくれたら良いなと思いました(小学生並みの感想)