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

'둠에서 Dunia까지' 포스팅 시리즈에선 3D 게임 엔진의 변화 모습을 순서대로 살펴보고 있습니다. 이번 포스팅에선 지난번 글인 둠에서 Dunia까지: 3D 게임 엔진의 역사 (7)에 이어 고사양과 사실적인 그래픽으로 널리 알려진 크라이시스, Mirror's Edge, Far Cry 등에 사용된 게임 엔진들에 대해 살펴보겠습니다.


CryEngine


크라이텍(Crytek)사는 원래 Nvidia GeForce 3가 어떤일을 가능하게 해주는지 보여주기 위한, X-Isle라고 불리는 기술의 시연용으로 CryEngine을 개발했다고 합니다. 그런데 엔진 자체가 워낙 인상적이었던 나머지 결국 그 어디서도 본적없는 그래픽의 Far Cry란 게임을 탄생하게 하기에 이릅니다. 현재 멀티플랫폼 엔진인 CryEngine은 (CryEngine은 원래 PC 전용 게임 엔진이었지만, 현재는 콘솔도 지원하고 있습니다)  Develop지의 상위 10개 게임 엔진중 하나로 선정되기도 했습니다. (CryEngine 3 기준)


뛰어난 그래픽을 자랑하는 CryEngine은 Far Cry에서 픽셀 쉐이더(Pixel Shader)를 사용해 강의 사실적인 수면 효과를 보여주기도 했습니다. 잠입 지역의 맵에는 무성한 식물뿐만 아니라 광대한 대지를 돌아다녀도 로딩 시간이 따로 필요 없게 끔 여러 요소를 추가할 수 있었습니다.

CryEngine의 도움 덕분에 Crytek은 이전의 둠같은 게임과 마찬가지로 다시 한 번 하드웨어 교체를 촉진시킬 수 있었습니다. 쉐이더가 집중적으로 사용된 DirectX 10 게임인 크라이시스(Crysis)의 경우 (물론 DirectX 9도 지원합니다) 컴퓨터가 고사양인지 한 번 확인해 볼 수 있는 고-고사양 벤치마킹 게임으로 여전히 자리를 지키고 있습니다.


엔진 출시일: 2004
엔진을 사용한 주목할 만한 게임: Crysis, Crysis Warhead, Far Cry


RAGE


Rockstar Advanced Game Engine이라고도 불리는 RAGE 엔진은 RAGE Technology Group과 Rockstar 사이의 공동 협력을 통해 RenderWare 엔진을 대체할 목적으로 개발되었습니다. RAGE는 렌더링 프레임워크, 물리 엔진, 사운드 엔진, 네트워크 라이브러리, 애니메이션 엔진, 스크립팅 언어등을 하나의 패키지에 밀도있게 포함하고 있었습니다.

그 기능들중 일부에는 다른 엔진에서 도입된 기술이 사용되기도 했는데 Euphoria 엔진으로부터 애니메이션 기술이, 물리 엔진에는 Bullet 물리 엔진이 RAGE의 일부로 통합된 사례가 대표적 입니다.


자신들의 고유 엔진인 RAGE를 개발하는데 있어 Rockstar가 주안점을 뒀던 주요 목표중 하나는 서로 다른 크기의 차량으로 특정 지역을 고속 질주 할때나, 혹은 캐릭터가 뛰어다닐때 각각의 개체가 좀 더 사실감 있게 느껴지게끔 하는 것이었습니다. 뿐만 아니라 RAGE 엔진을 사용한 2번째 게임인 Grand Theft Auto IV에서 볼 수 있듯이 (Table Tennis가 첫번째 였습니다) 날씨를 통해 차량의 움직임에 영향을 줄 수도 있었습니다. Rockstar사는 이외에도 상당한 시간을 들여 폭발 장면이 좀 더 사실적으로 보이도록 particle effect를 좀 더 개선하기도 했습니다.

엔진 출시일: 2006
엔진을 사용한 주목할 만한 게임: Grand Theft Auto IV, Midnight Club: Los Angeles, Rockstar Presents Table Tennis


Unreal 3


가장 최근에 나온 언리얼 엔진인 Unreal 3는 DirectX 10 지원 PC와 Xbox 360, PlayStation 3 게임 콘솔을 위한 완전한 게임 개발 프레임워크에 가까웠습니다. Unreal 엔진의 한 개발자에 따르면 "Unreal 엔진은 모든면에서 손쉬운 컨텐츠 생성과 프로그래밍을 염두에 두고" 만들어 졌다고 합니다.

