둠 소스 포트

이드 소프트웨어FPS 게임, 을 윈도우 등의 다양한 플랫폼으로 구동할 수 있게 해주는 프로그램.

1 역사

1997년 12월 23일, 소스 코드가 공개되었다. 최초에는 비상업용 라이선스였으나, 이후 GNU GPL로 개정된다. 둠 소스 코드는 프로그래머 번트 크라이마이어(Bernd Kreimeier)에 의해 정리된 후 공개되었는데, 애당초 소스 코드 공개와 더불어 크라이마이어가 쓴 둠 엔진에 대한 책까지 같이 발매하는 것이 계획이었다. 그러나 당시 게임 커뮤니티 내에서 둠의 인기는 점차 하락세였기 때문에, 이 계획은 폐기되었고 소스 코드만이 공개되었다.

초창기의 소스 포트는 단순히 크로스 플랫폼 호환성을 위한 것이었으나, 점차 기존 둠 소스 코드의 버그를 수정하고, 기존에는 없었던 기능을 더해 게임플레이를 변화시키는 개조가 이루어졌다. 또한 초기의 소스 포트는 도스, 윈도우, 리눅스PC 운영 체제용으로 만들어진 것이었으나, 점차 매킨토시, 콘솔, 휴대 기기 등 다양한 하드웨어로 이식된다.

최초의 소스 포트는 리눅스 용으로 쓰여진 오리지널 코드를 MS-DOS로 역 포팅한 도스둠(DOSDoom)이었다. 첫 버전은 1997년 12월 23일, 소스 코드가 공개된지 4-5시간 만에 공개되었는데, 이는 이후 붐(Boom), 둠 레거시(Doom Legacy), 엣지(EDGE)등 여러 주요 포트의 기반이 된다. 첫 버전은 순수한 포팅이었으나 이후 버전에서는 자유 시점, 투명도, 점프 등 새로운 기능이 더해지기도 했다. 또한 도스둠 0.2 버전에서는 '소스 포트'라는 용어가 처음 파생되기도 하였다.

포팅이라는 용어는 원래 소프트웨어가 디자인되지 않았던 다른 플랫폼에 작동하도록 이식하는 것을 의미한다. 둠의 경우, 원래 도스용으로 발매되었고, 최초의 소스 포트인 도스둠도 이름 그대로 도스용, 즉 같은 플랫폼임에도 불구하고 소스 포트라는 말이 붙었는데, 이는 비록 둠은 도스용으로 개발된 게임이었지만 소스 코드는 리눅스로 쓰여졌기 때문이었다.

2 사용법과 팁

소스 포트 다운로드 후, 설치 또는 압축해제하면 폴더 안에 실행 파일이 있을 것이다. 실행 파일과 같은 경로에 IWAD 파일 (doom.wad, doom2.wad 등)을 복사하고 프로그램을 실행하면 소스 포트에서 자동으로 파일을 읽어들인다.

추가맵 WAD 및 모드는 (압축되어 있는 경우 압축해제한 후) 드래그하여 소스 포트 실행 파일에 끌어 놓으면 실행된다. 또는 해당 확장자를 소스 포트 프로그램으로 연결해도 된다. 단, 소스 포트 호환성에 따라 모든 모드가 실행되지 않을 수 있음을 기억하자. 호환 문제가 염려된다면 그냥 ZDoom이나 GZDoom, 멀티플레이의 경우 Zandronum을 사용하면 된다. 이들 소스 포트는 거의 완벽한 호환성을 제공한다.

윈도우 7 및 8을 사용하는 경우, 작업표시줄에 소스 포트 바로가기를 만들고 파일을 끌어 놓으면 점프 목록을 통해 좀 더 간편하게 실행 가능하다. 또한 ZDoom 및 그 파생 소스 포트는 ZIP 파일을 기본 지원하여 그냥 압축 파일째로도 실행할 수 있다.[1]

