로딩로딩중

게임 엔진

최근 수정 시각:

1. 개요2. 게임 엔진의 역사
2.1. 게임 소스 코드의 재활용: 1970년대 ~ 2.2. 게임 엔진 태동기: 1990년대 중반 ~2.3. 특정 기술/기능 라이브러리(미들웨어)의 등장: 1990년대 후반 ~2.4. 본격적인 게임 엔진의 등장: 2000년대 중반 이후
3. 게임 엔진 목록4. 포크(Fork)5. 미들웨어 종류/목록
5.1. 물리 엔진5.2. 사운드 엔진5.3. 모션5.4. 기타 미들웨어

1. 개요[편집]

비디오 게임의 개발에 기반이 되는 구성 요소들을 가진 필수 구성 요소들인 그래픽 엔진, 물리 엔진, 오디오 엔진, UI 시스템, 게임플레이 프레임워크 등이 잘 융합된 상태의 소스 코드와 그 기능들을 디자이너들이 사용 가능한 툴을 겸비한 게임 개발 소프트웨어를 일컫는 말이다. 태초의 게임 엔진이 나무도막이나 모래상자 수준이었다면 현대의 게임엔진은 자동차 생산 라인이라고 봐도 무방할 정도로 많은 기능을 제공한다.

2. 게임 엔진의 역사[편집]

2.1. 게임 소스 코드의 재활용: 1970년대 ~ [편집]

1990년대 중반 이전에는 게임 엔진이란 명칭도 정립이 되지 않았고 전문적인 게임 엔진도 없던 시절이라 엔진과 결과물이 명확하게 구분되어 연결되지 않는다. 이때는 게임엔진이라는 명확한 표현은 없었지만 일단 한번 게임을 성공적으로 개발할 경우 그 게임의 소스코드를 재활용하여 후속작이나 비슷한 작품을 만드는데에 재활용 하는 것은 지극히 당연한 일이었다. 비단 형태가 비슷한 게임이 아닐지라도, 콘솔게임은 물론이고 IBM-PC 호환기종에서는 얼마나 많은 하드웨어를 지원하느냐에 따라 제작사의 실력이 갈리기도 했었는데, 이러한 하드웨어 제어 엔진 부분의 코드를 공통적으로 돌려쓰는 관습 또한 존재했다.

이를테면 1991년작 Winter Challenge 게임과 동일 개발사의 1992년작 Summer Challenge 을 보면 윈터 챌린지에서 계절만 그대로 바꾼 게임이라는 것을 알 수 있다.

비슷하게 1993년작 정글 북 과 동일 개발사의 1994년작 라이온 킹의 영상을 비교해도 대충 어떤 느낌인지 쉽게 알 수 있을 것이다.

게임보이 컬러용 루리루리 마작과 에반게리온 마작은 서로 다른 게임임에도 통신 대전이 가능하여 큰 화제를 불러왔는데, 이것은 그야말로 게임의 모든 소스코드가 동일하고 그림만 다른 게임이라는 것의 증거이다.

이러한 소스코드 재활용을 나쁘게 생각하는 유저들도 있으나, 그것은 눈으로 보이는 것밖에 볼 줄 모르는 유저들의 옳지 않은 생각이다. 게임을 하나 개발하는데에는 막대한 금액의 투자가 필요하며, 비용을 회수하기 위해 들이는 노력을 가볍게 폄하해 버려서는 안된다. 그래픽만 바꾸는데에도 어마어마한 돈이 들고, 보이지 않는 부분을 수정, 개량하는 노력 또한 필요하기 때문이다. 더욱이 이렇게 코드를 재활용해도 1-2년만 지나면 또 새로운 기술이 나오고 그것을 적용해야 하는데 돈이 들어가기에 이는 결코 게으름에서 나온 요령이 아니다.

2.2. 게임 엔진 태동기: 1990년대 중반 ~[편집]

