게임 엔진의 비밀
게임에 생명 불어넣는다…할리우드 액션도 무색
최근 온라인 게임을 보노라면 마치 한 편의 액션 영화를 보는 것과 별반 차이가 없다. 자기 몸집만 한 칼을 부드럽고 자연스럽게 휘두르는 모습은 무협 영화를 연상시키고, 건물이 파괴되고 산이 무너지는 게임 영상은 할리우드 액션 영화라고 불러도 부족함이 없을 듯하다.
어떻게 저런 영상이 만들어지는 것인지 많은 사람들이 궁금해 한다. 일반적으로 잘 알려진 컴퓨터 그래픽(Computer Graphic, CG)과는 다르다. 게이머가 PC를 통해 직접 조종(Control)하기 때문이다.
여기에는 ‘게임 엔진’이라는 비밀이 숨어있다. 자동차에만 있는 엔진이 아니라 게임에도 엔진이 있어 우리가 상상했던 모든 움직임을 게임 속에서 구현해 낸다. 자동차의 심장이 엔진이라면 게임의 심장이 바로 이 ‘게임 엔진’이다. 움직이는 대상의 이름만 다를 뿐 게임 엔진은 게임에 숨을 불어 넣어주고 생명을 갖게 해준다.
게임 엔진이란
게임 엔진을 단순히 한 문장으로 정의내리긴 어렵다. 복합적인 의미를 담고 있기 때문이다. 간단하게 한 문장으로 표현하면 ‘게임을 개발하기 위한 도구’로 요약할 수 있다. 게임을 보다 빨리, 효율적으로 만들기 위한 수단이 바로 게임 엔진이다.
게임 엔진은 프로그래밍 언어의 발전과 궤를 같이 한다. 컴퓨터는 0과 1 두 가지 숫자만으로 구성된 ‘기계어’로 모든 연산을 수행한다. 반면 인간의 언어는 어떤가. 0과 1만으로는 담지 못하는 방대한 어휘가 세상에 존재한다.
어휘를 사용하는 인간은 0과 1만으로 구성된 기계어를 만들었다. 즉, 컴퓨터와 소통하기 위해 지속적으로 프로그래밍 언어를 개발, 발전시켰다. 베이직(basic)과 어셈블리, C+에 이르기까지 다양한 프로그래밍 언어가 발전에 발전을 거듭했다. 이 같은 프로그래밍 언어의 핵심은 한 가지. 보다 쉽고 간편하게 컴퓨터와 의사소통을 수행하는 것이다.
게임 엔진도 마찬가지다. 보다 쉽고 간편하게 게임을 개발하기 위한 일종의 언어라고 볼 수 있다. 게임에서 볼 수 있는 캐릭터나 나무, 돌과 같은 사물, 멋진 건축물을 어떻게 배치할 것인지 엔진을 통해 결정된다.
0과 1로 구성된 기계어로 게임을 만드는 것보다는 세련된 메뉴로 구성된 게임 엔진으로 게임을 만들면 시간적으로나 금전적으로나 비교할 수 없을 만큼 효율을 높여준다.
▲랜더링을 통해 입체감넘치게 구성된 게임 배경화면
게임 엔진의 보급
게임 엔진의 개념이 생겨난 것은 보다 사실적이 입체적인 3차원(three dimension, 이하 3D) 게임이 본격적으로 나오면서부터다.
80년대 후반까지는 평면 느낌의 2D(two dimension, 이차원) 게임 시대였다. 최근 널리 사용 중인 게임 엔진들의 뿌리가 되는 게임이 있었고, 이 게임을 개발하기 위한 특정 도구가 존재했다. 90년대 유행했던 ‘RPG(Role-Playing Game, 역할 수행 게임) 쯔꾸르(シク―ル)’가 대표적인 게임 제작 도구다.
RPG 쯔꾸르는 일본 엔터브레인(Enterbrain)이라는 업체가 내놓은 RPG 제작 도구로, 프로그래밍에 대한 지식이 없어도 비교적 간단하게 RPG를 만들 수 있도록 개발된 툴이다. 또 게임의 제목과 구성, 특정 지점에 도달할 때 발생하는 이벤트 등을 모두 간편하게 설정할 수 있도록 개발됐다. 1988년 첫 버전이 출시된 이후 꾸준히 개량된 버전이 출시됐으며, 국내에는 92년 소프콤이 'RPG 쯔꾸르'라는 명칭으로 수입해 소개됐다.
RPG 쯔꾸르를 넘어서 정말 게임 엔진이라고 부를 수 있는 시초는 따로 있다. 게임 전문가들은 92년 출시된 FPS(First-Person Shooter, 1인칭 슈팅 게임; 총싸움 게임으로 불리기도 한다) 게임 ‘둠(Doom)’ 개발에 사용됐던 엔진, 훗날 ‘이드테크’(id Tech)라 불리우는 엔진을 최초의 게임 엔진으로 꼽는다.
둠은 1993년 12월 이드 소프트웨어에 의해 발매된 1인칭 슈팅 게임. 멀티플레이를 지원(IPX)하는 최초의 FPS 게임으로 명성이 높았으며, 북미와 유럽에서만 1500만장 이상이 판매된 게임이기도 하다.
이드테크 엔진은 “게임 스토리는 포르노 스토리와 같다”는 정의를 내린 것으로 유명한 존 카멕(John D. Carmack II)이 개발해, 현재까지도 게임 엔진의 기초를 만드는 데 널리 사용되고 있다.
둠 개발 이전에도 엔진이라는 용어는 사용되고 있었다. 존 카멕은 현재에도 사용되는 게임 엔진의 기초를 마련했다. 이를 ‘통합 엔진’이라 부르는데, 게임을 구성하는 모든 요소의 구현을 가능케 만들었다. 둠 이전의 엔진들은 그래픽 랜더링만 처리해주는 프로그램을 뜻했다. 랜더링이란 평면인 그림에 그림자와 색상 등을 고려해 입체감을 가미, 실감나는 3차원 그래픽을 구현하는 기법을 뜻한다.
존 카멕은 이 같은 그래픽 랜더링 외에 게임을 개발하기 위한 보다 구체적인 요소를 엔진에 삽입했다. 이 통합엔진을 사용하면 게임에 등장하는 캐릭터와 각종 사물을 원하는 장소에 배치할 수 있었다.
2D 그래픽의 RPG를 자유자재로 만들 수 있었던 RPG 쯔꾸르가 스토리와 이벤트, 게임의 조건들을 설정할 수 있었다면, 카멕이 만든 이드테크는 이를 3D 버전으로 발전시킨 것은 물론 게임 속 세상까지 구현할 수 있었다.
▲RPG 쯔꾸르의 모습
게임 엔진의 등장으로 고사양 3D 게임의 개발이 쉬워졌다. 1인칭 레이싱 게임을 개발한다고 가정해보자. 브레이크를 밟으면 차가 멈추고, 핸들을 왼쪽으로 돌리면 차가 좌회전하게 된다. 게임 엔진이 없다면 프로그래머는 이 모든 과정을 하나하나 프로그래밍해야 한다. 그래픽 디자이너가 디자인한 자동차 핸들 그래픽과 자신이 프로그래밍한 소스를 일일이 대입시켜야 하는 불편한 과정도 감수해야 한다.
하지만 게임 엔진은 한번 개발해두면 이 같은 과정을 모두 생략할 수 있다. 자동차 핸들을 좌측으로 돌리면 좌회전 한다는 것은 누구나 아는 사실. 그러나 이를 게임 속에 구현하기 위해선 다양한 입력 코드와 좌표 값을 알아야 한다. 이 과정을 축소시켜 간소화한 것이 게임 엔진이다. 최근 출시되는 상용 게임 엔진들은 이처럼 다양한 상황을 연출하는 툴을 제공하고 있다.
초창기 게임 업체들은 각자 엔진을 개발해 사용했으나 현재는 상용 엔진을 구매해 게임을 개발하는 추세다. 엔진을 구매하는 것이 직접 개발하는 것보다 금전적으로나 시간적으로 이득이 되기 때문이다.
게임을 개발하는 데 최소 3년이 걸린다고 가정해보자. 이 때 반드시 염두에 두어야 할 부분이 있다. 3년이면 이 분야에선 강산도 변한다 했다. 3년의 개발 기간 동안 사용자들의 눈높이 또한 올라가기 마련이다. 요구되는 엔진 기술도 그만큼 높아졌다.
이 부분을 해소하고자 개발된 것이 상용 게임 엔진이기도 하다. 상용 엔진은 엔진 업체들이 지속적으로 기술을 업그레이드해주기 때문에 게임 개발 업체들도 트렌드에 맞춰갈 수 있다는 장점이 있다. 업체들은 상용 엔진 구입 후, 자사가 개발하고자 하는 게임에 맞게 엔진을 개량하는 작업을 거쳐 사용하는 편이다.
▲미들웨어 스피드트리 툴(SpeedTree tool)의 모습
멀티 기능을 가진 통합형 게임 엔진
게임 엔진은 단 하나의 프로그램으로 구성되지 않는다. 여러 개의 유용한 기능이 담긴 프로그램들이 엔진을 뒷받침하고 있다. 이 같은 보조적인 프로그램들은 미들웨어(middleware)로 불린다. 게임 엔진이 통합 엔진으로 불리는 이유도 미들웨어를 여럿 탑재하고 있기 때문이다.
미들웨어란 특정 기능에 특화된 보조 프로그램이다. 가령 특정 미들웨어의 경우 게임에 등장하는 각종 나무들의 랜더링 효과를 빠르고 간단하게 할 수 있도록 도와준다. 이용자 인터페이스(User Interface)만 별도로 처리해주는 미들웨어도 있고, 사물과 사물이 부딪혔을 경우 실제와 똑같은 물리적 효과를 연출해주는 미들웨어도 따로 사용하는 식이다.
특정 게임 엔진을 통해 게임을 개발하고자 하는 업체들은 자사 게임의 특징에 맞는 엔진과 미들웨어를 선별하는 과정을 거치게 된다. 가령 전 세계적으로 폭발적인 인기를 끌었던 레이싱 게임 ‘그랜드 세프트 오토’(Grand Theft Auto, 이하 GTA)의 경우, 내추럴모션(Natural Motion)이라는 미들웨어를 사용해 주인공의 자연스러운 움직임을 연출했다.
이처럼 현재의 상용 엔진은 여러 개의 미들웨어를 탑재하고 있다. 그렇다고 해서 게임 속의 모든 움직임과 그래픽 효과, 사물 등을 만들 수 있는 그야말로 ‘만능’인 게임 엔진은 아니다. 게임 개발업체들이 상용화 엔진을 통해 큰 그림을 그리고 난 뒤 각기 기획한 게임의 특성에 맞게 게임에 삽입되는 특정 요소를 개발해야 게임 시나리오, 게임 시스템, 기획 의도들을 온전히 녹여낼 수 있기 때문이다.
곽경배 객원기자 / 데일리게임 기자
(desk@dailygame.co.kr)
곽경배 기자는 온라인 매체인 데일리게임 취재팀장으로 국내외 게임 분야는 물론 IT 업계까지 두루 살필 수 있는 국내 몇 안 되는 전문가로 꼽힌다.
Copyright ⓒ 첨단 & Hellot.net