소스 포트를 장기간 사용하다 보면 메인 디렉토리가 각종 WAD 파일 및 세이브 파일로 지저분해질 수 있는데, 가장 흔히 사용되는 ZDoom 및 그 파생 포트의 경우 이를 방지할 수 있는 몇 가지 방법이 있다. 상기했다시피 압축파일 상태로 이용하여 컨텐츠 당 하나의 zip 파일만을 사용하고, 점프 목록을 이용해 메인 디렉토리에 놓이는 파일 수를 줄일 수 있으며, 메인 디렉토리에 있는 zdoom-계정명.ini 파일을 열어 IWAD 및 세이브 파일의 위치를 지정할 수 있다. IWAD 파일은 .ini 파일을 열면 바로 보이는 IWADSearch.Directories 아래의 path를 적당히 수정하면 되고 (예: Path=$PROGDIR/IWAD), 세이브 파일은 save_dir= 을 찾은 후 역시 적당한 디렉토리 이름을 지정해주면 된다. (예: save_dir=save)

3 주요 소스 포트

둠 소스 포트는 현재 약 100종 정도가 확인되는데, 아래 목록은 그 중에서 비록 오늘날에는 쓰이지 않으나 소스 포트 발전사에 있어 빼놓을 수 없는 것이나, 현재까지도 많이 사용되고 있는 것들을 기재한다. 만약 소스 코드의 가계도가 궁금하다면 이 그림을 참고하자.

3.1 붐 (Boom)

#

초창기, 90년대 후반의 가장 대표적인 소스 포트로 TeamTNT[2]에 의해 개발되었다. 붐 프로젝트의 디자인 목표는 오리지널과 동일한 느낌, 정신을 유지하면서도 바닐라 둠[3]의 버그를 수정하고, 여러 제약을 없앤 소스 포트를 제작하는 것이었다. 붐은 MS-DOS에서만 구동되었으며, 상술한대로 오리지널에 충실하게 제작되어 콘솔창이나 그래픽 개선, 점프 등의 부가 기능을 지원하지 않는다. 98년 10월 22일을 끝으로 업데이트되지 않았지만 붐의 소스 코드는 이후 주요 둠 소스 포트 중 하나로 자리잡는 PrBoom의 기반이 된다.

3.2 둠스데이 (Doomsday Engine)

#

2000년대에 자주 사용되었던 소스 포트. 원래는 헥센의 소스 포트인 jHexen으로 시작했지만, 이후 헤러틱과 둠의 포트인 jHeretic과 jDoom이 개발되고, 세 포트의 공통된 코드를 한 곳으로 모으면서 둠스데이 엔진이 만들어졌다. 이들 게임은 둠스데이 엔진에 플러그인 형식으로 구동되고 있다.

둠스데이는 붐과는 다른 방향성을 갖춘 소스 포트로, 붐이 최대한 원작에 가까운 경험을 제공했다면 둠스데이는 3D 폴리곤 모델이나 하드웨어 가속, 고해상도 텍스쳐 지원, MP3 음원 등 여러 기술적 개선에 집중한 엔진이다. 현재는 이런 개선점들이 여타 소스 포트에도 적용되면서 둠스데이만의 잇점은 거의 사라진 상태. 둠스데이의 개발은 2005년을 기점으로 멈추었으나 최근 들어서 다시 개발되고 있는듯. JDOOM 계열 파생 엔진으로 라이젠 3D(Risen3D)가 있다.

3.3 ZDoom

#

초기 소스 포트였던 ATB Doom과 NTDoom에 기반해 만들어진 것으로, 1998년 3월 6일 최초 릴리즈 되었으며, 현재 GZDoom과 더불어 가장 널리 쓰이는 소스 포트이다. 완벽한 붐 호환과 더불어 헤러틱, 헥센, 스트라이프, 첵스 퀘스트를 지원하며, 또한 경사면, 투명, 콘솔, 제한 없는 프레임, z-클리핑 등 여러 개선점도 포함하고 있다. 다만 빌드 엔진의 소스 코드를 가져오는 등 라이센스가 꼬여 있는지라 GPL이라고 하긴 뭣하다는게 단점. 가장 최근의 공식 버전은 2012년 7월에 나온 2.6.1이지만 둠 커뮤니티의 많은 이들은 보다 최근의 개발 버전을 사용하고 있다.