본격적으로 게임 엔진이라는 말이 등장하기 시작한 것은 고전 FPS 게임 과 그 후속작 둠 2 그리고 파생작인 헤러틱, 헥센 같은 게임들을 예로 들 수 있다. 이때에는 현대의 게임엔진의 모습과는 달리 하드웨어를 제어하고 그래픽을 렌더링하는 핵심 기반 소스코드나 미들웨어 정도의 수준인 것들도 많았으나, 거기서 다른 게임으로 확장 가능하다는 것 자체가 이미 훌륭한 게임엔진이며 뛰어난 기술력이다. 이때문에 게임엔진은 곧 기술력을 자랑하는 마케팅 용도로도 사용되었으며, 타사에 라이센스 하기도 하였다. 이러한 예를 일부 살펴보자면

빌드 엔진은 1993년부터 1996년까지 3D 렐름에서 개발한 둠 스타일의 2.5D로 단순한 테스트 형태의 FPS 게임 소스와 툴을 담고 있었다. 빌드 엔진은 개발 도중 타사에 라이센스 되어 몇 가지의 FPS 게임들이 출시되었는데 빌드 엔진을 사용한 게임 중 특별한 3개의 게임들[1]은 빌드 엔진 개발자와 해당 게임 개발자가 협업하여 빌드 엔진을 각 해당 게임에 특화하여 변형시켰다. 자세한 사항은 빌드 엔진 항목 참조

퀘이크 1, 2, 3의 id Tech 엔진은 본격적인 게임엔진의 사용 사례로 하프라이프를 비롯한 당대의 유명한 3D FPS 게임들은 대부분 퀘이크 엔진을 이용하여 만들어 졌다고 해도 과언이 아니다.

언리얼 엔진은 엔진 그 자체를 표방하고 나온 게임 엔진으로 기존의 다른 엔진들과 다른 유연한 구조와 뛰어난 에디터를 제공해서 소스 코드를 거의 손대지 않고서도 원본 FPS 게임에서 어느정도 모양새가 다른 게임들을 개발할 수 있었다. 언리얼 엔진 2 부터는 FPS/TPS 뿐만이 아니라 MMORPG 게임을 만드는데도 사용되었다.

리스텍 엔진은 쇼고 모빌 아머 디비전과 블러드 2를 시작으로 주피터 엔진으로 이름을 바꿔 F.E.A.R.를 거쳐 가장 최신 게임인 모르도르까지 이름을 이어오고 있다.

2.3. 특정 기술/기능 라이브러리(미들웨어)의 등장: 1990년대 후반 ~[편집]

1990년대 중반 이후부터 본격적으로 3D 게임의 시대가 개막되면서 3D 게임 프로그래밍은 기존에 2D 게임 개발과는 비교 조차도 하기 힘든 수준으로 개발 난이도가 급상승되었고 이런 한계를 극복하고자 소수의 개발자들이 연합하여 3D 그래픽 구현에 관한 다양한 라이브러리를 작성해 인터넷상에 무료 배포했으며 관련 서적들을 출판하고 서적의 부록CD로 해당 3D 그래픽 라이브러리를 포함하는 등 3D 게임 기술의 상향을 위해 노력했었다. 당시 유명했던 것은 John De Goes의 Cutting Edge 3D Game Graphics Engine이다.

이 중 3D 그래픽 라이브러리의 개발 수준이 높아지고 어느정도의 툴도 갖추면서 이것을 지속적으로 업데이트하며 게임 개발사들을 대상으로 판매를 개시(라이센스)하는 회사도 차차 등장하게 되었는데 당시 유명한 상용 그래픽 라이브러리로는 렌더웨어 그래픽스(RenderWare Graphics)와 넷임머스(Netimmerse) 등이 있었다.

여전히 오픈 소스에 무상으로 개발되는 것들도 있는데 오픈 소스 중 유명한 3D 그래픽 라이브러리로는 오우거3D(Orge3D)가 있다.

