質問

趣味で簡単なゲームを開発しています。新しいプロジェクトでは、いくつかの部分をスクリプト化できるようにしたいと考えています。私は 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 ++で書かれた、非常にパフォーマンスだ簡単に埋め込むに自明である、他の依存関係と本当に美しいネイティブインタフェースを持っていません。

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

私はTclとLuaはC / C ++アプリケーションに埋め込むために最も簡単なの一つであることに同意します。主にそのため、非常に最初から設計上の決定でした。埋め込み用に設計された別の言語があるガイル。

あなたがCにスクリプト言語を埋め込むことに興味がある場合は、 ++アプリケーションはガブガブ飲むのを見てみましょう。 SWIGは自動的にあなたが既に知っているのpythonなどのスクリプト言語の数のグルーコードを作成することができます。主な利点は、多くの異なるスクリプト言語を扱うことです。

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