ターンベースの戦略ゲーム向けの複雑なゲームAI


26

ターンベースの戦略ゲームプロジェクトの研究を行っており、このトピックに関する優れたリソースを探しています。このゲームは典型的な戦争ゲームであり、国は互いに戦い、ユニットを展開し、これらのユニットを六角形のタイルマップ上で移動させ、互いに攻撃することができます。

私は、Civilization VのAIがどのように構成されているかに特に興味があります!ウィキペディアによると、ゲームはゲームのAIのさまざまなレイヤーに4つの異なるAIシステムを使用しています。

  • 戦術AIは個々のユニットを制御します
  • 運用AIは戦線全体を監督します
  • 戦略的AIが帝国全体を管理します
  • 壮大な戦略的AIは長期的な目標を設定し、ゲームに勝つ方法を決定します

概念的には、これは複雑なAIを実現するのに非常に理にかなっているように見え、これらの異なるAIシステムがどのように機能する(そして連携する)かを知りたいと思います。戦術AIは、単一のユニット(移動、攻撃、修理、撤退など)の意思決定を処理するため、おそらく最も理解しやすいでしょうが、他のAIシステムは本当に興味深いものになると思います。たとえば、運用AIは何をし、どのようにそれを行いますか?これらはFiraxis Gamesによって秘められた秘密であると確信していますが、これについてさらに議論するためにいくつかの議論を始めるのはクールでしょう。

また、ターンベースの戦略ゲームAIを扱う優れた書籍を知っている人がいたら、それは知っておくとよいでしょう。明らかに、これはWeb上でまばらにシードされたトピックです。「Programming Game AI by Example」を手に入れましたが、その本は、高レベルの目標指向のAIよりも、単一エージェントの動作AIに関するものです。

回答:


19

私はDampeS8Nの冒頭の段落(つまり、ゲームAIはプレイヤーにスマートだと思わせるのに十分なだけスマートである必要がある)に同意しますが、この質問にはもう少し詳しく説明する必要があると感じています。使用中のデータ構造はすべてのレベルのFSMである可能性がありますが、個々のシステムがどのように機能するかについての質問には実際には答えていません。

免責事項:Civilizationゲームはほとんどプレイしていないので、ゲームプレイの理解は限られています。明らかなエラーがある場合は、謝罪します。私を修正してください、私は喜んで編集します。

元のIGN Articleから引用を取ります。

1.戦術AI

最下位レベルでは、戦術AIは手近な部隊を使用して、ローカルスケールでの戦闘に勝ちます。

これはおそらくサブシステムの最も標準的な部分です。FSM、ビヘイビアツリーを使用して(またはAIの難易度に応じてランダムアクションを実行することによって)これを実行するための無限の方法があります。

ただし、これはリスクに似たターンベースのゲームなので、各ユニットにスコアが割り当てられる可能性が高いと思います。その後、さまざまな変数(忠誠、地形ボーナスなど)に応じて、このスコアに乗数が付けられます。

結果は次のように計算されます:

If (AI unit score >> (much greater) enemy unit score) Then Completely destroy enemy unit
If (AI unit score > (somewhat greater) enemy unit score) Then Partially destroy enemy unit
If (AI unit score < (somewhat less) enemy unit score) Then Partially destroy AI unit
If (AI unit score << (much less) enemy unit score) Then Completely destroy AI unit

AIは戦闘中にこのスコアを最大化しようとするのは理にかなっています。

イプシロン値を追加する(たとえば、失敗/成功の小さなランダムなチャンス)と、かなりまともなAIが得られます(完璧な対戦相手を望んでいる人はいない、それは楽しいだけではありません!)。

2.運用AI

それから一歩進んで、運用AIはどの戦闘を戦うかを選び、必要な部隊が利用できることを確認します。

これにはいくつかのポイントがあると思います。

  • 電流強度の評価
  • ユニットの強化
  • どちらの戦いを選択/回避するかを評価する

現在の強さを評価する -これは私に影響マップを叫ぶだけです。16進グリッドで簡単に表すことができます。このサブシステムは戦闘指向であるため、影響値は周辺の各ユニットの強度値を表すことができます。六角形の小さなエリアに集中している大規模な軍隊がある場合、影響値は巨大になり、運用AIはこれを考慮して戦いを評価します。敵軍の影響値も計算されることを忘れないでください。これにより、運用中のAIは潜在的な入ってくる脅威を予測できます。

ユニットの強化 -影響マップから対立する派factに関する情報を受け取ることにより、AIはどのユニットが最も脅威にさらされているかを判断できます。その後、AIは近接ユニットにコマンドを発行して、脅威にさらされている当事者を強化します。

