{{위키데이터 속성 추적}}
{{출처 필요|날짜=2007-10-04}}
[[파일:BgeCarSc.jpg|섬네일|[[블렌더]] 게임 엔진을 사용하여 레이싱 게임을 개발하고 있는 모습]]
'''게임 엔진'''({{llang|en|game engine}})은 [[비디오 게임]] 같은 실시간 그래픽 표시 기능을 갖춘 상호 작용 응용 프로그램을 구현하는 핵심 [[소프트웨어]] 구성 요소를 말한다. [[비디오 게임 개발|컴퓨터 게임 개발]]에 바탕이 되는 기술을 제공하여 개발 과정을 단축시켜 줄 뿐 아니라, 게임을 다양한 [[플랫폼]]에서 실행할 수 있게 해주기도 한다.<ref>*[[게임브리오]] 엔진이나 [[렌더웨어 엔진]] 등이 여러 플랫폼을 지원한다.</ref> 특히 게임 엔진은 재사용을 염두에 두고 있기 때문에, 하나의 게임에 종속되지 않고 여러 종류의 게임에 쓰일 수 있도록 개발된다.

게임 엔진이 제공하는 주요 기능으로는 [[2차원 컴퓨터 그래픽스|2차원 그래픽]]이나 [[3차원 컴퓨터 그래픽스|3차원 그래픽]]을 출력하기 위한 [[렌더링 엔진]]('렌더러'), [[물리 엔진]], [[충돌 검출]]과 충돌 반응, [[소리|사운드]] 출력, [[스크립트]] 작성, [[애니메이션]], [[인공 지능]], [[네트워크]], [[스트리밍]], 메모리 관리, [[스레드 (컴퓨팅)|쓰레딩]], [[씬 그래프]] 등이 있다.

== 개요 ==
게임 엔진은 게임 소프트웨어의 구성에 필요한 소프트웨어 구성 요소를 재사용할 수 있게 만든 것이다. 엔진은 개발에 필요한 기능을 즉시 사용할 수 있도록 제공하여 개발의 단가와 복잡도를 줄여주고, 제 일정에 복잡한 게임을 출시할 수 있게 해 준다. 이것은 [[게임 업계]]에서 매우 중요한 일이다.

