Nebula Philosophy - Nebula is an operating system for games

여기에서는 네뷸라 엔진이 다른 엔진과 구별되는 특징이 무엇이며 게임 엔진으로서 네뷸라 엔진이 어떻한 것들을 처리하고 있는지에 대해서 이야기하고자 합니다. 단, 자세한 기능들에 대한 이야기가 아니라 큰 범주내에서의 기능들의 분류에 대해서 살펴 보고자 합니다.

RadonLabs에서는 네뷸라 엔진을 게임 제작을 위한 OS(Operating System)이라고 이야기하고 있습니다. 먼저 게임 엔진과 게임 프레임 워크와의 관계에 대해서 살펴 보겠습니다.

OS(operating system) 없이 컴퓨터를 사용하는 사람은 없습니다. 그리고 OS만 설치해서 사용하고 있는 사람도 없습니다. 우리가 컴퓨터를 사용해서 원하는 일을 하기 위해서 다양한 프로그램(Application)이 필요합니다. 이러한 프로그램들은 하고자 하는 일에 따라 매우 다양합니다. OS는 기본적인 목적은 이러한 프로그램들을 사용하기 쉬운 환경을 사용자에게 제공하는 것입니다. 이렇게 보면 OS와 응용 프로그램의 관계를 다음과 같이 볼 수 있습니다.

  • Game Engine-> Operating System
  • Game Framework -> Application
게임 제작을 위한 모듈을 통칭해서 게임 엔진이라고 이야기하지 않고 게임 엔진과 게임 프레임 워크를 분리하고 있다는 사실에 주목하기 바랍니다.

네뷸라를 게임을 위한 OS라고 이야기하는 것은 일반적인 OS에서 제공하는 메모리 관리, 파일 시스템등의 서비스를 네뷸라 엔진 역시 제공하고 있다는 점입니다.

네뷸라 엔진의 기본적인 목적은 보다 쉬운 게임 개발을 위한 환경을 제공하는 것이지, 특정한 게임 개발을 위한 모든 툴과 모듈을 제공하는 것이 아닙니다. 다른게 이야기하자면 RAD 툴이 아니라는 이야기입니다.
게 임 제작에 필요한 툴과 모듈은 만들고자 하는 게임의 장르(RPG, FPS 등)에 따라서 많은 차이가 있습니다. 이야기할 필요도 없는 것이지만, 공개된 퀘이크 엔진이 FPS 게임을 만드는데에는 적합한 툴과 모듈을 가지고 있지만 이 엔진으로 던전 시즈와 같은 게임을 만들려면 많은 부분을 수정하고 필요한 툴을 새로 작성해야 할 것입니다. 즉, 특정한 장르에 맞추어서 게임 엔진을 개발하게 되면 해당 장르의 게임들을 개발할 때에는 강력한 성능을 발휘할지 모르겠지만 다른 장르의 게임 개발에는 적합하지 않다는 것입니다. (하지만 메쉬(mesh) 렌더링이나 텍스쳐 파일의 관리등과 같은 상대적으로 로우 레벨에 해당하는 부분은 범용적인 코드의 작성을 고려할 수 있습니다.)

네뷸라 엔진은 특정 장르의 게임에 상관없이 재사용할 수 있는 코드 베이스로서의 엔진이라는 것입니다. 이러한 이유로 네뷸라 엔진은 엔진의 코어 부분과 게임 프레임워크 부분을 엄격히 구분하고 있으며, 코어 부분이 바로 게임 장르에 상관없이 범용적으로 재사용 가능한 코드의 집합입니다. 예를 든다면 Direct3D와 같은 렌더링 API나, 오디오 API등의 로우 레벨의 처리를 담당하는 코드들이 여기에 해당하는 것들입니다.

네뷸라 엔진은 OS 시스템에 해당하는 부분의 모듈을 제공하는 것이 특징입니다. 다르게 이야기 하자면 이 부분에 해당하지 않는 부분은 사용자가 직접 작성해야 하는 것을 의미합니다. 게임 개발을 위해서 모든 팀원들이 윈도우즈는 공통적으로 설치하겠지만 윈도우즈를 설치한 다음 프로그래머는 VC와 같은 컴파일러를 설치하고 그래픽 디자이너는 포토샵이나 3DS Max등과 같은 그래픽 툴을 설치하는 것과 같은 이치입니다.

같은 RPG의 장르이더라도 던전시즈NWN(NeverwInter Nights)은 다소 차이는 있겠지만 공통된 장르라는 특성상 유사하게 구현할 수 있는 부분이 많을 것입니다.(물론 실제로는 전혀 다른 제작사의 개발자들에 의해 개발되었으므로 같은 부분이 없겠지만 말입니다)  이렇게 (모든 게임에 범용적으로 사용할 수는 없더라도) 유사한 장르의 게임들에는 재사용이 가능한 부분들의 집합을 생각해 볼 수 있는데 이것이 바로 일명 코드 네임 Mangalore로 통칭하고 있는 Game Framework으 로 Mangalore에는 게임 객체를 위한 Entity 시스템이나 충돌 검출을 위한 모듈, 물리 엔진, 메시지 시스템등을 포함하고 있습니다. Mangalore에 대해서는 추후에 (기회가 된다면) 다른 지면을 통해서 자세하게 언급할까 합니다.

장르나 특징에 상관 없이 모든 게임 제작에 적합한 게임 엔진은 누구나 원하는 것일지는 모르겠지만 현실과는 거리가 멀어 보입니다.

네뷸라의 구조에 관한 글은 여기에서 볼 수 있습니다.
(계속...)

by kimsama | 2005/08/21 14:36 | Nebula Croquis | 트랙백 | 핑백(1) | 덧글(0)

트랙백 주소 : http://kimsama.egloos.com/tb/1102954
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at East Agent's Blo.. at 2008/12/28 15:08

... Nebula Philosophy - Nebula is an operating system for games - Nebula 엔진과 Mangalore 게임 프레임워크에 대한 꽤 오래된 글... 올리고 보니 생각나는 것 하나. 며칠 전 ... more

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