55년 된 첫 번째 Lunar Lander 게임의 버그 발견
게임의 역사
- 1969년, Jim Storer라는 고등학생이 첫 번째 Lunar Landing 게임을 개발함.
- 1973년까지 이 게임은 가장 인기 있는 컴퓨터 게임이 되었음.
- 게임은 단순한 텍스트 기반으로, 플레이어는 달 착륙선을 조종하여 연료를 소모하며 착륙을 시도함.
최적의 연료 소모 전략
- 최소한의 연료로 착륙하려면 가능한 짧은 시간 내에 착륙해야 함.
- 초기에는 엔진을 끄고 최대 속도로 하강하다가 마지막 순간에 전력을 다해 연료를 태워 속도를 0으로 만듦.
- 이 전략을 "자살 연소"라고 부르며, 타이밍 맞추기가 어려움.
물리 시뮬레이션
- Jim Storer는 고등학생임에도 불구하고 매우 정교한 물리 시뮬레이션을 사용함.
- Tsiolkovsky 로켓 방정식을 사용하고, 로그 함수의 테일러 급수를 활용하여 정확도를 높임.
- 그의 아버지가 물리학자였고, 방정식 유도에 도움을 줌.
착륙 시의 문제점
- 로켓 방정식은 지면에 닿기 전까지는 잘 작동함.
- 착륙선이 지면에 닿는 순간의 충돌을 정확히 계산하는 것이 어려움.
- Jim의 코드에는 분모에 제곱근이 포함된 잘못된 방정식이 있었음.
버그의 발견
- Jim의 코드에서 분모에 있어야 할 2가 빠져 있었음.
- 이로 인해 착륙 시점이 잘못 계산되었고, 착륙선이 지면에 닿지 않는 것으로 인식됨.
- 이 버그를 수정하면 착륙 속도가 크게 개선됨.
결론
- 1969년 고등학생이 만든 게임으로는 매우 인상적인 작업이었음.
- 이 버그는 거의 55년 동안 발견되지 않았음.
- 게임은 여전히 재미있었고, 많은 사람들이 즐겼음.
GN⁺의 의견
-
역사적 가치: 이 게임은 초기 컴퓨터 게임의 역사적 가치를 지니고 있으며, 당시의 기술적 한계를 보여줌.
-
교육적 가치: 고등학생이 만든 게임이지만, 복잡한 물리학과 수학 개념을 포함하고 있어 교육적 가치가 높음.
-
버그의 중요성: 작은 코드 오류가 큰 영향을 미칠 수 있다는 점에서 소프트웨어 개발의 중요성을 강조함.
-
현대 게임과의 비교: 현대 게임과 비교했을 때, 당시의 기술적 한계와 창의성을 이해하는 데 도움이 됨.
-
기술 발전: 이 게임을 통해 당시와 현재의 기술 발전을 비교하고, 미래의 가능성을 탐구할 수 있음.