Doom을 실행할 수 있나요? 대답이 항상 ‘예’인 이유를 찾기 위한 지옥의 여정

수십 년의 유산을 지닌 "Can it run Doom" 밈은 인터넷에서 가장 오래되고 가장 사랑받는 개그 중 하나입니다. 그러나 그것은 그 이상으로 성장했습니다. 이는 야심 찬 개발자를 위한 통과 의례입니다.

최근 제가 가장 좋아하는 하위 레딧인 r/itrunsdoom을 살펴보시면 그 횃불이 바로 오늘날까지 용감하게 전진하는 모습을 보실 수 있습니다. It Runs Doom 이후! Tumblr 페이지는 약 1년 전에 업데이트 게시를 중단했습니다. Reddit 커뮤니티는 Doom이 무엇이든 포팅되는 것에 대해 게시하고 반응하는 회원이 100,000명 이상으로 성장했습니다. 계산기, 신용카드 단말기 — 물론이죠. 또한 2006년 출시된 RS Media RobotNintendo AlarmoPioneer DJ 멀티플레이어 도 있습니다. 그리고 그것은 지난 몇 달 동안의 일입니다.

이상한 Doom 포트에 빠져들수록 그 아이디어가 어디서 유래했는지, 더 중요하게는 그것이 왜 가능한지 궁금해지기 시작했습니다. 처음부터 누구의 터무니없는 생각이었을까? 그 이야기를 발견하려면 1990년대 인터넷 역사의 지옥 같은 연대기를 파헤치고 오늘날 전통을 유지하고 있는 거친 눈의 해커들과 이야기를 나눠야 할 것입니다.

왜 둠인가?

우리의 이야기는 Doom이 출시된 1993년에 시작되지 않습니다. 4년 후인 1997년에 시작됩니다. 크리스마스 이틀 전인 그해 12월 23일, id Software는 Doom의 소스 코드를 공개했습니다. 원본 코드를 직접 작성한 마스터마인드 John Carmack은 Doom 의 GitHub 페이지 에 여전히 존재하는 커뮤니티에 편지를 썼습니다 . 네, 오늘날에도 Zenimax와 같은 대기업이 id Software를 흡수한 후에도(당시 Zenimax는 Microsoft에 흡수되었습니다) Doom 소스 코드는 여전히 존재합니다.

Carmack은 편지에서 “얼마나 많은 사람들이 이 게임을 플레이하게 될지 정확하게 추측할 수는 없지만, 중요한 프로젝트가 진행된다면 어느 정도 커뮤니티 협력이 이루어지면 좋을 것입니다.”라고 썼습니다. "대부분의 초기 프로젝트는 단독으로 진행되는 대략적인 작업일 것이라는 점을 알고 있지만, 내년에 여러 플랫폼에서 개선되고 이전 버전과 호환되는 Doom 버전의 공동 출시를 보게 된다면 매우 기쁠 것입니다." Carmack은 독자들에게 몇 가지 잠재적인 프로젝트 아이디어도 제공했습니다.

커뮤니티는 즉시 Doom 포팅을 시작했습니다. 말 그대로 그런 뜻이에요. Doom 의 첫 번째 소스 포트인 DOSDoom은 소스 코드가 공개된 날 공개되었습니다. 당신은 오늘도 그것을 다운로드 할 수 있습니다. id Software가 게시한 원본 소스 코드는 Linux 버전의 Doom 전용이었습니다. 저작권이 있는 사운드 라이브러리로 인해 DOS 코드를 사용할 수 없었습니다. Carmack은 편지에서 "와, 그거 실수였나요?"라고 썼습니다. "이제 나만의 사운드 코드를 작성합니다."

거기에는 수십 년 동안 이어져 온 Doom 소스 포트의 매우 조밀하고 복잡한 계보가 있습니다. 작년에 PrBoomX라는 또 다른 소스 포트 의 포크가 나타났습니다. 솔직히 말해서, 그 계보는 이 기사의 범위를 벗어납니다. 그것을 다루는 것만으로도 이미 이 것보다 훨씬 더 큰 기사가 필요할 것입니다. 이상한 일에 대해 알고 싶었어요.

