Scoperto dopo 55 anni un bug nel gioco Lunar Lander da un ingegnere in pensione

L'ingegnere informatico Martin ha trovato un errore nel codice del gioco Lunar Lander: questo bug è rimasto inosservato per quasi 55 anni.

Avatar di Giulia Di Venere

a cura di Giulia Di Venere

Editor

Nel mondo dei videogiochi ci sono sempre nuovi aneddoti sorprendenti, ma la recente scoperta fatta da Martin C. Martin, un ingegnere informatico in pensione, è particolarmente notevole. Martin ha trovato un errore nel codice del gioco Lunar Lander, uno dei primi giochi per computer creato nel 1969 dal diciassettenne Jim Storer. Questo bug è rimasto inosservato per quasi 55 anni.

Sviluppato su un minicomputer PDP-8 in un linguaggio di programmazione chiamato FOCAL, Lunar Lander permetteva ai giocatori di controllare la discesa di un modulo lunare sulla superficie della Luna. Gli utenti dovevano gestire con cura il consumo di carburante per garantire un atterraggio delicato, facendo scelte critiche ogni dieci secondi per bruciare la quantità appropriate di carburante.

Mentre cercava la strategia ottimale per atterrare, l'esperto di intelligenza artificiale e sviluppatore di giochi Martin ha trovato il bug nel codice del gioco.

La tecnica della "frenata suicida" consiste nel lasciare che la navetta cada liberamente accumulando velocità per poi accendere i motori all'ultimo momento, in modo da rallentare a sufficienza per atterrare in sicurezza. Martin, tuttavia, ha testato anche un altro approccio per un atterraggio più morbido, conservando il massimo del carburante possibile.

Nonostante l'applicazione di quella che avrebbe dovuto essere una strategia d'atterraggio da manuale, Martin ha scoperto che il gioco segnalava erroneamente che il lander aveva mancato completamente la superficie della Luna. Curioso dell'anomalia, Martin ha esaminato il codice sorgente del gioco e ha scoperto che l'algoritmo di atterraggio si basava su fisica molto sofisticata per l'epoca, inclusa l'equazione del razzo di Tsiolkovsky e un'espansione della serie di Taylor.

Sul suo blog, Martin scrive: "Sorprendentemente, la strategia teoricamente migliore non ha funzionato. Il gioco erroneamente pensa che il lander non tocchi la superficie, quando in realtà lo fa. Approfondendo, sono rimasto stupito dalla sofisticata fisica e computazione numerica nel gioco. Alla fine ho trovato un bug: mancava l'operazione di divisione per due, un errore che apparentemente era passato inosservato per quasi 55 anni."

Pur trovandosi di fronte a un semplice errore di calcolo, Martin rimase impressionato dal fatto che Storer, allora studente dell'ultimo anno delle superiori, fosse riuscito a incorporare concetti matematici avanzati nel suo gioco, un'impresa notevole anche secondo gli standard oderni. L'autore di Lunar Lander raccontò a Martin che suo padre, fisico, lo aveva aiutato a derivare le equazioni usate nella simulazione del gioco.

Leggi altri articoli