どの戦いを選択/回避するかを評価する -ここでは、いくつかの状況が発生する可能性があります。AIがユニットが脅威にさらされていることを検出し、近くにユニットが存在しない場合は、a)ユニットを犠牲にすることを決定します(たとえば、かけがえのない将軍の代わりに、歩兵が低い場合)またはb)ユニットを注文します後退する。逆に、AIが軍の近くに弱い敵ユニットを検出した場合、この敵を連れ去るようにユニットに命令することができます。

リアルタイム戦略ゲームでインフルエンスマップを利用したまともな論文です。

3.戦略的AI

さらに高くなると、戦略的AIは帝国全体を管理し、都市を建設する場所と都市をどうするかを重視します。

「どこで都市を建てるべきですか?」位置評価のように聞こえます。チェスプログラムや他のゲームは、特定のポジションの望ましいかどうかを判断するためにそれを使用します。例えば:

Hex A:リソースに近い、高地、仲間に近い、敵に近いHex B:リソースに遠く、中レベルの地形、仲間から中距離、敵に近い

位置評価関数は、次の3つの要素を使用できます。

Score = Proximity to resources (closer yields a higher score) + 
terrain elevation (higher yields higher score) + 
proximity to allies (closer is better) + 
proximity to enemies (farther is better)

そして、より高いスコアを持つ六角形は、都市が構築される場所になります。評価関数の詳細については、こちらをご覧ください

戦略的AIには、AIが目指している勝利のタイプに応じて、ゲーム内に多数の擬似プリベイク戦略もあると考えています。

4.グランドストラテジックAI

はしごの一番上には、ゲームに勝つ方法を決定する壮大な戦略的AIがあります。

これはおそらく最も単純なものであり、実際よりも印象的だという印象を与えます。このようなゲームでは、勝利タイプの数は限られています。この記事では、征服の勝利について言及しています。同盟の勝利などもあると仮定すると、タイプの1つをランダムに選んで他のシステムに渡すのと同じくらい簡単かもしれません。

編集:もちろん、DampeS8Nによって指摘されているように、マップのタイプは、最適な勝利条件を決定する可能性があります。

まとめ
この種のシステムについて本当に注意すべき重要なことは、サブシステムが階層化されている方法であり、実際には互いに多くのことを通信する必要がないということです。コンポーネントが疎結合されたトップダウンアーキテクチャのようです。技術的な設計の観点から見ると、クリーンで柔軟性があり、おそらく創発的な振る舞いSubsumption Architectureからインスピレーションを受けています。

私は本当にこの投稿の長さについて謝罪します、それは少し獣になりました:(

いずれにせよ、それが役立つことを願っています!


2
「これはおそらく最も単純なものだと思いますが、実際よりも印象的だという印象を与えます。」よく分からない。単に征服勝利に行くことを決めることと、誰に宣戦布告するかを決定することと、私たちが過度に延長され、平和のために訴える必要があるかどうか、どのターゲットが攻撃するのが最も弱いか、どのユニットを構築する必要があるか、獲得することには違いがあります右の戦略的な資源がお互いを戦うために2体の敵を引き起こすための方法を見つけること、私たちの軍隊を強くするために、などこのフェーズでは、ある多くのあなたがそれに信用を与えるよりも複雑で。
ニコルボーラス

1
うわー、そして私の答えは少し長くなったと思った。笑。良いショー。
DampeS8N

1
注目に値することの1つは、Civには絶対的な勝利条件がないことです。勝つ方法はたくさんあります。驚異の構築、科学の進歩、征服、外交など。多くの場合、どちらを選択するかは非常に難しく、マップの条件に基づいて変更することがあります。たとえば、科学であなたと出会ったばかりの人があなたよりずっと先にいることを発見するかもしれません。そしてあなたはその道を捨てて新しい道に落ち着かなければなりません。多くの場合、成功するのは、できるだけ長くオプションを開いたままにすることです。
DampeS8N

@NicolBolasそれはそれよりも非常に複雑かもしれませんが、あなたが作ったすべてのポイントはAIのより低いレベルの責任であるように見えます。誰に宣戦布告するかを決定する->運用。どのターゲットが攻撃するのが最も弱いか->運用/戦術。適切なリソースの獲得->運用/戦略。これは完全に推測されますが、最も低いレベルの結合を確保するために、下位システムが特定の戦略を担当していることは理にかなっています。
レイ・デイ

1
@RayDey:最高レベルのAIは、リソース取得などの方法に関与する必要があります。それは、取得方法を決定する必要があるためです。外交はそれを得ることができた。リソースに展開すると、それを取得できます。運用レベルは、他の戦術とは対照的に、それを超えて戦うべきかどうかを決定する適切な場所ではありません。カップリングは、文明のようなゲームには必要です。すべてがそのゲームの他のすべてに影響します。多くのカップリングなしで意思決定を行う効果的なAIを持つことはできません。それがCiv VのAIが...特に明るくない理由を説明するかもしれませんが;)
ニコルBolas