ZDoom의 가장 큰 장점은 WAD 및 모드 호환성으로, 가장 널리 쓰이는 둠 소스 포트인 만큼, 거의 모든 WAD 및 모드가 ZDoom 호환으로 제작된다. 간혹 ZDoom에서는 정상적으로 작동되는 WAD가 여타 소스 포트에서는 약간의 이상증세를 보이거나 아예 구동되지 않는 경우가 있다. IWAD도 완벽하게 호환되며 가장 최근에 발매된 둠 3: BFG 에디션의 doom2.wad도 제대로 인식한다.

반면 단점으로 데모(녹화) 호환 문제가 꼽힌다. 둠에는 게임 구동 후 10여 초가 지나면 어트랙트 데모와 비슷한 차원에서 미리 녹화된 데모가 플레이되는 기능이 있는데, ZDoom은 바닐라 둠의 lmp 파일을 지원하지 않기 때문에 데모를 볼 수 없다. 또한 하드웨어 렌더러를 지원하지 않아 초대형/초물량형 맵에서는 느려짐이 발생할 수 있으며, 자유시점에서의 시야 왜곡도 있다. 하드웨어 가속과 관련된 단점은 아래 기술하는 GZDoom을 통해 보완할 수 있다.

ZDoom에서 파생된 소스 포트로는 GZDoom과 Skulltag, ZDaemon, ScoreDoom 등이 있다.

3.4 GZDoom

#

기본적으로 ZDoom에 OpenGL 렌더러를 더한 것으로, 2005년 8월 30일에 첫 버전이 공개되었으며, 2010년 4월 14일을 마지막으로 공식적인 개발은 멈춘 상태이다. 이유는 개발자의 시간 부족과 ATI 카드와의 호환성 문제로 유저들에게 불평 듣는데 질려버려서라고. 개발중단 발표 직후 웹사이트가 통째로 내려가며 미러 서버를 제외하고는 다운로드할 수 없게 되는 일도 있었으나, 이후 사이트는 복구되었다. 비록 렌더러는 더 이상 개발되고 있지 않기 때문에 커다란 기술적 개선을 바랄 수는 없게 되었으나, GZDoom은 ZDoom의 버전업에 맞춰 꾸준히 업데이트되고는 있다.

GZDoom의 오픈지엘 렌더러는 다음과 같은 기능을 지원한다.

  • 풀 3D 계단 (층 위에 층을 가능케한다. 다만 바닐라 둠 및 여타 소스 포트와의 호환문제로 거의 쓰이지 않는 기능)
  • 반사되는 바닥
  • 동적 광원, 브라이트맵, 커스텀 하드웨어 쉐이더
  • 퀘이크 2/하프라이프 스타일의 스카이박스
  • 높은 수준의 그래픽/스프라이트/텍스쳐 리스케일링 필터
  • 둠스데이의 MD2, MD3, 그리고 제한적인 DMD 모델 지원.

3.5 PrBoom

#

Proff Boom의 줄임말. Proff는 개발자의 아이디에서 따왔다. 이름이 말해주듯 붐에서 파생된 소스 포트이며, 개발이 진행되며 LxDoom과 LsdlDoom의 코드가 병합되었다. 막강한 하위호환성과 특유의 HUD로 널리 사용되는 둠 소스 포트 중 하나가 되었다.

PrBoom은 ZDoom의 약점인 데모 호환성이 가장 큰 장점으로. 기본적인 호환성이 뛰어나 둠 1.2, 둠 2 1.666, 1.999 등의 여러 버전의 데모 파일을 문제 없이 재생할 수 있다. 또한 화면의 크기를 키우는 +키를 두 번 누르면 PrBoom 특유의 HUD가 나오는데, 비록 투박한 모습이지만 체력, 탄약소지량 등의 기본적인 정보 뿐만 아니라 몬스터, 비밀 장소, 아이템 숫자, 플레이 시간 등의 유용한 정보도 같이 나와 스피드러너들에게 애용된다. GZDoom과 마찬가지로 하드웨어 가속을 지원하는 것도 장점.

