특집기사 > 전체

[테크니컬 컬럼] 제1부 게임비주얼 컨셉 아트에 대해 알아보기

/ 2

※ 네트파워가 게임메카에 통합되면서 이제부터는 게임메카에서 네트파워 인기칼럼을 연재합니다. 네트파워에 보내주신 만큼 앞으로도 변함없는 관심을 부탁드립니다.

 

 

3D 게임엔진 ‘G-Blender’를 개발한 현호진이라고 합니다. 이번 달부터 3D 렌더링 엔진에 대해 이야기하고자 합니다. 게임엔진이라는 단어는 게임을 즐기는 분들이라면 이미 친숙한 단어일 것입니다. 아마도 ‘퀘이크 엔진’이나 ‘언리얼 엔진’ 등은 한번씩 들어보셨겠죠? 그리고 요즘 게이머들에게 “A란 게임은 B란 엔진으로 만들었어”, “B 엔진으로 C 게임도 만들었다며?” 등 어떤 엔진으로 게임을 만들었는가를 얘기하는 것을 들은 적도 있습니다. 그렇다면 게임에 문외한인 친구가 여러분에게 “게임엔진에 대해서 자세히 설명해줄래?” 혹은 “게임엔진이란 것이 게임에서 어디에 쓰이는 거야?”라고 물어본다면 어떻게 대답하겠습니까?

게임엔진의 역사

1990년대 중반, 제가 실시간 3D 그래픽을 만들겠다고 선동렬 선수 방어율보다 더 낮은 학점을 받으면서 컴퓨터와 씨름하던 시절이 있었습니다. 그때는 지금처럼 그래픽 카드에서 3D 연산을 담당하는 것이 아니라 CPU가 모든 것을 처리했던 시절이었죠. CPU도 486과 펜티엄이 공존하던 시절입니다. 윈도우즈 95라는 운영체제가 탄생하고, OpenGL1이라는 것이 처음 탑재됐죠. DirectX2는 아마도 탄생하고 있었을 겁니다. 게임엔진이라는 단어가 생겨난 것이 이때쯤 아닌가 생각되네요.

재미있는 것은 3D 게임엔진이란 단어가 3D FPS(일인칭 슈팅) 게임인 <둠>과 <퀘이크>를 제작하기 위해 개발한 소프트웨어나 툴에서 유래했다는 사실입니다. 당시엔 3D 게임을 제작할 수 있는 환경이라는 것 자체가 아주 획기적이었고, 다른 게임 개발사에서도 퀘이크 엔진을 도입해 3D FPS 게임을 제작하게 되면서 널리 퍼지기 시작한 것이죠.

▲ 퀘이크

▲ 퀘이크 엔진으로 개발된 튜크뉴캠

▲ 퀘이크 엔진으로 개발된 하프라이프

▲ G-Blender 엔진으로 개발된 풍류공작소(좌측)와 레드카드(우측)

이렇게 게임의 개발을 돕는 소프트웨어와 툴들을 미들웨어(Middleware)라고 하는데, 퀘이크의 개발사인 ID소프트에서 퀘이크를 개발하기 위해 개발한 미들웨어를 퀘이크 엔진이라고 이름 붙인 것이지요. 그리고 그 이후에 3D 엔진이라고 하면 3D 게임을 개발하기 위해 3D 그래픽을 실시간으로 처리되는 것을 도와주는 미들웨어를 지칭하게 된 것입니다. 엔진이란 말의 기원은 더 많이 있겠지만 적어도 3D 게임엔진이란 말의 기원은 퀘이크에서 나왔다고 해도 과언이 아닐 것입니다.  

게임엔진의 의미

여러분들이 게임을 설치할 때 컴퓨터에 꼭 설치해야 하는 소프트웨어에는 어떤 것이 있을까요? 처음부터 생각해봅시다. 우선 운영체제가 있어야겠죠? 그리고 최신 그래픽 카드 드라이버를 설치합니다. 마지막으로 DirectX 최신 버전을 설치합니다. 이렇게 준비하면 게임을 설치해 플레이하는 데 무리가 없을 것입니다.

