둠에서 Dunia까지: 3D 게임 엔진의 역사 (1)

벌써 작년이 된 2009년, 제가 기획 시리즈로 올렸던 글들을 지금도 기억하고 계신지요. ^_^? 상당히 많은 준비 기간과 고민을 거쳐 연재되었던 GUI History (GUI 인터페이스의 역사) 기획 시리즈. 글을 써나가는 내내 새롭게 알게되는 사실도 많았고 의미있는 작업이었기에 보람도 컸습니다. 재밌게 읽어주신분이 많았기에 기쁨도 컸던것 같습니다.

매킨토시에서 시작해서 Windows와 IBM OS/2의 변천사를 거쳤고 이후 좀 더 자료를 모아 웹브라우저의 발전 모습을 연대별로 글에 담아 블로그에 포스팅 했었습니다. 지금 우리가 당연한 듯이 사용하고 있는 맥이나 윈도 같은 운영체제(OS), 인터넷에서 웹을 항해할 수 있게 해주는 웹브라우저는 모두 현재에 이르기까지 몇 십년이 넘는 짧지 않은 시간을 거쳤습니다. 수 많은 시도와 실패가 있었고 우리가 다 알지 못하는 이면에 감춰진 수 많은 열망과 성공이 지금 컴퓨터 앞에 앉아있는 한 명 한 명의 소중한 사람들에게 당시에는 불가능했던 일들을 가능할 수 있도록 해주고 있습니다. 그런 의미에서 운영체제에서 웹브라우저, 좀 더 나아가서는 이 모든 GUI와 기술들이 몇 십년의 세월에 걸쳐 이루어진 산물이란 사실이 경이롭게 느껴지기까지 합니다. 세상에 태어난 이래 인류의 발전사와 함께 했다고 해야 할까요. :)

이젠 근본 기반이 되었던 플랫폼에서 눈을 돌려 각 개인에서 산업에 이르기까지 큰 영향을 미쳤던 컴퓨터 게임에 눈을 돌려볼까 합니다. 물론, 컴퓨터 게임의 모든 발전사를 포함시킬 수 있다면 좋겠지만 (...) 아시다시피 그 양이 장난이 아닐 정도로 (...) 너무 방대합니다. 그래서 범위를 좀 더 좁혀 3D 게임의 제작과 개발에 일대 혁신을 불러온 3D 게임 엔진 (3D Game Engine)의 발전사를 장장 9 차례에 걸쳐 연재해 보려 합니다.

음... 어디서부터 시작해야 할까요. id 소프트웨어사를 게임사에 길이 남게한 둠(Doom)에서부터 이야기를 시작해 볼까요. ^_^

둠은 아마도 모든 컴퓨터 게임의 역사에서 가장 기념비적인 (적어도 가장 유명한) 작품이 아닐까 생각합니다. 물론 좋은 이유로 말이지요. 둠의 출시 이전엔 개발자들이 석기시대와 같은 환경속에서 게임을 개발해야 했습니다. 대부분의 경우 게임을 제작한다는건 아무것도 없는 무에서 시작해서 필요한 모든 도구들을 하나 하나 직접 만들어 나가는걸 의미했습니다. 뭔가를 시작하려면 진정 아무것도 없는 밑바닥에서부터 시작해야 했고 이런일은 계속해서 반복되었습니다. 하지만 바퀴의 발명과 같은 의미를 지닌 게임 엔진이 등장하게 되자 PC 게임의 지형 자체가 완전히 바뀌게 됩니다.

그런데 이미 글을 읽으면서 떠올리셨겠지만 둠이 출시된 1993년 이전에도 분명 게임 엔진이 존재했습니다. 충분히 예상할 수 있는일이고 어떻게 보면 당연한 일이지요. 하지만 실용적이고 확실한 프로그래밍 모델을 갖춘 재사용 가능한 3D 게임 엔진을 세상에 처음 내놓고 활성화시킨 장본인은, id 소프트웨어사의 전설적인 1인칭 FPS인 '둠'이라는 사실은 의심의 여지없이 확실합니다. 둠의 등장으로 비디오 게임 개발의 역사는 새로운 시기를 맞이하게 됩니다.

앞으로 연재해 나갈 이 포스팅 시리즈는 앞서 말씀드렸던것처럼 9차례에 걸쳐 이어집니다. 과거에서부터 시작해 모든 주요 PC 게임 엔진들을 차례로 살펴본 다음, 각각을 특별하게 만들어준 것은 어떤점이었는지 알아봅니다. 글의 연재가 본격적으로 시작되려는 지금, 앞으로 만나게될 흥미로운 게임 엔진들과 이 글을 읽게될 수 많은 분들과의 좋은 인연이 떠올라 벌써부터 맘이 설레는것 같습니다. 그럼 서론을 넘어 아래쪽에서부터 본문으로 들어가 보겠습니다.



Space Rogue / Ultima Underworld


이후 Ultima Underworld 엔진으로 변모하게된 게임 엔진인 Space Rogue 엔진은 이보다 몇 년 앞선 시기에 등장했습니다. 우주를 배경으로한 동명의 SF 게임인 Space Rogue가 출시된 1989년에 모습을 드러낸 것이지요. 게임 자체가 출시된 이후 게임 이름에 맞춰 엔진 이름을 짓는건 지금 현재의 관점에서 봐도 상당히 실질적인것 같습니다. 