이런 그래픽 라이브러리는 순수하게 3D 그래픽을 처리하는 부분의 소스 코드만 있고(또는 그 그래픽을 처리하는 데 필요한 일부 툴도 포함) 나머지 게임에 필요한 모든 파트는 프로그래머가 직접 구현해야 하므로 이런 것은 게임 엔진이라고 불리지는 않고 그래픽 엔진이라고 불렸다. 하지만 당시는 게임 엔진 등 용어에 대한 정립이 명확하게 되어 있지 않았으므로 이것들이 게임 엔진으로 불리기도 했고 또는 특정 게임의 소스를 활용한 것을 가지고 그래픽 엔진을 활용했다고 부르기도 했다.

3D 그래픽 라이브러리만 존재했던 게 아니라 네트워크 라이브러리, 오디오 라이브러리, 물리 연산 라이브러리(현재 물리 엔진이라고 불리는) 등 다양한 분야별 라이브러리가 별도로 개발되고 라이센스 되어 여러게임에 활용된 바 있다.

현대에도 여전히 이런 전문분야 라이브러리, 이른바 미들웨어들이 다양하게 등장했는데 그래픽 컬링만 처리하는 Umbra, GI 라이트맵을 생생하고 동적 객체에 유사 GI 효과를 내주는 Beast, 유사 실시간 GI 효과를 만들어주는 Enlighten, 게임UI를 Flash로 처리해주는 Scaleform GFx, 다양한 나무를 생성해주는 SpeedTree, 캐릭터 애니메이션 처리를 위한 Morpheme, HumanIK, 페이셜 애니메이션과 립싱크 등을 위한 FaceFX, IKinema 등이 있으며, 뿐만 아니라 사운드 컬링/울림/공간감 등을 위한 오디오 엔진 FMOD, Wwise, 인공지능처리를 위한 A.I. Implant, Kynapse 등 분야별 다양한 라이브러리들이 현대에도 많이 제작되고 있다.

이런 라이브러리들은 개발하는 게임에 융합해서 사용하는 것 뿐만 아니라 현대에서 게임 엔진이라고 불리는 그 엔진들에도 융합되어 사용할 수 있으며 특히 언리얼 엔진에서 IPP(Integrated Partners Program)이라는 명칭으로 다양한 기술들이 통합되었다.

2.4. 본격적인 게임 엔진의 등장: 2000년대 중반 이후[편집]

현대의 게임 엔진은 완전한 통합 게임 개발 솔루션을 표방하며 2004년에 등장한 언리얼 엔진 3를 그 대표로 꼽을 수 있다. 언리얼 엔진 3는 엔진의 모든 기능을 커스터마이징이 가능하면서도 상호간에 유기적으로 융합되는 유연한 구조로 기술의 추가나 변형이 용이해 게임의 장르나 플랫폼에 관계없이 어떤 형태의 게임도 개발이 가능하며, 엔진 코드와 게임 코드의 완전한 분리, 필요한 기능만 선택적으로 사용 가능, 하나의 작업물에서 다양한 플랫폼으로 릴리즈, 모드 툴이나 더미 데이터의 포함 여부, 또는 별도의 모드 툴만 작성할 수 있는 한 빌드 시스템 등 하나의 엔진으로 게임 개발에 대한 모든 것이 가능함을 지향했다. 다만 미래지향적이며 새로운 개념이었던 만큼 첫 등장 후 초기 1~2년 간은 몇가지 문제점들을 가지고 있었으나 꾸준한 버전업을 통해 보완되어갔고 새로운 기술 및 툴이 도입되며 전반적인 성능이나 편의성이나 더욱 강화되었다.

