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

Bonjour tout le monde !

C'est encore moi : votre sympathique voisin développeur d'IA ! Aujourd'hui je vais me concentrer non plus sur les bugs mais sur ce que nous considérons commes des amélioriations, bien que comme je l'ai dit dans le dernier mini-carnet, la ligne entre bug et amélioration est floue quand cela concerne l'IA.

C'est la troisième partie de notre série de mini-carnets, si vous avez ratés les autres vous cliquer ici pour le n°1 ( fin du carnet ) et là pour n°2.

Pour démarrer ce carnet, je vais vous raconter une nouvelle histoire :

Nous laissons souvent le jeu jouer tout seul, sans aucuns joueurs, toute la nuit pour voir comment il évolue pour différents pays, comme le Japon contre la Chine par exemple afin de voir comment se déroule le conflit entre eux. Quelques mois avant la sortie, j'ai trouvé une partie de nuit ayant eu une fin assez surprenante : L'Italie avait annexé toute l'Union soviétique, tandis que l'Allemagne n'avait pris aucun territoires soviétiques. Si jamais un pays doit battre l'URSS, ce n'est certainement pas l'Italie en mode IA, donc il y avait un problème quelque part. En regardant les sauvegardes automatiques que l'Allemagne était le belligérant principal de la guerre, la conclusion étant que quelque chose se passait mal durant la conférence de paix. En laissant le jeu tourner jusqu'à la conférence de paix, nous retrouvions le même résultat : l'Italie prend l'ensemble des territoires de l'URSS, tandis que l'Allemagne ne prend rien et donne tout son score à l'Italie. La question évidente est donc : pourquoi ?
Après avoir un peu creuser, nous avons trouvé que l'IA faciste pour les conférences de paix était programmé pour prendre les territoires voisins, mais être très réticents avec les territoires non voisins. Pourtant l'Allemagne avoisinait bien l'URSS ? Et bien... dans un sens oui. l'Allemagne avait en effet vaincu la Pologne avant de s'en prendre à l'URSS, mais elle occupait seulement les états polonais, comme la Pologne avait rejoins les Alliés, qui n'avaient bien sûr pas capitulés et comme nous avions séparé le contrôle et la possession d'un état, le voisinage se mesurant alors seulement sur la possession d'un état ( après tout, l'Allemagne n'était pas sûre de garder la Pologne ), elle finit par ignorer les provinces de l'URSS n'étant pas connecté aux états en sa possession, alors que l'Italie avait annexé la Roumanie dans une guerre précédente et de ce fait ses provinces avoisinait celles de l'URSS.

L'IA pour la conférence de paix a depuis été corriger afin d'éviter des stupidités commes celle ci, mais cela nous sert afin d'illustrer comment vous devez faire attention à toute situation potientielle en programmant une IA. Et ce système est loin d'être le plus complexe.

Aujourd'hui laissez moi vous introduire quelque chose de complétement nouveau, mon travail sur l'IA d'encerclement !

- L'IA tentera désormais de détecter et de réagir en conséquence à des opportunités d'encerclement, à la fois contre elle même et contre ses ennemis. Ce qui inclue l'évacuation de zones dangereuses et de briser les poches / goulots d'étranglement.
  • La détection de potentielles situations d'encerclement est un réel problème. Un humain, qui a des capacités de reconnaissance plus développées, peut remarquer ce genre de situation d'un seul coup d'oeil. Une IA pas vraiment. Le truc c'est que vous devez considérer la relation entre plus ou moins cinq provinces afin de détecter le plus petit des encerclements, et pours les plus gros, le nombre devient bien plus important. Les IA sons assez mauvaises à considérer plus d'une relation à la fois. Bien que l'approche pour des modèles de goulots étroits et d'encerclements plus large est d'une certaine manière différente, surtout pour ce dernier modèle qui n'est pas 100% précis, la ligne entre un encerclement potentiel n'est pas toujours claire. Le type de réaction varie un peu selon la situation détectée, mais en général l'IA est meilleure à contrecarrer les tentatives d'encerclement et essaye de réagir si une opportunité arrive. Bien qu'il y ait toujours des possibilités pour améliorer ce système, je dois dire que je suis assez heureux du nombre de situations que l'IA est capable de détecter avec un nombre très bas de faux positifs. J'espère que cela rendra le jeu plus compétitif pour difficiles pour vous !
Bien sûr je ne peux pas vous laisser qu'avec ce point, bien qu'il soit important, ainsi je vous parlerai un peu plus sur l'IA défensive dans un prochain carent.

- Division de l'IA Garnison en deux : zone "pays" et zones "autres"
  • Pour un pays comme l'Allemagne, utiliser un simple ordre de garnison est suffisant. Pour un pays comme l'Union Soviétique ou bien la France, le risque est que des unités risquent d'être envoyées à travers le monde, sans apporter de réelle aide, simplement parce que l'ordre est d'équilibrer les unités au sein de cet ordre. Sans mentionner à quel point cet équilibrage peut vite devenir bizarre avec des zones autours de la capitale avec trop peu d'unités, tandis que des zones éloignées se retrouvent avec trop d'unités. Diviser cet ordre améliore grandement l'habilité à l'IA de se défendre. Les unités se déplacent moins au sein de chaque ordre, de plus l'IA peut gérer entre avec des zones outre-mer ( ou bien... vous savez... La Sibérie ) et les zones autours de sa capitale.
- L'IA n'utilisera plus tous les types de localisations de garnisons.
  • L'IA peut et utilise cette nouvelle fonctionnalité du jeu. Dans plusieurs situations c'est un gâchis d'unités qui sont mises en garnisons pour tout et n'importe quoi. Tout en étant sur l'offensive, protéger vos forts peut être un vrai gâchis si vos ports ne sont pas protégés contre de possibles invasions.
Et c'est tout pour aujourd'hui. La prochaine fois ( qui devrait être mercredi ), je vous parlerais de navires de tout ce qui y touche. D'ici là, je retourne travailler sur d'autres améliorations pour les prochaines mises-à-jour.

Vous pouvez discuter de cet article ici

Crédit
Spoiler:
Auteur : SteelVolt
Traducteur : Limse