2 points par GN⁺ 2024-06-15 | 1 commentaires | Partager sur WhatsApp

Découverte d’un bug vieux de 55 ans dans le tout premier jeu Lunar Lander

Histoire du jeu

  • En 1969, un lycéen nommé Jim Storer a développé le premier jeu de Lunar Landing.
  • D’ici 1973, ce jeu était devenu le jeu informatique le plus populaire.
  • Le jeu, très simple et entièrement textuel, demandait au joueur de piloter un alunisseur et de tenter un atterrissage en consommant du carburant.

Stratégie optimale de consommation de carburant

  • Pour atterrir avec un minimum de carburant, il faut se poser en un temps aussi court que possible.
  • Au départ, on coupe le moteur et on descend à vitesse maximale, puis au tout dernier moment on brûle le carburant à pleine puissance pour ramener la vitesse à 0.
  • Cette stratégie est appelée « combustion suicide », et son timing est difficile à maîtriser.

Simulation physique

  • Bien qu’il soit encore lycéen, Jim Storer a utilisé une simulation physique très sophistiquée.
  • Il a utilisé l’équation de la fusée de Tsiolkovski et une série de Taylor pour la fonction logarithme afin d’améliorer la précision.
  • Son père, qui était physicien, l’a aidé à dériver l’équation.

Le problème au moment de l’atterrissage

  • L’équation de la fusée fonctionne bien jusqu’au moment où l’on touche le sol.
  • Il est difficile de calculer avec précision l’impact exact au moment où l’alunisseur entre en contact avec la surface.
  • Dans le code de Jim, l’équation était erronée, avec une racine carrée au dénominateur.

Découverte du bug

  • Dans le code de Jim, il manquait un 2 au dénominateur.
  • À cause de cela, le moment de l’atterrissage était mal calculé et l’alunisseur était considéré comme n’ayant pas touché le sol.
  • Une fois ce bug corrigé, la vitesse d’atterrissage s’améliore fortement.

Conclusion

  • Pour un jeu créé en 1969 par un lycéen, c’était un travail extrêmement impressionnant.
  • Ce bug est resté inaperçu pendant près de 55 ans.
  • Le jeu restait amusant et de nombreuses personnes y ont joué avec plaisir.

L’avis de GN⁺

  • Valeur historique : ce jeu possède une vraie valeur historique dans l’histoire des premiers jeux informatiques et montre les limites techniques de l’époque.
  • Valeur pédagogique : bien qu’il ait été créé par un lycéen, il intègre des concepts complexes de physique et de mathématiques, ce qui lui donne une forte valeur éducative.
  • Importance du bug : il souligne combien une petite erreur de code peut avoir un impact majeur, et met en avant l’importance du développement logiciel.
  • Comparaison avec les jeux modernes : comparé aux jeux actuels, il aide à comprendre les limites techniques et la créativité de l’époque.
  • Progrès technologique : ce jeu permet de comparer les avancées techniques d’hier et d’aujourd’hui, et d’explorer les possibilités de l’avenir.

1 commentaires

 
GN⁺ 2024-06-15
Commentaires Hacker News
  • Découverte que Jim Storer était l’auteur du tout premier jeu Lunar Lander, et réalisation d’une interview avec lui. Il a ensuite fourni le code source, ce qui s’est révélé très intéressant.
  • Storer avait oublié le jeu après la fin du lycée. Ce n’est qu’après avoir reçu un e-mail il y a quelques mois qu’il a appris qu’il existait d’autres jeux Lunar Lander que celui qu’il avait créé.
  • Le fait qu’il s’agisse d’un jeu créé en 1969 par un lycéen est impressionnant. Cela a probablement eu un grand impact sur les personnes très attirées par la technologie et ayant grandi à l’ère spatiale.
  • L’interview mentionne que Storer était à l’aise en calcul différentiel et intégral. Si l’on s’intéresse à l’espace et aux fusées, programmer un jeu Lunar Lander semble assez naturel.
  • Écriture, au milieu des années 1970, d’un jeu Moon Lander en graphismes vectoriels 2D. Si le carburant manquait ou si la vitesse était trop élevée, on s’écrasait ; sinon, le drapeau américain apparaissait.
  • Regret d’avoir jeté le code source. C’était historiquement un des premiers jeux graphiques, et il aurait pu revivre via une simple émulation.
  • En 1973, Lunar Lander était devenu le jeu informatique le plus populaire. Une tentative de le reproduire à partir d’un premier livre de programmation a échoué à cause de nombreux bugs et d’une logique complexe.
  • Proposition d’une stratégie d’atterrissage optimisée pour le carburant. Explication d’une méthode consistant à utiliser une faible poussée à un moment précis pour se poser en douceur.
  • Première partie à ce jeu en 1976 sur une calculatrice HP-25. Les mêmes formules étaient utilisées.
  • Dans les années 1960, Spacewar avait été joué sur PDP-1, mais il n’y avait pas de jeu Lunar Lander. Storer était le premier.
  • Proposition d’une méthode consistant à recalculer la masse et l’accélération à chaque frame sans utiliser de formule spéciale. Plus le frame rate est faible, plus la précision peut diminuer.
  • Partie à une version du jeu portée en Wang 2200 BASIC au milieu des années 1970. La technique consistant à appliquer la poussée maximale avait été apprise.
  • Le ruban perforé pour PDP11 est toujours conservé. Il n’est pas clair à qui le donner.