언리얼 엔진

개요

언리얼 엔진은 전반적인 게임 개발 환경을 제공하는 통합형 게임 엔진이다. 뛰어난 기술과 지속적인 업데이트, 다양한 기술 지원, 언리얼 개발자 간의 네트워크 지원, 뛰어난 개발 도구들을 제공하는 것이 언리얼 엔진의 장점이다. 그러나 무엇보다도 가장 뛰어난 점은 엔진의 구성이 유연해서 여러 기술을 조합하고 확장하기 좋은 구조를 가지고 있다는 것이다. 또한 엔진이 지속적으로 개량되면서 기술과 개발 도구도 발전하고 있다.
언리얼 엔진은 언리얼 스크립트라는 내부 스크립트 언어를 지원하는데, 이를 통해 엔진의 여러 기능을 연동할 수 있으며 게임의 스크립트 언어로도 사용할 수 있다. 게임 스크립트 언어로는 루아나 자바, C # 등 다른 언어를 적용하거나 함께 쓰는 것도 가능하고, 경우에 따라서는 어셈블리어 같은 언어도 쓸 수 있다. 엔진과 도구는 거의 C++로 작성되었지만 다른 언어로 이식이 가능하며, 최근 도구는 C #로 이식하는 경우도 많다. 실제로 언리얼 에디터의 초기 버전은 C++이 아닌 비주얼 베이직으로 작성되었다.
많은 게임 개발사들이 그들의 게임을 일정 안에 안정적인 기술로 완성하기 위해 언리얼 엔진을 구입해 개발하고 있다. 또한 훈련용 시뮬레이션 같은 게임이 아닌 그래픽 응용 프로그램을 개발하는 데도 종종 활용되고 있다.

언리얼 엔진의 버전

많은 게임 개발사들이 그들의 작품을 빠른 시일 안에 뛰어난 기술력으로 완성해내기 위해서 언리얼 엔진을 채용해서 개발했으며 현재에도 많은 개발사들이 사용하고 있다. 특히 언리얼 엔진이 버전업을 이루면서 더욱 발전해감에 따라서 발전하는 기술력을 세계적으로 인정받아 세계의 많은 콘솔과 개인용 컴퓨터 게임 개발사들이 언리얼 엔진을 채용하고 있으며 그 중에는 유명한 대작 게임들도 많이 존재하며 최근엔 게임 개발뿐만 아니라 비게임 시뮬레이션 & 트레이닝 같은 분야에도 활용되고 있다. 언리얼 엔진은 가장 크게는 세대별로 구분을 하지만 세대 안에서도 0.5 버전대를 더 구분하기도 하며 더 세부적으로는 빌드 버전으로 구분된다. 빌드 버전의 업데이트는 꾸준히 업데이트 되면서 같은 세대안에서도 많은 차이와 발전을 보여주지만 라이선스 받은 업체에서는 업데이트를 무료로 계속 받을 수 있으며 0.5버전대의 변화는 약간의 추가 비용만으로 업그레이드 받을 수 있다. 하지만 세대별로 구분되는 수준에서는 사실상 새로운 엔진으로 봐야하며 다시 라이선스 해야하지만 이미 이전 버전을 라이선스 했던 업체라면 계약조건에 따라 어느 정도 값을 내리는 것도 가능하다.

1세대 언리얼 엔진

