Lorsqu’on dit archéologue, on pense tout de suite au chercheur muni de sa truelle et de sa pelle qui passe son temps à creuser dans la terre à la recherche de fossiles. Mais figurez-vous qu’il existe aussi des archéologues numériques, qui eux passent leur temps à fouiller dans le code des premiers jeux vidéo pour découvrir des secrets qui pourraient être utiles aux développeurs d’aujourd’hui.
Justement, certains d’entre eux se sont attaqués dernièrement à un ancien jeu Atari 2600, appelé Entombed, et ils y ont découvert un étrange bout de code qui semble incompréhensible.
Entombed, le jeu d’aventure sorti sur Atari 2600 en 1982
Sorti en 1982 sur la console de jeu Atari 2600, Entombed n’a pas été un best-seller. Raison pour laquelle très peu de personnes s’en rappellent aujourd’hui. Mais récemment, un informaticien et un archéologue numérique ont décidé de décortiquer le code source du jeu pour étudier son fonctionnement. « Il y avait toujours quelque chose d’intriguant à propos d’Entombed », se souvient John Aycock de l’Université de Calgary, en Alberta, au Canada.
Mais comme le jeu était tombé dans l’oubli, personne n’avait pensé jusqu’ici à ouvrir son code source pour l’analyser en profondeur. Chose que Aycock et sa co-auteure, Tara Copplestone de l’Université de York, au Royaume-Uni, ont décidé de faire. Ils font tous les deux partie d’un nombre croissant « d’archéologues du jeu vidéo » qui étudient d’anciens jeux pour y dénicher des indices sur la genèse des premiers jeux vidéo, mais aussi sur des secrets qui peuvent aider les programmeurs modernes à résoudre certains des problèmes auxquels ils sont confrontés aujourd’hui.
Dans Entombed, les joueurs recevaient souvent le message suivant : « Vous et votre équipe d’archéologues êtes tombés dans les ‘catacombes des zombies’. » Les catacombes étaient un endroit vraiment impitoyable : un labyrinthe bidimensionnel dans lequel les joueurs devaient trouver leur chemin pour échapper à leurs ennemis zombies. Le pire cauchemar d’un archéologue !
Aycock et Copplestone, comme les intrépides explorateurs des catacombes, cherchaient de curieuses reliques à l’intérieur d’Entombed lorsqu’ils sont tombés sur un morceau de code mystérieux qu’ils ne pouvaient pas expliquer. C’est ce bout de code qui génère l’impitoyable labyrinthe du jeu.
Les mystères du labyrinthe d’Entombed
Les jeux de labyrinthe étaient très courants à la fin des années 1970 et au début des années 1980. Mais la méthode utilisée pour générer un labyrinthe variait d’un programmeur à l’autre. Chacun devait faire appel à sa créativité et son savoir-faire. Sans compter qu’à l’ère d’Atari, les jeux devaient être conçus avec une incroyable habilité, car les systèmes informatiques qui les utilisaient étaient très limités en termes de puissance.
Au regard des standards de l’infographie, les labyrinthes en deux dimensions d’Entombed peuvent sembler simples. Mais en apparence seulement, car en 1982 il n’était pas possible de concevoir un ensemble de labyrinthes, de les stocker dans un jeu et de les afficher ensuite à l’écran. Les cartouches de jeu n’offraient pas assez de mémoire pour ça. Dans de nombreux cas, les labyrinthes ont donc été générés « de manière procédurale» (hasardeuse) par le jeu lui-même, de sorte que les joueurs ne traversaient jamais le même labyrinthe deux fois.
Le défi était alors de développer un programme informatique qui évite de créer un labyrinthe inutile avec trop de murs ou un plan sans issues. Aycock a compris la difficulté du problème et pensait qu’il y avait de bonnes chances qu’il trouve un procédé intelligent en investiguant dans les profondeurs d’Entombed.
« C’était un trou de lapin très profond », se souvient-il. « Tandis que j’explorais cet algorithme de labyrinthe, il est devenu évident que c’était quelque chose qui semblait être propre à ce jeu de labyrinthe. »
L’équipe a fini par découvrir que le labyrinthe était généré dans une séquence. En fait c’est le jeu qui décide : chaque fois qu’il dessine une nouvelle case du labyrinthe, il choisit de dessiner un mur ou un espace dans lequel les personnages du jeu peuvent se déplacer. Ainsi, chaque case doit être un « mur » ou un « passage », soit « 1 ” ou “ 0 ” en bits d’ordinateur. L’algorithme du jeu décide automatiquement en analysant une partie du labyrinthe. Il utilise une brique de cinq carrés qui ressemble un peu à une brique de Tetris. Puis c’est cette brique qui détermine la nature du prochain carré de chaque ligne.
Et c’est là que ça devient intéressant, car la logique fondamentale qui détermine le prochain carré est verrouillée dans une table de « valeurs possibles » inscrites dans le code du jeu. En fonction des valeurs de la brique de cinq carrés, la table indique au jeu de déposer un mur, aucun mur ou un choix aléatoire entre les deux. Cela semble simple, mais le fait est que les chercheurs n’arrivent pas à comprendre comment la table a été créée.
Une table dont personne ne comprend la logique
La meilleure hypothèse est que le programmeur derrière l’algorithme du labyrinthe d’Entombed a ajusté manuellement les valeurs de la table jusqu’à ce que le jeu fonctionne correctement. Mais cela n’explique toujours pas vraiment la logique qui sous-tend cette mystérieuse table.
Au cours de leurs recherches, Aycock et Copplestone ont interviewé une personne qui a pris part à la production du jeu, Steve Sidley. Lui aussi se souvenait d’avoir été dérouté par le tableau à l’époque. « Je ne pouvais pas le déchiffrer », a-t-il déclaré aux chercheurs. Il a ajouté que c’était un programmeur qui l’avait développé alors qu’il n’était pas totalement sobre : « Il m’a dit que l’idée lui était venue alors qu’il était saoul et n’avait pas toute sa tête. »
Aycock a essayé de contacter le programmeur en question mais n’a eu aucune réponse. Pour l’heure, le mystère du code derrière le labyrinthe d’Entombed reste donc total !