[Cocos2d-x] Lua版とJavaScript版(Cocos2d-JS:JSB)の違い:まとめ

2016 年 3 月 29 日

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++直書きよりも遥かに開発効率がいい。