9

一般的に、ゲームのAIは「複雑な」と考えるべきではありません。それは、可能な限り少ない労力で必要なものを取得することです。ゲームの名前はEmergenceです。

この場合、基本的な概念化は間違っています。これらの4つのシステムは、連携する必要はまったくありません。彼らは彼らのように見える必要があります。彼らはあなたが彼らがする必要があると思うよりもはるかに多くを取り払うこともできます。

また、難易度の順序を逆にしました。Civ AIの最も難しいコンポーネントは戦術AIであり、それに続いて運用AIが続きます。戦略はおそらく非常にシンプルであり、グランドAIはおそらくさらにシンプルです。

コンポーネント間の通信は、うなり声のシステムに似ており、実際の通信にはあまり似ていません。高レベルから低レベルへは、次のようになります。

グランドAI

マップの状態を評価します。AIが持っている知識(すべての場合もあれば、プレーヤーの場合はそれだけの場合もあります)を考えると、AIはどの最終目標に到達するのが最も速いかを決定します。それはおそらく、いくつかの数値計算を行い、目標を選択する有限状態マシンです。おそらくもっとエキゾチックなものでしょう。遺伝的アルゴリズムまたは多分ベイジアンベースの小道具。その後、「もっと科学」などのメッセージをうめきます。

Strat AI

次に、同じ情報の多くを使用して、使用可能なものを調べます。それは、その全体的な目標を達成しようとするだけでなく、ゲームのより詳細な側面についても心配しています。私は戦争中ですか?飢えている人はいますか?など。それはおそらく有限状態マシンであり、おそらくファジーロジック(実際にはFSMの単なる進化です)。それが単純なFSMであると仮定しましょう。特定の基準が与えられると、上記の質問を順番に尋ね、このラウンドで発生する必要があるさまざまなことを決定します。私は戦争中です。兵士を訓練するためにお金を割り当てます。私の人々は飢えていて、科学的なものを作るよりもここで穀倉を作ります。

どのユニットを構築するかを選択することは、物事をどのように分割するかに応じて、Strat AIまたはOp AIの一部になる場合があります。

Op AI

使用可能なユニットを取得し、異なる戦線に移動するように割り当てます。紛争の全体的な形を決定し、新しいユニットが展開されるとそこに向かいます。おそらくFSMでもあります。フロントAの敵がユニットBに対して弱いユニットで攻撃していることに気付く場合があり、ユニットBに対して強い他のフロントよりも、そこに多くのユニットBを送ります。思いのままに攻撃。退却。など。

戦術AI

ユニット固有です。各タイプのユニットは、一般的な順序に対して異なる反応を示します。自殺を目的とするユニットは、退却命令を無視することがあります。武装した部隊は、戦うように言われても退却するかもしれません。Civは通常、この種のことを非常に軽視しています。通常、Civのすべてのユニットはコマンドに従います。彼らが下にあるより大きな順序を考えると、彼らはFSMです(こちらのパターンをご覧ください?)。怪我をしていますか?バックアウトして回復する必要があります。この場所に利点はありますか?攻撃。攻撃するには近すぎますか?戻って また、このFSMの複雑さは、効果的でインテリジェントであると確信するために、これらの3つのことをはるかに超える必要はありません。

これを強化できますか?

はい、もちろん。問題は、プレイヤーが気付くかどうかです。そして、99%の時間はそうではありません。

さて、これがすべての意思決定AIです。ここでは、他のAIサブシステムが使用されています。ユニットがロケーションへの最短パスを検索できるようにするA *またはその他のパス検索アルゴリズムがあります。新しい都市を始めるのに最適な場所を見つけるためのアルゴリズムがあります。など。多くの場合、AIとグループ化されており、AIの「思考」部分よりも実際に複雑です。実際、FSMが尋ねる必要がある質問への回答を見つけるためのコードは、多くの場合、FSM自体よりも桁違いに複雑です。どのように正確に決定しますか


ベイジアンベースのdoohicky-素晴らしい
ブライアンブルーム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.