'둠에서 Dunia까지' 포스팅 시리즈에선 3D 게임 엔진의 변화 모습을 순서대로 살펴보고 있습니다. 이번 포스팅에선 지난번 글인 둠에서 Dunia까지: 3D 게임 엔진의 역사 (4)에 이어 F.E.A.R., Outcast, Call of Duty, Medal of Honor: Allied Assault, Quake III Arena, Return to Castle Wolfenstein, Wolfenstein: Enemy Territory에 사용된 게임 엔진에 대해 살펴보겠습니다.


Lithtech


Monolith와 Microsoft사의 공동 협력으로 시작된 Lithtech 엔진은 한 때 DirectEngine이라고 불리기도 했습니다. 한 부분이 소프트웨어 렌더러로, 그리고 다른 한 부분이 DirectX 렌더러로 이루어져 있었습니다. 하지만 그리 오래가진 못했지요. 이후 Monolith사가 Microsoft사와 결별한뒤 엔진의 판권을 다시 사들여서 Lithtech라는 새 이름을 붙였기 때문입니다.

초창기 Lithtech 엔진은 가난한 사람의 게임 엔진이라는 말로 가장 잘 표현될 수 있었습니다. Maximum PC라는 게임 잡지의 2001년 8월 Atlantis: The Lost Empire에 대한 리뷰에선 Lithtech 엔진을 이렇게 언급하고 있습니다.

"엉성한 플레이 경험을 하게 될거라는 첫번째 실마리는 상자에 그려진 Lithtech 로고만 봐도 알 수 있다. No One Lives Forever와 같이 주목할 만한 예외를 제외하면, Lithtech는 값싸고 빨리 개발해야 되는 게임을 위한 엔진이었다. 엔진 자체가 플레이어에게 '이 게임은 퀘이크나 언리얼에 대해 지불하는것 만큼의 값어치를 하지 않는다.' 라고 말하는것과 같았다. Lithtech는 그렇게 까지 훌륭하지 않을때에만 요구를 충족시킬 수 있다"




Lithtech 엔진에 대한 개발이 몇 년간 지속되긴 했지만, 엔진이 최정점에 이르렀을때 만들어진 NOLF란 게임을 끝으로 Jupiter Extened (Jupiter EX)로 이름을 바꿔 재탄생 하게 됩니다. 기술적으로 LIthtech의 네 번째 버전이었던 Jupiter EX는 DirectX 9, 새로운 셰이딩 효과,  하복 물리엔진, 새로운 컨텐트 생성툴을 지원했고 F.E.A.R. 타이틀과 F.E.A.R. 2에도 사용되었습니다.



엔진 출시일: 1998년
엔진을 사용한 주목할 만한 게임: Aliens vs Predator 2, Blood II: The Chosen, F.E.A.R., F.E.A.R. 2, The Matrix Online, Might and Magix IX, No One Lives Forever, Tron 2.0


Outcast


이 포스팅 시리즈의 맨 첫번째 글에도 언급되었던 Voxel을 기반으로한 유명 엔진인 Outcast는 온전히 소프트웨어에 기반한 모델을 사용하기 위해서 하드웨어 가속을 최대한 피했습니다. 이 말은 곧 게이머가 Outcast 엔진 기반의 게임을 플레이 하기위해 3D 지원 그래픽 카드에 투자할 필요가 없음을 의미했습니다. Outcast 자신을 포함해서 말이지요. (Outcast 엔진은 Outcast란 게임을 위해 만들어진 엔진입니다. 엔진 이름인 Outcast도 게임 이름을 따서 지어졌습니다.) 덕분에 어드벤처나 퍼즐 게임 장르와 더욱 잘 어울렸습니다.

3D 그래픽 카드가 필요 없다는 분명 장점이지만, 하나의 단점이기도 했습니다. 그래픽 카드에 신경쓸 필요가 없는대신 훨씬 더 빠른 CPU 프로세서를 필요로 했기 때문입니다. 당시엔 500MHz, 혹은 그 이상의 클럭을 가진 펜티엄 3 CPU가 여기에 해당되었습니다.



Outcast는 Voxel 기반 엔진이었기 때문에 폴리곤 기반 엔진보다 훨씬 더 먼거리에서 배경을 렌더링하기에 효과적 이었습니다. 이외에도 Outcast는 렌즈 플레어 효과, 범프 매핑, 안티앨리어싱, 동적 그림자 생성, 향상된 파티클 시스템, 뼈대 애니메이션(Skeletal animation), 1인칭과 3인칭 모두에 대한 지원도 포함하고 있었습니다.

엔진 출시일: 1999년
엔진을 사용한 주목할 만한 게임: Outcast


Quake III / id Tech 3


프로세서 분야의 AMD vs Intel이나, 혹은 그래픽 카드 분야의 Nvidia vs ATI의 경우처럼 게임 엔진도 약 10년전 Quake III (현재는 id Tech 3로 알려짐) vs Unreal로 진영이 나뉘어져 있었습니다.

