둠에서 Dunia까지: 3D 게임 엔진의 역사 (2)
글을 적어 나가면서도 계속 드는 생각이지만, 지정된 분량의 글에 많은것들을 담아 낸다는게 쉬운일은 아닌것 같습니다. 9 차례에 걸쳐 연재한다면 어느 정도 담아낼 수 있지 않을까 생각했지만, 시간이 지나 다시 보니 9번에 걸쳐 써내려 간다 하더라도 3D 게임 엔진 발전사의 큰 그림을 담아내기 조차 쉽지는 않은듯 합니다.
블로그에 글을 쓰지 않는 시간 시간동안 내용을 덧붙여 글의 연재 횟수나 길이를 좀 더 늘여야 하는게 아닐까 고민하기도 했습니다만, 갑자기 생각을 바꿔버리면 전체적인 흐름이 깨어지기 쉽기 때문에 처음 생각대로 진행하기로 마음 먹었습니다. 개인적인 일들 때문에 생각에만 머무르고, 정작 블로그에 글로 옮겨적지 못한 기간이 꽤 길긴 했지만 다시 한번 이어나가 보겠습니다. 혹시 마음으로 나마 은연중에 기다린 분들이 계시다면 미리 나마 감사의 말을 전하고 싶습니다. ^_^
지난번 글에서 둠을 담당했던 게임 엔진을 살펴봤듯이 이번 글에선 Duke Nukem 3D와 스타워즈: Dark Forces를 담당했던 게임 엔진과 다른 주요 엔진들을 살펴보겠습니다.
Build 엔진
듀크뉴켐 3D(Duke Nukem 3D)의 제작에 사용되어 유명해진 게임 엔진인 Build 엔진은, 2D 평면의 맵에 배치된 스프라이트(이미지)들을 통해 3D 효과를 구현해 냈다는 점에서 둠에 사용된 엔진과 비슷한 특성을 가지고 있었습니다. Build 엔진은 세계를 격자 형태로 정렬된 각각의 구역으로 나눴는데, 각 구역에 있는 천장이나 층들은 서로 다른 높이를 가지도록 생성될 수 있었습니다.
▲ 듀크뉴켐 3D
하지만 Build 엔진을 돋보이게 해준 3D 효과 트릭은 이것만이 아니었습니다. 맵 특정 영역의 벽이나 바닥에 특별한 태그(표시)를 지정할 수 있었기 때문에, 개발자들은 게이머가 지정된 장소에 걸어 들어왔을때 다른 영역으로 텔레포트 하도록 설정할 수 있었습니다. 이 기술이 실제로 활용된 방법중 하나로는 바닥에 구멍을 그리고 게이머가 그곳으로 이동했을때 밑으로 빠지도록 설정하는 것이 있었습니다. 물론 실제로는 그 밑에 공간이 있거나 한게 아니라 2D 맵의 다른곳으로 텔레포트 되는 형태 였습니다.
▲ Redneck Rampage
Build 엔진을 최적의 상태에서 실행하기 위해선 펜티엄 1급의 PC와 SVGA 비디오 카드가 필요 했습니다. 초기 버전의 Build 엔진 게임들이 486 기반 PC에서도 동작되었던 것과는 상반되는 부분이군요.
엔진 출시일: 1993년 후반
엔진 사용 유명 게임: Blood, Duke Nukem 3D, Extreme Paintbrawl, PowerSlave, Redneck Deer Huntin', Redneck Rampage, Redneck Rampage Rides Again, Shadow Warrior, William Shatner's TekWar, Witchaven, Witchaven II
Stonekeep
출시전까지만 해도, Stonekeep 엔진은 너무 긴 개발 스케쥴 때문에 덩치만 크고 실속이 없는 엔진으로 여겨졌습니다. 어느 정도 우연이 작용하긴 했지만, Stonekeep 엔진은 하드웨어의 지속적인 발전에 따라 함께 향상되게 됩니다. 처음 시작할때만 해도 286 수준의 컴퓨터에서 플로피 디스켓만을 사용해도 될 정도로 가볍게 만드는데 많은 노력을 기울였지만, 이후 시간이 흐른뒤 결국엔 CD롬 드라이브를 가진 386 기반 PC를 필요로 하게 됩니다.
Stonekeep 엔진은 모션 캡쳐된 몬스터를 사용했는데, 처음 시작할때만 해도 몬스터 캐릭터 모델의 상체만 모션이 구성되어 있었습니다. 이 때문에 캐릭터가 어떤 사물의 바로 앞에 섰을때 아래쪽을 내려다 볼 수 없었다는군요. 이 단점은 이후 메인 프로그래머였던 피터 올리펀트(Peter Oliphant)씨가, 사용자 캐릭터가 몬스터들과 싸우는 동안 몬스터의 시선에서 봤을 때 캐릭터의 하체가 노출되기를 원했기 때문에 개선되었습니다.
▲ Stonekeep
당시 발전해 나가는 Stonekeep 엔진을 사용할때 플레이어의 움직임은 그리드(격자)에서 그리드(격자)로의 움직임, 좀 더 정확히는 그리드(격자) 경계간의 이동을 통해 처리되었습니다. 이 접근 방법의 문제점은 플레이어가 방향을 바꿨을때 다른 옆편에 있는 그리드(격자)로 이동되기 때문에 수정이 필요할만큼 균형 문제가 발생했다는 점입니다.
엔진 출시일: 1990-1995
엔진 사용 유명 게임: Stonekeep
XnGine
▲ Battlespire
위 링크의 페이지에 있는 "DOWNLOAD THE FULL GAME (풀버전 다운로드)" 링크를 통해
Daggerfall 정식 버전을 다운로드 할 수 있습니다. 게임 실행은 도스(도스박스)에서 가능합니다.
XnGine 엔진은 이후 고해상도 그래픽을 사용하고 3dfx 그래픽 카드와 호환될 수 있도록 발전하게 됩니다. 이러한점 덕분에 Daggerfall에서 볼 수 있는것과 같이 거대한 게임 세계를 만드는 것이 가능하게 됩니다. ^_^
엔진 출시일: 1995
엔진 사용 유명 게임: Battlespire, Daggerfall, Redguard, NIRA: Intense Import Drage Racing, Terminator: Future Shock and Terminator: SkyNET, X-Car
Jedi
▲ Star Wars: Dark Forces
하지만 모든게 3D 였던것은 아닙니다. 개발자들에 의해 개체 자체는 3D 모델로 제작되었지만, 화면에 표시될땐 서로 다른 각도(45도 간격으로 구분)에 대해 각각 비트맵으로 렌더링(표시) 되었습니다. (이 각도에 있을땐 이 이미지로, 저 각도에 있을땐 저 이미지로 표시되었습니다. 45도 단위로 구분해서 세밀하진 못했지만 당시만 해도 자연스러운 진행이 가능했습니다)
Jedi 엔진은 각 개체에 대해 최대 32개의 각도까지 지원했는데, 유저가 개체나 적 캐릭터에 다가가거나 멀어짐에 따라 거리에 따라 크기가 맞춰서 변경되었습니다. 이게 원근감을 나타날 수 있도록 해주었지요.
▲ Outlaws
당시로선 상당히 앞서나간 셈이었는데 점프 하거나 몸을 숙여 저자세 유지하기, 상하 내려다 보기를 지원했기 때문에 Jedi 엔진을 유명하게 해주었습니다. FPS 분야에 있어 이 게임이 LucasArts의 첫번째 시도였단 점을 고려해 보면 훨씬 더 인상적으로 다가옵니다. (Dark Forces)
엔진 출시일: 1995
엔진 사용 게임: Star Wars: Dark Forces, Outlaws