붐과 마찬가지로 콘솔창을 지원하지 않는다는 게 호불호가 갈릴만한 요소. 사실 2.3.0 버전에서 콘솔창을 지원했으나, 해당 버전이 버그 덩어리라 이후 버전에서 롤백되면서 없던 게 되었다. 또한 Alt-F4가 먹지 않아 급변하는 상황에 쉽게 대응할 수 없다는 단점이 있다. (…) ZDoom에 비해 업데이트가 잘 이뤄지지 않는 것도 단점. 가장 최근 버전이 2011년 12월에 나왔다.

3.6 PrBoom+

#

이름이 말해주듯 PrBoom에 기반하여 자잘한 기능 및 옵션을 추가한 개선된 소스 포트.

가장 크게 개선된 부분은 데모 재생으로, 기존의 높은 호환성에 더해 데모 재생속도 조절, (여러 레벨이 묶여 있는 데모의 경우) 레벨 스킵, 3인칭 시점과 같은 부가적인 기능도 지원한다. 따라서 진행상 막히는 부분이 있거나 고수의 플레이를 보고 싶을 때 PrBoom+로 Doomed Speed Demos Archive의 데모 자료를 참고하면 도움이 된다.

같은 개발자에 의해 만들어진 GLBoom+이라는 물건도 있지만 이건 그렇게 많이 쓰이지 않는다. 하드웨어 가속이야 PrBoom 계열은 모두 지원하는 것이고 GLBoom+에 추가된 기능들은 중요성이 떨어지는 것들이라 굳이 사용할 필요성을 느끼기 어렵다.

3.7 스컬택 (Skulltag) / Zandronum

스컬택 / Zandronum

기존 둠 멀티플레이에 퀘이크 3, 언리얼 토너먼트의 멀티플레이 요소를 접목한 소스 포트로 ZDoom 기반으로 제작되었다. 데스매치, 코옵, 인베이젼, 터미네이터, 라스트 맨 스탠딩, 캡쳐 더 플래그 등 다양한 게임플레이 모드를 지원한다.

대부분의 멀티플레이 모드는 스컬택 전용으로 제작되고 배포되고 있다. ZDoom 계열인 만큼, 멀티플레이 뿐만 아니라 싱글플레이 호환성도 좋은 편이나, ZDoom과는 별도의 방식으로 업데이트가 되고 있어 GZDoom이나 ZDoom에서 사용 가능한 함수나 문법이 오류가 나는 번거로운 사태를 유발하곤 한다.

2012년 6월부로 개발자인 브래드 카니(Brad Carney)와 나머지 팀원들간의 의견충돌로 스컬택의 개발은 중단되었고, 현재는 남은 팀원들이 그 유지를 이어 Zandronum을 개발하고 있다.

3.8 ZDaemon

#

상당히 오래된 ZDoom의 엔진을 사용하고 있어, GZDoom이나 스컬택과 비교하면 부족한 포트이다. 다만 깔끔한 인터페이스와 간편한 멀티플레이 기능으로 아직까지 사용되고 있다. 사족이지만 ZDaemon 개발자 및 관련 포럼 상주자는 뭐든지 까이는 Encyclopedia Dramatica에서도 특히 ENEMIES OF THE LULZ라고 찍힌 걸 보면 원수지간 같다.

3.9 초콜릿둠 (Chocolate Doom)

#

변형을 가하지 않은 도스용 둠을 일컫는 바닐라 둠의 이름을 장난스럽게 비튼 이름의 소스 포트. 바닐라 둠과 같은 원형 그대로의 경험을 다양한 플랫폼에서 구동하기 위해 제작되었다.

해상도를 비롯한 최소한의 그래픽 옵션 추가도 없고, 원작의 버그도 고쳐지지 않았으며, 제약도 그대로이다. 말 그대로 도스 둠을 윈도우에서 돌리는 것. 심지어 셋업 툴도 도스 시절의 그 외향을 그대로 모방하고 있다.

기능적인 면만 보면 도스박스로 돌리는 것과 동일하지만, 클래식 둠 뿐만 아니라 헥센, 헤러틱, 첵스 퀘스트 등 둠 엔진 기반의 다른 IWAD도 지원하는 것이 차이점.

