Hearts of Iron IV 開発者日記 第181回目を紹介。
日記そのものの公開時間が遅かったので紹介も遅くなってしまいまいましたm(_ _)m
今回はVer1.7アップデートについてその2です。
内容を簡単に紹介してみたいと思います。
日記の元タイトルにある「Technical boogaloo!」ですが、boogalooとはブラックミュージック+カリブ海のミュージックという意味だそうです。
が、Technical boogalooとなった場合にどんな意味を表現するのかわかりませんでしたので省略しました。
[記事内の画像はパラドフォーラムより引用]
Hearts of Iron IV 開発者日記 2019年5月22日分(第181回)
冒頭のあいさつ
こんにちは皆さん。新しい開発者日記へようこそ!
先週、最前線(UIとバックエンド、そしてAI)への変更について話しました。
そして今日は私たちが今までに行った他のいくつかの修正と変更について話をしたいと思います。
1.7 ‘Hydra’アップデートは私たちがいくつかの厄介なシステムを書き直して改善し、64ビットに移行するチャンスなので、この日記は少し技術的な64ビットのお話になるでしょう。
64bit対応について
Ver1.6.2がHoI4における最後の32ビット版になり、そちらにアクセスしたい(そしてビルドをマークするようにしたい)人のために、私たちはそれを(そして通常どおり古いものとして)Steamにそのまま残しておきます。
また、古いバージョンを64ビット版に変更する予定もありません。それは単に作業量として多すぎるからです。
このため、新バージョン番号の大きな小数単位を1.7とすることにしました。
1.7 ‘Hydra’はLinux、MacそしてWindowsで完全に64ビットサポートされます。これは大きな作業でした。
この変更には多くの理由があります。
Macのようないくつかのプラットホームはかなり積極的に32ビットを段階的に廃止しています。
しかし私たちは64ビットで遊ぶことができない人々にとって終わりにしたくありません。
64ビット版では、新しいコンパイラ機能と、将来的にはもっと多くの可能性のあるコードを使用できます。
業界の多くが5年以上前にこのようなことをしたと思いますので、こうなるのも時間の問題でした。
プレイヤーとしては大きな変更はありません。
たとえば、パフォーマンスに大幅な向上は見られませんでした。しかしこれについては調査がまだかなり浅いものですので、今後一部の領域に関してパフォーマンス向上することが不可能だとは思いません。
一方で64ビットは、より最適化されたコード、CPUレジスタなどにアクセスできるという点で注意が必要です。それはまたより多くのメモリを占有し、メモリ占有はしばしばスピードにも大きな影響を与えます。
私たちはこの対応が未来への投資であると考えています。
そうすることで基盤が整い、私たちが仕事をしやすくするために色々な物事を利用することが可能になることが分かっています。
私たちはすでにいくつかの作業を内部で行っており、2003年に遡って多くの基本的なコード構造を置き換えることができました。
護送船団方式
皆さんも大好きな小さな船を追跡する古いコードシステムは、長い間開発を悩ませてきました。
そしてVer1.6の後、まだいくつかの問題があったので、我々はそれを作り変えることが最善策であると決断しました。
Ver1.7では新しいシステムが一から書き直されています。
古い護送船団方式は、誰もがそれを制御することができるような方法で動作していました。
それはまた、国家による供給と任務の間で船を刻々と交換し、常にそれらを交換し続け、そして船の所有権と制御という設計思想がないため船が迷子になるという悪夢でした。
新しいシステムでは各国が護送船の完全な所有権と管理権を持つクラスのインスタンスを1つ持つ、中央集権化システムであり、護送船を必要とするその他のゲームプレイコードはこのシステムからそれらを要求できますが実際に管理することはできません。
これは「魔法のように」ゲームから消えた護送船団のバグを修正します。
なぜならもう、そのようなコードを書くことは不可能だからです。
このパッチでは設計上の安定性に加えて、他にも大きな変更が加えられています。
海上バランスの変更
我々は、護送船団方式、潜水艦、探知、襲撃、そして改良を検討してきました。
- 潜水艦は撤退中も射撃できます。
- 護送船団の護衛任務は二元的すぎます。プレイヤーが素早く輸送船団を保護したかどうかに限らずです。
時間通りに護衛に到着することは護衛側にあまりにも多くの利点を提供しすぎており、そしてそれ故に潜水艦の探査を実行不可能にしていました。
改修により潜水艦はほとんどの戦闘で1、2発の追加砲撃を行えるようになり、低品質の護衛艦に対して高品質の潜水艦での襲撃がより実行可能になります。
- 護送船団の護衛任務は二元的すぎます。プレイヤーが素早く輸送船団を保護したかどうかに限らずです。
- 潜水艦の検出確率をパッシブ検出(hi bitmode)から増加させ、魚雷射撃からの検出機会を減少させました。
パッシブ効果による検出の可能性は放物線的に拡大していくため、検出と可視性の大きな違いがより顕著になります。 - 私たちは空母にパッシブな潜水艦検出能力を与え、またそれらにドクトリンによる検出増加を与えました。
これにより大西洋での歴史的な役割において、空母はより生き生きとしたものになるでしょう。 - また潜水艦の検出をもう少し簡単にするために、一部のレーダーとソナーで検出値を少し増やしました。
我々はまた、護送船団に関連した様々な問題とそれらがどのようにして海上爆撃機から身を守るかについても調べてきました。
そこにはさまざまな問題がありました。
- ユニット輸送船は爆撃機に対してあまりにも簡単にやられていました。
これは一般的にプレーヤーよりもよりこの問題に苦しんだAIにとってはさらに悪い出来事でした。 - 上記のように小さな海軍爆撃機対輸送船において、飛行機によりあまりにも高い死傷者となっていました。
- 護送隊は「本物の」ユニットではなく戦闘後に回復するため、撃沈しない限り実際にダメージが無い仕様になっていた。
これに対処するため、いくつかの変更を加えました。
- 海軍の爆撃機から直接攻撃された場合には、部隊輸送は特別な防衛支援効果を受けます。
- 対空砲による部分的なダメージを考慮するように変更しました。
飛行機を倒すことができるように部分的なダメージに対してダイス判定を行います。
以前は、護衛艦のような弱い船は沢山命中するだけで大きなダメージとなっており、また初期の海軍爆撃機はほとんど攻撃が届いていませんでした。
今回導入したダイス判定方式のほうがずっと良いでしょう。 - 戦闘が終わると、我々は全てのダメージを受けた護送船団を合計し、それらのほんの一部に対して、ダメージに基づいて沈没したかどうかのダイス判定を行う。
これによる撃沈は、通常の戦闘中における最後の襲撃という扱いにしています。
通常戦闘に関しては、空母や主力艦を少しでも活躍させたいと考えていました。
より現実的な方法としては、彼らが唯一活動している戦闘開始時に時間を与えることだです。
いまではすぐに空母や航空機が活動し、その後に主力艦や潜水艦が射撃し、最後のスクリーンに出ることもあります。
このことは、大型船にちょっとした刺激を与え、長射程の武器をより良く表現することでしょう。
スクリプト側のパフォーマンス向上
HoI4 Ver1.6には、ターゲットを絞った意思決定パフォーマンスを向上させるための新しいスクリプト機能がいくつか付属しています。
以前はこれらの決定により、世界中のすべての国が毎日チェックされ、さらに複雑なトリガーがいくつか発生する可能性がありました。
新機能では、必要なチェック数を減らすためにターゲットのリストを事前に制限することができます。
残念ながら新しいスクリプト機能は開発が遅れていますので、最初の(1.7、64ビット対応)リリース時にはでこれらの機能を利用できず他のバグ修正を優先しています。
ありがたいことに、Antoni Baum(別名「Yard1」)という名前のコミュニティー・メンバーが、私たちのスクリプトを見て新しい機能が違いをもたらすすべての場所を修正しようと努力しました(スクリプトチェックの順序を少し変更すると、パフォーマンスが向上しました)。
この作品は許可を得てVer1.7に組み込まれました。
これらの変更による即時のパフォーマンス向上効果を測定することは困難ですが、全体的なゲーム状態、戦争数などに応じて約5〜10%のパフォーマンス改善が見られました。
今夜はオプトインベータとしてVer1.7を出す予定でしたが、私達はいくつか予定外の作業がありました(それがこの日記が少し遅れた理由です)。
しかし、明日にはオープンベータ版がリリースされパッチログが公開されるはずです。
以上
振り返り感想
Ver1.7のベータは本日配信のようですね。
1.7からは64ビット対応になるということで、Modはどうなるのか特に触れられていませんがちょっと気になるところです。
とにかくベータが公開されたらさっそくテストで導入してみたいと思います。
パフォーマンス向上の改造をフォーラム内のユーザーが行って
それを許可を得て公式にゲームに組み込んだというのもすごいですよね。
これもパラドックスがゲームの改造に対して
とてもオープンな会社だからできることなのだろうと思います。
HoI4 開発者日記 第181回 2019年5月22日分は以上となります。
正確を期すよう努めていますが詳細はパラドックスサイトの原文をお読みください。