첫 번째 세대의 언리얼 엔진으로 에픽 게임즈가 1994년 당시 회사의 사활을 건 첫 FPS 프로젝트 언리얼을 만들기 위해 만들어진 엔진이다. 많은 우여곡절끝에 완성 됐으며 이 세대의 엔진은 언리얼을 거쳐 언리얼 토너먼트에 이르기까지 발전된다. 1세대 언리얼 엔진은 언리얼 엔진 1(Unreal Engine 1)라고도 부르며 줄여서 UE1라고도 한다.
언리얼 엔진 1은 32비트 윈도, 32비트 리눅스, 32비트 매킨토시 MacOS를 지원하며 1998년 당시의 다양한 3D 그래픽 API들을 모두 지원했다. 3DFX의 Glide, S3 그래픽스의 Metal, PowerVR의 SGL을 지원했으며 혁신적인 소프트웨어 렌더러까지 탑재하고 있었는데 이 소프트웨어 렌더러는 3D 가속 기능이 없는 그래픽 카드에서도 텍스처 필터링을 구현하고 색채가 들어간 광원과 코로나 효과, 체적 안개, 입체 광원(Volumetric Lighting) 등을 구현하는게 가능했다. 초기에는 Direct3D와 OpenGL을 지원하지 않았는데 나중에 패치가 나오면서 빌드 224부터 OpenGL 렌더러와 Direct3D 렌더러도 추가되었다. 렌더링 기술로는 32비트의 512x512 사이트 텍스처 지원, 순차적 애니메이션 텍스처, 동적 범위 스케일의 디테일 텍스처, 엠보스 범프 매핑, 멀티 텍스처링 등을 지원했으며 다중 채널을 가진 정점 애니메이션을 지원하고 부드럽게 애니메이트 되는 완전한 32비트 색상의 동적 광원, 입체 광원, 버텍스 라이팅과 그림자 효과로는 심플한 구형 그림자와 Z 버퍼를 이용한 디컬 그림자 및 스텐실 버퍼를 이용한 실시간 그림자도 지원하며 특수 효과로는 체적 안개, 라이트 블룸, 입자 효과, 다중 스카이 박스를 구현할 수 있으며 최신 FPS 게임인 프레이에 나오는 포탈도 이미 언리얼 엔진 1에서 구현이 가능했으며 포탈을 활용한 멀티플레이 맵이 언리얼 1에 기본적으로 포함도 되어있었다.
언리얼 엔진 1의 빌드 300부터 빌드 436까지는 언리얼 토너먼트의 개발에 사용된 엔진이며 기존의 버전과 비교하여 몇가지 추가 기능과 향상이 있다. 핵심적인 렌더링 기술에서는 기존의 장점은 더욱 향상되고 단점은 수정되었으며, 씬 그래프가 재작성되어 렌더링 퍼포먼스가 크게 향상되었고 렌더링 API 지원부분에서는 이전보다 더욱 안정적이며, 하드웨어 T&L을 지원하는 OpenGL 렌더러와 Direct3D 7 렌더러, 텍스처 기술에 환경 매핑 지원이 추가되었고, S3TC 텍스처 압축 기술 지원과 1024x1024 사이즈 텍스처 지원이 가능하게 되었다. 애니메이션에선 정점 애니메이션은 전보다 더욱 세밀한 애니메이션이 가능하게 향상되었다. 빌드 432에서는 골격 구조 애니메이션(Skeletal(Bone) Animation)이 새롭게 추가로 지원되었으며 비약적으로 향상된 언리얼 에디터 2.0이 새롭게 추가되었다. 그리고 콘솔 게임기인 소니의 플레이스테이션 2와 세가의 드림캐스트의 지원도 추가되었다. 빌드 300부터 최종버전인 빌드 436까지는 그 사이에서도 많은 차이가 있다.

언리얼 엔진 2 런타임 에디션

언리얼 엔진 2 런타임 에디션은 건설 시뮬레이션이나, 많은 비 게임 프로젝트에 사용될 목적으로 만들어졌으며 매우 저렴한 가격으로 라이선스가 가능하다.

3세대 언리얼 엔진

