Descoberta de um bug de 55 anos no primeiro jogo Lunar Lander
História do jogo
- Em 1969, um estudante do ensino médio chamado Jim Storer desenvolveu o primeiro jogo de pouso lunar.
- Até 1973, esse jogo se tornou o jogo de computador mais popular.
- O jogo era simples e baseado em texto, em que o jogador controlava um módulo lunar e tentava pousar consumindo combustível.
Estratégia ideal de consumo de combustível
- Para pousar com o mínimo de combustível, é preciso pousar no menor tempo possível.
- No início, desliga-se o motor e desce-se na velocidade máxima; no último instante, queima-se combustível com potência total para reduzir a velocidade a 0.
- Essa estratégia é chamada de "queima suicida" e é difícil acertar o timing.
Simulação física
- Mesmo sendo um estudante do ensino médio, Jim Storer usou uma simulação física extremamente sofisticada.
- Ele usou a equação do foguete de Tsiolkovsky e aproveitou a série de Taylor da função logarítmica para aumentar a precisão.
- O pai dele era físico e ajudou na derivação da equação.
Problemas no momento do pouso
- A equação do foguete funciona bem até o instante antes de tocar o solo.
- Calcular com precisão o impacto no exato momento em que o módulo toca o chão é difícil.
- No código de Jim, havia uma equação incorreta com uma raiz quadrada no denominador.
Descoberta do bug
- No código de Jim, faltava um 2 que deveria estar no denominador.
- Por causa disso, o momento do pouso era calculado incorretamente, e o módulo era interpretado como se não tivesse tocado o solo.
- Corrigir esse bug melhora bastante a velocidade de pouso.
Conclusão
- Para um jogo feito em 1969 por um estudante do ensino médio, foi um trabalho extremamente impressionante.
- Esse bug passou despercebido por quase 55 anos.
- O jogo continuava divertido e muita gente gostava dele.
Opinião do GN⁺
- Valor histórico: este jogo tem valor histórico como parte da era inicial dos jogos de computador e mostra as limitações técnicas da época.
- Valor educacional: embora tenha sido feito por um estudante do ensino médio, ele inclui conceitos complexos de física e matemática, o que lhe dá alto valor educacional.
- Importância do bug: destaca a importância do desenvolvimento de software ao mostrar como um pequeno erro de código pode ter um grande impacto.
- Comparação com jogos modernos: em comparação com os jogos modernos, ajuda a entender as limitações técnicas e a criatividade da época.
- Evolução tecnológica: por meio desse jogo, é possível comparar a evolução tecnológica de então com a atual e explorar possibilidades futuras.
1 comentários
Comentários do Hacker News