2017年2月16日木曜日

HoI4 - 『Patch 1.3.3 Update #2』 意訳


その1はこちら→(#1

HoI4のアップデートパッチ1.3.3の情報その2が出ました(参照
その1の意訳をやってみた続きでその2もやってみようかともいます。
今回あちらさんの本文が長いので変更点を中心に短くできそうなとこは短くいこうと思います。

『』:意訳
平文:感想とか考察っぽいやつ


 〇産業:資源欠乏仕様の変更

『これまでは生産ラインは資源の欠乏があると最大で80%のペナルティを受けました。しかしこれは工場数を多くすることで効果的に対処できました。』
『資源の欠乏によるペナルティは不足している資源ごとに計算され、100%を上限として着実に大きくなります』

資源が欠乏すると最大100%のペナルティが生じる、つまり生産が行えなくなるということで資源を確保する重要性が上がります。


〇QOL
どうやらUI周りの改善のようです。

『新しく建設を行うときCTRL+Clickで建設ラインの先頭に突っ込むことができます』
わざわざ矢印をCTRL+Clickする必要が無くなるということですね。

『師団を選択したとき、師団リストの中でその師団がいる位置へ自動スクロールします』
軍に所属している師団を選択したとき、師団のリスト内でわざわざ手動スクロールする手間が省けるらしいです。

『ゲーム画面右下のボタンに新たなボタンを追加し(ホットキーはMに設定)自ユニットを残して他のユニットを非表示にします』
混戦しているときにユニットが重なり合って見辛くなるという現象があるかと思いますがそれへの対策だそうです。

『戦場のフォグを消すボタンを追加します。地形の確認がやりやすくなります』

『ロード中に画面上部に進行バーを表示します』

『マルチプレイヤーモードのときにあるプレイヤーがラグってるとメッセージウィンドウが表示されていましたが、これを警告にします』
マルチはやったことがないので詳しくは判りませんが、ラグったときに「Oh the humanity!」(だったっけ?)とか言ったりしないで済むようになるのかなと思います。右クリックすれば消えるアレになるのかなと。

『軍に割り当てられていない師団がいる場合に警告を発するようにしました。左クリックすれば該当する師団を選択します。右クリックすれば消えます。遠征軍が到着したときなんかにどうぞ』
遠征軍は結構行方不明になったりすることがあるので便利かと思います。


〇AIのアップデートについて

『海軍AIの戦域計算が改良され、状況変化への対応力が向上しました』
既に任務がある艦隊の戦域移動が苦手だったところを改良したの…かな?

『海軍AIは打撃艦隊に任務が割り当てられてない場合に沿岸砲撃を試みるようになります』
strike fleet いず 何って感じではありますが、AIが沿岸砲撃を行ってくるのは大きな改良だと思います。最大25%の抑制力をもつので沿岸砲撃の威力は結構高いです。

『AIが陸軍について展開可能師団数を計算するとき、供給力をより良く扱えるようになりました』
『AIに装備備蓄戦略機能を追加しました。これによりプレイヤーはAIの想定する備蓄量に影響を与えることができるようになります』
『陸軍師団数が多い場合にAIは装備をより多く備蓄しようとします』
AI相手の戦闘だと戦っているうちに徐々に相手師団の耐久力が減っていく(し壊滅的な低さになる)ことが多いですが少しマシになるかもしれません。

『AIの前線管理と前線に必要な師団数の計算について改良を加えました』
これまではAIの扱うユニットが多くなると前線も多くなっていることが結構見かけられますが、これら前線が整理されやすくなりそうです。原文では「特定の状況下で」と言っています。

『AIはあるテンプレートの師団が必要量得られたら配備ラインを取り消すようになります』
これまでは訓練し始めたらそのまま配備まで突っ走っていましたが、しっかり取り消すようになるようです。根こそぎ徴兵までの時間が長くなりそうに思えます。

『AIが占領地におけるレジスタンス活動を完全に放置するという致命的なバグがありましたが、修正しました』
これまではAIが占領している地域は気づいたらレジスタンス活動100%になっていましたが、これはバグだったようで修正されるとのことです。工場インフラの修理ばっか多くなって占領したところでアレだった現象がなくなるのは重要な改善でしょう。

『AIがいつ何処にレンドリースを行うか判断するロジックを改良しました』
『AIは旧式装備もレンドリースするようになります』
『AIは自国に余裕がなくなったときや行う意味がなくなったときにレンドリースを止めるようになります』
AIが行うレンドリースがより効果的なものになるとのことです。アメリカ辺りがだだ余りの旧式装備をレンドリースするようになるとかなり大きな支援になりそうです。数は力。

『AIは民需工場を多くもつとき、海軍造船所の建設が軍需工場の建設を上回らないようにするようになります』
民需工場が多くあることは工場の建設可能残数が少ないことを表しますが、どうやら『アメリカを筆頭として造船所が多くなる傾向がある』ようなのでその対処だそうです。

『AIは安全な前線をうまく扱えるようになりました。これまでは脅威がない前線にも大量の師団を配置していることが度々ありました』
『安全な前線のいくらかは共通の敵国と戦っている他国に向いているものであり、たとえその戦争に勝利しつつあるとしてもその時は脅威にはならないのです』
『結論:AIが操作するユニットの多くは実際に差異を生みだす筈です』
『例えば、日本は対中戦争が落ち着くまで対ソ戦を行わなくなります』


〇パフォーマンスと最適化

『バージョン1.3.3では全体で14~18%の速度向上がなされています。しかし主目的はパフォーマンスが急激に落ち込む現象を解消することです』
この直後の文でいわれている通り、1.3.2では日をまたぐときにゲームが幾秒かに渡って停止することが多々あります。師団数が多くなるゲーム終盤ではこの影響が大きくなります。この辺りの改善が主な最適化対象になるとのことです。

『講和会議のプログラムを書き直しました。大戦の終わりにある講和会議ではスキップ(ポイントを得るコマンド)が連発されて処理が重くなっていました。このプログラムは入れ子になったループ文で構成されていたのでこれを改善しました』

『艦隊に任務を与えたときゲーム上ではまず移動経路を計算することになります。このときAIは艦隊が適切な位置に移動するのを確実にすべく結果として「移動せよ」という命令を連発していました。もちろんこの命令は1度出せばよいものです。そしてこの問題は解決されました』

『補給システムの改良は最も影響の大きいものになります』
『プログラムがフィールド上の領域に対して「何が支援済で何が不足しているか」参照するとき、現状では各領域について毎回最初から計算しなおしていました。これを計算済の情報をキャッシュに保存するようにすることで再計算することなく参照できるようにしました』
『師団の装備消耗量のデータを得るとき、これまでのプログラムでは各プロヴィンスを回ってそこにいるユニットの各々に消耗量を尋ねるようになっていました。これを変更し、ゲーム内時間において毎時に各ユニットが自らの消耗量を「報告」するようにしてデータを得るようにしました。一見同じことのように見えますが、プログラム技術の面でいえば差異が生じます。この変更によりとても重いループ処理が削除されました』

ここでの改良は「無駄な計算」と「ループの削除」です。
1つ目の改良では各プロヴィンス或いはその中にある各区画がもつインフラ供給量なんかの、師団に対する支援可能量は、その値が変わらない期間が長めなので一度計算しといてメモリに保存しておけば再計算の必要がなくなります。変わるタイミングといえばどっかのインフラが向上したとかどっかに港をつくったくらいのもので、これが一月にあっても数回と考えれば毎時インフラ計算をやり直すのは結構な無駄だと判断できます。
2つ目の改良はループの数を減らそうという試みです。ループというのはつまり「AとBとCと…etcをN回繰り返せ」みたいな処理のことで、重いループという言葉で真っ先に連想されるのが多重ループです。軍隊を連想すると、「中隊長が各小隊の様子を見に行くが「中隊長が来たところの小隊長が慌てて各兵卒の様子を見に行く」」、みたいな事態が起きます。とにかく、面倒くせぇというニュアンスが伝わればOKです。今回の改良では少なくとも「兵卒連中くらいは小隊長のところに自分から来いや」みたいなことが行われていて、少なくとも小隊長が慌てる手間は省けるわけです。今回は中隊長が巡回するのが各プロヴィンスを回ることに該当し、小隊長が巡回するのが各ユニットを参照することに該当します。プログラムでやることはこれよりももっと面倒なことをやってる上に厳密には違う構造をもち出したっぽいのですが、この「重いループ」が無くなるとかなりのパフォーマンス向上につながります。
ちょっと長く書いてみましたが間違ってたら申し訳ないです。m(_ _)m

『旧来の補給システムは、パフォーマンスが落ち込んだ時に計算時間の65%を占めていましたが、アップデート後は6%を下回ります。』
だいぶ改善されたようです。

『AIが師団テンプレートを編集する際、プレイヤーと同様に大隊や支援中隊の追加・削除・変更とそれに伴う再計算を行っていましたが、これを変更しAIがテンプレートを埋めきった直後だけ統計情報を再計算するようにしました』
プレイヤーが編集するときは統計情報をみながら行いますが、AIは目標とするテンプレートがある程度決まっているそうなので統計情報を見つつやることは必要ないようです。

『AIに対する最適化は他にもあって、上陸作戦計画、前線へのユニット展開、レーダーによる艦隊への戦闘ボーナス、適切なルートが使用不可能になった場合の代替護送ルートの計算、そして他にも説明が難しいのだけれどもたくさんあります』
プレイしてのお楽しみというか期待というか。

『これまではClausewitz engine側の問題でユーザーインターフェースのデータ構造がフラットなのでウィンドウやボタンが増えるとゲームがそれだけ重くなるという問題がありました。ようやくこの問題への解法を発見しました。これまではループの中に最大12万の処理がありましたが、いまでは700を切っています』
フラットな構造つまりデータをただ並べただけで全探索しかできなかったところを、何らかの手法でデータ間の関連付けに成功したということでしょう。ここはUIが軽くなったと捉えておけば十分だと思います。


以上で本記事は終わりです。
意訳に焦点を当てているので細かいところで間違い等あっても大目に見てもらえると幸いです。

2017年2月9日木曜日

HoI4 - 『Patch 1.3.3 Update #1』 意訳


HoI4のアップデートパッチ1.3.3の情報その1が出ました(参照
産業まわりに変更が加わるらしいです。
本稿では全文訳とまではいきませんが要点の意訳とか考察をやってみようと思います。
また画像は面倒という理由で貼らないつもりなので上記リンクを参照してください。

『』:意訳
平文:感想とか考察っぽいやつ


①産業:インフラの影響

『各州においてインフラの値が工場建設コストの大小に影響を及ぼします。インフラ値が最大である場合には各工場の建設コストは以前と同様のところから僅かに小さくなります。インフラ値が小さい場合には建設コストがより大きくなります。』

画像をみると最大までインフラを整備した場合には105%なる数字が与えられてるようです。一方インフラが2/8つまり割合にして25%になりますが、この場合には90%なる数字が与えられています。
インフラ値が工場建設速度に関わってくるとなるとインフラが貧弱な地域の開発が遅れがちになるということになります。インフラ後進国は大概産業もアレなので辛さが増しそうです。

『このような仕様にした理由は2つあります。1つはいくらかの州を相対的により重要にしてそれにより自然と工業化の中心区画になるようにするためです。もう1つはゲームの中盤から後期にかけて産業の成長を遅らせるためです、というのも現状では早すぎるように感じます。最後にインフラ値とNFによるインフラ上昇が小さすぎるように感じるので僅かに大きくするでしょう。』

つまりインフラが工場建設速度に影響を及ぼすようにすることで産業の一極集中を促進したいとのことだそうです。影響の大小にもよりますが、いわゆる「失陥したらヤバいところ」がより明確になって重要度が増すことを企図してるともいえます(AIがこの要素に対応したらめっちゃ褒める)。これにより戦略面では「強い」州での攻防に目が向くようになります。
最終文については、インフラ値がインフラ最大値なのか初期値なのかよく判らないところで、更にNFによるインフラ上昇もNFが足りないのかNFによる上昇値が足りないのかよく判らないところで、あまりはっきりとは言えませんがインフラ増強系NFの価値を上げたいなという意図はなんとなく把握しました。アプデ後は確かにインフラ上げるか工場つくるか配分の仕方に迷いそうなのでNFでインフラをカバーできるのは有難いです。


②産業:生産効率の変更

『プログラムの最初から90%は開発期間の最初から90%の時間をかければつくることができる。そしてプログラムの残り10%にはまた別に「90%」の時間がかかる。』
『これはソフトウェア開発における有名なジョークですが、これは他の分野にも当てはまります。(中略)HoI4では生産効率は直線形に上昇していましたが、これを変更し最初のうちはより早くし後になるとより遅くなるようにします。』

適当にも程がある意訳になりましたが、これは画像を見た方が早いでしょう。
横軸が生産開始からの日数、縦軸が生産効率です。最初の100日ちょいまでは新方式の方が生産効率において優れますが、それ以降の伸びがかなり鈍足になります。生産効率75.0に辿り着くまでにはグラフの目盛幅からみて500日はみておくべきでしょう。アプデ前と比べると200日程度の差が生じています。

『この生産効率上昇形態は、生産効率上昇速度と最低生産効率及び最高生産効率を変更する研究すべてから影響を受けます。この方式による利点は高い生産効率とそれを維持することがより高い価値を持つようになることです。従って生産ラインの変更にはより熟慮が必要になります。』

研究によるグラフの変形は新方式のグラフが曲線であることから結構重要な要素になるかと思います。画像のグラフにおいて縦軸75.0にいる点が研究により横軸の位置そのままにスライドしてくれるならばだいぶ美味しい展開になります。
私個人の認識としては(真偽は確かめてないのですが)旧方式では研究が進むにつれて、グラフが75.0に達してもさらに右上に伸びていくという方式のつもりでいたので、新方式でも同様になると仮定すると研究後の最大効率までいく時間は考えたくなくなります。
あとは、1943年に流動的ライン生産をとるか流れ作業工程をとるか考え直す必要がありそうです。塵も積もれば山となる。


③国際緊張

『戦争の正当化において、これまではそのコストを正当化対象の州のコストだけを考慮して計算していました。これでは1回の戦争につき1州だけを正当化することで、国際緊張を低く抑えることが効果的に行え過ぎます。新方式では正当化対象となる国の大きさも考慮に入れます。』

つまり大国に喧嘩を売るとコストがよりかかり、また国際緊張が大きく上昇するようになるとのことです。

『複数の国家に対して正当化を行う場合のコストも上昇します、というのも正当化作業中または正当化した戦争目標の個々の事例につき政治力コストが上昇します。』

『戦争状態にある国家では陣営加入の国際緊張による制限が緩くなります。これにより他の国家が独立保障以外の手段を用いて戦争の早期段階から介入することができるようになります。』

大国との開戦により国際緊張が大きく上昇する&戦争中は陣営に加入しやすくなる、とのことでより大戦に発展しやすくなるようです。上昇量によっては1936米速攻、1936仏速攻を始めとした各速攻戦略に影響がでるかもしれません。


④降伏仕様変更

『以前は敵国が降伏したときに装備備蓄には手出しだけができましたが、これは制限が厳しくて非現実的に感じます。なので新しい機構を設けました。この機構では鹵獲した装備の備蓄全体に対する割合や主要な機器の内訳及び残りの兵装の詳細数を確認することができます。』

画像を見た方が早いです。これまでは鹵獲した装備の全体数しか判らなかったところを鹵獲時点で兵装の種類と個別の鹵獲数が表示されるようになるとのことです。


というわけでざっくばらんな意訳でした。後半ダレて適当になったけど気にしたら負けです。
次週にあるらしい追加情報について同じようにやるかは未定です。


2017/02/16 追記
やりました→(#2