1

私は今学期に、AI の応用に関するプロジェクトを行う必要があるコースを持っています。これをゲーム AI で行うことにしました。基本的なアイデアは 2 つあります。FPS ボットの実装またはサッカー AI の実装です。

私は今のところ AI の初心者であり、基本的なパスファインディング アルゴリズム (A* など) を実装しており、有限ステート マシン、いくつかの一次ロジック、基本的なニューラル ネットワーク (バックプロパゲーション ALgo) について研究しており、現在は遺伝的アルゴリズムのコースを行っています。

現在、私たちの主な焦点はボットにあります。私たちの計画には以下が含まれます:

  • 各「ボット」は、有限状態マシン (FSM) を使用して実装されます。FSM には、ボットが持つ可能性のある状態が含まれます。& 入力を受け取ったときに行われるアクション/状態の変更のルール。
  • ボット グループの移動では、各ボットが攻撃するかどうか、攻撃する方法を決定します。範囲、ボットの数、ニューラル ネットワークを使用した既存の戦闘に基づきます。
  • 遺伝的アルゴリズムを使用することで、繰り返しの動きに基づいて対戦相手の次の動きを予測できます。

これまで、空き時間にいくつかの 2D ゲーム (パックマン、テトリスなど) をプログラミングしましたが、実際に 3D の領域に足を踏み入れたことはありません。ほとんどの場合、3D エンジンを使用します。

私たちは、AI の部分にほとんどのエネルギーを集中したいと考えています。アニメーションや 3D モデルなどの不必要な詳細に煩わされるのは避けたいと思います。たとえば、Moveright() のようなボットを右に移動するだけの関数を持つフレームワークを見つけることができれば、それは本当に素晴らしいことです。

私の基本的な質問は次のとおりです。プロジェクトの期間が約 3 か月であることを考えると、計画どおりに進めるのは野心的すぎますか? 3D に移行して 3D ゲーム エンジンを使用する必要がありますか? そのようなエンジンの経験がない場合、そのようなエンジンを使用するのは簡単ですか? はいの場合、どの種類のエンジンが私たちのプロジェクトに適していますか?

私は別のアイデアに出くわしました. AI ゲームプログラミングの本で、プレイヤーがボットを上から見下ろすというものでした. その方法の方が適切でしょうか?

ありがとう..質問の長さについて申し訳ありません..私の問題が少し具体的すぎるだけです。

4

2 に答える 2

2

私の基本的な質問は次のとおりです。プロジェクトの期間が約3か月であることを考えると、計画した方法でそれを実行するのは野心的すぎますか?

はい-しかし、それは必ずしも悪いことではありません:)

3Dに移行して3Dゲームエンジンを使用する必要がありますか?

いいえ。主にあなたが言ったからです:

私たちはほとんどのエネルギーをAIの部分に集中させたいと思っています。

これが私の経験に基づいて私がすることです(そして、学生として、私も噛むことができるよりも多くのことを噛み砕くことがよくあることを知っています):

グラフィックコンポーネントに関係なく、シミュレーション関数を作成します。プレーヤーとボールのベクトルで構成される別のレイヤーに「更新」を公開してもらいます。そうすることで、AIタスクを他のすべてから分離することができます。つまり、心配するバグが少なくなり、基礎となるシミュレーションの単体テストもはるかに簡単になります。

これらの「更新」を取得して、最初の「視覚化」レイヤーを作成します。これを可能な限り単純な2D表現にします。「プレーヤー1がボールを持っている/プレーヤー1が(30,40)で速度20kphでボールを蹴った」というテキスト行のストリームである可能性があります。シミュレーションによって公開されたデータを取得し、それを使って何かを行う方法を理解するので、これは最初のパスでは十分に難しいでしょう。

次の視覚化では、ANSIグラフィックの2Dグリッド(ローグライクのようなもの)を追加して、実際にプレーヤーとボールが動いていることを示します。その後の次はスプライトかもしれません。等々。視覚化の複雑さを徐々に増やしていく方法に注意してください...これまで使用したことのないテクノロジ(3Dグラフィックエンジン)を使用するための最初のステップを実行しないでください。(その場合、プロジェクトを終了することはありません。)

FSM、NN、GA、トップダウン設計など、どのルートを取るべきかについての質問については、それらへの関心を(グループの他のメンバーとともに)最も高いものから最も低いものへとランク付けしてから、それらに取り組む必要があります。注文。1つのチームに対して1つのスタイルを実行し、他のチームに対して異なるデザインを実行することを検討できます。変更が実際に有益であると思われる場合に比較対照するために、FSMチームを追加の調整が行われたFSMチームと対戦させることができます(驚いて、チームを悪化させることがわかる場合があります) )。実際、ここでユニットテストと視覚化からのシミュレーションの分割が非常に便利になります。グラフィックスを気にせずに実験結果を得るのに必要な数のゲームを「シミュレーション」できるはずです。

一般的に、私のアドバイスは次のとおりです。プロジェクトを可能な限り小さな部分に分割し、一度に1つずつ取り組むので、時間がなくなったときにどこにいても、何か面白いものを見せることができます。オフ。

于 2010-08-21T19:01:36.177 に答える
1

guntactyxを見ることができます。これは、大学で AI ユニットを作成したときに使用しなければならなかったものです。

すべての表示、物理、サウンドなどを処理します。あなたがしなければならないことは、ボットのチームをプログラムすることだけです。API には、ボットを左右に動かしたり、発砲したり、音 (銃声など) を聞いたりする機能が含まれています。また、いくつかのサンプル ボットが付属しているため、ゼロから始める必要はありません。

また、あなたのボットが友達のボットと戦っているのを見るのはとても楽しいです:)

于 2010-08-21T19:55:58.403 に答える