언리얼 엔진 3는 프로그래머가 아닌 게임 디자이너 입장에서도 편의성을 크게 강조하기 위한 혁신성을 꾀하며 새로운 시도를 했다. 프로그래머 없이 아티스트가 셰이더를 작성할 수 있는 비주얼 머터리얼 셰이더 에디터, 프로그래머의 도움 없이 레벨의 스크립트를 작성할 수 있는 키스멧, 디자이너가 그래프 노드 기반으로 효과를 조합하는 포스트 프로세스 에디터, 사운드 큐 에디터, 실시간 조합형 파티클 에디터 캐스케이드, 실제 영화 감독의 기능 시뮬레이션 툴 마티네 등 시대를 앞선 여러가지 탁월한 기능들을 성공적으로 정착시켰다. 특히 2009년에는 UDK라는 것을 무료로 개방하고 부터 일반 사용자들에게도 게임 엔진의 저변을 확대하는 데에 크게 일조하였다.

언리얼 엔진 3는 그야말로 한 시대[2]를 지배하다시피 하며 유수의 명작과 대작 AAA급 게임부터 소규모 캐주얼, 인디, 모바일 게임까지, 게임의 규모, 장르, 플랫폼을 가리지 않고 여기도 언리얼, 저기도 언리얼, 너도 나도 언리얼인 세상을 만들어 버렸다. 언리얼 엔진 3를 사용했다고 이 엔진을 사용한 게임들의 느낌이 비슷하지도 않고 게임마다 완전히 다른 느낌으로 구현이 가능한데 초기에는 아웃풋이 다 비슷하다는 오해가 있기도 했다. 그 이유는 언리얼 엔진 항목의 언리얼 엔진 3에 대한 오해 항목 참고.

언리얼 엔진 3의 엄청난 성공 이후 기존 엔진들의 후속버전이나 신규로 등장하는 엔진들 역시 언리얼 엔진 3의 형태를 모방하여 비전 엔진 8, 토크 게임 엔진 어드벤스드, 유니진 엔진 등 다양한 엔진들이 등장했다. 그러나 워낙에 언리얼 엔진 3가 넘볼 수 없을 정도로 높은 수준이기도 하고 기타 엔진들을 사용할 메리트는 오직 가격 뿐이었는데 UDK가 등장하며 그 가격 정책에도 메리트가 사라져서 결국은 많은 게임 엔진들이 그대로 사장되었다. 언리얼 엔진 3의 엄청난 폭풍속에서 유일하게 살아남은 것은 유니티 엔진 뿐이다.

유니티3D는 구 언리얼 엔진의 복잡성과 라이센스 비용에 대비하여 메리트를 가지고 있었고, 빠른 프로토타이핑에 유리, 에셋 스토어의 도입, 풍부한 사용자 커뮤니티를 통한 생태계 생성을 통해 인디 게임, 저예산 개발사들에게 큰 인기를 끌었다. 보통 유니티를 경쾌하고 조작성이 좋은 경차에 비유한다면 언리얼은 다재다능한 SUV에 비유한다.

이후 언리얼 엔진 4는 기존의 언리얼 엔진 3보다 훨씬 강화된 다양한 기술/기능에 더해 유니티의 강점이었던 직관성을 도입하며 역시 빠르고 꾸준한 업데이트와 사용자 피드백을 도입했다. 또한 과거 미진했던 소규모 개발자들에게 어필하기 위해 오픈 소스화와 소스 코드를 기여하는 방식으로 모두가 개발에 참여하는 정책으로 선회하고 라이센스 정책도 크게 변화시켰다.

유니티 5는 기존의 유니티의 단점을 보완하여 그래픽적으로 개선을 꾀하고 여러가지 최적화 및 개선사항을 추진하였다. 기존의 유니티가 강세를 보이던 분야인 소규모나 저사양 모바일 게임에서는 여전히 강세이나 모바일이 고사양화 되어가면서 모바일에서도 언리얼 엔진의 입지가 점점 더 커지고, 언리얼 엔진의 라이센스가 소규모 개발사에게도 매력적이게 바뀜에 따라 언리얼 엔진이 과거 유니티의 독점 분야였던 저사양, 인디, 모바일에서도 경합 중.