3세대 언리얼 엔진은 2006년 이후의 PC와 엑스박스 360, 플레이스테이션 3을 기준으로 만들어진 엔진이다. 하지만 차세대 콘솔인 엑스박스 360와 플레이스테이션 3에서도 3세대 언리얼 엔진이 추구하는 렌더링 기술력을 모두 표현하기에는 역부족이며 사실상 64비트와 다중 코어, 그리고 Direct3D 10 세대의 PC 하드웨어에서 진정한 성능을 볼 수 있다. 현재 한참 개발중인 엔진이며 이미 라이선스 가능한 릴리즈는 2004년에 이루어졌다. 차세대 콘솔 닌텐도의 Wii 버전으로는 제공되지 않는데 Wii의 성능상으로 언리얼 엔진 2가 적합하며 몇몇 개발사들은 언리얼 엔진 2를 Wii에 사용하고 있다. 어떤 개발사에서는 언리얼 엔진 3를 Wii로 다운이식하여 게임을 개발하기도 한다. 3세대 언리얼 엔진은 언리얼 엔진 3(Unreal Engine 3)라고도 부르며 줄여서 UE3라고도 부른다.
언리얼 엔진 3의 빌드 버전은 3500부터 시작되며 아직도 한창 버전업중인 엔진으로 버전 몇까지가 3의 마지막인지 알 수는 없다. 에픽에서는 언리얼 엔진 3의 개발부터 게임과 함께 엔진 프로젝트를 진행하지 않고 완전한 엔진팀을 따로 두고 엔진팀도 크게 확장되어 게임팀과 완전히 분리되어서 작업하게 되는데, 라이선스 업체에게 제공되는 것도 순수한 언리얼 엔진 3으로서 제공이 된다. 에픽은 언리얼 엔진 3을 사용해서 개발하던 기어스 오브 워(Gears of War)와 언리얼 토너먼트 3(Unreal Tournament 3)의 두가지 게임 중, 기어스 오브 워는 엑스박스 360으로 2006년 11월에 출시되었으며, 언리얼 토너먼트 3은 PC로 출시 예정인데 언리얼 토너먼트 3의 완성과 함께 언리얼 엔진 3.0를 완성 할 예정이라고 한다. 언리얼 엔진 3는 이전보다 엄청나게 많은 향상들이 이루어졌는데 언리얼 엔진의 가장 큰 장점이었던 구조적인 면의 확장성과 융통성은 이전 버전과 비교해서도 더욱 명확하게 향상되었으며 툴셋의 진보 또한 눈에 띌만큼 뛰어난 진일보하였다. 그리고 렌더링에서도 완전한 차세대급 렌더링으로 엄청난 도약을 했으며, 그 외에도 완벽한 64비트 연산, 새로운 개념의 멀티 쓰레딩, 그리고 여러 유용한 프로그램들과의 통합 파트너십 체결로 다양한 프로그램들이 통합되어 제공되며 모든 것들을 언리얼 에디터 내에서 곧바로 사용 가능하며 언리얼 스크립트로 쉽게 조정할 수 있도록 연동되어있다. 파트너십 패밀리와 새로운 기술 및 새로운 툴들도 앞으로 엔진을 완성하기까지 계속해서 추가할 예정이다. 예로 기어스 오브 워의 렌더링 기술에는 현재까지 만들어진 언리얼 엔진 3의 렌더링 기술들이 대부분 포함되어 있지만 앞으로 출시될 언리얼 토너먼트 3에는 또 다른 신기술과 개선된 기능들 및 새로운 렌더링 기술이 들어간다. 지형 시스템은 복셀 기술이 들어가며 풀 디스플레이스먼트 매핑 등이 들어가게 된다.
언리얼 엔진 3는 2012년까지 꾸준하게 버전업이 될 예정이며 새롭게 출시되는 PC 하드웨어들을 위해 새로운 하드웨어의 기능의 활용과 함께 새로운 API들을 지원해나갈 계획이라고 한다. 에픽은 기어스 오브 워와 아직 출시되지 않은 언리얼 토너먼트 3외에도 언리얼 엔진 3로 차기 프로젝트를 2개정도 더 개발할 예정이다. 그 프로젝트들은 기어스 오브 워 2와 언리얼 3이 될 가능성이 높으며 그 게임들은 더 높은 버전대의 엔진으로 이전의 버전보다 훨씬 더 발전된 기술들이 사용될 것이다.

비 게임 프로젝트

