私は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からインスピレーションを受けています。
私は本当にこの投稿の長さについて謝罪します、それは少し獣になりました:(
いずれにせよ、それが役立つことを願っています!