[Cocos2d-x] Lua版とJavaScript版(Cocos2d-JS:JSB)の違い:まとめ
Lua版
メリット
・単純なC++版APIのバインディング。そのため、C++版にあるほぼすべての機能をLuaから使える。
・Luaのバインダとして有名なluabindを用いているため、自分のC++コードとのバンディングが簡単。
・軽量、かつ高速。
デメリット
・基本的にネイティブアプリ向けのみ。HTMLへの出力には対応していない。
・Cocos Code IDEの開発が終了してしまったため、Lua版向けのIDEなどがない状態。Cocos Studioや最新のCocos Creatorも対応していない。(Cocos Studio用のプラグインとしてCocos Lua export pluginやcsd2luaがあるが、非公式のためどこまでまともに動くか未知数)
・Luaという言語はシンプルだがとっつきにくい部分が多く、非プログラマには使ったことのないユーザーが多い。
JavaScript版
メリット
・HTML版とネイティブアプリ版の両方に対応。
・各IDE、ツールが存在:Cocos Studio、Cocos Creator、CocosSimulator
・すでにJavaScriptを使えるユーザーが多い。
デメリット
・HTML版は3Dに対応していない。
・ネイティブアプリ(JSB)版でも、一部の機能に対応していない(?)
・MozillaのSpiderMonkeyをJavaScriptエンジンに採用しているので、Lua版に比べてC++コードのバインディングがやや厄介。
・エンジンのサイズが大きく、メモリ消費量も多い
まとめ
エディタやツールを使っててっとり早く開発する、開発のしやすさを優先する、もしくはJavaScriptを知っているスタッフが多いなら、どう考えてもJavaScript版がいい。
C++で開発することを前提とするなら、自作C++コードのバインドのしやすさからLua版がおすすめ。
いずれにせよ、C++直書きよりも遥かに開発効率がいい。