Je pense que vous surestimez les capacités de la plupart des IA des jeux modernes ; ce qui est génial, car c'est exactement ce que les développeurs de jeux modernes espèrent. Ils investissent du temps pour que le système semble plus intelligent qu'il ne l'est, par exemple en faisant parler les personnages de l'IA sur ce qu'ils vont faire, ou en suivant occasionnellement des scripts préétablis qui exécutent une série complexe de tâches.
Si ce ne sont pas les algorithmes d'apprentissage automatique les algorithmes d'apprentissage automatique, alors qu'est-ce qui l'IA des jeux commerciaux de pointe ? Est-ce que Est-ce simplement des algorithmes hautement complexes mais statiques mais statiques (non-ML) qui sont capables de couvrir la plupart des possibilités ?
Il y a en fait très peu de possibilités en général. Comme mentionné dans une autre réponse, il s'agit généralement d'une machine à états finis. Par exemple, un ennemi typique dans un jeu de tir peut être dans l'un des états suivants : inactif, alerte (il sait qu'il y a des problèmes à proximité), chasseur (il cherche un ennemi), attaquant (il peut voir l'ennemi et l'engager) et fuyant (il tente d'échapper à un ennemi). Les transitions entre les états peuvent être de simples événements tels qu'un bruit entendu, un adversaire aperçu, une valeur de santé tombant sous un certain seuil, etc. C'est très banal, vraiment.
La mise en œuvre de chaque état peut généralement être décomposée en un petit nombre d'actions simples, par exemple : se déplacer vers une position, regarder dans une direction, tirer sur une cible, etc. Ces activités de bas niveau sont bien documentées et largement utilisées. (ex. recherche A* pour le pathfinding, mathématiques vectorielles pour la direction et l'orientation). Tous ces éléments de base fonctionnent aussi bien en 3D qu'en 2D, pour la plupart.
De plus, l'IA d'apparence plus complexe est souvent scriptée, c'est-à-dire que son comportement est préprogrammé dans un langage de programmation simple pour fonctionner dans une situation de jeu très spécifique. Les scripts pour des situations spécifiques peuvent faire des hypothèses sur l'environnement (par exemple, l'emplacement d'un couvert derrière lequel se cacher, la proximité des alliés et des ennemis, etc) et peuvent fournir des objectifs très spécifiques en conséquence. Des scripts plus généraux peuvent être déclenchés par un ensemble de types d'événements prédéterminés (ex. Ennemi vu, Allié tué, Bruit non identifié entendu) et des réponses très simples écrites dans chaque cas (ex. IF self.health > 75% THEN attackNearestEnemy ELSE fleeToSafety).
...était un algorithme d'apprentissage peut-être utilisé dans les étapes de développement pour produire un modèle (algorithme statique), et ce modèle est ensuite utilisé pour prendre des décisions dans le jeu ?
C'est assez courant dans les situations de modélisation de véhicules, comme les jeux de course - vous pouvez fournir à un algorithme le circuit de course sous la forme d'une série de points et d'entrées basées sur ces points, et demander à un algorithme d'apprentissage de développer une stratégie permettant de boucler les tours dans le meilleur temps. Au final, vous pouvez expédier cela avec le jeu. Mais il s'agit d'un simple mappage d'un petit nombre d'entrées (angle de la route, proximité des obstacles, vitesse actuelle) à un petit nombre de sorties (vitesse souhaitée, direction souhaitée), qui se prête bien à l'apprentissage automatique. Les jeux qui simulent le comportement humain peuvent rarement s'appuyer sur ces approximations de fonctions simples, et nous avons donc tendance à recourir à la simulation manuelle d'états comportementaux distincts.
Il est parfois possible d'adopter une approche hybride, dans laquelle les transitions de la machine à états finis peuvent être entraînées pour être plus optimales, mais il est peu probable que cela se produise dans de nombreux jeux en pratique, car les transitions réalistes sont généralement faciles à mettre en œuvre pour un concepteur.