또한 자체적인 게임 엔진을 만들어 사내에서 돌려 쓰는 경우도 있다. EA DICE프로스트바이트 엔진이 그 대표적인 예. 한국은 로우레벨 프로그래머의 부족[3]으로 자체 엔진을 만들어 쓰는 회사는 거의 없고, 넥슨데브캣 스튜디오, 검은 사막펄어비스 정도다. 이마저도 넥슨에서 전사적으로 공유되는 것이 아니라 데브캣 내에서만 쓰이는 중. 펄어비스도 마찬가지.

3. 게임 엔진 목록[편집]

게임 엔진은 많지만 회사가 자기들끼리만 쓰고 밖에는 공개하지 않는 것도 있어서 이게 모든 게임 엔진의 목록은 아니다.

4. 포크(Fork)[편집]

다른 엔진을 개량하는 것에서 출발하여 더이상 원래 게임 엔진의 코드가 남아있지 않을만큼 개조가 많이 되었을 때 독립적인 게임엔진의 상표권을 출원하는 경우가 있는데 이를 포크라고 부르기도 한다. 예를 들어 이 글을 보고 있는 나무위키는 원래 모니위키 엔진을 기반으로 한 리그베다 위키를 포크해서 탄생하였지만 리그베다위키와 나무위키 사이에 저작권 문제는 없다. 리그베다위키에서 나무위키로 넘어오면서 모니위키의 흔적이 남지 않을 정도로 코드를 완전히 새로 짰기 때문이다.

아래는 이렇게 개량의 과정을 거치면서 신규 엔진으로 포크된 사례들

  • id Tech 2 -> 골드 소스 엔진 : id Tech 2의 초기 버전인 퀘이크 1 엔진이 기원이긴 하나 퀘이크 엔진과는 엔진의 뼈대부터 다른데 그 이유는 밸브가 자체 개발한 엔진 기반에 퀘이크 1 엔진 코드의 일부를 적용한 것으로서 사실상 일반적인 id Tech 2(퀘이크 1, 2 엔진) 기반의 게임들과는 그 태생이 다르며 맵툴도 퀘이크 엔진의 공식 맵 에디터인 Radiant 대신 WorldCraft를 사용한다. 그래서 처음부터 타사에 라이센스가 가능하였다. 자세한 내용은 해당 항목 참조

  • id Tech 3 -> IW 엔진 : 콜 오브 듀티 개발 당시 id Tech 3의 후기 버전[5]리턴 투 캐슬 울펜슈타인 엔진을 개조하여 사용하였으며, 콜 오브 듀티 2 개발 시 콜 오브 듀티 1의 소스 코드를 바탕으로 새로운 엔진의 개발을 한 것이다. 파일 시스템 등 id Tech 3의 잔재가 여전히 약간 남아 있는 이유로 크레딧에 매번 이드 소프트웨어를 언급해주긴 하지만, 사실상 인피니티 워드의 자체 개발 엔진으로 분류되고 소유권(Proprietary)도 100% 인피니티 워드가 가지고 있다. 자세한 내용은 해당 항목 참조

  • id Tech 5 -> VOID 엔진 : id Tech 엔진의 개발사인 이드 소프트웨어의 모회사인 베데스다의 또 다른 계열사인 아케인 스튜디오에서 디스아너드 2를 개발하면서 id Tech를 바탕으로 고도로 커스터마이징한 엔진으로 PS3/Xbox 360 세대의 기술을 PS4/Xbox One 세대의 기술로 개량하였으며, 또한 전반적인 게임 시스템이 개조되었는데 스텔스와 전투를 위한 인공지능 시스템, 라이팅, 오밀조밀한 도시환경을 만들 수 있는 그래픽 렌더링을 비롯해 스토리 프레젠테이션 기능 등 모든 부분에서 중대한 향상이 이뤄졌으며 결국 id Tech 엔진 5의 80%이상을 갈아 엎고 새로운 엔진으로 탄생했다.

  • id Tech 5 -> STEM 엔진 : id Tech 엔진의 개발사인 이드 소프트웨어의 모회사인 베데스다의 또 다른 계열사인 탱고 게임웍스에서 디 이블 위딘을 개발에 id Tech 5를 개량해서 사용했는데 디 이블 위딘 2를 개발하면서 id Tech 5를 개량했던 디 이블 위딘의 엔진을 또 개량해서 만든 엔진으로 위의 VOID 엔진과 마찬가지로 기본적으로 PS3/Xbox 360 세대의 기술을 PS4/Xbox One 세대의 기술로 개량하였다.

  • 크라이엔진 1 -> 듀니아 엔진 : 파크라이 1 개발당시 유비소프트가 자금을 지원하면서 파 크라이의 IP와 소스 코드 전반에 관한 소유권을 갖게 되었는데 크라이텍은 이후 유비소프트와 결별했고 유비소프트에 남은 파크라이 1의 소스코드(크라이엔진 1)를 바탕으로 파크라이 2를 개발하면서 개량에 개량을 거듭해 원본 코드의 2~3%밖에 남지 않았고 그 결과물을 듀니아 엔진라는 신규 엔진으로 이름지었다. 이걸 이용해서 계속 파 크라이 시리즈를 개발중이다. 하지만 폴더 구조는 크라이 엔진과 듀니아 엔진이 아직도 유사하다.

  • 크라이엔진 3 -> 럼버야드 엔진 : 아마존닷컴이 자체 게임 엔진을 개발하기 위해 자금난에 처한 크라이텍에게 크라이엔진 3를 소스 코드 레벨에서 매입하고 그것을 바탕으로 새로운 엔진을 만든 것이 상기한 럼버야드 엔진이다. 초기 버전은 거의 크라이엔진 3 그대로였으나 버전업되면서 크라이엔진의 코드는 점차 삭제되고 새로운 코드로 대체될 것이라고 했는데 기본 툴 등 개발 파이프라인은 여전히 많은 비판을 받아온 크라이엔진의 형태를 그대로 유지하고 있어서 그리 좋은 평가는 받지 못하고 있다.