3.10 이터니티 엔진 (Eternity Engine)

#

이터니티 토탈 컨버전 WAD를 구동하기 위해 만들어진 소스 포트였으나, 2006년에 WAD 개발이 중단되면서 엔진만 남아 계속 개발되고 있다. 많은 변형이 가해진 소스 포트로 붐에서 시작해 MBF, 그리고 SMMU 기반으로 옮기며 현재의 체계가 갖추어졌다.

기능적인 면만 보면 꽤 발전된 소스 포트다. 때문에 모데스(Mordeth)나 둠 밀레니엄(Doom Millennium), 그리고 베이퍼웨어(Vaporware) 같은 일부 WAD가 이터니티 호환을 우선으로 제작되는데, 문제는 이 WAD들은 십여 년 째 나오질 않는다. (…)

4 소스 포트 치트 코드

다수의 둠 소스 포트는 원작의 치트키에 더해 독자적인 치트 코드를 제공한다. 개중에는 iddqd (무적), idkfa (모든 무기 및 키) 등의 원작의 치트와 명령어만 다를 뿐 기능적으로는 동일한 것도 있고, 소스 포트에서만 가능한 것도 있다. 소스 포트 치트 코드는 콘솔창을 불러온 후 사용하거나, 붐처럼 콘솔창 자체가 없는 소스 포트의 경우는 원작에서 그랬던 것처럼 게임 중 바로 입력하면 활성화된다.

둠 소스 포트에서 지원하는 치트 코드는 둠 위키의 해당 페이지에서 볼 수 있다. 대부분의 경우 Boom (PrBoom), Doomsday, ZDoom의 치트만 참고하면 될 것이다.

  • ZDoom 및 그 계열의 소스 포트가 폭넓은 기능 만큼이나 가장 광범위하고 유용한 치트를 제공한다. 예로, 죽은 자리에서 바로 체력 100과 기존 무기를 가지고 게임을 재개하는 resurrect[4], 몬스터를 적대시하지 않고 맵을 탐색 가능한 notarget, 몬스터를 아군으로 소환하는 summonfriend 등….
  • TeamTNT가 만든 붐의 치트코드는 팀 이름을 따 모두 tnt로 시작한다.[5] 붐의 치트코드는 PrBoom을 비롯한 하위 포트에서도 모두 지원하고 있다.
  • 일부 소스 포트에서는 idfa 및 idkfa가 군장(backpack)을 같이 제공한다. 원작의 치트키는 군장 없이 탄약 최대치만 제공.
  • 일부 소스 포트는 idbehold를 통한 아이템 입수 시, 원래는 시간 제한이 있는 아이템도 레벨 전체에 걸쳐 지속된다.
  • 일부 소스 포트에서는 치트 코드가 키보드 레이아웃에 따라 달라질 수 있다. 그럴 경우, QWERTY 키보드 레이아웃에 맞춰 치트를 사용하면 된다.
  1. 단, 압축 파일의 메인 디렉토리에 .wad 파일이 있어야 한다. 만약 서브 디렉토리에 존재할 경우 읽어들이지 못한다. 또한 .pk3는 그 자체로 압축파일이기 때문에 압축 안의 압축 파일이 있는 꼴이 되어 바로 읽어들일 수 없다.
  2. 파이널 둠의 반쪽을 만들었을 뿐만 아니라 여러 Megawad를 만들고 소스 포트를 제작하는 등 둠 모딩 씬에 지대한 영향을 끼친 집단.
  3. vanilla Doom, 소스 포트 등이 적용되지 않은 공식 둠 버전. 대표적으로 둠 2 1.999
  4. 단, 해당 레벨에서 입수한 버서크 팩은 초기화된다.
  5. 치트키의 접두사로 개발사나 게임의 이름을 사용하는 건 고전 FPS 게임의 전통과도 같았다. 둠은 id Software의 앞머리를 따 id로, 듀크 뉴켐 3D는 dn, LucasArts의 스타 워즈: 다크 포스 la로 시작하는 게 그 예.