1997년처럼 퀘이크를 컴파일하자

발행: (2026년 2월 9일 오전 02:11 GMT+9)
7 분 소요

Source: Hacker News

2026년 2월 5일

순수주의자의 코너

역사적 정확성을 얼마나 중시하느냐에 따라 다음 네 가지 환경 중 하나를 선택해 단계를 진행할 수 있습니다:

  1. Intergraph RealizM Dual P6‑200 MHz workstation – 행운을 빕니다.
  2. Dual Pentium Pro machine – 역시 어려운 편이지만, W6‑LI를 찾는 것은 가능합니다.
  3. A regular late‑90s PC – 예: Quake PC.
  4. Oracle VirtualBox – 가상 머신을 생성합니다.

이 단계들은 Quake PC와 VirtualBox 모두에서 테스트했으며, Windows 98 SE 또는 Windows NT 4.0에서 실행했습니다.

Source:

Windows NT 4 설치

Windows NT 4 설치는 CD가 부팅 가능하기 때문에 간단합니다. 설치 시간은 약 30 분 정도 걸렸습니다.

Windows NT 4 시작 화면

Windows NT 시작 화면이 얼마나 미니멀한지 정말 마음에 듭니다. 감지된 CPU 수(Windows 95/98은 하나만 지원)와 RAM 용량을 자랑스럽게 표시합니다. 별다른 애니메이션도 없습니다.

두 번째 CPU를 추가해도 자동으로 감지되지 않으며, SMP 시스템을 처리할 HAL을 얻기 위해 재설치해야 합니다. 듀얼‑CPU 마더보드도 마찬가지입니다. W6‑LI에서는 Pentium Pro 하나뿐 아니라 레귤레이터까지 필요합니다!

Windows NT 4 데스크톱

Windows NT 4는 Windows 9x와 동일한 UI 테마를 사용합니다. 최초 릴리스인 Windows NT 3은 Windows 3.1의 UI 요소를 사용했으며 끔찍하게 보였습니다링크.

Source: https://fabiensanglard.net/compile_like_1997/

Visual C++ 6 설치

Quake의 Win32 버전은 원래 Visual C++ 4.x(1996년 중반의 최신 Microsoft IDE)로 코딩되었습니다. 1999년에는 프로젝트가 Visual C++ 6으로 마이그레이션되었습니다. CD가 없으시다면 Internet Archive나 WinWorldPC에서 찾아볼 수 있습니다.

설치 화면

단계스크린샷
1. Visual C++ 6 설치 프로그램 시작VC6 installer 1
2. 제품 ID 입력 (‘항상‑온라인’ 인터넷 이전)VC6 installer 2
3. “Visual Studio” 브랜딩 (향후 Microsoft IDE)VC6 installer 3
4. UI 레이아웃 (640×480 또는 800×600에 맞게 설계)VC6 installer 4
5. 추가 화면VC6 installer 5

소스 코드 받기

GitHub나 FTP를 통해 소스를 가져오지 마세요. 이렇게 하면 .dsw 워크스페이스 파일이 손상되어 VC++ 6이 조용히 실패합니다. 대신 원본 아카이브를 다운로드하십시오:

  • q1source.zip – 이전에 id Software의 FTP 서버에 있었으며, 현재는 Jason Brownless가 유지하는 Quake Official Archive에 호스팅됩니다[2].

Downloading source

VM에 파일 전송하기

  • 드래그‑앤‑드롭(가상 머신 사용 시).
  • 또는 Quick ‘n Easy FTP Server를 사용하세요. 이 서버는 9x와 NT 모두에서 동작합니다.

FTP server setup

아카이브 압축 풀기

WinRAR 2.50이 필요합니다(9x/NT에서도 여전히 작동).

WinRAR extraction

VC++ 6으로 Quake 빌드하기

  1. Visual C++ 6을 실행합니다.
  2. File → Open Workspace… 를 선택하고 WinQuake.dsw 파일을 엽니다.

Modern Visual Studio uses .sln (Solution) and .vcxproj files, but VC++ 6 uses .dsp (project) and .dsw (workspace). The .dsp contains a single project; the .dsw points to one or more .dsp files.

Opening workspace

  1. Build → Rebuild All 로 빌드를 시작합니다.

Rebuild All

  1. 빌드가 처음에는 실패합니다. VC++ 6은 Michael Abrash가 작성한 손수 최적화한 .s 파일을 어셈블할 수 없기 때문입니다.

Build error

  1. VC++ 6 Processor Pack 을 설치합니다 (여기에는 어셈블러 vcpp5.exe가 포함되어 있습니다).

Processor Pack installer

팩을 설치한 뒤 다시 빌드하면 컴파일이 성공하고 고전적인 Win32 Quake 바이너리가 생성됩니다.

Processor Pack 설치 (MDAC 2.5 선행 조건)

Processor Pack setup screenshot

물론 setupsp5.exe 를 실행하면 설치가 실패합니다. 이는 MDAC 2.5 를 먼저 설치해야 하기 때문입니다.

MDAC를 어디선가 다운로드하려고 한 시간은 낭비하지 마세요. vs6spp5.exe 가 자체 압축을 풀면서 만든 폴더에 있는 acmsetup.exe 를 실행하면 됩니다.

이제 다시 setupsp5.exe 를 실행합니다. 이번엔 정상적으로 동작합니다. 이제는 Monkey Island의 퍼즐을 푸는 느낌일 겁니다—무엇이 무슨 의미인지 모르겠고, 90년대로 완전히 빠져든 느낌이죠.

진척 바가 다소 작아졌지만, 그래도 진행 중입니다.

프로젝트를 VC++ 6 으로 다시 열고 “Rebuild All” 을 다시 실행합니다. 이번엔 정상적으로 동작해야 합니다.

맞아요! 이제 즐기시면 됩니다! QuakeWorld 도 빌드·실행할 수 있으며 QSpy 와도 동작합니다!

정말 좋은 IDE

VC++ 6은 1996년 기준으로는 놀라울 정도로 강력합니다. “Go to definition”, 브레이크포인트, 스택 트레이스, 변수 검사와 같은 기능을 제공하지만 아직 IntelliSense 자동 완성은 없습니다. 저는 직접 사용해 본 적은 없지만, 당시엔 꿈과도 같은 경험이었을 겁니다.

각주

[1] John Carmack, id Software 인터뷰, 1996.
[2] Jason Brownless, Quake Official Archive, 유지 관리 중인 .

참고 문헌

  • (여기에 참고 문헌 목록이 들어갑니다)
0 조회
Back to Blog

관련 글

더 보기 »