[테마특강]게임엔진

관련 통계자료 다운로드 드림 3D 클라이언트 동작 흐름

◆김현빈 박사 hbkim@etri.re.kr

 

 컴퓨터 그래픽스 및 가상현실 기술의 발전과 하드웨어의 발전으로 과거에는 고가의 전용 장비에서만 가능했던 실시간 고품질 영상 생성이 일반 PC상에서도 가능하게 되면서 3차원 가상쇼핑몰이나 3차원 가상박물관 등의 서비스가 속속 등장하고 있다. 특히 인터넷의 보급에 따라 누구나 네트워크를 통해 이러한 서비스 접근이 용이해졌으며 온라인게임이 네트워크 활용의 핵심 축으로 부상하고 있다.

 

 ◇게임엔진이란 무엇인가=게임 제작을 위한 각종 노하우와 기술 그리고 하드웨어를 제어하기 위한 각종 API의 사용법 등은 게임 하나만을 위해서만 사용되고 폐기되는 것이 아니라 같은 게임 개발사의 다른 게임의 제작에도 계속적으로 보완 활용된다. 게임엔진이란 이러한 게임 제작에 자주 활용되는 개발 노하우나 기술, 하드웨어 API 사용법 등을 쉽게 활용할 수 있는 소프트웨어 라이브러리나 모듈의 형태로 구현해 놓은 것을 말한다.

 ◇게임엔진의 개발 동향=일반적으로 게임엔진은 다수의 게임 콘텐츠를 개발하는 과정에서 축적된 노하우의 유지 보수 및 집대성 과정에서 개발되나 최근에는 쿼크(Quake) 게임엔진이나 언리얼(UnReal)엔진과 같이 게임 콘텐츠보다는 게임엔진 그 자체가 유통되는 사례도 나타나고 있다.

 이는 게임업체로 하여금 안정되고 검증된 게임기술을 토대로 보다 재미있는 게임의 개발에 집중할 수 있도록 하는 효과를 가져오고 있다.

 또 단순히 게임 개발과 관련한 노하우나 기술, 하드웨어 제어 API 기술뿐 아니라 게임 그래픽 데이터의 모델링에서부터 게임의 완성과 패키징까지 전 과정을 하나의 통합 환경으로 관리해주는 개발 지원 도구, 전문 프로그래머가 아니라도 게임 환경을 쉽게 구성하고 게임 로직을 적용할 수 있도록 해주는 각종 게임 저작도구가 게임엔진에 포함되어 보다 편리한 게임 개발 환경을 구축하는 사례도 속속 등장하고 있다.

 특히 환상적이고 사실적인 영상을 빠르게 생성해야 하는 게임의 특성상 그동안 3차원 게임은 플레이스테이션이나 X박스, 게임큐브 등을 비롯한 게임 전용 그래픽 처리기를 탐재한 콘솔 기기를 중심으로 개발되어 왔으나 PC 환경에서도 CPU보다 속도가 빠른 하드웨어 그래픽 처리 장치가 일반화됨에 따라 환상적인 3차원 PC 게임으로 기술 개발 추세가 변화하고 있다.

 최근에는 이러한 고성능 실시간 3차원 CG 기술과 발전된 네트워크 기술을 바탕으로 한 3차원 PC게임, 3차원 PC 온라인게임이 속속 출시되고 있으며 CG 기술과 네트워크 기술이 결합되어 활용되는 대규모 사용자 3차원 온라인 게임(3D MMOG)의 제작도 활발하게 진행되고 있는 상태다.

 ◇게임엔진의 기술 종류

 △렌더링 엔진

 우선 PC 기반의 3차원 게임을 제작하기 위해서는 보통 디렉트X나 오픈GL과 같은 3D 그래픽라이브러리(graphic library)를 이용해 그래픽 가속 하드웨어의 기능을 활용하는 것이 일반적이다.

 이러한 그래픽 라이브러리를 이용할 경우 다각형으로 구성된 게임 환경을 주어진 광원 조건과 카메라 조건, 물체 표면 속성에 따라 화면에 출력할 수 있으므로 3차원 게임 제작에 요구되는 기본적인 3차원 객체 출력 기능을 수행할 수 있어 이를 통한 게임 구현이 가능하다.

 하지만 게임 제작과정에는 그래픽 라이브러리가 제공하는 단순한 기능 이외에 보다 많은 렌더링 기능이 요구된다.

 3차원 렌더링 엔진은 그래픽 디자이너에 의해 작성된 각종 게임 그래픽 데이터를 게임 진행 상황에 따라 게임 환경 내에서 적절히 변형, 이동시킨 후 빠르게 화면에 출력해주는 엔진을 말한다.

 △애니메이션 엔진

 애니메이션 엔진이란 게임 중에 등장하는 각 게임 캐릭터의 동작을 생성하고 제어하는 엔진을 말한다. 컴퓨터 그래픽스 및 가상현실 기술의 발전으로 인간형 캐릭터의 사실적인 동작을 빠르게 생성하는 것이 가능해지고 있으며 이러한 기술을 활용한 게임의 제작, 이러한 기술이 채택된 애니메이션 엔진의 개발이 점차 활발해지고 있다.

 최근 3차원 게임에서 많이 활용되고 대부분의 애니메이션 엔진에서 제공되는 캐릭터 동작 제어 기법은 모션 캡처 정보를 이용한 캐릭터 애니메이션 방법이다.

 이 방법은 숙련된 디자이너의 단순 반복 작업으로 캐릭터의 동작을 생성하던 과거의 방법과는 달리 실제로 인간이나 동물의 각 관절에 마커나 센서를 부착하여 실제로 동작을 취하게 하고 각 관절의 위치와 회전 값을 기록해 그 정보를 그대로 게임 캐릭터의 애니메이션에 활용하는 방법으로 빠르고 쉽게 사실적인 동작을 생성할 수 있다는 특징을 갖고 있다.

 △사운드 엔진

 인간은 두 귀를 사용해 어떤 소리를 들었을 때 그것이 3차원 공간상의 어느 지점과 방향으로부터 들려오는지 감지할 수 있고 그 음이 속한 음향적 환경, 예컨대 실내, 야외, 강당, 동굴 등을 구분할 수 있다.

 3D 사운드란 음원이 발생한 공간에 위치하지 않은 청취자가 음향을 들었을 때 방향감, 거리감 및 공간감을 지각할 수 있도록 음향에 공간 정보를 부가한 음향을 말한다. 음향 재생장치를 통해 3D 사운드를 들으면 현장에 있지 않아도 현장에서 듣는 것과 같은 효과를 얻을 수 있다.

 3D 사운드 엔진이란 3D의 현장감있는 음향을 구현하는 시스템이나 기술을 뜻한다. 과거의 3D 사운드는 다수의 스피커를 이용하여 스피커마다 고유의 소리를 출력하는 방법으로 입체음을 구현했지만 최근에는 하드웨어적인 디지털 가속 기술로 2개의 스피커에서도 입체음을 낼 수 있다.

 △서버 엔진

 일반적으로 온라인게임에서 게임 서버는 서로 다른 특성을 갖는 수천명에서 수만명에 이르는 클라이언트들과 메시지를 주고 받으며 받은 메시지들을 실시간으로 처리, 그 결과를 관련 클라이언트들에게 되돌려줘 모든 클라이언트들이 일관된 데이터들을 갖도록 해줘야 한다.

 그리고 게임 서버들은 24시간 365일 중단 없이 서비스를 계속해야 하므로 무엇보다도 안정적으로 동작해야 하며 서버의 과부하, 허용치 이상의 네트워크 지연 등으로 인한 게임 성능 저하를 막아 서버의 성능을 최적으로 유지시킴으로써 사용자들의 불편을 최소화해야 한다.

 서버엔진에서는 가장 핵심적인 기능으로서 클라이언트와 서버간의 효율적이고 안정적인 네트워킹을 위해서 중간단계에서 필요한 각종 필요한 작업들을 처리해주는 기능을 들 수 있다.

 △게임 인공지능

 게임에서의 인공지능은 등장 캐릭터의 지능적인 행동을 구현함으로써 게이머가 조작하지 않는 NPC(Non-Player Character)들의 움직임을 자연스럽게 제어하거나 게이머의 상대 역할 또는 보조자 역할을 한다. 뿐만 아니라 애니메이션의 동작을 제어할 수도 있으며 캐릭터가 목적지까지 갈 수 있는 최적의 이동경로를 찾아주기도 한다.

 게임에서의 인공지능을 구현하기 위해서는 한두가지 방법만을 사용하기보다는 게임의 수준이나 장르에 따라 몇가지 방법을 조합하여 구현하는 것이 일반적이다.

 EA사의 심시티 시리즈로 유명한 심즈(The Sims)는 윌라이트(Will Write)가 개발한 것으로 일상적인 실생활을 게임으로 옮겨놓은 것으로 각 캐릭터의 욕구가 있어서 그것들을 잘 충족시켜줘야 순조롭게 플레이할 수 있다.

 △기타

 맵 에디터는 게임에 사용될 게임환경을 저작하는 도구로서 게임에 무대가 되는 지형을 생성하고 게임에 사용되는 다양한 건물이나 주인공 등의 오브젝트(object)를 배치하고, 게임을 진행하는 스토리를 눈으로 보면서 손쉽게 제작할 수 있는 프로그램이다. 뿐만 아니라 게임에서 나타나는 오브젝트 혹은 지형의 여러가지 속성을 설정하여 게임에 그 값을 반영토록 하는 기능도 제공한다.

 최근의 게임들이 게임 진행적인 측면에서 더욱 복잡해지고 그래픽적으로 2D에서 3D로 넘어가면서 게임 환경이 더욱 복잡해지고 있으며 이런 이유로 맵 에디터의 도움 없이 디자이너의 직관으로 게임 환경을 구성하기는 불가능해지고 있다.

 ◇게임엔진의 발전 방향=워크래프트3를 하면서 이런 게임을 과연 어떻게 만들었을까. 한번쯤은 생각해 보았을 것이다.

 실제로 최근 2년 동안 국내 온라인 3D게임은 그 수가 급속도로 늘었으며 지금도 계속 증가하고 있다. 특히 PS2나 X박스와 같은 콘솔게임의 네트워크 지원에 대한 기대로 인해 몇몇 온라인 게임이 컨버전 작업을 진행 중이어서 곧 있을 또 한번의 대변혁이 기대된다.

 최근에는 CPU보다도 빠르게 동작하는 그래픽 가속 하드웨어의 일반화, 고성능 그래픽 기능을 제공하는 게임 전용 콘솔 기기의 등장과 PC의 계산 능력의 발전으로 인해 각종 비정형체의 제어기법 및 물리 시뮬레이션기법이 게임 개발에 많이 활용되고 있다.

 현재 가상 캐릭터의 동작제어 분야에서는 캐릭터의 행동 양식 결정, 외부 입력에 대한 캐릭터의 상호작용 제어 등 캐릭터의 단순 동작뿐만 아니라 캐릭터 주변의 환경 변화와 사용자의 입력에 대해 자동적으로 다음 행동을 결정하고 이에 맞는 동작을 생성할 수 있는 새로운 기법이 활발하게 연구되고 있다.

 이러한 기술이 향후 애니메이션 엔진에 채택될 경우 게임 개발자는 보다 쉽게 게임 환경을 구성할 수 있고 사실적인 동작을 취하는 게임 캐릭터를 게임에 등장시킬 수 있게 될 전망이다.

 

<약력>김현빈 박사-한국전자통신연구원(ETRI) 가상현실연구부장

 △85년 중앙대 졸업 △96년 일본 오카야마대학 전산통계학 박사 △84∼98년 시스템공학연구소 재직 △2001년 국가과학기술자문회의 전문위원 △현재 한국전자통신연구원(ETRI) 가상현실연구부장, 한국정보처리학회 및 디지털애니메이션연구회 회장, 컴퓨터게임학회 부회장