• » Jeux Vidéo
  • » Intelligence Artificielle [zombies aveugles et soldats sourds]
mmppprrrrfffffchier

Coucou.

Ça fait quelques temps que je lurke dans les parages, et vu que ça parle d'un sujet qui m'intéresse pas mal, je me suis dit que ça pouvait être une bonne occasion de me créer un compte, histoire de déposer un petit pavé sur le sujet.

Voici pour moi quelques unes des raisons pour lesquelles l'IA de jeu vidéo n'a pas évolué depuis un bout de temps :

- Déjà, tout bêtement parce que l'IA elle-même est un domaine de l'informatique qui stagne depuis une dizaine d'années, au point où pas mal de gens du milieu commencent à considérer que c'est un sujet de recherche "sans avenir" (dans le sens où de plus en plus de gens doutent qu'on arrivera à obtenir de nouvelles vraies avancées).

- C'est un sujet extrêmement technique et complexe, et donc risqué dans le contexte d'une prod de jeu vidéo qui a des contraintes de temps et d'argent assez fortes (peu de boîtes peuvent se permettre d'investir dans de la R&D pure et dure). Si un projet voulait mettre en œuvre des techniques vraiment avancées d'IA, ça mobiliserait une petite équipe de programmeurs spécialisés qui feraient ça à temps plein pendant des mois, et ça ne serait même pas garanti d'aboutir à un résultat convaincant, donc forcément, on préfère utiliser des méthodes basiques mais qui ont faites leurs preuves, et qui sont garanties de fonctionner "assez bien" dans la majorité des cas.

- L'IA ça consomme de la puissance de calcul, et ça peut rapidement consommer beaucoup si on veut la pousser pas mal, or celle-ci est limitée. Chaque projet définit sa politique sur comment il va répartir la puissance de CPU disponible entre gameplay, IA, graphismes, physique, etc, et comme vous vous en doutez, l'IA n'est en général pas trop privilégiée de ce côté là, ne serait-ce que parce que ce n'est pas quelque chose qui se voit sur un screenshot.

- Développer de nouvelles interactions rendues possibles par l'IA, c'est coûteux. D'un point de vue technique, ça serait pas forcément excessivement compliqué de programmer des soldats capables de s'affoler quand ils voient un cadavres, d'implorer pitié, d'interagir avec le décor ou de faire le café quand ils s'ennuient, mais pour chacune de ces interactions, il faut l'animer, la bruiter, enregistrer les voix, etc, et vu qu'il faut à chaque fois multiplier ça par le nombre de personnages dans le jeu, ça peut très rapidement exploser. C'est de là que vient le sentiment de régression par rapport aux vieux jeux qui peuvent sembler plus riches : dans un jeu 2D, ou 3D avec des modèles pas trop compliqués, on pouvait se permettre de créer pleins d'interactions différentes, c'est de plus en plus difficile maintenant à mesure que la complexité des acteurs augmente. Et puis il y a aussi le côté "on fait un fps où 95 % de tes interactions avec un ennemi, ça va être de le tuer dans les 5 secondes où tu l'aperçois, donc ça ne vaut pas vraiment le coup de créer une super IA pour traiter les 5 % de cas restants"

- Une bonne IA, c'est quelque chose de générique : on définit un ensemble de règles, et ensuite l'IA va elle même s'adapter à la situation sans intervention extérieure. Ça implique donc une certaine perte de contrôle sur ce qui arrive dans le jeu, et ça en général les game designers ils n'aiment pas, puisqu'ils veulent être capables de régler l'expérience du joueur (d'où l'abondance de scripts dans les jeux modernes, où là au moins on est sûr que tout se passe comme le designer l'a prévu). Du coup les programmeurs et designers doivent perpétuellement trouver un compromis entre un système générique qui réagit "tout seul", mais où on a quand même envie que dans certains cas ça réagisse d'une manière bien spécifique.

- Enfin, une bonne IA ne rend pas forcément le jeu plus fun, l'exemple le plus caricatural étant celui d'une IA parfaite contre laquelle on n'aurait aucune chance de gagner. Y'a donc toute une problématique d'introduire des "défauts" dans son IA pour rendre le jeu plus amusant, et c'est loin d'être simple à bien régler. Je me souviens par exemple avoir vu une thèse d'un gars qui avait utilisé de l'apprentissage par renforcement (en gros, on simule des milliers de parties pour entraîner l'IA dessus et la faire évoluer) pour créer une IA pour un jeu de stratégie. Le résultat était une IA qui humiliait tous les bots programmés de base dans le jeu, mais qui utilisait des stratégies tellement bizarres et contre-intuitives qui, bien qu'efficaces contre des joueurs humains, la rendait très frustrante à jouer contre.