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
Commentaires Hacker News