Rockstar의 RAGE처럼, Unreal 3는 몇 가지 '미들웨어 (내부 처리와 인터페이스의 중간적 기능을 하는 소프트웨어)' 적 성격의 외부 기술을 사용했기 때문에 상당히 다양한 기능을 지원할 수 있었습니다. 이 다양한 기술에는 멀티스레드 렌더링 시스템 (Gemini), 64비트 색상의 HDR 렌더링 파이프라인, Nvidia의 PhysX 물리 엔진에 의해 지원되는 다양한 물리 효과, particle effect (Cascade), 게임 엔진에 의해 만들어 지는 게임 플레이 동영상 (Matinee), 향상된 skeletal animation 시스템, 프로그래밍 효율을 높여주는 여러 기능이 포함되어 있었습니다.


Unreal 3 엔진은 언리얼 토너먼트 3 뿐만 아니라, 상당한 수의 게임에서 기본으로 사용되었습니다. (참고: 언리얼 토너먼트 3는 실제로 언리얼 토너먼트 시리즈의 4번째 게임이었고, 전체 언리얼 게임 시리즈의 8번째 게임이었습니다)
언리얼 토너먼트 3는 AGEIA사의 (현재는 Nvidia사의 엔진임) PhysX 엔진을 지원하는 AAA 등급의 게임중 가장 주목할 만한 (뛰어난 부분도 많았지만, 당시 AAA 게임이 상당히 적기도 했습니다) 게임중 하나였습니다.


엔진 출시일: 2007
엔진을 사용한 주목할 만한 게임: America’s Army 3.0, American McGee’s Grimm, Army of Two, Batman: Arkham Asylum, Brothers in Arms: Hell’s Highway, Bioshock 1 & 2, DC Universe Online, Duke Nukem Forever (*snicker*), Gears of War 1 & 2, Leisure Suit Larry: Box Office Bust, Mass Effect 1 & 2, Mirror’s Edge, Tom Clancy’s Rainbow Six: Vegas 1 & 2, Unreal Tournament 3


Euphoria


NaturalMotion사에 의해 개발된 Euphoria 엔진은 실시간으로 애니메이션을 생성하는게 가능한 애니메이션 엔진 이었습니다. 개발자에 따르면 Euphoria 엔진은 인공지능(AI), 생체역학, 물리학을 결합한 덕분에 래그돌 피직스(ragdoll physics) 보다 사람이나 생물의 움직임을 훨씬 더 자연스럽게 시뮬레이션 할 수 있었다고 합니다. 쉽게 말해 Adobe Flash의 키프레임 기반 애니메이션이나, 혹은 사람의 움직임을 가져와 애니메이션에 적용하는 모션 캡쳐와는 달리 위의 3가지 요소를 결합해 필요할때 마다 바로 바로 '실시간'으로 자연스러운 애니메이션을 생성할 수 있는 것이지요.

이런 이유 때문에 Euphoria 엔진은 뼈대 뿐만 아니라, 근육, 신경 체계까지 시뮬레이션 할 수 있습니다. 여기에 더해 인공 지능 모듈이 캐릭터의 움직임을 결정하기 때문에 미리 정의된 (사람이 일일히 만들고, 지정하고, 구성한 수동적인 형태의) 애니메이션 보다 훨씬 더 사실적인 움직임이 가능하게 됩니다.


위쪽 본문에서 언급되었던 것처럼 Rockstar사는 Euphoria 엔진을 RAGE 게임 엔진의 일부로 통합시켜 사용했지만, NaturalMotion사는 Euphoria 엔진이 미들웨어가 아님을 주장하며 강조하기도 했습니다.

Euphoria 엔진의 실제 동작 모습은 아래 영상을 통해 확인해 보실 수 있습니다.
기존의 래그돌 방식을 사용한 캐릭터와 Euphoria 엔진을 사용한 캐릭터가 동일한 상황에서 어떻게 반응하는지 비교함으로서 Euphoria 엔진이 어떤 장점을 지니는지 설명하고 있습니다. 한 번 살펴보세요. :)



NaturalMotion의 Euphoria 안내 페이지에서도 이 영상을 확인해 보실 수 있습니다.

엔진 출시일: 2007
엔진을 사용한 주목할 만한 게임: Grand Theft Auto IV, Star Wars: The Force Unleashed

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


 


최종 수정일:
서지스윈

서지스윈

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