다행히 상황이 이상해지는 데는 오랜 시간이 걸리지 않았습니다. 내가 찾을 수 있는 가장 오래된 Doom 버전은 1998년 4월 12일 ticalc.org 에 업로드된 Texas Instruments TI-82 그래프 계산기용이었습니다. Basic으로 작성되었으므로 포트라기보다는 조잡한 복제품에 가깝습니다. 하지만 26년 전에도 Doom을 의도하지 않은 플랫폼에서 실행하는 데 관심이 있었습니다.

다음 10년 정도 동안 인터넷에는 이런 이상한 플랫폼에서 실행되는 Doom을 보여주는 것이 별로 남지 않았습니다. 즉, YouTube는 2005년이 되어서야 생방송도 시작되었습니다. 그러나 Carmack이 예측한 대로였습니다. 1998년에는 DigitaOS 운영 체제를 탑재한 여러 대의 카메라가 출시되었으며, 몇 년 전 YouTube 채널 LGR이 선보인 것처럼 해당 카메라에서 Doom을 실행할 수 있습니다. DigitaOS를 염두에 두십시오. 다음 섹션에서 이에 대해 다시 살펴보겠습니다.

1998년에 실제로 이 카메라 중 하나에서 Doom을 실행한 사람이 있었나요? 내가 찾을 수 있는 것은 아니지만, 내 추측으로는 시간이 지나거나 적어도 인터넷에서 잃어버린 답인 것 같습니다. 그러나 소스 코드가 출시되고 이후에 다른 플랫폼으로 포팅되는 초기부터 최소한 몇 가지 실험이 진행되고 있었던 것은 분명합니다. Doom 의 적절한 포트에 대해 내가 찾을 수 있는 최초의 참고 자료 중 하나는 2007년 Doomworld 포럼 게시물 이었습니다. 여기에서 작성자는 TI-83 계산기에서 실행되는 게임의 YouTube 동영상(현재는 삭제됨)에 링크를 걸었습니다.

2013년 10월, It Runs Doom! Tumblr 페이지가 활성화되었고, 게임의 몇 가지 기본 포트를 선보인 후 저자는 피아노로 Doom을 연주하는 동영상을 공유했습니다.

그러나 Tumblr, Reddit, YouTube 및 평범한 Google을 검색한 후에도 계속 나타나는 동영상이 하나 있습니다. TI-83의 Doom 에 대한 LGR의 비디오 입니다. 2017년에 게시된 이 비디오는 조회수 700만 회 이상을 기록했으며, 제가 조사한 결과 색다른 장치에서 실행되는 Doom 의 가장 인기 있는 소스입니다. Doom이 무엇이든 실행될 수 있다는 아이디어는 게임이 처음 출시되었을 때로 거슬러 올라가며, 그 이후 몇 년 동안 매니아들이 가지고 놀았던 아이디어였습니다. 그러나 여러 이상한 장치에서 Doom을 실행하려는 현대인의 집착은 적어도 부분적으로 해당 주제에 대한 LGR의 비디오에서 비롯된 것 같습니다.

Doom은 상징적이며 의심할 여지없이 Doom을 이식하려는 집착의 이유입니다. 그러나 게임 자체에는 이러한 유형의 열성적인 해킹 프로젝트에 이상적인 후보가 되는 다양한 요소가 조합되어 있습니다.

휴대성이 뛰어난 데몬 슬레이어

Doom을 이식성 있게 만든 기술적인 세부 사항을 설명하기 전에 Doom이 인증된 문화적 시금석이 아니었다면 그 어떤 일도 일어나지 않았을 것입니다. Doom이 엄청나게 인기가 있었다고 말하는 것은 절제된 표현입니다. Doom이 출시되었을 때 Microsoft에서 근무하고 있던 Valve의 창립자 Gabe Newell은 1993년에 Doom이 Windows보다 더 많은 컴퓨터에 설치 되었다고 추정했습니다. 그것이 과장된 표현이라 할지라도 Doom 이 센세이션을 일으켰다는 사실은 부인할 수 없습니다.

