Introduction
Le jeu Starflight, publié en 1986 par Binary Systems, est un jeu de rôle spatial qui a marqué l'histoire du jeu vidéo. Il a été récemment l'objet d'un projet de reverse engineering, visant à comprendre les mécanismes internes du jeu. Ce projet, mené par s-macke, a permis de découvrir les détails de la conception et de la programmation du jeu.
Contexte Technique
Starflight a été écrit en Forth, un langage de programmation minimaliste qui utilise une notation polonaise inverse. Cette particularité rend le code difficile à analyser avec les outils classiques de reverse engineering, tels que IDA Pro. Le langage Forth est basé sur une machine à pile, où les opérations sont effectuées en poussant et en retirant des valeurs de la pile. Le code Forth est très compact et peut être interprété directement, sans nécessiter de compilation.
Analyse et Implications
L'analyse du code de Starflight a révélé que le code compilé conserve la structure du code source Forth, sans optimisation. Les mots du code source Forth sont représentés par deux octets dans le code compilé, et plus de 90% du code exécutable est constitué de pointeurs 16 bits. De plus, environ 2000 des 6000 noms de mots du code source sont encore présents dans le code, mais cryptés, ce qui a permis de reconstituer une grande partie du code source original.
Perspective
Le projet de reverse engineering de Starflight offre une perspective unique sur la conception et la programmation des jeux vidéo anciens. Il montre comment les développeurs de l'époque ont pu créer des jeux complexes et engageants avec des ressources limitées. Le projet peut également servir de base pour la création de nouveaux jeux ou de remakes, en s'inspirant des mécanismes et des idées qui ont fait le succès de Starflight. Cependant, il est important de noter que le code source original n'est pas entièrement reconstitué, et que certaines parties du code peuvent rester inaccessibles en raison de la cryptographie utilisée.