質問

  

ゲーム内スクリプトはNPC / AIロジックを制御します。

ゲーム内スクリプティング機能を実装する場合、どの言語をサポートする必要がありますか?

実装は、.net、flash、javascript、javaなどの複数のプラットフォームで実行されることに留意してください。

記載されている可能性の長所と短所は何ですか?インタープリターを実装するのにどれくらい時間がかかりますか?

ゲーム内スクリプト作成者が探している機能は何ですか? 他のゲームは何を実装していますか?

誰もが読み書きできるという事実のため、javascriptに投票することを考えています。

あなたの考えは?

役に立ちましたか?

解決

埋め込みが非常に簡単なので、Luaを使用します。 Pythonの埋め込みは複雑に思えたので、私はそれを実際に追求していませんでした。

このリンクは今後使用される可能性がありますLuaの埋め込みとその利点/欠点について詳しく知りたい場合。

他のヒント

Luaを使用します。 ゲーム業界で広く採用されている美しい言語です

ほとんどのプラットフォームにはLuaバインディングがあります:

llvm-luaプロジェクトもあり、Luaの移植に役立つ場合があります他のプラットフォームへ。

ホストプラットフォームとしてのJavaScriptについて...この主題は、 Luaメーリングリストに繰り返し登場します、しかし深刻な解決策はまだ公開されていません。 JSでLuaをホストする必要がある本当にの場合は、Luaメーリングリストで質問してください。おそらく、一部の人々はこのテーマに関する経験を共有できます。

私は多くの言語でのバインディングにPythonを好むでしょう。

「統合」という意味だと思う「実装」ではなくインタプリタ。それ。スキルによっては、スクリプト言語のインタープリターの作成に時間がかかる場合があります。

PythonとLuaに.NETとJavaのバインディングがあることは確かです-インタープリターを埋め込むことができます。 JavascriptとFlashのバインディングがあるかどうかはわかりません。

Pythonの問題は、すべて異なる人が作成した3つのバリアントがあることです。

  • IronPython for .NET
  • Jython for Java
  • および通常のCPython

私はJythonに取り組んでいないので、コメントしません。しかし、IronPythonとCPythonの間には特定の移植性の問題があります。たとえば、IronPythonはネイティブC拡張をサポートしていません。これらを使用するCPythonで記述されたスクリプトがある場合、IronPythonに移植するのに苦労します。また、IronPythonスクリプトが.NETライブラリを使用する場合、それらをCPythonに移植するのに苦労します。

一方、Luaの実装は単一の場所からのものであり、そのような問題はないと思います。

それは、コードがどれだけ複雑になるか(NPCの動作がどれほど複雑になるか)に依存します。 Tcl、Lua、およびJavaScriptは単純なタスク用です。これらの言語で大量のコードを書くと、すぐにメンテナンスできなくなる傾向があります(特に一般ユーザーの場合)。

SquirrelはCに似た構文を使用しますが、これはほとんどの人にとっては快適ですが、ツールのサポートについてはどうでしょうか?メモ帳ですべてを書かなければならない場合は、それも厳しく制限します。

Pythonは、習得が容易な成熟した言語です(Luaの「チュートリアル」とPythonに付属している言語を比較してください)。さまざまなPythonバージョンは威圧的に見えるかもしれませんが( Rohitの答え)、ゲーム内のPythonコードはすべて同じです。 IDE(IDLE)が付属しており、コード補完、デバッグ、テストケースの実行などを行うPythonをサポートする他のIDEがあります。

Pythonを使用する場合は、 Stackless を使用することを検討してください。これは、ストックCPythonよりもスレッド化の方が優れているためです。いくつかのMMORPG(EVE Online、IIRC)で使用されているため、ゲームでいくつかの実績があります。さらに、それは継続(最初に開発された理由の一部)に非常に適しています。これは、ゲームで使用する「シミュレーション」型ロジックの非常に優れたモデルです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top