언리얼 엔진 3 런타임 에디션 커스텀 라이선스로 많은 비 게임(게임이 아닌 프로젝트)에 사용이 되고 있으며 건축 설계, 실내 및 실외 디자인, 모의 훈련, 운전 시뮬레이션, 가상 쇼핑몰, 영화 스토리보드, 콘티, 프리 비주얼, 그 외의 여러 분야에 쓰이고 있는데 이런 작업들을 최신의 다양하고 현실적인 그래픽 기술과 사실적인 물리 효과가 적용된 완전한 실시간 기술력과 툴셋으로 작업한다는 건 기존의 캐드나 VRML 같은 프로그램보다 훨씬 효율적이고 엄청난 이득을 주기 때문에 앞으로도 언리얼 엔진을 이런 분야에 사용하는 사례가 많아질 것이다.

4세대 언리얼 엔진

4세대 언리얼 엔진은 2003년부터 개발에 돌입, 차세대 게임 콘솔을 위한 엔진으로 설계되어 왔으며, 2012년 일반에 발표된 게임 엔진이다. 2014년 3월에 언리얼 엔진 4.0 버전을 공식적으로 공개하며 새로운 라이센싱 프로그램을 함께 발표했는데, 이는 한달 19달러의 금액과 제작한 게임 총 수익의 5%을 지불하면 엔진의 개발 도구와 예제 뿐 아니라 전체 소스 코드까지 제공받을 수 있는 파격적인 내용으로 주목을 받았다. 이는 유니티 3D 엔진의 장점이었던 저렴한 가격에 대항하기 위한 전략으로 평가된다.
이 파격적인 가격정책은, 2015년 GDC때 전면 무료화로 더욱 파격적으로 변경발표, 발표 주에만 수십배에 달하는 개발자 숫자 상승의 결과를 가져왔다. 현재 언리얼엔진 4는 모두의 언리얼이라는 모토 하에 분기당 3000$의 수익이 발생하기전까지는 전면무료로 전체 소스코드까지 받을 수 있게 되었다. 그 이상의 수익이 발생했다면 수익의 5%만을 로열티로 에픽 게임즈에 지불하면 된다.
4세대 언리얼 엔진의 공식명은 언리얼 엔진 4로, 주요한 신기능에는 언리얼 스크립트와 키스멧을 대체하는 Blueprint, 물리적인 특성에 기반하는 새로운 머터리얼 시스템, UI와 제작 과정이 간편해진 새로운 언리얼 에디터 등이 있다.

언리얼 개발 도구

3세대 언리얼 엔진을 기반으로 하고 있으며 프로그램의 전체적인 구성은 언리얼 에디터와 비슷하지만 Unreal Frontend를 통해 맵이 아닌 직접 실행이 가능한 응용 소프트웨어로 만들어 낼 수 있다는 결정적인 차이점이 있다. 언리얼 엔진 4가 출시된 현 시점에서는 다운로드와 사용이 가능하긴 하나, 에픽 게임즈 측에서 권장하지 않고 있다. 언리얼 엔진 4 출시 이후, 기존 UDK 사용자들은 두가지 과금 방식 중 하나를 선택할 수 있게 되었는데, 하나는 기존의 5만 달러 이상의 온라인 판매액에 대해 25%의 로열티를 지불하는 것이고, 다른 하나는 언리얼 엔진 4 라이센스와 마찬가지로 전체 판매액의 5%를 지불하는 것이다.
현재 에픽 게임즈에서는 UDK 또는 언리얼 엔진 3 기반의 프로젝트를 언리얼 엔진 4로 포팅하기 위한 매뉴얼을 자체 위키에서 제공중이다.
언리얼 개발 도구는 Kizmet, Matinee, Cascade 등 다양한 유틸리티들을 가지고 있다. Kizmet은 시각적인 스크립트 도구로 레벨 디자이너가 손쉽게 스크립트를 만들 수 있도록 UML 형태의 인터페이스를 갖고 있다. Matinee는 애니메이션이나 컷신 등을 제작하는데 유용하다. Cascade는 입자형 효과를 만들어내는 도구로 여러 가지 효과를 쉽게 만들어 낼 수 있다. 외부에 있는 Speed Tree 프로그램은 다양한 나무들을 만들 수 있도록 제공된 유틸리티다.