3

趣味で簡単なゲームを開発しています。私の新しいプロジェクトでは、いくつかの部分をスクリプト可能にしたいと考えています。私は Python に精通していますが、新しい言語を学ぶことは気にしません。質問は次のとおりです。

経路探索、視野、衝突検出などを C++ で実装する予定ですが、AI ステート マシン、スクリプト化されたイベントにスクリプトを使用したいと考えています。この種の仕事にはどのような構造が使われていますか? C++ プログラムで、C++ メソッドを呼び出す Python プロセスを実行できると思いますが、効率が悪いようです。もう 1 つのアイデアは、python から呼び出されるライブラリを開発することですが、これもあまり魅力的ではありません。これを行う通常の方法は何ですか (独自の言語とパーサーを作成する以外は?) C プログラムへの組み込みには lua が人気があると聞きました。

4

4 に答える 4

6

私の個人的な経験から、luatclの両方に組み込み用の素晴らしい C API があります。どちらの言語も非常に単純です。コマンド インターフェイスを作成している場合は、おそらく tcl を使用すると思いますが、組み込みインタープリターを使用しているだけの場合は、lua をお勧めします。あなたが C++ を使用していることを考えると、luabind API も調べたいと思うかもしれません。私はそれについて良いことを聞いています。

AI スクリプティングやその他のステート マシン タイプのものについては、Zed Shaw によるこのブログ投稿をお読みください。コルーチンベースの AI コードは、膨大な状態とその遷移の山を管理するよりも、複雑なスクリプトのほうが見栄えがよくなります。

Python を使用している場合は、埋め込むよりも拡張した方がよい場合があります。

于 2010-10-28T08:36:26.080 に答える
4

Pythonプロセスを実行しますか?いや……

埋め込み

于 2010-10-28T08:29:19.450 に答える
3

個人的な経験から、GoogleのJavascriptエンジンV8を強くお勧めします。これは非常にパフォーマンスが高く、C ++で記述されており、簡単に埋め込むことができ、他の依存関係はなく、非常に美しいネイティブインターフェイスを備えています。

http://code.google.com/p/v8/

于 2010-10-28T08:30:54.390 に答える
2

Tcl と Lua は、ac/c++ アプリケーションに組み込むのが最も簡単なツールの 1 つであることに同意します。主な理由は、それが最初からの設計上の決定だったからです。埋め込み用に設計された別の言語はGuile です。

C++ アプリケーションにスクリプト言語を埋め込むことに興味がある場合は、Swigをご覧ください。Swig は、すでに知っている Python を含む多くのスクリプト言語のグルー コードを自動的に作成できます。主な利点は、多くの異なるスクリプト言語を処理できることです。

于 2010-10-28T11:48:35.543 に答える