HoI4 開発者日記 第133回 パフォーマンスとAI 2018/2/21

スポンサーリンク
更新情報

Hearts of Iron IV 開発者日記 第133回目を紹介。

今回はAIについて専門の方による説明となっています。

HOI4 Dev Diary - Performance and AI
Hello! I’ve been drafted from EU4 to fight in the trenches together with the HOI4 team for a month and give some support...

[記事内の画像はパラドフォーラムより引用]

スポンサーリンク

Hearts of Iron IV 開発者日記 2018年2月21日分 (第133回) パフォーマンスとAI

こんにちは、私はEU4チームからHoI4チームへやってきて1ヶ月の間AIとパフォーマンスについていくらかサポートを行いました。
今日はそのことについて話します。

※今回の開発者日記の担当はいつものpodcatさんでは無くGroogyさんという方が担当されてます(後ほど更に別の方も登場)。

AI

私は多くの時間を、防衛命令を改善し発生する可能性のある怪しい減少を解決するためにを時間を割いてきました。
それは例えばベルリンの代わりにマクデブルクに2つのユニットを置き、首都を完全に公開させるようなことです。
それ以外にも、必要な順番であらゆるポイントをカバーするのに十分な軍隊を持たないときに、守備隊の仕事をより良くすることにも焦点を当てています。

まずHoI4用の新しいツールを実装し、プログラマーがユニットコントローラの内容を視覚的に検査できるようにしました。

プロヴィンス

国家

その後大きな改修が行われ、守備隊の命令とそれがどのようにユニットを割り当てるかについてコードが書き換えられました。
これに関して多くの問題があることをおそらくプレイヤーも経験したことがあるのではないでしょうか。
州や地方の優先順位が間違って割り振られているユニットをシャッフルすると、リストがおかしくなってしまいます。

それで何をしたのか?
ユニットがどこに行かなければならないかについて古い論理設定のルールを当てはめる代わりに、私は嫌いな作業をしました。数学です。
主な違いは、それぞれの州が今からユニットを取り除くのがどれほど「痛い」かを計算することです。
これは各プロヴィンスが、守備隊の命令を実行するための最も苦痛な方法を見つけようとし、最終的に平衡の一種に落ち着くことを意味します。

その結果、ユニットが守備隊のどこに行かなければならないかを制御するより簡単な方法が与えられ、最終的には上の写真で見られるような重量スタイルのゲームにより合うようになりました。

私たちが長年にわたってやろうと計画していることは、最終的にAIのやり方をより柔軟に制御できるようにすることです。
私たちはこれに「AI戦略計画」と呼ぶシステムを使用します。
その本質は、AIにスクリプト化された条件に基づいた国家的な焦点と優先順位に基づいて行動するように指示します。
それを英語にするために、私はいくつかの例のために@Bratynに説明を引き渡します:

ここからBratynさんの説明

新しい「AI戦略計画」が有用であるくつかの状況は、ドイツの歴史にAIとの互換性を確保することです。
ヨーロッパの大国にとってAIの行動の多くは、「ドイツがファシストでありヨーロッパでの騒乱を引き起こす」という前提に基づいています。
これはAIイタリアは通常ドイツを味方と見なし、AIフランスはいつも英国と一緒に行動します(歴史的なモードがオンになっている場合)、もしくはAIが予測が不可能である代替歴史シナリオの場合において、計画と予測に問題がありました。

