테크레시피

둠 게임 안에서 둠 플레이를?

지난 1994년 MS-DOS용으로 출시된 FPS 게임 둠II(DOOM II: Hell on Earth)는 1편과 같은 게임 엔진을 이용하면서 복잡하고 다양한 맵, 대량 무기와 적이 추가되어 초판 60만 장이 불과 1개월 만에 매진될 만큼 성공을 거뒀다. 둠은 소스 코드에 환경 의존도가 적기 때문에 리눅스에서 포르쉐911, 트위터까지 다양한 플랫폼에 사용자를 통해 이식이 되기도 했다. 그런데 한 리버스 엔지니어가 이번에는 마침내 둠II 내에 둠II를 이식하는데 성공했다고 밝혔다.

둠II에서 둠II 시작은 호출 함수 버그로 가능하다. 둠II에서 맵 파일로부터 미리 정해진 ID에 묶인 그래픽을 호출하는데 특정 ID는 특수 처리가 이뤄지며 여기에 임의 코드를 실행할 수 있는 취약성이 있다고 한다. 이 취약점을 이용해 코드를 실행하고 둠II 내에서 둠II를 기동한 게 이번 시도다.

이 엔지니어는 이를 위해 맵을 만들었다. 제작한 맵 내 지정한 벽에는 둠II 화면이 표시된다. 단순히 영상만 흘리는 게 아니다. F12 키를 누르면 둠II 내에서 기동한 둠II 조작으로 전환된다. 게임 플레이 디스플레이를 키울 수도 있으며 둠II를 플레이하는 도중 화면을 전환하는 것도 가능하다. 그 뿐 아니라 둠과 같은 게임 엔진을 사용한 게임이라면 다른 게임도 실행 가능하다.

그는 둠II에서 둠II를 플레이하기 위한 툴(DOOM-in-DOOM)을 깃허브에 공개하고 있다. 관련 내용은 이곳에서 확인할 수 있다.

정용환 기자

대기업을 다니다 기술에 눈을 떠 글쟁이로 전향한 빵덕후. 새로운 기술과 스타트업을 만나는 즐거움을 독자들과 함께 나누고 싶습니다.

뉴스레터 구독