Doom이 개봉된 지 불과 몇 달 후인 1994년에 Universal Pictures는 영화 제작 권리를 구입했습니다. Newell은 Windows에 Doom 을 무료로 이식하겠다고 제안했습니다. 인텔은 업무용 컴퓨터에 Doom을 설치하는 것을 금지했습니다. id Software는 게임을 발표한 보도 자료 에서 "우리는 [ Doom ]이 전 세계 기업의 생산성 저하의 가장 큰 원인이 될 것으로 완전히 기대합니다"라고 썼습니다.

John Carmack은 id Software 사무실에서 Quake 작업을 하고 있습니다.
판잣집 뉴스 / id 소프트웨어

“많은 사람들이 ID가 어떻게 Microsoft나 IBM과 같은 회사를 쓸모없어 보이게 만들 수 있는지 궁금해하기 시작했습니다. Id는 셰어웨어 현상을 중독의 처방으로 변형시켰습니다.” David Kushner의 Masters of Doom을 읽습니다.Doom은 너무 강렬해서 사람들이 전부 다 경험해야 했습니다. 어떤 사람들은 이를 '히로인웨어'라고 불렀습니다. Forbes 매거진은 실제로 어떻게 id가 Microsoft와 같은 회사를 쓸모없게 만들고 있는지에 대한 Profits from the Underground 라는 제목의 쏟아지는 기사를 게재했습니다. '비공개 기업인 id Software는 재무 정보를 공개하지 않습니다. 하지만 회사의 이윤 폭을 보면 Microsoft가 2류 시멘트 회사처럼 보입니다.'”라고 적혀 있습니다.

인기가 경기를 촉발시켰을 수도 있지만 Doom이 매우 다양한 플랫폼에서 실행되기 위해서는 세 가지 핵심 요소가 필요했습니다. 첫째, 소스 코드를 무료로 사용할 수 있어야 했습니다. 확인하다. Carmack은 그 단계를 스스로 처리하기로 결정했습니다. 결국, 대부분의 최신 전자 제품에서 원본 Super Mario Bros를 실행할 수 있지만 소스 코드를 찾는 데 행운이 있기를 바랍니다.

그러나 여기에 좀 더 설명이 필요한 두 가지 사항이 있습니다. 소스 포트는 원하는 거의 모든 플랫폼에서 사용할 수 있어야 하며, 마지막으로 게임은 1990년대 후반 기준에서도 매우 낮은 소프트웨어 및 하드웨어 요구 사항으로 실행되도록 작성되어야 합니다.

이러한 요소를 일부 포함하는 다른 게임도 있습니다. 그러나 Doom은 엄청난 인기와 함께 세 가지 모두를 달성했습니다. 그리고 개발자 Sick.Codes가 나에게 설명했듯이 Doom은 "지구상에서 가장 많이 포팅된 게임 중 하나가 되었으며, 누군가가 때때로 가장 임의적인 아키텍처에 맞게 컴파일한 게임"이 되었습니다.

시연해 보겠습니다.

다음은 Doom 버전에 대한 링크 입니다. 브라우저에서 재생할 수 있습니다. 특별한 건 없어요, 그렇죠? 브라우저에서 Doom을 플레이하는 방법은 수십 가지가 있지만, 주소 표시줄을 살펴보면 흥미로운 점을 발견할 수 있습니다. 플레이할 수 있는 Doom 버전은 SVG 파일입니다. 이것은 벡터 파일입니다. Photoshop에서 로드할 수 있는 파일입니다. 그것들은 정적인 이미지여야 하며 확실히 상호작용할 수 없는 이미지여야 합니다. 하지만 여기 Doom은 브라우저에서 재생할 수 있는 SVG 내부에서 실행됩니다.

또 다른 중요한 사실은 3D 그래픽 가속기가 비싸고 구하기 어려웠던 1993년에는 PC가 게임을 플레이하기 위한 이상적인 플랫폼이 아니었고, 이러한 칩의 대부분이 대신 아케이드 기계와 가정용 콘솔에 사용되었다는 것입니다. id Software가 게임을 개발하려면, 특히 이전에 Keen 사령관Wolfenstein이 그랬던 것처럼 게임을 셰어웨어로 배포하려면 거의 모든 환경에서 실행되어야 했습니다.

