Si vous connaissez Mario, peut-être avez-vous entendu parler de certains concours visant à défier le jeu sous l’angle de l’intelligence artificielle. Alors que des concours entiers sont dévolus à cette activité, un chercheur américain explique sa méthode pour le tout premier Mario.
Tom Murphy est chercheur et a présenté récemment, lors de la conférence SigBovik 2013 ses résultats. Cet évènement annuel rassemble des travaux visant un grand nombre de domaines en rapport avec la science. Il est organisé par l’ACH, l’Association for Computational Heresy. Murphy y a fait la démonstration pour sa part d’une solution d’intelligence artificielle pour le premier Mario, le héros du jeu agissant alors seul et sans manette.
Comme le chercheur l’explique dans sa vidéo, il a fallu procéder en deux étapes. La première a consisté à accumuler des données. Pour cela, il a créé un programme, nommé LearnFun, capable d’enregistrer le flot de données en provenance de la console NES de Nintendo, soit 60 images par seconde, chacune contenant 2048 octets. Il a joué pendant un certain temps, LearnFun enregistrant la totalité des éléments présents à l’écran. Cela signifie aussi bien les mouvements réalisés à la manette, que les actions telles que récupérer les pièces dans les cases, tuer les ennemis, éviter les trous et ainsi de suite.
L’autre programme, PlayFun, s’occupe ensuite de « jouer » à Mario. Il utilise pour cela les informations enregistrées par LearnFun. Comme on peut le voir dans la vidéo, à partir de 7:50, les premiers essais ne sont guère concluants. Mais au fur et à mesure que PlayFun exploite un plus grand nombre de données et qu’il apprend à mieux le faire, les résultats s’améliorent. Il finira d’ailleurs par découvrir un bug qui provoquait un blocage de Mario dans certains coins, le programme ne sachant alors pas faire demi-tour pour essayer un autre chemin.
Il est intéressant de noter qu’à partir de 10:45, on peut voir PlayFun tirer parti d’un bug connu dans Mario : si le héros moustachu est dans un mouvement de chute, il peut tuer automatiquement un ennemi qu’il touche. Il aura en revanche plus de mal à utiliser la mort d’un ennemi pour atterrir plus loin, un mouvement obligatoire dans bien des niveaux du jeu.
Une méthode applicable à d'autres titres
Tom Murphy explique également dans sa vidéo que la même technique a été utilisée dans d’autres jeux de la vieille NES. Karate Kid, Hudson’s Adventure Island, Bubble Bobble, Pacman ou encore Tetris. La méthode donne de très bons résultats sur Bubble Bobble et Pacman, PlayFun pouvant exploiter des mouvements au pixel près, ce qu’un joueur humain pourrait difficilement faire. C’est précisément le cas dans Pacman quand ce dernier parvient à se glisser entre deux fantômes très serrés.
Le cas de Tetris illustre cependant la limite de la méthode : il ne s’agit plus d’un circuit linéaire et de monstres à tuer, mais de fonctions cognitives pour prévoir et organiser à l’avance. PlayFun ira jusqu’à mettre le jeu en pause juste avant de perdre, empêchant alors la fin de la partie. Tom Murphy dira alors avec humour que la meilleure méthode pour gagner est de ne pas jouer.
Mario a ses propres concours
Comme le fait remarquer Wired, il ne s’agit en aucun cas du premier essai d’intelligence artificielle autour de Mario ou, plus globalement, du jeu vidéo. Il existe d’ailleurs un Mario AI Championship consistant à faire réaliser au jeu le plus gros score possible via l’intelligence artificielle. Un concept qui ne ressemble pas à celui de Tom Murphy, dont la méthode se veut plus généraliste.
On regardera cependant la vidéo ci-dessous, amusante bien que stressante, réalisée par une IA dans un tableau inventé et générant douze monstres par seconde :