게임 엔진은 유연하고 재사용 가능한 소프트웨어 환경을 제공해주는 점 때문에 '게임 [[미들웨어]]'라고 불리기도 한다. 게임 미들웨어라고 불리는 시스템들은 구성 요소(컴포넌트) 기반의 구조를 가지는 것이 많다. 그로 인해 게임의 특정 시스템을 더 전문적인 미들웨어 구성 요소로 대체하거나 확장할 수도 있다. [[렌더웨어]] 같은 게임 엔진의 경우, 아예 일련의 미들웨어 구성 요소들을 느슨하게 연결하는 방식으로 설계되었다. 개발사가 그 중 적당한 것만 선택해 자신들이 사용하는 엔진과 결합할 수 있는 것이다.<ref name="gamebryo">{{웹 인용|저자=디스이즈게임|url=http://www.thisisgame.com/board/view.php?id=109059&category=115|제목=3D 게임엔진의 계보 ③ 게임브리오 엔진|확인날짜=2008-03-14|보존url=https://web.archive.org/web/20070928020258/http://www.thisisgame.com/board/view.php?id=109059&category=115#|보존날짜=2007-09-28|url-status=dead}}</ref>

이름과는 달리 게임 엔진은 다른 분야에서도 사용된다. 홍보용 데모나 건축 시각화, 훈련 시뮬레이션, 모델링 환경 등 실시간으로 그래픽을 출력하는 상호작용 응용 프로그램들이 좋은 예이다.

== 주요한 기능 ==
각각의 게임 엔진은 저마다 특징을 가지고 있지만, 일반적인 엔진들이 제공하는 기능들이 있다.

=== 플랫폼 추상화 ===
많은 게임 엔진은 다른 [[미들웨어]] 프로그램처럼 [[플랫폼 추상화]]를 제공하기 때문에, 비교적 손쉽게 같은 게임을 다양한 플랫폼에서 실행할 수 있게 해준다. [[소스 코드]]에 아주 적은 혹은 어떤 수정도 없이 [[게임 콘솔]]과 [[개인용 컴퓨터]] 모두에서 실행 가능한 게임을 만들 수 있는 것이다.

많은 3D 엔진이나 게임 엔진의 렌더링 시스템은 [[그래픽 처리 장치]]나 비디오 카드의 소프트웨어 추상화를 제공하는 [[다이렉트3D]]나 [[오픈GL]]같은 그래픽스 [[API]]를 기초로 만들어진다. 또한 게임에 일반적으로 사용되는 [[다이렉트X]]나 [[심플 다이렉트미디어 레이어|SDL]], [[오픈AL]] 같은 저수준 라이브러리는 [[입력 장치]], 네트워크 카드, 사운드 카드 같은 컴퓨터 하드웨어에 접속하기 위해 하드웨어와 독립된 접속을 제공한다.

=== 물리 엔진 ===
{{본문|물리 엔진}}
[[물리 엔진]]은 실제 세계의 물리 작용을 컴퓨터로 모사하여, 보다 사실적인 게임 환경을 제공해준다. 게임 엔진 초기에는 [[충돌 검출|충돌을 감지]]하고 반응하는 것이 엔진이 제공하는 물리 기능의 대부분이었다. 그러다 현실과 가까운 [[물리 엔진]]이 크게 대두된 것은 게임 엔진 [[소스 (게임 엔진)|소스]]에 탑재된 [[하복 물리 엔진]]의 물리 시뮬레이션 기능을 활용한 [[일인칭 슈팅 게임]] 《[[하프라이프 2]]》가 공개되고 나서였다.<ref name="hl2_preview">[http://pc.ign.com/articles/400/400985p1.html Half-Life 2 Preview]</ref>

물리 엔진이 지원하는 기능은 크게 차량, [[강체]], [[액체]], [[랙돌 물리|레그돌]], 직물과 연체 효과 등이다.

=== 쓰레딩 ===
[[쓰레딩]]은 오늘날의 [[멀티 코어]] 시스템과 사실성에 대한 요구의 증가 때문에 게임 엔진에서 중요한 위치를 차지하게 되었다. 일반적인 스레드는 [[렌더링]], [[스트리밍]], [[소리|사운드]], 그리고 물리를 수반한다.

== 미들웨어 ==
어떤 회사들은 전문적으로 '[[미들웨어]]'라 불리는 소프트웨어 묶음을 개발해서 다른 게임 개발사가 게임을 만드는 데 필요한 구성 요소들을 제공한다. 대부분의 미들웨어 소프트웨어는 [[그래픽]], [[소리|사운드]], [[컴퓨터 물리 엔진|물리]], [[인공지능|AI]] 등 특정 기능의 개발을 쉽게 해준다. [[유니티3D]], [[DX 스튜디오]], [[게임브리오]], [[렌더웨어]](현재 개발과 마케팅을 모두 중단)가 널리 사용되는 미들웨어 소프트웨어들의 예이다.

어떤 미들웨어는 오직 특정한 기능만을 수행하기도 한다. 예를 들어 [[스피드트리]]는 오직 사실적인 나무와 식물을 렌더링하는 용도로만 사용되는 미들웨어다.<ref name="oblivion_tree">{{웹 인용 |제목=We Could Plant a House, We Could Build a Tree |url=http://www.elderscrolls.com/codex/team_teamprof_nberry2.htm |저자=노아 베리({{lang|en|Noah Berry}}) |출판사=베네스다 소프트웨어 |확인날짜=2010-07-17 |보존url=https://web.archive.org/web/20101002021044/http://www.elderscrolls.com/codex/team_teamprof_nberry2.htm# |보존날짜=2010-10-02 |url-status=dead }}</ref>

기능성있는 서브 시스템들을 제공하여 널리 사용되는 미들웨어에는 [[하복 물리 엔진]]과 [[RAD 게임 툴즈]]의 시스템들이 있다. [[하복 물리 엔진]]은 사실적인 물리 시뮬레이션 시스템을 제공하며, [[RAD 게임 툴즈]]는 비디오 렌더링, 오디오 녹음재생, 그리고 3D 렌더링을 위한 시스템들을 개발하고 있다.

=== MMOG용 미들웨어 ===
[[대규모 다중 사용자 온라인 게임]](MMOG)을 위한 미들웨어는 일인용 게임을 위한 것보다 더 복잡하다. 하지만, MMOG의 인기가 증가하면서 그러한 미들웨어 패키지의 개발도 늘어나고 있다.<ref name="mmog_middleware">MMOG 미들웨어들은 다음과 같다.
* [http://www.bigworldtech.com/technology/index_en.php Bigworld Technology] {{웨이백|url=http://www.bigworldtech.com/technology/index_en.php# |date=20070701125628 }}
* [http://www.heroengine.net/ HeroEngine] {{웨이백|url=http://www.heroengine.net/ |date=20101230035530 }}
* [http://www.realmcrafter.com/ RealmCrafter] {{웨이백|url=http://www.realmcrafter.com/ |date=20071002051751 }}</ref>

== 개발과 이용 ==
게임 엔진은 주로 게임과 함께 개발된다. 제작에 들어가기 전에 프로젝트 관리자와 프로그래머, 게임 디자이너 등이 함께 게임 프로그램의 설계 방향을 결정하는데, 엔진을 직접 개발할 것인지 개발된 것을 쓸 것일지도 이때 결정한다.

개발된 것을 사용할 경우 예산과 일정을 단축시킬 수 있지만, 개발할 게임과 상성이 맞지 않을 경우 역효과가 난다. 물론 아무리 범용적인 엔진이라도 모든 게임이 요구하는 바를 모두 충족하지는 못 하기 때문에, 게임 개발사가 자신들의 게임에 맞춰 최적화하거나 개조하는 경우가 많다. (상용 게임 개발사를 위한 상용 엔진은 대부분 구입자에게 소스를 공개한다.) [[스프린터 셀 시리즈]]는 구입한 엔진을 개조한 대표적인 예이다. 처음에 [[언리얼 엔진|언리얼 엔진 2.5]]를 구입했지만, 시리즈를 거듭할수록 자신들의 게임에 맞게 엔진을 개조해왔다. (결국 《[[스프린터 셀: 컨빅션]]》에서는 개조된 엔진을 LEAD 엔진이라 이름붙였다.)<ref name="spcell_conviction">{{웹 인용 |url=http://www.totalvideogames.com/articles/Splinter_Cell_Conviction_QA_Feature_11686_6226_0_0_0_0_20.html# |제목=Splinter Cell: Conviction Q&A |확인날짜=2007-07-24 |보존url=https://web.archive.org/web/20070928060156/http://www.totalvideogames.com/articles/Splinter_Cell_Conviction_QA_Feature_11686_6226_0_0_0_0_20.html# |보존날짜=2007-09-28 |url-status=dead }}</ref>

직접 엔진을 개발하는 경우는 자신들의 게임에 맞는 엔진이 없는 경우이다. [[일인칭 슈팅 게임]] 《[[헤이즈]]》의 개발팀은 자신들의 게임이 가진 특징을 살리기 위해 스스로 엔진을 개발했다.<ref name="haze">"A Personal Chat with Free Radical's Derek Littlewood", 플레이스테이션매거진: p.22 - 26</ref> 직접 개발하는 엔진도 사내의 다른 프로젝트나 후속 프로젝트를 고려해 범용성을 보장해야 하는 경우가 있다. 나아가 어떤 개발사들은 연구개발팀을 따로 두어 회사 프로젝트 전용의 게임 엔진을 개발하기도 한다. 일본의 게임 개발사인 [[캡콤]]은 회사의 자체 엔진인 [[MT 프레임워크]]를 꾸준히 개발하고 있고, 《[[로스트 플래닛]]》과 《[[데드 라이징]]》에 이 엔진이 쓰였다.<ref name="lostp_3d">{{웹 인용 |url=http://www.watch.impress.co.jp/game/docs/20070131/3dlp.htm |제목=西川善司の3Dゲームファンのための「ロスト プラネット」グラフィックス講座 |확인날짜=2008년 7월 30일 |보존url=https://www.webcitation.org/6AJYJnP3Q?url=http://game.watch.impress.co.jp/docs/20070131/3dlp.htm |보존날짜=2012년 8월 30일 |url-status=dead }}</ref>

판매를 위해 개발되는 엔진은 그 범용성이 관건이 된다. [[에픽 게임즈]]의 [[언리얼 엔진]]은 판매를 목적으로 개발된 엔진으로, 특히 언리얼 엔진 3는 기존의 일인칭 게임 중심 구조에서 벗어나 범용성을 더욱 강화했다. 그 외에 판매 목적으로 엔진을 개발하는 회사로는 [[크라이엔진]]의 [[크라이텍]]과 [[토크 게임 엔진]]의 [[게러지게임즈]]가 있다.<ref name="cryengine">{{웹 인용|url=http://www.salaciss.com/data_design/5508|저자=디스이즈게임|제목=3D 게임엔진의 계보 ④ 크라이 엔진 1, 2|확인날짜=2008-03-14}}{{깨진 링크|url=http://www.salaciss.com/data_design/5508 }}</ref><ref name="torquesell">[[토크 게임 엔진]]의 경우 http://www.garagegames.com/products/torque/tge/에서 판매되고 있음을 확인할 수 있다.</ref>

=== 취미 개발 ===
게임 엔진의 개발은 컴퓨터 과학도와 취미 개발자 모두에게 인기있는 프로젝트이다. 엔진 개발은 [[기하학]], [[색상 이론]], [[전산학]]에 대한 학제적인 이해가 강력하게 요구되는 일이지만, 시각적인 결과가 나오는 프로젝트이기 때문에 그런 개발자들은 그것을 재미와 보상으로 받아들인다. 그 중 [[크리스털 스페이스]]는 유명한 [[오픈 소스]] [[멀티플랫폼]] 게임 엔진이다.

== 주요한 게임 엔진들 ==
* [[유니티 (게임 엔진)|유니티]]  - <small>[[유니티 테크놀러지]]가 개발한 게임 엔진 및 저작 툴로 PC와 맥,안드로이드, 아이폰/아이패드, 콘솔 기기, 웹 브라우저 등 다양한 플랫폼으로 게임을 개발할 수 있다.</small>
* [[언리얼 엔진]] 시리즈 - <small>[[에픽 게임즈]]가 개발, 초기때부터 범용성이 좋아 널리 쓰였으며 언리얼 엔진 3부터는 더욱 범용성이 강화되어 가장 널리 사용되는 상용 엔진이다</small>
* [[소스 (게임 엔진)|소스]] - <small>[[밸브 코퍼레이션]]이 개발, 《[[하프라이프 2]]》의 개발에 사용되었다</small>
* [[이드 테크]] 시리즈 - <small>[[이드 소프트웨어]]가 개발, 《[[둠 3]]》의 개발에 사용되었다</small>
* [[크라이엔진]] 시리즈 - <small>[[크라이텍]]이 개발, 《[[크라이시스]]》의 개발에 사용되었다</small>
* [[게임브리오]] - <small>[[엘더 스크롤]] 시리즈의 3편과 4편, 《[[문명 IV]]》, 《[[다크 에이지 오브 카멜롯]]》 등에 사용되었다</small>
* [[토크 게임 엔진]] - <small>저렴한 엔진으로 독립 개발자들이 주로 사용하는 게임 엔진이다</small>
* [[:en:ISImotor|ISI모터엔진]] - <small>레이싱게임 [[:en:rFactor|rFactor(알팩터)]]의 개발사인 [[:en:Image Space Incorporated|Image Space Incorporated(ISI)]]사에서 개발 및 배포한 엔진으로 동사의 rFactor시리즈 , Raceroom(레이스룸)시리즈 등의 레이싱게임에 도입된 DX7기반의 게임 엔진이다</small>
* [[:en:Snowdrop_(game_engine)|스노우 드랍 엔진]] - <small> 프랑스에 본사를 두고있는 [[유비소프트]]에서 만들어진 엔진이며 [[더 디비전]]의 개발엔진으로 사용되었다</small>
* [[:en:Decima_(game engine)|데시마 엔진]] - <small> [[:en:Guerrila_Games|게릴라 게임즈]]에서 개발된 엔진으로서 [[데스 스트랜딩]]과 [[언틸던]], [[킬존 섀도우 폴]], [[호라이즌 제로 던]]의 개발엔진으로 사용되었다</small>
* [[Ursina|우르시나(Ursina)]] - [[파이썬]]에서 사용할 수 있는 게임 엔진이다.
=== 대한민국의 게임 엔진 ===
[[대한민국]]에서는 아직까지도 게임 엔진의 개발이나 마케팅보다는 해외의 게임 엔진을 구입하는 일이 많다.<ref name="korean_engine">{{웹 인용 |제목=게임 경쟁력은 엔진기술서 나온다 |url=http://www.etnews.co.kr/news/detail.html?id=200704090054 |저자=박성재 |출판사=이티뉴스 전자신문 |날짜=2007-10-04 |확인날짜=2010-07-17 }}{{깨진 링크|url=http://www.etnews.co.kr/news/detail.html?id=200704090054 }}</ref><ref name="korean_engine2">{{웹 인용 |제목=게임도 10억 엔진 다니 ‘명품’일세 |url=http://isplussvc.joins.com/asp/articles.asp?aid=661012 |저자=박명기 |출판사=일간스포츠 |확인날짜=2010-07-17 }}{{깨진 링크|url=http://isplussvc.joins.com/asp/articles.asp?aid=661012 }}</ref> 잘 알려진 국산 게임 엔진으로는 《[[화이트데이: 학교라는 이름의 미궁|화이트데이]]》와 《[[팡야]]》에 적용된 [[왕리얼 엔진]]과 [[드림익스큐션]]이 《[[워록]]》을 만들 때 개발한 [[진도 엔진]]과 [[넥슨]]산하의 [[데브캣 스튜디오]]에서 만든 게임에 사용되는 [[프라우드넷]]과 또한 데브캣 스튜디오에서 만든 [[마비노기]]의 기본 그래픽 처리 기법인 카툰 렌더링을 위한 [[플레이오네 엔진]]이 있고 [[가이블]]에서 판매용으로 개발한 [[지블렌더]]가 있다. 네트워크 엔진으로는 [[프라우드넷]]과 [[엑스커넥터]]가 있다.

* [[프라우드넷]] - <small>온라인 게임 서버와 멀티플레이 기능 개발을 위한 엔진이다.</small>
* [https://web.archive.org/web/20161220194026/http://www.cgcii.co.kr/ CGCII] - 고성능 고안정성 대규모 온라인 게임 서버 개발을 위한 엔진이다.
* [https://web.archive.org/web/20150815085632/http://www.bamer.io/ Bamer] - <small>게임 서버 전용 미들웨어 솔루션</small>
* [[플레이오네 엔진]] - <small>[[카툰 렌더링]]을 위해서 만들어진 엔진이다.</small>
* [[엑스커넥터]]
* [[지블렌더]]
* [[진도 엔진]]
* [[라이드엔진]]
* [[제로딘 엔진]]
* [[엑스 엔진]]
* [[왕리얼 엔진]]
* [[블루사이드 엔진]] - 구 [[페임테크]] 엔진
* [[epp 엔진|e++엔진]] - 개발 중단
* [[여우비 엔진]]

=== 게임 제작 소프트웨어 ===
[[엔터브레인]]의 [[RPG 만들기]] 같은 소프트웨어는 최종 사용자를 위해 만들어진 게임 엔진이라고 할 수 있다. 이러한 게임 제작 소프트웨어는 쉽고 빠르지만 제한된 범위의 게임을 만들 수 있게 해준다.

* [[네코 RPG 팩토리]]
* [[UC노벨|UC노벨 스튜디오]]

=== 비주얼 노벨을 위한 스크립트 엔진 ===
[[NScripter]]와 [[키리키리]]는 [[비주얼 노벨]]에 특화된 엔진으로, 간단한 [[스크립트 언어]]로 프로그램을 작성할 수 있는 환경을 제공한다. 한국어로 제공되는 비주얼 노벨 엔진으로는 [[브이냅]]과 [[바실리어트]]가 있다.

* [[바실리어트]] - 한국산 비주얼 노벨 엔진이다.
* [[네코노벨]] - 한국산 비주얼 노벨 엔진이다.
* [[NScripter]] - 일본산 비주얼 노벨 엔진이다.
* [[키리키리]] - 일본산 비주얼 노벨 엔진이다.
* [[브이냅]] - 일본산 비주얼 노벨 엔진이다.
* [[렌'파이]] - 미국산 비주얼 노벨 엔진이다.
* [[피니 엔진]] - 한국산 비주얼 노벨 엔진이다.

== 같이 보기 ==
* [[3차원 컴퓨터 그래픽스]]
* [[저작 시스템]]
== 각주 ==
{{각주}}

== 외부 링크 ==
{{위키공용분류}}
* {{언어링크|en}} [https://web.archive.org/web/20040808002044/http://www.devmaster.net/engines/ 3D 게임 엔진과 그래픽스 엔진 데이터 베이스] - 수시로 갱신되는 최대의 게임 엔진 데이터 베이스
* [https://web.archive.org/web/20070825164537/http://www.gpgstudy.com/gpgiki/%EB%AC%B4%EC%8A%A8%20%EA%B2%8C%EC%9E%84%20%EB%AC%B4%EC%8A%A8%20%EC%97%94%EC%A7%84 GPG 스터디 위키 - 무슨 게임 무슨 엔진]

{{비디오 게임 엔진}}

{{전거 통제}}

[[분류:게임 엔진| ]]
[[분류:비디오 게임 개발]]