55年前の最初のLunar Landerゲームのバグ発見
ゲームの歴史
- 1969年、高校生のJim Storerが最初のLunar Landingゲームを開発した。
- 1973年までに、このゲームは最も人気のあるコンピューターゲームになった。
- ゲームはシンプルなテキストベースで、プレイヤーは月着陸船を操作し、燃料を消費しながら着陸を試みる。
最適な燃料消費戦略
- 最小限の燃料で着陸するには、できるだけ短時間で着陸する必要がある。
- 最初はエンジンを切って最大速度で降下し、最後の瞬間に全力で燃料を燃やして速度を0にする。
- この戦略は「自殺燃焼」と呼ばれ、タイミングを合わせるのが難しい。
物理シミュレーション
- Jim Storerは高校生だったにもかかわらず、非常に精巧な物理シミュレーションを使用していた。
- ツィオルコフスキーのロケット方程式を使い、対数関数のテイラー級数を活用して精度を高めた。
- 彼の父親は物理学者で、方程式の導出を手伝った。
着陸時の問題点
- ロケット方程式は地面に到達する直前まではうまく機能する。
- 着陸船が地面に触れる瞬間の衝突を正確に計算するのは難しい。
- Jimのコードには、分母に平方根が含まれた誤った方程式があった。
バグの発見
- Jimのコードでは、分母に入るべき2が抜けていた。
- その結果、着陸時点が誤って計算され、着陸船が地面に到達していないと認識された。
- このバグを修正すると、着陸速度は大きく改善される。
結論
- 1969年に高校生が作ったゲームとしては、非常に印象的な成果だった。
- このバグはほぼ55年間発見されなかった。
- ゲームは今でも面白く、多くの人に楽しまれている。
GN⁺の意見
- 歴史的価値: このゲームは初期コンピューターゲームの歴史的価値を持ち、当時の技術的限界を示している。
- 教育的価値: 高校生が作ったゲームだが、複雑な物理学や数学の概念を含んでおり、教育的価値が高い。
- バグの重要性: 小さなコードの誤りが大きな影響を与えうるという点で、ソフトウェア開発の重要性を強調している。
- 現代ゲームとの比較: 現代のゲームと比べることで、当時の技術的限界と創造性を理解する助けになる。
- 技術の進歩: このゲームを通じて当時と現在の技術の進歩を比較し、未来の可能性を探ることができる。
1件のコメント
Hacker Newsの意見