2 puntos por GN⁺ 2024-06-15 | 1 comentarios | Compartir por WhatsApp

Descubren un bug en el primer juego de Lunar Lander, 55 años después

Historia del juego

  • En 1969, un estudiante de secundaria llamado Jim Storer desarrolló el primer juego de Lunar Landing.
  • Para 1973, este juego se había convertido en el juego de computadora más popular.
  • El juego era un sencillo título basado en texto en el que el jugador controlaba un módulo de alunizaje e intentaba aterrizar consumiendo combustible.

Estrategia óptima de consumo de combustible

  • Para aterrizar con la menor cantidad posible de combustible, hay que hacerlo en el menor tiempo posible.
  • Al principio, se apaga el motor y se desciende a la máxima velocidad posible; luego, en el último momento, se quema combustible a máxima potencia para llevar la velocidad a 0.
  • A esta estrategia se le llama "suicide burn", y es difícil acertar el momento exacto.

Simulación física

  • A pesar de ser estudiante de secundaria, Jim Storer utilizó una simulación física muy sofisticada.
  • Usó la ecuación del cohete de Tsiolkovsky y aprovechó la serie de Taylor de la función logarítmica para aumentar la precisión.
  • Su padre era físico y lo ayudó a derivar las ecuaciones.

Problemas al aterrizar

  • La ecuación del cohete funciona bien hasta justo antes de tocar el suelo.
  • Es difícil calcular con precisión la colisión en el instante en que el módulo toca la superficie.
  • En el código de Jim había una ecuación incorrecta que incluía una raíz cuadrada en el denominador.

Descubrimiento del bug

  • En el código de Jim faltaba un 2 que debía estar en el denominador.
  • Debido a esto, el momento del aterrizaje se calculaba mal y se interpretaba que el módulo no tocaba el suelo.
  • Al corregir este bug, la velocidad de aterrizaje mejora significativamente.

Conclusión

  • Fue un trabajo muy impresionante para un juego hecho en 1969 por un estudiante de secundaria.
  • Este bug pasó desapercibido durante casi 55 años.
  • El juego seguía siendo divertido y mucha gente lo disfrutó.

La opinión de GN⁺

  • Valor histórico: Este juego tiene valor histórico como parte de los inicios de los juegos de computadora y muestra las limitaciones técnicas de la época.
  • Valor educativo: Aunque fue hecho por un estudiante de secundaria, incluye conceptos complejos de física y matemáticas, por lo que tiene un gran valor educativo.
  • Importancia del bug: Resalta la importancia del desarrollo de software al mostrar cómo un pequeño error en el código puede tener un gran impacto.
  • Comparación con los juegos modernos: Ayuda a entender las limitaciones técnicas y la creatividad de aquella época en comparación con los juegos modernos.
  • Avance tecnológico: A través de este juego se puede comparar el progreso tecnológico entre entonces y ahora, y explorar las posibilidades del futuro.

1 comentarios

 
GN⁺ 2024-06-15
Comentarios de Hacker News
  • Descubrieron que Jim Storer fue el autor del primer juego Lunar Lander y le hicieron una entrevista. Después recibió el código fuente, lo cual resultó muy interesante.
  • Storer había olvidado el juego después de graduarse de la preparatoria. Solo se enteró hace unos meses, tras recibir un correo, de que existían otros juegos Lunar Lander además del que él hizo.
  • Impresiona que fuera un juego hecho en 1969 por un estudiante de preparatoria. Probablemente tuvo un gran impacto en personas con mucho interés técnico que crecieron en la era espacial.
  • En la entrevista se menciona que Storer dominaba el cálculo. Si te interesaban el espacio y los cohetes, programar un juego Lunar Lander habría sido algo natural.
  • A mediados de los años 70 escribió un juego Moon Lander basado en gráficos vectoriales 2D. Si te quedabas sin combustible o ibas demasiado rápido, te estrellabas; de lo contrario aparecía la bandera de EE. UU.
  • Se arrepiente de haber tirado el código fuente. Era históricamente un juego gráfico temprano y podría haberse revivido con una emulación sencilla.
  • Para 1973, Lunar Lander se había convertido en el juego de computadora más popular. Intentó hacerlo a partir de su primer libro de programación, pero fracasó por muchos bugs y una lógica compleja.
  • Propone una estrategia de aterrizaje optimizada para el combustible. Explica cómo aterrizar suavemente usando bajo empuje en un momento específico.
  • Jugó este juego por primera vez en 1976 en una calculadora HP-25. Usaba la misma fórmula.
  • Jugó Spacewar en una PDP-1 en los años 60, pero no había ningún juego Lunar Lander. Storer fue el primero.
  • Propone un método que no usa una fórmula especial, sino que recalcula la masa y la aceleración en cada frame. Cuanto menor sea la tasa de cuadros, menos precisa puede ser.
  • Jugó una versión portada a Wang 2200 BASIC a mediados de los años 70. Aprendió la técnica de aplicar el empuje máximo.
  • Todavía conserva la cinta perforada para PDP11. No sabe a quién dársela.