「Hearts of Iron IV」開発日記2019年5月22日分が公開されていましたので、その内容をご紹介。今回は1.7と海軍の変更について。長め。
概要
開発日記2019年5月22日は、1.7と海軍の変更について。
64ビット化
- 1.6.2は32ビットの最後のビルドであり、Steam上には(それ以前のバージョンも)そのまま残しておく。これは単に作業が多すぎるからだ。こうした理由で私たちはバージョン番号の2桁目を繰り上げて1.7とした。1.7「ハイドラ」はLinux、Mac、Windowsで完全に64ビットをサポートするが、これは大変な仕事だった。
- この変更には多くの理由がある。Macのようなプラットフォームでは非常に積極的に32ビットから手を引いており、多くのプレイヤーがそこでプレイできなくなるのは望ましくなかった。64ビットでは新たなコンパイラの機能も使え、将来的にコード面でさらなる可能性が開ける。
- プレイヤーとしては大きな違いに気づくことはないだろう。例えば大きなパフォーマンス改善を私たちは確認していないが、私たちの表層的な調査では改善点がないと言うこともできない。64ビットはさらなるコードやCPUレジスタの最適化などを行えるというようないくつかの点ではやりにくいが、さらなるメモリを消費するようにもなり、メモリはスピードに大きく影響することが多い。
- 私たちはこれを将来への投資と考えている。64ビットを基礎として利用できるようになり、より簡単に作業できるようになった。既に内部ではこれについて検討していて、2003年まで遡る基本的なコード構造の多くをこの間に置き換えることができた。
輸送船システム
- これまでの輸送船を追跡するコードシステムは長い間悩ましいものだった。1.6以降も依然として問題を抱えており、私たちはこれを取り除くのが最善だと考えた。1.7では新たなシステムを一から作り直した。これまでの輸送船システムは誰もが管理できる方法で動作しており、つまり誰もがいつでも止められるものだった。供給国と割り当てた国との間で1隻ずつ輸送船をやり取りするものでもあり、そのやり取りは常時行われ、輸送船の所有権やコントロールの概念がないため、輸送船が行方不明になっていた。
- 新たなシステムは集権的なもので、各国が輸送船の完全な所有権とコントロールを持つクラスのインスタンスをひとつ持ち、輸送船を必要とする他のコードはこのシステムから輸送船を要求できるが、輸送船に対する実際のコントロールを得ることはできない。これは輸送船がゲームから消えるバグを「魔法のように」修正する。これはこのパッチで行われるその他の素晴らしい安定性の変更とも関連した設計によって安定性をもたらすものだ。
海軍のバランスの変更
- 私たちは輸送船の護衛、潜水艦、探知、襲撃の検討と改良を行った。
- 潜水艦は撤退中にも射撃できる。
- 輸送船護衛はあまりにも二極化しすぎている。つまり時間まで輸送船を守るかそうでないかということだ。予定どおりに到着してしまうことで護衛艦にあまりにも有利すぎ、潜水艦の襲撃はほぼ不可能になっていた。
- 潜水艦はほとんどの戦闘でさらに1,2回は攻撃できるようになり、質の高い潜水艦による質の低い護衛艦への襲撃の実行可能性が高まった。
- パッシブな索敵による潜水艦探知確率を引き上げ、魚雷発射による探知確率を引き下げた。パッシブな索敵による探知確率は二次関数的に上昇し、探知と視認性の大きな違いがより顕著になる。
- 空母にもパッシブな潜水艦探知値を与え、この探知値はドクトリンで上昇させることができるようにした。これによって空母の大西洋における史実の役割を担いやすくなった。
- ゲーム終盤のレーダーやソナーの探知値を引き上げ、潜水艦をもう少し探知しやすくした。
- 潜水艦は撤退中にも射撃できる。
- また、輸送船に関するさまざまな問題と対艦攻撃機に対する防御の仕方を検討し、以下のようなさまざまな問題があった。
- ユニットの輸送船は対艦攻撃機に対してあまりにも弱い。これはプレイヤーよりもAIにとってよろしくない。
- 上のような小規模な輸送船と対艦攻撃機の戦闘では、対艦攻撃機側も死傷者が多すぎた。
- 輸送船が「実際の」ユニットではないため、戦闘後は輸送船の損傷が回復し、撃沈しない限り実際にはダメージがなくなっていた。
- こうしたことに対処するため、以下のような変更を行った。
- ユニットの輸送船は対艦攻撃機に直接攻撃された場合には特別に防御力がブーストされるようにした。
- 艦船の対空攻撃力に関する計算式を変更し、部分的なダメージも考慮するようにした。航空機を撃墜できるような部分的なダメージはダイスロールするようにした。これまでは、命中弾の多い輸送船のような弱体な艦船は非常に大きな影響があり、初期の対艦攻撃機はほとんど攻撃できていなかった。これがずっと改善したはずだ。(注:上述の「輸送船は対艦攻撃機に弱い」という記載と整合していないように感じられるが、初期型に限っては違うということか? ちょっと自信なし)
- 戦闘終了時には損傷したすべての輸送船を合計し、そのうちのほんの一部に対して、沈没したかどうかをダメージに基づいてダイスロールする。この沈没した輸送船は通常戦闘中の最後の攻撃によるものとみなす。
- 通常戦闘については、空母と主力艦をもう少しどうにかしたいと思った。戦闘の最初に空母と主力艦のみが活動できる時間を作ることが現実的な方法だと私たちは感じた。空母と艦載機はすぐに活動し、少し後に主力艦と潜水艦が射撃し、直衛艦は最後だ。これによって大型艦を少しばかり強化し、より長射程の兵器が優れていることを表現する。
スクリプト側のパフォーマンス改善
- 1.6では標的のあるディシジョンのパフォーマンスを改善する多くのスクリプト機能が実装されている。これまではこうしたディシジョンは世界中の国家ごとに毎日チェックしており、相当多くの演算が発生する複雑なトリガーがあることもあった。
- 新たな機能では、事前にターゲットのリストを絞り込んで必要なチェックの数を減らせるようになった。残念ながらこの新しいスクリプト機能は私たちが最初のリリースでその機能を使うには開発が遅れすぎており、他のバグを優先した。
- ありがたいことに、Antoni Baum(またの名を「Yard1」)というコミュニティメンバーが私たちのスクリプトを見て改善されるあらゆるところを修正してくれた(と同時に、スクリプトチェックの順序のわずかな並べ替えがきっかけでパフォーマンス改善につながった)。この成果は許可を得て1.7に組み込まれている。こうした変更のパフォーマンスへの影響を測定するのは困難だが、全体的なゲームの状況や戦争の数などによっては5-10%のパフォーマンス改善が見られる。
- 1.7は今夜ベータ版としてリリースする予定だったが、思わぬ問題にぶつかっている。だが、明日にはベータ版とパッチログが公開できると考えている。(注:既にリリースされています)
質疑応答
Q1:将来的にTfVの国家方針ツリーをアップデートして指揮力や特殊部隊の上限についてもっと肉付けしてくれる?
A1:私たちが既に作業した大国について大まかに議論したところでは、これを改良してそうした新たな機能も盛り込んだツリーにできればいいと考えている。だが、具体的な計画はまだない。
Q2:艦載CAS(近接航空支援機)がもっと活躍する計画はないの?
A2:私は装甲が施された標的に対しては艦載攻撃機と比較してCASのほうが効果的になるようにしよう考えているが、それには航空戦にも海戦にも多くの変更が必要になる。
コメント
翻訳お疲れ様です。
本当に64bit化がメインのアップデートですね。
これで空母が少しでも強くなってくれたらいいんだが
現状だと日本で第一航空艦隊と参謀、基地ドクトリンで固めても戦艦主力の水上艦隊に負けて辛い
パフォーマンス改善MODが公式に採用されたのは朗報
マルチスレッド対応とか…いつかしてくれるといいな