Gzalo는 PC 부품을 기부하고 수리하는 아르헨티나 자원 봉사 그룹 Cybercirujas의 일원입니다. 개발자는 쓰레기통에서 찾은 Verifone VX620 결제 단말기에서 Doom을 실행할 수 있었습니다.

“[Doom]에는 이미지를 출력하기 위한 프레임 버퍼(화면에 매핑되는 메모리 영역)와 몇 가지 매우 기본적인 입력이 필요합니다. 소프트웨어 측면에서는 대상 아키텍처에 맞게 C를 컴파일할 수 있으면 되는데, 이는 거의 항상 32비트 프로세서용 프로그램을 작성하는 데 필요한 첫 번째 필수 구성 요소 중 하나입니다.” 개발자 Gzalo가 말했습니다. "다른 최신 게임을 포팅하려면 운영 체제(일반적으로 Linux/Posix 등)와 OpenGL을 지원하는 방법이 필요한 경우가 많습니다. 이는 가능하지만 더 많은 작업이 필요합니다."

Gzalo는 계속해서 소프트웨어 측면에서 Doom을 실행하는 데 필요한 양이 얼마나 적은지 설명했습니다.

“터미널의 소프트웨어는 수정되지 않았습니다. 나는 브라질에서 10년 전에 이 터미널을 사용해 본 적이 있고 여전히 개발 인증서와 애플리케이션 서명 방법을 갖고 있어 유효한 서명 코드를 실행하고 있는 사람을 발견했습니다.”라고 개발자가 말했습니다.

최소한의 소프트웨어 요구 사항을 갖는 것이 중요하지만 하드웨어 측면도 마찬가지로 중요합니다. 당연히 Doom을 실행하기 위해 하드웨어 전면에 많은 것이 필요하지 않았습니다. 게임의 원래 시스템 요구 사항은 최소 25MHz 및 4MB RAM을 실행하는 386 CPU를 요구했습니다. 어떤 맥락에서 보면 80386은 Intel이 출시한 최초의 x86 32비트 프로세서였으며 Doom 이 출시되기 7년 전인 1986년에 PC에 등장하기 시작했습니다. Doom이 무엇이든 실행되도록 하는 것은 의도적인 것입니다.

Carmack 자신도 한때는 모니터 없이 실행하고 간단히 스크린샷을 저장할 수 있는 버전도 있었다고 말했습니다.

Doom 의 기본 소프트웨어 및 하드웨어 요구 사항은 DigitaOS로 다시 돌아옵니다. 운영 체제는 C로 작성되었으며 이를 통해 플랫폼용 타사 앱을 개발하고 출시할 수 있었습니다. DigitaOS와 함께 출시된 처음 두 대의 카메라인 Kodak DC220과 DC260은 모두 PowerPC 800 프로세서와 함께 제공되었습니다 . 내 추정으로는 최대 80MHz까지 올라갈 수 있는 MPC860을 사용했다고 한다. LGR은 DC260 내부 칩이 적어도 66MHz에 도달한다고 말합니다.

그리고 마찬가지로 Doom을 실행하기 위한 요구 사항이 충족되었습니다. 우리는 25MHz에서 실행되는 386보다 훨씬 뛰어난 성능의 CPU, 약간의 메모리, C로 작성된 코드를 컴파일할 수 있는 플랫폼을 보유하고 있습니다. 타임라인이 어긋나지 않도록 하기 위해 이는 1998년에 가능했습니다. 나중에 갑자기 Doom이 Kodak DC260에서 실행되도록 허용한 것은 없었습니다. 빌딩 블록은 처음부터 모두 거기에 있었습니다.