이름이 암시하는 것처럼, Quake III 엔진은 엔진의 기본을 Quake II 엔진으로부터 가져왔지만 단순히 이전 버전의 엔진을 다듬은것 이상이었습니다. 새 버전의 '엔진'은 정점 애니메이션(Vertex animation)[각주:1] 뿐만 아니라 뼈대 애니메이션(Skeletal animation)[각주:2]까지 지원하기 시작한 출발점 이었습니다. 정점 애니메이션(Vertext animation)과 뼈대 애니메이션(Skeletal animation)에 대한 좀 더 자세한 정보는 아래 링크를 통해 확인해 보실 수 있습니다.




Quake III 엔진은 그림자의 강조에 좀 더 무게를 두었고 이와 더불어 셰이더, 곡면, 32비트 색상, (그 시점에서) 앞서나간 네트워킹 기능이 처음으로 소개되었습니다. 이런 모든 효과들은 OpenGL을 완전히 지원하는 3D 그래픽 카드와 최소 300MHz 이상의 CPU 클럭을 필요로 했습니다. CPU의 경우 Intel Pentium II인지 혹은 AMD K6-2나 애슬론 시리즈인지에 상관없이 말이지요.



엔진 출시일: 1999년
엔진을 사용한 주목할 만한 게임:  American McGee's Alice, Call of Duty, Medal of Honor: Allied Assault, Soldier of Fortune II: Double Helix, Star Wars Jedi Knight II: Jedi Outcast, Star Wars Jedi Knight: Jedi Academy, Quake III Arena, Return to Castle Wolfenstein, Wolfenstein: Enemy Territory


GeoMOD


오늘날 FPS 같은 게임에서 무기를 사용했을 경우 여기에 반응해 지형 지물이 부서지거나 이동되면서 실감나는 장면이 연출되는건 하나의 기본처럼 느껴집니다. 하지만 그리 오래지 않은 예전만 해도 무기를 아무리 사용해도 벽처럼 끄덕없거나 아무런 변화없이 연기만 자욱한 경우가 많았습니다.

Red Faction이란 게임을 위해 개발된 GeoMOD 엔진은 꽤 전에 실감나는 게임내 물리 엔진 처리를 가능하게 해주었습니다. Red Faction를 이끌었던 프로그래머 John Slagel씨에 따르면 게임 엔진으로 사용되었던 GeoMOD의 명칭이 Geometry Modification(기하학적 구조 수정)의 약자에서 왔다고 합니다.



이름이 나타내는 것처럼, GeoMOD 엔진은 플레이어의 동작에 반응해 맵의 지형을 변경합니다. GeoMOD는 맵 세계의 지형에서 완전한 실시간 빼기 부울 연산[각주:3]을 통해 변경을 가능하게 합니다. Red Faction의 리드 디자이너 Alan Lawrence씨가 Gamespot에서 이를 다음과 같이 설명했습니다. 

"로켓이 벽에 부딪히면, 해당 도형을 얻어낸 다음 기본적으로 맵 지형에서 부딪힌 도형을 감산한다. 그러니까 그 'bit (조각)'과 부울 연산을 하는것이다. 우린 이를 GeoMOD 비트라 부른다. 그리고 이를 통해 덩어리를 맵 세계로부터 제거해 낼 수 있다."


엔진 출시일: 2001년
엔진을 사용한 주목할 만한 게임: Red Faction, Red Faction II

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


 


  1. 정점 애니메이션(Vertex animation): 정점, 꼭짓점을 매 화면 장면마다 이동시키는 애니메이션 구현 방식. 꼭짓점을 이동시키므로 세밀한 조작이 가능한 장점이 있는 반면 꼭짓점의 양이 너무 방대해 메모리를 많이 잡아 먹는다는 단점도 있습니다. [본문으로]
  2. 뼈대 애니메이션(Skeletal animation): 뼈대 애니메이션(Skeletal animation)은 컴퓨터 애니메이션에서 사용되는 기법중 하나로 캐릭터를 크게 두 부분으로 나누어서 처리하는 방법을 말합니다. 여기에서 말하는 '두 부분'이란 캐릭터를 그리는데 사용되는 표면을 나타내는 부분 (피부, skin이라고 불림)과 동작이나 애니메이션에만 사용되는 계층적인 뼈대의 집합 부분을 말합니다. 쉽게 말하면 외형을 위한 피부와, 움직임을 위한 뼈대로 나누어서 처리하는 방식을 말합니다. [본문으로]
  3. 부울 연산(Boolean operation): 참, 거짓 두가지 원소(진리값으로 불림)만 존재하는 집합(환으로 불림)에서의 연산입니다. 논리합(OR, ∨), 논리곱(AND, ∧), 부정(NOT, ~/¬), 배타적 논리합(XOR, ⊕), 명제, 동치 등이 있습니다. 수학의 논리학이나 프로그래밍 언어에서 사용합니다. 프로그래밍 언어에서는 비트 연산이라고도 합니다. [본문으로]
신고