「三國志8 Remake」発売は10月24日!

「Victoria 3」開発日記#59――AI

Vic3 開発日記

「Victoria 3」開発日記#59が公開されていましたので、その内容をご紹介。今回はAIについて。本体発売前の開発日記です。

前回:開発日記#58――関心の見直し


スポンサーリンク

開発日記

開発日記#59は、AIについて。

  • ゲームの発売まであと1か月となったが、バグ修正と並んで私たちに残された最後の仕事は発売までにAIに最後の磨きをかけることだ。そこで今回は「Victoria 3」のAIについて、どのように設計され、どのように動作し、Mod制作者がAIを調整するためにどのようなツールを利用できるかについて述べる。
  • しかし、AIがどの程度の困難をもたらすか、どの程度のスキルでプレイするかについては触れない。第一に、AIのパフォーマンスに対する認識は非常に主観的で、なにが「よいAI」かはプレイヤーによって異なるためだ。第二に、発売までに解決しなければならない問題がまだいくつかあるためだ。その一例として、AI国家ではあまりに頻繁に革命が起こっている(現在は大幅に改善されているはずだが、QAによる確認はまだ行われていない)。

AIのデザイン原則

  • では、「Victoria 3」のAIはどのように機能するか? 他のグランドストラテジーゲームと同じく、AIはプレイヤーと同じゲームをする。同じ機能を使い、同じ制約を受け、いかなる「チート」の恩恵も受けない(特定のゲームルールを使用した場合は例外があるが、それについてはこの開発日記の終盤で述べる)。さらに、「Victoria 3」でAIがどのように行動すべきかの指針となる4つのデザイン原則がある。
    • ロールプレイをし、極振りをしない:「Victoria 3」のAIは最適なプレイをしたり、「プレイヤーのようなプレイ」をするのではなく、「ロールプレイ」をすべきだ。AIはゲームの穴を突くのではなく、内部で設定された目標に従って行動すべきだ。例えばAIが操作するドイツの小国が統一ドイツに併合されるのは「Victoria 3」の最適なプレイ方法では明らかにないが、AIがそれを望むのはまったく問題がない。
    • 透明性と明瞭性:AIのゲームプレイ戦略や意思決定はプレイヤーに対してわかりやすいものであるべきだ。AIがプレイヤーを嫌ったり、プレイヤーの提案に従わない場合、プレイヤーはその理由を理解できるべきであり、AIが「ロールプレイング」の原則に従って行う内部戦略がプレイヤーに明確に示されるべきである。
    • 理にかなった範囲での改造可能性:AIはゲームのパフォーマンスを損なわずにできる限り改造可能であるべきだ。AIの中核的な意思決定ループを実際に公開するのは(少なくとも現行世代のハードウェアでは)不可能である可能性が高いが、Mod制作者がトリガー、定義、スクリプトされた値を通じてAIの決断に関与するようにできるところはすべてそのようにすべきだ。
    • ランダムすぎず、決定論的すぎず:AIは一般的に「半ランダム性」と呼ぶものに基づいて意思決定を行うべきだ。「半ランダム性」とは、AIが行える選択肢を調べ、それぞれに点数をつけ、特定の種類の決断についてどの程度予測不可能にしたいかに基づいて一定量のランダム性を混ぜることを意味する。

AI戦略

ゲーム開始時の清は極めて保守的な戦略をとる傾向がある。彼らの目標は単に国内の安定を維持し、既に持っているものを守ることだ。

  • 実際のAIの仕組みを見ていこう。「Victoria 3」のAIの中心となる仕組みはAI戦略(AI Strategies)で、3つの原則に従うものだ。ゲーム内のすべてのAI国家は常に3つのAI戦略(統治(Administrative)・政治(Political)・外交(Diplomatic))によって支配されている。一般的に、統治戦略はAIがどのように経済を発展させ(例えば換金作物のための農園建設に注力するか、工業化を目指すか)、予算を均衡させるかを決定する。政治戦略はAIがどの利益集団や政治改革を支持し、その政治改革をどれだけ大胆に進めるかを決める。外交戦略はAIがどのような地政学的方向性(例えば植民地化を目指すか、重武装の孤立主義を目指すか)を決定する。
  • AI国家がどのAI戦略を選ぶかは重みづけに従って半ランダムに決まる。例えば利益集団としての知識人が強力な国家は進歩的(Progressive)な政治戦略をとる可能性が高いが、必ずそうなるわけではない。

