質問: 現在、2Dのゲーム制作ソフトを作成しています。そこにツクールのようなスクリプト言語の機能を採用しようと考えています。 ですが、採用できそうな言語はRubyやPython等様々な種類があり、どの言語にすればいいのか、悩んでいます。複数採用する事も考えていますが、メインに使う言語を一つに絞りたいです。 初め、ツクールを利用していた人達を取り込もうとRubyをメインで採用しようと 考えていましたが、ここで気が変わりました。 一応、各言語が他のゲーム制作ソフトでどう採用されているのか、書いておきます。 Ruby・・・RPGツクールシリーズ(VX ACEまで) Python・・・Ren'Py,Godot等 Lua・・・Cocos2d-x、その他コンシューマのゲームエンジン JavaScript・・・RPGツクールMV C#・・・Unity 現在、Unreal Engine 4で採用されているC++と 初心者用言語として使われているHSPを採用する予定はありません。 このうちJavaScriptを使えば、ウェブ上でゲームを動かす事が速度などで 他の言語と比べて無理なく出来そうですが、スマホ上ならまだしもウェブ上で ゲームを動かす利点がどこまであるのか、どうもいまいちよく分かりません。 また、C#は良い言語だと思いますがスクリプトとして使うには 少しコンピュータ寄り過ぎるように感じています。 よろしくお願いします。
回答: デメリットを飲み込んでJavaScriptですかね。 メリットはNode.jsやElectronを見れば分かるようにクロスプラットフォームです。 RPGツクールMVでも解りますが、MacでRPGが動くことはとても大きなメリットかと思います。 また、イベント駆動で動く事も特徴の一つで、 例えばオブザーバーパターンを利用して各々が同時並行で動くような処理が簡単に組めます。 (メモリの消費量とかは知りませんが、箱庭やリアルタイムSLGをかなり綺麗に実装出来そうです) デメリットはJavaScriptのコードが汚くなりがちで管理に困ることです。 CやJavaライクな書き方に無名関数のコールバック地獄になりがちなJavaScriptは、 プログラマ側の技量が高くない限り見るも無残なことになります。 その点、後発で洗練されているRubyやPythonは美しいですね。 しかし、AltJSを使うなりして解決出来る程度の問題なので、カバー出来る程度のデメリットです。