운영체제는 컴퓨터를 움직이는 소프트웨어입니다. 다시 말하면 CPU와 메인보드, 그리고 RAM을 제어하고, 다양한 입출력, 즉 메인보드와 붙어있는 모니터와 키보드, 마우스, 그리고 DVD 등을 제어하는 소프트웨어입니다. 당연히 메인보드에 달린 그래픽 카드도 운영체제(윈도우즈 XP)가 제어합니다. 그런데 그래픽 카드의 개발사들은 계속 최신 기술로 무장한 그래픽 카드를 내 놓고 있습니다. 그렇다면 새로운 기술에 대한 준비가 안된 운영체제가 어떻게 최신 기술을 탑재한 그래픽 카드를 제어할 수 있을까요? 그 해답은 그래픽 카드와 함께 배포되는 그래픽 카드 드라이버에 있습니다. 그래픽 카드 드라이버가 최신 그래픽 카드를 제어하는 것이지요. 그래픽 카드 드라이버는 그래픽 카드의 운영체제라고 설명할 수 있겠네요.

그렇다면 DirectX는 어떤 역할을 할까요? 비유하자면 운영체제(Windows XP)와 그래픽 카드 드라이버의 대화를 통역해주는 통역사 정도가 될 것입니다. 그리고 마이크로 소프트(이하 MS)에서는 DirectX를 최신 하드웨어에 발맞춰 계속 업그레이드해 배포하고 있습니다. 통역할 수 없는 수준으로 기술이 발전하면 통역사도 업그레이드해야겠지요. ^^;

지금까지 이야기한 것을 결론 짓자면 ‘3D 게임엔진은 실시간 3D 그래픽 처리를 도와주는 미들웨어’라고 말할 수 있습니다. 그런데 앞서 설명했던 그래픽 카드 드라이버와 DirectX도 미들웨어에 속하지요. 그럼 여기서 이런 것들도 엔진일까요? 제 주관적인 관점으로는 넓은 범위에서의 엔진이라고 해도 상관없어 보입니다. 그렇지만 앞으로 제가 이야기할 엔진은 보다 기반기술에 가까운 엔진이라고 이해하면 되겠습니다.

3D 게임엔진의 목적

앞으로 제가 여러분에게 설명하고자 하는 3D 게임엔진의 목적은 게임 개발사들이 개발하는 3D 게임과 이전에 설명한 DirectX, 그래픽 카드 드라이버, 그래픽 툴 등과 서로 쉽게 대화할 수 있도록 도와주는 매개체라고 이해하시면 됩니다.

이 매개체는 3D 그래픽 툴도, 소프트웨어도 될 수 있습니다. 유형에 상관없이 목적은 하나입니다. 좀 더 쉽게, 좀 더 빠르게, 멋지고 안정된 3D 게임을 개발하도록 도와주는 것이죠. 예를 들면 게임 개발자가 복잡한 알고리듬을 쉽게 계산할 수 있도록 도와주고, 좀 더 빠르게 폴리곤을 화면에 그릴 수 있도록 도와주고, 좀 더 멋있고 실감나게 표현할 수 있도록 도와주는 개발도구라고 이해하면 됩니다.

 

※ 알고리듬: 어떤 문제를 해결하기 위해 입력된 자료를 토대로 원하는 출력을 유도해내는 규칙의 집합.

게임엔진, 이제 시작일뿐입니다

게임 개발사에서도 엔진이란 단어가 아주 많은 의미로 쓰여지고 있습니다. 같은 단어를 서로 다른 의미로 이해하고 있을 때 커뮤니케이션에서 문제가 발생할 수 있습니다. 그래서 제가 생각하는 엔진의 의미를 설명하는 시간을 가져봤습니다. 앞으로 게임엔진에 대해 6부 정도 분량으로 나눠서 설명하고자 하는데, 너무 깊숙하게 들어가진 않겠지만 그래도 ‘게임엔진이란 이런 것이다’, ‘3D 게임을 개발할 때 게임엔진을 이렇게 고려해야겠구나’, 그리고 ‘게임엔진 개발은 이러한 방향으로 공부하면 되겠구나’ 정도의 정보를 얻어갔으면 좋겠습니다.

이 기사가 마음에 드셨다면 공유해 주세요
게임잡지
2006년 8월호
2006년 7월호
2005년 8월호
2004년 10월호
2004년 4월호
게임일정
2025
11