責務にどれほど価値があるかをAIが評価するスクリプトされたロジックの一部。Mod制作者が間違いなくいじり回すであろう部分だ。

  • AI戦略システムは大まかなAIの指針以上のものだ。これには調整したり、ほかの戦略に取り入れることができるあらゆる種類の値が含まれている。すべてのAIは隠された「デフォルト」戦略を持っており、これは他国からの責務(Obligation)をどれほど評価するか、どの戦争目標に関心を持つか、どれほど(そして誰に)攻撃的であるか、外交上の駆け引きにおける中立の基準はなにか(これは後述する)などの値を設定する。このデフォルト値は有効なAI戦略に上書きされたり追加されたりする。

戦略的欲求

オスマン帝国はエジプトに対して好戦的(Belligerent)な態度をとっているが、これは態度スコアが非常に低いことと戦略的欲求が「征服」であるためだ。

  • 戦略的欲求(Strategic Desires)についても触れておく。これはミニ戦略のようなもので、AI国家ごとに外交的に関連のある(Diplomatically Relevant。つまり関心や国境を接していることなどに基づいて外交的に交流を持ち得る)国家それぞれに持つことがある。戦略的欲求はAI戦略の組み合わせごとにに重み付けされ、半ランダムに決まる。
  • AI戦略と戦略的欲求はもちろんキャンペーン全体で固定されているわけではない。一部はhistoryファイルで設定され、ほかに半ランダムに決定するものもあるが、時間経過で変化し得る。この変化は特定のイベントで促されることがある。個々のAI戦略と戦略的欲求には「変化点」メーターがあり、これが100に達するとリロールされるが、直ちに一定量の変化点を加算するような国家に起こり得る多くのことがあり、こうしたことがリロールのトリガーとなるかもしれない。また、ある国家が新たな法律の制定に成功した場合にも政治戦略に一定量の変化点が加算される。
  • しかし、変化点が100点に達することが必ずしも戦略や戦略的欲求の変化を意味するわけではない。特にスクリプトされたAIの選好がその戦略について高い場合、「リロール」の結果としてこれまでの戦略を繰り返し採用することは十分あり得る。
スポンサーリンク

経済

支出変数はプレイヤー国家でも記録され、予測のために使用される。この例では、ペロポネソス半島の小麦農場を拡張すると穀物価格に与える影響で建造物の利益が減少することがわかる。これはAIも知っている。

  • AIが経済でどのように機能するかについて。「Victoria 3」の経済運営は非常に複雑でそのためのAIを作るのも簡単ではない。単純に見える行動でも考慮すべき要素が多くある。では、AIがなにかを建設しようとするときにパフォーマンスに負荷をかけすぎることなく、どのようにこうした要素をすべて考慮するか? その解決策が支出変数(Spending Variables)というシステムで、AIが経済や市場の動向を予測するものだ。
  • AI国家それぞれの支出変数は現在建設待ちだったり従業員を採用している最中の建造物から出る買い・売りの注文などの値を監視する。これはつまり、AIが工具の不足に直面して工具工場の建設を開始した場合、工具工場が完成すれば工具の不足が解消されることを理解し、さらなる工具工場を建設しないということだ。また、工具を消費するような建設は現在の市場環境では明らかに悪い考えだが、これを工具工場建設後に行うということも可能だ。
  • 支出変数は売買注文以外にも多くのデータを監視しており、特に常に行う必要のない複雑な計算、例えばAIが軍事的脅威が高まっていると感じるかどうか、そのために軍事支出を優先させるべきかどうかを決めるのもそうだ。