5. 미들웨어 종류/목록[편집]

미들웨어의 종류는 그 분류도 매우 다양하고 나와있는 제품들도 매우 많다.

목록은 지속 추가 바람.

이런 미들웨어들은 언리얼 엔진이나 유니티 엔진 같은 게임 엔진에 컴포넌트나 플러그인 형식 또는 완전히 결합하여 사용 가능하다. 예로 PhysX 물리 엔진은 언리얼 엔진과 유니티 엔진에 기본 물리 엔진으로 탑재되어 있고 Wwise 같은 오디오 엔진은 추가 플러그인으로 결합 가능하며, 전문 AI 엔진인 Kynapse 같은 것들도 언리얼 엔진 3에 결합해서 사용한 예(메달 오브 아너 등)가 있다.

5.1. 물리 엔진[편집]

해당 문서 참고.

5.2. 사운드 엔진[편집]

  • uFMOD

  • FMOD

  • Steam Audio

  • Wwise

5.3. 모션[편집]

5.4. 기타 미들웨어[편집]


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 RPG 만들기 문서의 r259 판에서 가져왔습니다. 이전 역사 보러 가기


[1] 자사의 게임 2개인 듀크 뉴켐 3D와 쉐도우 워리어, 타사의 게임인 블러드[2] 플스3, 엑스박스360 세대[3] 이 문제는 C# 스크립팅을 사용하는 유니티 엔진의 점유율 확대로 인해 더욱 심화되었다.[4] 앵그리 버드가 이 엔진을 사용하는 것으로 알려져 있다.[5] 퀘이크 3 엔진(초기) -> 퀘이크 3 팀 아레나 엔진(중기) -> 리턴 투 캐슬 울펜슈타인 엔진(후기)