Hearts of Iron IV - Mise à jour de l'IA n°2

Rebonjour !

Il est l'heure pour un nouveau mini-carnet sur l'IA, nous allons rentrer en détail sur plusieurs points du changelog pour la prochaine extension Ensemble vers la Victoire !

( Pour lire la partie n°1, regardez à la fin du dernier carnet que vous pouvez trouver ici ).

L'histoire d'aujoud'hui concerne une fonctionnalité qui semble basique pour l'IA mais qui se retrouve bien plus complexe : l'équilibrage des divisions entre chaque ordre. Un humain peut le faire sans trop réfléchir, étant donné qu'il nous ait plus facile d'établir un schéma. Ce n'est pas le cas pour l'IA, et elle doit faire quelques suppositions basées sur les nombres disponibles dans une situation donnée. Le code qui s'en occupe s'est agrandi par étape depuis ces deux dernières années, se retrouvant dans une positions complétement incontrôlable pour l'avoir dans un état convenable pour ne pas dépasser les délais. Après un certain temps, ce qui arrive facilement à ce genre de système c'est que certaines parties de code qui devait « corriger » des problèmes corrigaient là où il n'y avait plus de problèmes. En effet, plus que simplement rendre le code inutilement compliqué, il peut causer l'apparition de nouveaux bugs.
Et c'est exactement ce qui arriva avec ce système. Il peut être divisé en trois étapes, et après plusieurs tentatives pour corriger certains bugs liés à celui ci, j'ai fini par supprimer et entièrement réécrire la partie 2, en réduisant sa taille de 30%. Ce qui signifia que je dû aussi en enlever à la partie 3 ( 20% ). Le résultat est que ce système est désormais plus facile à lire, à débugger et maintenir, bien que de nouveaux bugs firent leur apparition durant la réécriture. Il reste toujours des cas où le comportement ne fonctionne pas à 100%, mais les performances générales représentent une importante amélioration, et la capacité de l'IA de se sortir d'étranges situations est bien mieux.

- Correction d'un bug où l'IA continuerais à échanger une ligne de production de chasseur avec une d'équipement d'infanterie pour l'éternité.
  • Si vous observiez l'IA ( désolé pour ceux pour qui le mode observateur n'est pas une garantie ), vous avez pu remarquer que certains pays se retrouvaient piégés en train d'interchanger constamment des lignes de chasseurs et d'équipement. Une petite boulette dans le code qui a depuis été résolu, résultant de manière postivie sur le comportement de l'IA sur sa production.

- L'IA devrait être désormais capable d'utiliser des fusées.
  • Tout est dit. Le problème venait des bases de fusées, qui bien qu'étant représentées comme des bases aériennes, étaient séparées des simples bases aériennes. Juste en l'incluant dans cette liste permet à l'IA de mener des missions et d'utiliser leur stock de fusées.

- Correction des débordements de certains pays faisant que ces pays ne construisaient pas d'avions commes les États-Unis qui se retrouvaient avec 0 bombardiers stratégiques.
  • Encore une régle basique. En implémentant une fonctionnalité il est facile de survoler des cas types, ainsi nous avons oublié le cas du jeu tardif. Dans ce cas là, les États Unis voulaient tellement de bombardiers stratégiques que ce nombre devint ridicule et dépassa la limite, devenant un nombre négatif.

- L'IA des pays libérés ne se retrouvent plus à ne rien construire.
  • De nouveau, assez simple à corriger. Un flag n'était pas mis faisant que l'IA ne s'activait jamais pour les pays libérés. Mais qui libère un pays sans y jouer au final de toute façon ?
Ceci couvre d'autres corrections qui ont été faites pour l'IA. Comme je l'ai dit, il me reste encore à vous dire, donc vous ne serez pas en reste pour en apprendre plus sur les bugs de l'IA. La prochaine fois, nous parlerons d'autres améliorations, bien que lorsque l'on parle de l'IA, la ligne entre amélioration et correction de bugs est assez floue.

Vous pouvez discuter de cet article ici

Crédit
Spoiler:
Auteur : SteelVolt
Traducteur : Limse