AIの支出データはインターフェースには表示されない。というのは、透明性が高すぎると考えられるためだ。しかしコンソールを使って取得できる。ここでは、プロイセンが官僚機構(Bureaucracy)に大きな余剰があると考え、政府機関の建造物を増やす差し迫った必要性は感じていないことがわかる。

  • こうした変数に基づいて支出を決定するとき、AIは「Victoria 3」の開発で実際に使用している課題監視システム(JIRA)から着想を得たシステムを使う。AIは政府の支出について起こり得るすべての変更のリストを収集する。そしてそれぞれの行動に優先度とスコアを設定する。
  •  優先度はAIが特定のことに対する支出を増減させる一般的な状況を決定するタグだ。支出を増やすときにAIは常に優先度の高いものを選び、支出を減らすときは優先度が低いものから支出をやめていく。優先度は以下のとおり。
    • Must-Have:これはAIが不可欠なものであるとみなし、これをなくすより破産するほうを選ぶものだ。AIは必須のものに対して支出を常に増やし、減らすことはない。これは慎重に使用される。
    • Should-Have:これはAIが非常に重要だとみなすもので、少しでも黒字があればすぐにでも手に入れるべきものだ。AIがShould-Haveの支出を削減しようとするのは負債があって他に予算を均衡させる方法が見つからない場合のみだ。
    • Wants-to-Have:これはAIがかなり重要だとみなすもので、それなりに黒字があれば支出を増やすが、それによって負債を負おうとはしない。赤字の場合は支出を減らす(もちろん一時的な支出は算入しない)が、大量の金準備があれば行わない。
    • Nice-to-Have:これはAIが優先順位の低いものとみなし、大きな黒字があり、他に使うべきものがない場合にのみ支出を増やすものだ。黒字がそれほど多くなくなってきた段階でNice-to-Haveへの支出は削減される。
    • Should-not-Have:これはAIがまったく欲しくないと判断するものだ。どのような状況でもこれについて支出を増やすことはなく、できるだけ早くその支出を減らす。
  • スコアは半ランダムに決定される数値で、同じ優先順位の2項目間のタイブレーカーとなる。優先度とスコアの組み合わせにより、AIは決定論的すぎずランダムすぎない方法で決断し、スコアのみに基づくシステムより特殊なケースに対応しやすくなっている。

外交

  • 外交上の駆け引きにおけるAIの振る舞いについて。ここは最近になって非常に多くのことが起こった部分だ。アルファ版ではAIはどちらの側にもスコアを割り当て、その後さらに懐柔の申し出の値を加算して懐柔されることを望むかどうかを決めていた(ときには懐柔されることなしに強く好む側に味方することもあった)。このシステムは外交上の駆け引きにおけるAIの振る舞いを決めるいくつかの新たな数値により強化された。それが中立性(Neutrality)・共感(Sympathy)・自信(Confidence)・大胆さ(Boldness)だ。

評価のほとんどない責務以上のものはなく、イギリスは中立性が高すぎるためこの西アフリカの紛争に関与する気がない。

    • 中立性:これはAI国家が特定の外交上の駆け引きにどれほど関わりたくないかをを決める計算値で、AIがどの戦略をとっているか、負債があるか、軍の形態、その紛争を気にかける価値があると考えるかなどの要素に基づく。AIが一方の味方に付いたり懐柔されるためには、一方の味方についたときのスコアがもう一方の味方になったときのスコアと中立性スコアの両方を上回る必要がある。
    • 共感:これは2か国の主導国に対して主導国以外の国家が持つ半ランダムに決定される値で、駆け引きにおいてそちらの側に味方する意思に直接加算される。国家は防衛側に高い共感を持ち、同盟国の敵に対する共感は低く、悪名値が高い敵と対峙する国家には高い共感を持つ傾向がある。共感はプレイの中で変化し、戦争目標を追加した側は戦争目標を追加したことによる悪名値に基づいて相手側に共感を生む。同様に、参加していない国家から支援を受けた側はその支援国が駆け引きに関与しているほかの国家とどれほど強い関係にあるかに応じて相手側に共感を生む(逆に、支援国を失うと支援を失った側に対する共感が高まる)。

プロイセンとロシア双方と戦争になる可能性があるため、オーストリアはより多くの支援を確保できない場合、ここで譲歩する可能性がある。しかしボヘミアはオーストリアに不可欠であり、オーストリアはなんとしても守らなければならないと決断する可能性もある。

    • 自信:これは外交上の駆け引きのそれぞれの側の主導国にのみ適用される計算値で、駆け引きが戦争になった場合に優位に立てる可能性をどのように感じているかを決める。これは主に両軍の相対的な戦力と動員レベルによって決まるが、戦費をどれだけ負担できるか、彼らがどれほど内部で分断されているか、どれほど自国軍が自国領土への侵攻を防ぐことができると考えているかも加味される。AIの自信が低いほどより譲歩しやすくなり、参加していない国家から追加の支援を得ようとする。
    • 大胆さ:これは外交上の駆け引きの参加国ごとに半ランダムに決まる隠し値だ。特定の戦略を持つ国家、ランクの高い国家、強力な軍隊を持つ国家、駆け引きにおいて併合に直面している国家は高い大胆さを持つ傾向がある。大胆さはAIがどれほど早く動員をかけるか、なにも提示されなくても駆け引きにどれほど参加するかといったさまざまなAIの決断に関係するが、大胆さの主な役割は自信とは逆で、AIが駆け引きを戦争に持ち込むのではなく譲歩しようとするかどうかを決めるものだ。これについては自信と大胆さを足したものが低いほど、AIが譲歩する可能性が高まる。これには他の要素、例えば戦争になった場合に強要され得る追加の戦争目標からどれだけの損失を被るかなどもあるが、大胆さは「予測可能なランダム性」を提供する。

