Envoyé par
blbird
Je pense que tu te trompes, en tout cas pour DOOM (ou tout équivalent FPS). On est dans un monde relativement ouvert, avec
- un déplacement en 3D (et pas uniquement juste au sol),
- une vision en 3D limitée (90° en général),
- le mouvement de la caméra à 360° en 3D aussi,
- les mouvements d'objets (tirs entre autres) et les sons à prendre en compte, qui permettent de déduire l'emplacement relatif des autres joueurs. Sans parler qu'un humain sera capable de jouer avec ces éléments pour tendre des pièges.
Ce n'est pas vraiment la qualité de la simulation qui est déterminante mais surtout son objectif : immerger le joueur et lui faire croire qu'il est dans un couloir avec des monstres qui le canardent de boules de feu. Nous savons tous que tout cela n'est qu'un moteur 3D qui ajoute beaucoup de réalisme à des actions parfaitement prédictibles.
L'IA qui va jouer à la place d'un humain va remplacer le joystick par une commande de déplacement. Si l'IA gagne, suite à un déplacement, elle va conclure qu'il était pertinent , le stocker et le reproduire plus tard pour obtenir un résultat comparable.
Après des milliers de parties jouées en apprentissage, l'ia aura parcouru la majorité des cas possibles et commencera à bien jouer.
Très rapidement, l'ia va trouver les limites de la simulation, se calquer dessus et stocker les cas de figure en rapport avec la granulométrie du jeu où :
granulométrie = nombre d'actions possibles entre une frame et sa suivante
Ce genre de simulation abuse très bien un cerveau biologique , d'où son succès commercial.
Mais quand c'est une IA qui joue, il n'y a rien de biologique :
En gros l'IA va : (pour chaque frame)
1) évaluer la situation
2) tester tous les coups possibles et la réaction du jeu sur une profondeur dépendant du temps machine dont elle dispose
3) émuler la réaction du jeu pour essayer de la reproduire à l'identique (pour chaque coup simulé)
S'il manque du temps machine, il y a la variante dite "montecarlo" qui permet de scanner les cas de façon aléatoire plutôt que séquentielle
Le problème : Lorsque on la soumet à une situation donnée, la simulation réagit toujours de la même façon alors que dans le "vrai monde" les conséquences ne sont pas identiques lorsqu'un cas se reproduit. Peu importe le degré de vectorisation que la simulation autorise. Le problème n'est pas la complexité (qui est souvent faible) mais le fait que les paramètres soient FINIS en nombre comme en amplitude alors que dans la vie , les paramètres sont INFINIS
Le problème d'une simulation à fortiori quand c'est un jeu video, c'est que l'émulation et sa simulation utilisent la même techno avec les mêmes limites. Que ces limites suffisent largement à immerger un cerveau humain ne présage en rien de la capacité d'une IA à se comporter correctement lorsque elle doit contrôler des paramètres issus de la mécanique spatiale (comme dans le cas d'une automobile)..
Mais par expérience, je dirais surtout :
Le problème récurrent de ces approches , c'est que le développeur perd très vite le contrôle des priorités de comportement. Il devient vite impossible d'enseigner à son programme que sauver une vie est plus important que sauver un fichier !
Partager