C++ とスクリプトの併用
質問
趣味で簡単なゲームを開発しています。新しいプロジェクトでは、いくつかの部分をスクリプト化できるようにしたいと考えています。私は Python には精通していますが、新しい言語を学ぶことは嫌いではありません。質問は次のとおりです。
経路探索、視野、衝突検出などを実装する予定です。C++ を使用していますが、AI ステート マシンやスクリプト化されたイベントにスクリプトを使用したいと考えています。この種の作業にはどのような構造が使用されますか?C++ プログラムで Python プロセスを実行し、そのプロセスで C++ メソッドを呼び出すことはできると思いますが、非効率のようです。もう 1 つのアイデアは、Python から呼び出されるライブラリを開発することですが、これもあまり魅力的ではありません。これを行う通常の方法は何ですか (独自の言語とパーサーを作成する以外は?) C プログラムに組み込むには lua が人気があると聞きました。
解決
私の個人的な経験から言えば、どちらも ルア そして tcl 埋め込み用の素晴らしい C API があります。どちらの言語も非常にシンプルです。コマンド インターフェイスを作成している場合は、おそらく tcl を使用すると思いますが、組み込みインタプリタを使用しているだけの場合は、lua をお勧めします。C++ を使用していることを考えると、次のことも調べたいかもしれません。 ルアビンド API、それについては良いことを聞いています。
AI スクリプトやその他のステート マシン タイプのものについては、 このブログ投稿 ゼッド・ショウ著は良い読み物です。コルーチンベースの AI コードは、膨大な量の状態とその遷移を管理するよりも、複雑なスクリプトの方がはるかに見栄えがよくなります。
Python を使用している場合は、その方が良いかもしれません 埋め込むのではなく拡張する.
他のヒント
Pythonのプロセスを実行しますか?いーえ....
埋め込みのます。
個人的な経験から、私は非常にGoogleのJavaScriptエンジンV8エンジンをお勧めすることができます。それは、C ++で書かれた、非常にパフォーマンスだ簡単に埋め込むに自明である、他の依存関係と本当に美しいネイティブインタフェースを持っていません。