「メッテルニヒモード」と呼んでいるAIに関するゲームルールの組み合わせ。

  • 最後に「Victoria 3」で利用できるAIに関するゲームルールを説明する。というのは、これは通常の難易度設定とは少し異なるためだ。「Victoria 3」の経済は複雑で相互に関連しているため、そして私たちはシミュレーションに力を入れているため、私たちは「高難易度」を単にすべてのAIがより多くの商品を生産したり、なにもないところから多くの収入を得ることになるようにはしたくなかったし、「低難易度」でプレイヤーに同じことが起こるようにもしたくなかった。
  • かわりに、AIがプレイヤーや他の世界と地政学的なレベルでどのように関わるかに着目することにした。この指針に従って「AIのプレイヤーに対する振る舞い(AI Behavior toward Players)」と「AIの攻撃性(AI Aggression)」という2つのゲームルールを追加した。
  • AIの攻撃性は低・標準・高があり、高いほどAIは他の国家に対してより攻撃的になる。これはAIが好む戦略的欲求、その欲求を実現するためにどの程度外交上の駆け引きを始めやすいか、どれほど悪名を得ようとするかに影響する。
  • AIのプレイヤーに対する振る舞いは寛大・標準・苛烈があり、AIがプレイヤーの操作する国家をどう見るかにのみ影響し、難易度設定にもっとも近い。通常設定の「標準」では、AIはプレイヤー国家を他のAI国家と同様に扱い、特別な配慮をしない。「寛大」ではAIがプレイヤーに対して友好的な戦略的欲求を持つ可能性が高まり、外交上の駆け引きではプレイヤーを支持しやすくなる。また、請求権がない限り、プレイヤーの本国を征服しようとしない。「苛烈」では、AIはプレイヤーの意図をより疑うようになり、明らかに得るものがない限り外交上の駆け引きでプレイヤーを支持しようとはしない。また好機が訪れればプレイヤーの鼻を1本や2本へし折ろうとする。
スポンサーリンク

質疑応答

Q:イデオロギーの対立はAIの共感などに影響しないの?

A:開発日記には書き忘れていたが、AIにはイデオロギーに関する評価(Ideological Opinion)があり、これは自国と相手のイデオロギーを比較するもので、外交、戦略、外交上の駆け引きにおいて誰に共感しやすいか(特に革命)などに関係する。

Q:なぜAIのコアループを公開できないの?

A:公開するにはコアループをスクリプト言語で実行させる必要があるが、これはパフォーマンス的に非常に非効率だ。HoI3でこれを試したが、結果としてゲームを動かすためにAIは100%道筋をつけてやらなければならなかった。

Q:新たな建造物をModで追加した場合、AIがまともな判断をするように支出変数が更新される? 手動で修正する必要がある?

A:支出変数は建造物の設定から動的に計算され、別にスクリプトされているわけではない。新たな建造物・生産方式・商品について追加の作業なしに動作するはずだ。


来週はMod制作について。

2022年9月30日追記:予告どおり開発日記#60はMod制作に関する内容となっていますが、当サイトでは記事にしてご紹介しませんので、気になる方は直接フォーラムのスレッドをご覧ください。

次回:開発日記#61――データの視覚化

スポンサーリンク

コメント

  1. 翻訳お疲れ様です!

    第一次世界大戦はどうなるんだとか結構言われてるけど、AIの重みづけを変化させるだけで割と簡単に状況を再現できそうで楽しみ

  2. コ○エーの開発チームに読ませたい

  3. いやむしろ難易度をAIの好戦性で調整する思想はコーエー的だと思うよ 信長で毎回あらやつじゃん
    両社は近年ゲーム作りで共通点が多くなってる印象はあるから、お互いに良いところは真似していってほしい

  4. プレイヤー的には、AIが多少はチートの恩恵を受けても文句はないんだけどな

  5. むしろ唯一Vic3に期待してないのがAIだからどんだけダメでもノーダメだぜ!
    勿論良い出来ならそれに越したことはないけど、hoiのAI見る限りなあ…

タイトルとURLをコピーしました