• 모더, 14,272년 기다리는 것이 고전 게임 '오리건 트레일'을 이길지 테스트하다

    맞춤형 Applesoft BASIC 디컴파일러와 변수 스크래퍼를 이용하여 완성한

    article image

    개발자 Moralrecordings(별명 Scott Percival)은 이번 주 초에 상세한 블로그 게시물을 통해, 자신과 일부 개발자들이 오리건 트레일(Oregon Trail)의 모드를 제작한 과정을 공유했습니다. 그들은 기존에 존재하는 버그를 활용하여 최종 스네이크 강(Snake River) 횡단 지점에서 충분한 시간 동안 대기하는 방식을 통해 게임에서 승리하는 방법을 찾고자 했습니다. 이 방법은 건강 상태가 개선되기를 기다리면서 재계산되지 않는다는 특성을 이용한 것입니다.

    이로 미루어 볼 때, 매우 간단해 보입니다. 불멸의 오리건 트레일 승리에 필요한 버그와 시나리오는 오리지널 서바이벌 게임의 코드 자체를 수정할 필요가 없기 때문입니다. 따라서 당연히 핵심 지점에서 현실 시간으로 수많은 날 동안 대기하는 것만으로도 문제가 해결될 것이라 예상할 수 있었습니다. 그러나 안타깝게도, 순정 게임(vanilla game)을 사용하여 스네이크 강 횡단 지점에서 게임 내 연도가 10,000년이 될 때까지 대기하는 초기 '타임 머신' 시도는 필연적으로 파티원 전체가 질병으로 사망에 이르는 결과로 끝났습니다.

    타임 머신 개발자이자 오리건 트레일 모더인 Moralrecordings가 확장 게시물에서 설명했듯이, 이 방식으로 승리를 달성하기 위해서는 게임을 모딩하는 과정에서 매우 구체적인 수정 작업이 필요했습니다. 이러한 수정 작업에는 모든 엔딩 화면의 연도 초반에 하드코딩된 숫자 '18'을 수정하여 게임 내 연도가 정확하게 표시되도록 하는 것과, 강가에서 대기하는 행위를 통해 식량 기아 요인(food starvation factor)을 0으로 리셋할 수 있도록 허용하는 것이 포함되었습니다.

    이 두 가지 작은 수정만으로도 오리건 트레일에서 시뮬레이션된 14,272년 동안 성공적으로 생존하는 것이 실제로 가능하게 되었습니다.

    이를 실현하기 위해 Moralrecordings는 Applesoft BASIC 사용법을 익혀야 했으며, MAME의 Apple II 에뮬레이터를 활용하여 선택된 수정 사항 유무에 따라 게임을 효과적으로 테스트하고 디버깅할 수 있었습니다. 나아가 그는 이 과정에서 Applesoft BASIC 디컴파일러(Decompiler)를 직접 작성하여 GitHub에 공개함으로써, 다른 개발자들이 유사한 프로젝트에 활용할 수 있도록 했습니다.

    Moralrecordings만이 이러한 발견에 주목한 것은 아닙니다. 이 버그를 발견하는 계기가 된 스트리머 Albrot의 상당한 트위치 시청자들 역시 오랫동안 이 과정을 예의주시해 왔습니다. 그 중 Albert는 오리건 트레일에서 15,000년 생존에 성공한 최초의 인물로 기록했으며, 그 전 과정을 스트리밍으로 남겼습니다.

    [출처:] https://www.tomshardware.com/video-games/pc-gaming/modder-tests-if-waiting-14-272-years-will-beat-the-classic-oregon-trail-game