Space Rogue 출시 이후 Origin Systems사는 사용될 게임 엔진과 함께 Ultima Underworld의 개발에 착수하게 됩니다. 상당한 양의 작업을 통해 벽, 바닥, 천장등에 사용된 알고리즘이 텍스쳐 매핑이 가능한 수준까지 이르게 됩니다. 이후 개발팀은 맵 전체를 통들어 다양한 높이의 사물에 대해 3D 효과를 적용했고, 결국엔 경사진 표면에까지 이를 적용하게 됩니다.



NPC는 2D 스프라이트(이미지)로 구성되어 있었던것에 반해서 나머지 객체들은 3D로 렌더링(표시) 되었던 것이지요. 하나만 사용하지 않고 2D와 3D를 모두 처리해야 하는 이 시스템과 모든 움직임에 적용된 '물리 엔진'이 겹쳐 엔진 자체의 성능을 크게 떨어뜨렸습니다. 결국 Ultima Underworld는 당시의 고사양 컴퓨터였던 486DX 시스템에도 느리게 돌아가게 됩니다. 시스템 요구 사항에는 386 기반이라고 명시되어 있었음에도 불구하고 말이지요. 실용성을 잊고 너무 과욕을 부렸다고 해야 할까요.

엔진 출시일: 1990
엔진 사용 유명 게임: Space Rogue, Ultima Underworld:The Stygian Abyss



Doom / id Tech 1


id 소프트웨어사의 둠(Doom) 엔진은 사실 전혀 진정한 3D 엔진이 아니었지만, 2D 스프라이트(이미지)로 구현된 개체, 캐릭터와 같은 2D 영역 기반 엔진을 훌륭하게 게임에 녹아들게 했습니다. 이런 2D의 한계 때문에 실제 건물처럼 하나의 방 위에 다른방을 쌓는게 불가능 했지만 그점 덕분에 당시 그다지 높지 않은 저사양의 컴퓨터에서도 빠른 렌더링(표시)과 동작이 가능했습니다. 둠을 실행하기 위해선 386 CPU 급의 PC (옵션은 낮게 설정)와 텍스쳐 매핑 환경을 렌더링 할 수 있는 표준적인 VGA 그래픽 카드만 있으면 충분했습니다.



내부의 2D 중심적인 구조에도 불구하고 둠(Doom)은 여전히 3D 게임으로 인정받고 있습니다. id사는 맵에 개별적으로 추가된 높이의 차이를 통해 3D인것처럼 보이도록 착시 현상을 만들어 냈습니다. 이후 출시된 둠 엔진은 시야의 왜곡이 있긴 했지만 위 아래를 둘러볼 수 있는 기능까지 구현되게 됩니다.



엔진 출시일: 1993
엔진 사용 유명 게임: Chex Quest 1+2, Doom, Doom II, HacX, Heretic, HeXen, Strife



Voxel


당시의 나온 거의 모든 비행 시뮬레이션 게임은 NovaLogic사 소유의 Voxel Space 게임 엔진을 다양한 형태로 사용했습니다. 주로 거대한 대자연을 나타내는 방대한 배경에 사용되었고 일부의 경우 탈것이나 게임내 아이템과 같은 특정 부분에만 사용되기도 했습니다.



방대한 면적의 개체를 벡터가 아닌 3D 비트맵으로 표현하는데 가장 특화되고 알맞은 엔진이 Voxel 이었습니다. 전체 이미지를 보면 미세한 사각형들이 조금씩 보이는데 이걸 하나의 레고 조각이라고 생각해 보시면 이해가 더 잘됩니다. 이런 레고 조각 단위의 비트맵들을 조립하고 분해하면서 맵을 표시하는게 Voxel Space 엔진의 방식이었습니다. 전체는 3D였지만 오직 이 비트맵 블럭들만이 다양한 높이를 가진 2D 객체였습니다. 2D가 모여 3D를 실질적으로 형성한다고 볼 수 있겠군요. 맵을 이런 방식으로 표시한 덕분에 벡터 그래픽을 사용한 다른 비행 시뮬보다 외곽이 좀 더 자연스러웠고 세밀하게 표현할 수 있었고 좀 더 부드러운 게임 진행이 가능했습니다.



엔진 출시일: 1992
엔진 사용 유명 게임: Blade Runner (캐릭터와 구조물), Comanche 시리즈, Command & Conquer: Tiberian Sun and Command & Conquer: Red Alert 2 (대부분의 차량), Delta Force 시리즈, Master of Orion III (우주 전투와 태양계에 사용됨), [+] Blood, Shadow Warrior (무기와 아이템에 사용됨) - ㅁㄴㅇㄹ님, 댓글로 알려 주셔서 감사합니다! ^^


이어지는 내용과 글은 이후 연재될 2편에 계속해서 이어집니다. 기대해 주세요. ^_^V


 


최종 수정일:
서지스윈

서지스윈

IT와 기술을 이해하고, 유용한 소프트웨어를 발견하도록 돕고 싶습니다. 윈도우(Windows), 맥(macOS), 리눅스(Linux), 스마트폰 앱, 웹 서비스, 기획 시리즈물까지. 더 많은 것을 발견하고, 더 많은 것을 해보세요.