그러나 Doom 이 완벽한 프로그램이기 때문에 이것이 전부는 아닙니다. 매우 유연하고 최신 장치에 대한 이식성이 뛰어나지만 이 이야기의 중요한 부분은 소스 코드가 누구나 무료로 편집할 수 있다는 사실로 귀결됩니다. 지난 30년 동안 Doom 의 소스 포트는 상상할 수 있는 거의 모든 플랫폼에 등장했습니다. 원본 소스 코드로 Doom을 실행할 수 없다면 거의 확실하게 여러 소스 포트 중 하나를 사용하여 실행할 수 있습니다.

여러분이 기다리고 있다는 것을 알고 있습니다. 이제 SVG에 대해 이야기해 보겠습니다. SVG는 JavaScript를 지원하므로 Doom은 벡터 파일 내에서 실행될 수 있습니다. Doom SVG 개발자가 말했듯 이 벡터 파일은 단순히 오픈 소스 JavaScript 기반 DOS 에뮬레이터인 js-dos를 실행한 다음 Doom의 다양한 DOS 소스 포트 중 하나를 사용하는 것입니다. 프로그래밍 마법처럼 보일 수도 있지만 개발자는 이를 "몇 시간 동안의 재미있는 사용"에 불과하다고 말합니다. 그게 전부입니다.

Doom이 최소한의 실행 가능한 해킹이 된 이유

John Deere 트랙터 디스플레이에서 달리는 Doom.
카일 위엔스 / IFixIt

2022년 Sick.Codes는 John Deere 트랙터 디스플레이에서 실행되는 Doom을 선보였습니다. 이는 1993년부터 라스베이거스에서 개최된 연례 사이버 보안 및 해킹 컨퍼런스인 Def Con 2022에서 선보였습니다. 아이러니하게도 Doom이 출시된 해와 같은 해입니다. 단순히 Doom을 실행하는 것 외에도 이 포트에는 총 대신 트랙터가 탑재되어 말 그대로 악마를 쓰러뜨릴 수 있었습니다. 재미있는 작은 포트이지만 Sick.Codes는 작동하는 데 몇 달이 걸렸다고 말합니다. 왜 모든 노력을 다합니까?

움직임을 수리할 권리에 대해 잘 알고 계시다면 아마도 이미 여기에서 점을 연결하셨을 것입니다. 디어앤컴퍼니가 만든 존디어 장비는 무브먼트 수리권의 중심 에 있어왔으나 긍정적인 시각은 아니었다. 이 회사는 잠겨 있는 소프트웨어로 인해 농부들과 수년 동안 법적 투쟁을 벌였습니다. 디어의 직접적인 개입 없이는 장비 수리가 거의 불가능합니다. John Deere 트랙터 디스플레이에서 Doom을 실행하는 것은 단순한 재미있는 해킹 그 이상입니다. 개념 증명입니다.

Sick.Codes는 “수년에 걸쳐 개발하는 데 수천 시간을 들인 John Deere의 대표적인 농기계 디스플레이에서 Doom을 실행하는 것은 내가 장치를 완전히 해킹할 수 있었다는 것을 보여줍니다.”라고 말했습니다. “그들의 주력 장치에서 Doom을 실행할 수 있다면 장치에 대한 다른 무단 수정도 할 수 있습니다. 벽돌로 만들 수 있어요. 나는 그것을 향상시킬 수 있습니다. 타사 소프트웨어를 설치할 수 있습니다. 기능을 삭제할 수도 있고, 비용이 드는 기능을 설치할 수도 있습니다.”

이 경우 Doom은 더 깊고 중요한 작업의 증거입니다. 2년 전 이 사건을 다룬 Wired의 보고서 에서 개발자는 루트 액세스 달성으로 인해 머신에 저장된 1.5GB의 로그에 액세스할 수 있었다고 공유했습니다. 이 로그는 인증된 John Deere 수리 기술자만을 위한 것입니다. 이를 통해 농부나 제3자 전문가는 Deere & Company의 직접적인 개입 없이도 John Deere 장비를 진단하고 잠재적으로 수리할 수 있습니다.

Doom을 실행하려면 소수의 라이브러리, 즉 그래픽용 SDL2가 필요하므로 Doom을 실행할 수 없는 장치에서 게임을 실행할 수 있다는 것은 작업 중인 장치에서 임의의 소프트웨어를 실행할 수 있음을 증명합니다. ” Sick.Codes가 나에게 말했습니다.