「AI戦略計画」を使用することで、これらのAI国家の一部は世界の変化するシーンに対してより論理的に行動し、プレイヤーが常に挑戦的なプレイスルーを持つことを保証しています。
あなたの唯一の敵(ソビエト連邦)を自分自身と味方との戦いで決着させるために、ドイツを民主的な方向へと向かわせることは、非常に充実したプレイスルーとは言えません。
代わりに新たなAI戦略計画によって、ドイツの「対立するヒトラー」の国家方針に合わせ、フランスと接近するように道付けられるようになります。
これは、ドイツのプレーヤーからどの政治的方向性に向かうのかについてより多くの情報を得るまで判断を遅らせます。基本的に保持のパターンとなります。

  • ドイツが帝国制を復活させ、国家方針「Focus on the True Enemy(真の敵に目を向ける)」を選択した場合、フランスはイギリスとの共同戦線から解放されドイツの植民地主義に対抗する。
    基本的にこのパターンにおいてのプレイヤースルーは、ドイツがファシストであるというよりはむしろ非同盟であるという以外にあまり変わりません。
    戦争は同様の問題(似たようなタイムラインではないが)で展開され、連合国との1回の戦争、ソ連との1回の戦争へと発展する可能性が高い。
  • ドイツが帝国制を復活させ、「Expatriate the Communists(共産主義の追放)」を選ぶならば、これらの追放された共産主義者たちはフランスに向かい、彼らに共産主義的な国家精神を与えるだろう。
    フランスはイギリスとの連動パターンから解放され、共産主義者になり、両方の権力が新しいアングロ・ドイツ同盟に対抗できるように、ソ連と密接に近づくことを選択する。
  • ドイツが民主化すると、フランスはこの待機パターンから解放され、ベルサイユ改革を選択する。
    彼らが次に選ぶ方向はAIに任され、予測不能性が保証される。
    フランスは共産主義者になりソ連に加われば、ドイツがソ連と戦争を進めれば二面戦争になるかもしれない。
    あるいはフランス人はファシストになるかもしれない。彼らはその後、南西ヨーロッパで新しいセミパワフルなファシスト派閥を作り出す「Woo Italy」に向かう予定です。
    イタリアの同様の戦略計画(そして「AI戦略値」の自由な適用)により、この同盟が安定していることを保証します。
    ドイツが民主的であればフランスは新たな国家方針「Dismantle the Democracies(民主主義の解体)」が可能になり、ドイツが既にソ連と戦争をしている場合はAIがこの行動を取る可能性が高い。
    これはゲームプレイをよりダイナミックにし、ドイツが民主的になることを選んだとしても戦うための十分な敵を持つことが保証されます。

我々はAI戦略計画を使用して中国のAIにインフラ整備士の対応方法を教え、政治闘争を通じて平和的な引き継ぎに向かう際中華人民共和国が中国の平和を維持するといったようなことを行います。
自分自身と@ Archangel85は、このAI戦略計画が今や(そして今後も)誰もが取ることができるそれぞれの歴史的な道について、信じられないほど重要な楽しい遊びを確実にするための貴重なツールと考えています。
私たちはこのAI戦略計画が、歴史の代替的状況やプレイスルーの過程において世界で起こる奇妙な状況に対処し、国家をよりスマートにすることを願っています。

Mod製作者がどのような事ができるかについては以下の例を御覧ください。

以下ソースコードが紹介されていますが専門的なのでカットします。

パフォーマンス

ゲーム後半のパフォーマンスの低下は、私たちのゲームに打撃を与えるとても厳しいものでした。
Ver1.5’コーンフレーク’アップデートのために気合を入れてできる限り改善しました。

パフォーマンスを測定し、どこが減速の原因をより正確に突き止めるかを見るため、私はこのスーパーセクシーなグラフを生成する小さなスクリプトを書きました。

私たちはパフォーマンスを改善するために、たくさんのきれいなトリックをやりました。
AIは現在ではマイクロマニュファクチャーズを大量に必要としなくなりました。
ゲーム中で1時間あたりにどれくらいのアップデートを国のために行ったかに基づき、コア間の仕事量の負荷を自動バランスさせます。
フロントシステムは鈍重なパフォーマンスから脱出するため、より合理化されています。
今週のハードワークの結果はこれです。

物事をより効率的にする方法を見つけ、よりよくCPUコアを利用することにより、我々はゲーム後半における全体的な改善を行いました。

しかし我々はここで休みません。我々はゲーム後半をさらに楽しい経験とするためにできる事がたくさんあります!

正直、開発検証マシンにWindows8を使ってるってのに一番ビックリです(゚д゚)!

来週の予告

来週、私たちはこれまでの開発者日記に収まりきれなかったすべての機能と変更の大きな要点を解説します。

以上


感想今回はまず開発者日記の掲載がものすごく遅かったため紹介も遅れてしまいました。
毎週水曜のうちに紹介していく計画が初日から頓挫・・・( -_-)
それから日記の英文がいつもより難解で読みにくかったです。
やはりいつものpodcatさんの方が読みやすい・・・( ´Д`)
内容としては後半のパフォーマンス改善のところが非常に興味深かったです。私はステラリスもやってますがあちらはHoI4よりも遥かに重たくて、後半になるとfps1桁とか平気で行くのでStellarisチームもHoI4チームに負けずに頑張って欲しいところです。

HoI4 開発者日記 第133回 2018年2月21日分は以上となります。