Reverse engineering de Choplifter, le classique de l'Apple II

Image illustrant l'article : Reverse engineering de Choplifter, le classique de l'Apple II

Reverse engineering de Choplifter, le classique de l'Apple II

par Korben -

Vous avez déjà entendu parler de Choplifter ? Non, c’est PÔ PÔSSIBLE puisque c’est l’un des jeux vidéo les plus mythiques de l’Apple II ! Sorti en 1982, année glorifiée par ma naissance, ce classique de Dan Gorlin a marqué toute une génération de gamers avec un gameplay novateur et son scrolling horizontal révolutionnaire pour l’époque.

Pour mieux comprendre l’importance de Choplifter, il faut connaître un peu l’histoire de l’Apple II. Cette série d’ordinateurs, commercialisée de 1977 à 1993, a vu la création de centaines de milliers de logiciels, dont des dizaines de milliers de jeux. Parmi tous ceux là, seuls quelques-uns sont alors vraiment marquants, et Choplifter figure assurément en tête de liste aux côtés d’autres classiques comme Lode Runner. Ce qui est particulièrement impressionnant avec ce jeu, c’est sa longévité puisqu’il est resté l’un des meilleurs jeux sur Apple II pendant seize ans, malgré la sortie de jeux étonnants comme Knights of Legend et Space Rogue vers la fin de la vie de cette machine.

Mais comment cet œuvre a-t-elle été codée ?

C’est la question que s’est posée Quinn Dunki, développeuse et hackeuse de talent qui armée de ses outils et de sa curiosité, elle s’est lancée dans une rétro-ingénierie complète de Choplifter, pour en décortiquer les mécanismes internes et percer tous ses secrets ! Elle a donc passé 8 semaines intenses à désassembler, analyser et commenter le code source de ce jeu culte.

La première chose qui saute aux yeux, c’est avant tout l’incroyable prouesse technique réalisée par Dan Gorlin à l’époque. Rappelons qu’on est en 1982, l’Apple II est encore jeune, les outils de développement sont rudimentaires et malgré tout cela, ce génie a réussi à tirer le maximum de la machine en exploitant astucieusement ses capacités graphiques et sonores. Choplifter intègre des innovations folles pour l’époque : des sprites animés pixel par pixel, de la rotation et de l’inclinaison des hélicos en temps réel, un scrolling horizontal fluide et des collisions parfaitement gérées. Tout cela avec un processeur 8 bits cadencé à 1 MHz et 48 Ko de RAM, vous vous rendez compte ?

Une autre prouesse du jeu est la qualité de son game design. Dan Gorlin a passé un temps fou à peaufiner le gameplay, à équilibrer la difficulté et à rendre le pilotage fun et accessible. Les mécanismes sous le capot sont d’une finesse incroyable et Quinn a pu retracer les choix et les astuces du développeur, tel que son système de vecteurs pour passer les paramètres aux fonctions et ses algorithmes de tri des entités pour gérer le rendu dans le bon ordre.

Parmi les découvertes les plus étonnantes, on trouve un moteur 3D maison que Dan avait commencé à coder pour gérer la rotation des sprites. Oui, de la 3D sur Apple II en 1982 ! Bien que cette fonctionnalité n’ait pas été utilisée dans la version finale, elle témoigne de l’avant-gardisme du dev.

En plus de décortiquer le code, Quinn a également réussi l’exploit de recompiler le jeu pour obtenir un binaire à l’octet près identique à l’original. Elle a même découvert un petit bug dans les listes chaînées que Dan cherchait probablement à l’époque!

Pour les passionnés de technologie et de culture geek que vous êtes, je vous invite à découvrir les coulisses d’un monument du jeu vidéo et à vous familiariser avec le développement 6502 old-school en allant lire l’autopsie de Choplifter sur le blog de Quinn Dunki. C’est un voyage fascinant dans l’univers de la programmation des années 80.

Le code source complet de Choplifter est également sur GitHub.