트랙터 디스플레이에서 Doom이 달리는 모습을 보는 것은 재미있습니다. 그리고 저는 그 즐거움을 완전히 빼앗고 싶지 않습니다. 그러나 여기서는 더 넓은 맥락을 강조하는 것이 중요합니다. 이와 같은 장치에 다른 소프트웨어를 설치하려고 시도할 수 있지만 Doom은 이러한 유형의 해킹을 보여주는 이상적인 후보입니다. 시각적이고 대화형이며 매우 특정한 목적을 위해 만들어진 프로그램입니다. 또한 많은 관심을 끌고 있습니다. John Deere 트랙터 디스플레이에서 실행되는 일부 명령줄 인터페이스에 대한 뉴스 기사를 볼 수 있을까요? 아마도 그렇지 않을 것입니다.

여기에 들어간 작업의 양을 경시하고 싶지는 않지만(이 익스플로잇을 해결하는 데 몇 달이 걸렸다는 것을 기억하십시오) Doom은 자랑하기에는 상대적으로 간단한 프로그램이기도 합니다. Sick.Codes는 가능한 한 다양한 하드웨어 및 소프트웨어 구성에서 실행되도록 제작된 소스 포트인 Chocolate Doom을 데모에 사용했다고 말했습니다. 내 말은, 소스 포트의 이식성을 특별히 다룬 Chocolate Doom 위키 페이지도 있다는 뜻입니다. 원본 소스 코드가 없었고 해당 소스 코드가 여러 번 이식되지 않았다면 아마도 이 데모를 볼 수 없었을 것입니다. 물론 여전히 가능하겠지만, 실제로 그런 일이 일어났을 것이라고 누가 장담할 수 있겠습니까?

지옥에 오신 것을 환영합니다

Doom 2용 플로피 디스크.
존 로메로 / 이베이

Doom 은 지금까지 만들어진 게임 중 가장 영향력 있는 게임 중 하나이며, 그 중 상당 부분은 게임이 만들어진 환경에 달려 있습니다. PC에 고도로 최적화된 코드는 셰어웨어 모델을 만나 게임을 큰 인기를 얻었고, 1997년 소스 코드가 출시되자 모딩 커뮤니티는 눈덩이처럼 불어났습니다. 오늘날 우리는 Doom을 통해 가장 크고 가장 접근하기 쉬운 모딩 플랫폼 중 하나를 보유하고 있을 뿐만 아니라 원래 목적보다 훨씬 오래 지속된 애플리케이션입니다.

나는 이 이야기를 쓰면서 향수를 느끼기 시작했고, 당신도 이 이야기를 읽고 나면 같은 느낌을 받을 수도 있습니다. 그렇다면 GZDoom을 다운로드하고 수년에 걸쳐 만들어진 미친 레벨 중 일부를 플레이해 보는 것이 좋습니다. 온라인에 보관된 처음 두 게임의 원본 WAD 파일도 찾을 수 있습니다. 더 깊이 들어가고 싶다면 아직 MyHouse.WAD에서 다큐멘터리를 확인하거나(동영상 조회수가 약 1,300만 회에 달함) 직접 레벨을 다운로드하는 것이 더 좋습니다.

그리고 Doom을 의도하지 않은 곳에 두는 정신을 유지하고 싶다면 일부 관대한 개발자들이 다양한 장치에 걸쳐 그들의 여정을 문서화했습니다. Ikko Activebuds 이어버드 에 설치하기 위한 글과 VoIP 전화 에 설치하기 위한 글이 있습니다. 앞서 언급한 VX620 결제 단말기 에 게임을 포팅하는 방법에 대한 심층적인 게시물도 있습니다.

Doom을 어떻게 즐기고, 확장하고, 완전히 변경하는지에 관계없이 지옥에서 즐거운 시간을 보내세요. 수십만 명의 팬과 개발자가 여러분을 기다리고 있습니다.


게시됨

카테고리

작성자

태그: