Hearts of Iron IV - Problèmes techniques en folie !

Bonjour tout le monde et bienvenue pour un nouveau carnet ! La semaine dernière nous avons parlé des changements apportés aux lignes de front (à la fois au niveau de l’interface et de l’IA). Aujourd’hui j’aimerai vous parler d’autres corrections et changements sur lesquels nous avons travaillé.

Le patch 1.7 « Hydra » nous laisse l’opportunité de retravaillé et d’améliorer certains systèmes embêtants et de passer au 64-bit. Ce carnet va alors être un peu plus technique que les autres.
64-bit
La version 1.6.2 sera la dernière version d’Hearts of Iron IV qui soutiendra les systèmes 32-bit. Cette version sera toujours disponible sur Steam pour ceux qui veulent y accéder. De plus, nous ne convertirons aucune ancienne version, cela demanderait beaucoup trop de travail. Ce changement de système est la raison qui poussa à changer le nombre de la version à 1.7. Ce patch prend donc complétement en charge le 64-bit sur Linux, Mac et Windows.

De nombreuses raisons menèrent à ce changement. Certaines plateformes comme Mac gèrent mal le 32-bit et nous ne voulons pas que des joueurs ne puissent plus jouer dessus. Le 62-bit nous permet d’utiliser de nouvelles fonctionnalité de compilation ainsi que bien plus de possibilité au regard du code. C’était aussi une question de temps étant donné qu’il nous semble qu’une grande partie de l’industrie vidéo-ludique ait fait ce choix il y a déjà plus de cinq ans.

Vous ne ferez pas la différence en tant que joueur. Nous n’avons pas vu d’importantes amélioration des performances après ce changement. Bien qu’il ne soit pas impossible que certaines régions du jeu puissent s’améliorer puisque les enquêtes réalisés ont été assez superficielles sur ce sujet. Si le 64-bit s’avère complexe d’un côté, mais de l’autre il nous ouvre vers la possibilité d’optimiser le code, les registres de processeur etc… mais cela prend plus de mémoire et la mémoire peut impacter aussi la vitesse. Nous prenons ces changements comme un investissement dans l’avenir où nous savons que nous pouvons commencer à tirer profit des choses maintenant que les fondations sont en place et que notre travail peut être facilité.

Nous avons déjà pu constater certains changements au niveau interne où durant notre travail nous avons pu remplacer certains tronçons de la structure basique du code datant de l’année de notre seigneur, 2003.

Système des convois
L’ancien système de code gardant le trace de vos petits bateaux favoris a pendant longtemps entravé notre développement. Après la 1.6, alors que nous avions encore des problèmes, nous avons décidé de nous en débarrasser. Le patch 1.7 voit l’arrivé d’un tout nouveau système. L’ancien système de convois fonctionnait d’une manière où tout le monde pouvait le contrôler, et donc par association : tout le monde pouvait le briser à n’importe quel moment. Ce système échangeait également les convois entre l’approvisionnement du pays et les affectations à chaque instant. Les convois étaient échangés tout le temps, ils se perdaient aussi parce qu’il n’y avait aucun signe de propriété et de contrôle sur ces convois-ci. C’était un cauchemar.

Le nouveau système est centralisé, chaque pays a une instance d'une classe qui a la pleine propriété et le contrôle des convois. Tout autre code de jouabilité qui a besoin de convois peut les demander à ce système mais n'exerce jamais un réel contrôle sur eux. Cela corrige « magiquement » des bogues associés à la disparition de convois du jeu. Il n’est plus possible d’écrire un tel code maintenant. C’est une question de stabilité du design du jeu. D’autres éléments font l’objet d’une telle stabilisation dans ce patch.

Changements d’équilibrage naval
Après avoir jeté un œil à l’escorte de convois, à la détection et raid des sous-marins, nous avons fait des améliorations :
  • Les sous-marins peuvent maintenant tirer aussi pendant qu'ils se retirent.
  • Les missions d'escorte de convois étaient trop binaires. Le résultat se mesurait à votre réussite ou non dans la protection des convois. Le fait d'arriver à temps présentait un trop grand avantage pour l'escorte et rendait donc les raids sous-marins moins viables. Les sous-marins recevront maintenant une volée ou deux de plus dans la plupart des combats, ce qui rendra les raids avec des sous-marins de plus haute utilité contre des escortes de mauvaise qualité plus viables.
  • Nous avons accru les chances de détection des sous-marins par la détection passive et nous avons réduit les chances de détection après avoir tiré des torpilles. Les chances de détection des balayages passifs s'échelonnent désormais paraboliquement, de sorte que les grandes différences de détection et de visibilité seront beaucoup plus prononcées.
  • Nous avons donné aux porte-avions une sous-détection passive et leur avons donné une augmentation de la détection dans les doctrines. Cela les rend plus viables dans leur rôle historique dans l'Atlantique.
  • Nous avons également augmenté les valeurs de détection sur certains radars ultérieurs et un peu sur le sonar. Cela facilite légèrement la détection des sous-marins
Nous avons aussi jeté un œil sur divers problèmes liés aux convois et comment ils se défendaient contre les bombardiers navals. Nous avons vu plusieurs problèmes :
  • Les transports d'unités mourraient trop rapidement face aux bombardiers navals, ce qui était très mauvais pour l'IA qui en souffrait généralement plus qu'un joueur ne le ferait.
  • Dans le cas des petits bombardiers navals contre des transports comme ci-dessus, nous avons constaté qu’il y avait eu beaucoup trop de pertes pour les avions.
  • Parce que les convois ne sont pas de "vraies" unités, ils guérissaient après la bataille. Donc à moins que vous ne les couliez, il n'y avait pas de dégâts réels pour l'ennemi.
Pour corriger tout cela, nous avons fait plusieurs changements :
  • Les transports d’unités obtiennent un bonus spécial défensif dans les cas où ils sont attaqués directement par des bombardiers navals
  • La formule anti-aérienne pour les navires qui ripostent a été modifiée afin de tenir compte des dommages partiels. Nous lançons maintenant un dé pour les dommages partiels, ce qui permet de tuer des aéronefs. Auparavant, les navires faibles comme les convois qui ont été frappés avaient beaucoup trop d'impact, et les premiers bombardiers navals n'ont pas vraiment donné les résultats escomptés. Cela devrait être beaucoup mieux maintenant.
  • A la fin des batailles, nous additionnons tous les convois endommagés et pour une fraction d'entre eux, nous jetons un dé en fonction des dégâts pour voir s'ils ont coulé à cause de ces dégâts. Les tués sont attribués aux derniers à les frapper lors de la bataille.
En ce qui concerne le combat régulier, nous voulions aider les porte-avions et les navires de capitaux et nous avons pensé que la façon la plus réaliste de le faire était de leur donner un moment au début du combat où ils sont les seuls actifs. Les porte-avions et les avions sont immédiatement actifs. Quelques instants plus tard, les vaisseaux capitaux et les sous-marins peuvent frapper. Les navires écrans ne viennent qu’à la fin. Cela donne un petit coup de pouce à ces plus gros navires et simule mieux leurs armes à plus longue portée.

Amélioration des performances des scripts
Le patch 1.6 vint avec un certain nombre de fonctionnalités liés aux scripts afin d’améliorer les performances pour les décisions ciblés. Auparavant, ces décisions vérifiaient chaque pays dans le monde chaque jour comportaient certains des déclencheurs les plus complexes en terme du nombre de calculs. Avec les nouvelles fonctionnalités, nous pouvons pré-restreindre la liste des cibles afin de réduire le nombre de contrôles nécessaires. Malheureusement, les nouvelles fonctionnalités du script sont arrivées trop tard dans le développement pour que nous puissions utiliser ces fonctionnalités dans la version initiale et d'autres bogues ont eu la priorité dans le patch.

Heureusement, un membre de la communauté Paradox du nom d'Antoni Baum (alias "Yard1") a fait l'effort de parcourir notre script et de corriger tous les endroits où les nouvelles fonctionnalités feraient une différence - ainsi que quelques déclencheurs où une légère réorganisation des vérifications du script a permis d'améliorer les performances. Ce travail a été fusionné dans le patch 1.7 avec sa permission. Bien qu'il soit difficile de mesurer l'effet immédiat de ces changements sur les performances, nous avons néanmoins constaté une amélioration des performances de 5 à 10% en fonction de l'état global du jeu, du nombre de guerres, etc...

Nous avions prévu de sortie la 1.7 en beta ouverte cette nuit mais nous avons eu quelques ennuis – d’où la sortie tardive de ce carnet. Cette beta ouverte devrait sortir demain et sera accompagnée d’un patchlog. Les plus courageux d’entre vous pourront la tester et nous aider pour d’éventuelles corrections.

Rendez-vous la semaine prochaine !

Vous pouvez discuter de cet article ici

Auteur : podcat
Traducteur : Limse