UDK

Unreal Development Kit
개발에픽 게임스
출시2009년
유형게임 엔진,
소프트웨어 개발 도구
기반 언어C++, C\#, UnrealScript,
GLSL, Cg, HLSL
요금비상업적 이용 무료
www.udk.com

1 개요

650px

에픽 게임스에서 언리얼 엔진 3를 소스 코드를 공개하지 않고 조건부 무료[1]로 배포하는 3D 게임 엔진 에디터.

2009년 11월에 첫 베타 버전이 배포 되었으며 매달 업데이트 된 베타버전이 배포되고 있다. 정기적으로 매월 1회 새로운 버전의 배포가 되었으며 버그가 발견된 경우에는 월 2회 배포된 경우도 간혹 있었다.
설치 파일명은 "UDKInstall-연도-월-BETA.EXE"이며 버그가 발견되어 월 2회 배포된 경우는 "UDKInstall-연도-월-BETA-2.EXE"이다. 기본 설치되는 폴더명과 시작 프로그램명 역시 "UDK-년도-월"로 만들어진다.
2012년 3월까지는 한달도 빠지지 않고 매월 배포되었으나 이후 2012년 5월, 7월, 11월로 듬성듬성 배포되었고 2013년엔 2월과 7월로 연간 총 2번 밖에 배포되지 않았다. 이는 2012년 3월 GDC에서 언리얼 엔진 4 공식 발표 이후부터 언리얼 엔진 3는 거의 마무리가 되어 가고 모든 엔진 개발팀들이 언리얼 엔진 4로 넘어갔다는 것을 의미한다.
2013년 2월 업데이트 분량까지는 기능의 개선/추가가 있었으나 2013년 7월 업데이트 분은 2월 버전에 비해 빌드 버전 숫자가 고작 한자리 수 "7" 올랐고 모바일 관련 버그 수정 등을 제외하고 변동사항이 없다. 또한, 2013년 7월 버전부터는 더 이상 "베타"가 아닌 정식버전이다. 그래서 설치파일명에서도 "BETA"가 빠지고 "UDKInstall-연도-월.EXE"로 되어있다. 그리고 2014년 2월 업데이트가 2014년 2월 25일 공개되었다. 버전의 숫자는 "12097"로 소폭 올랐으며 모바일에서의 향상으로 iOS 7 및 Xcode 5의 지원과 일그러짐 효과의 추가지원 등의 셰이더 업그레이드가 있으며, 기타 개선 사항으로는 언리얼 에디터와 부가툴의 최적화 및 후처리 효과의 최적화, 그리고 매킨토시용 팩키저가 포함되었다. 이후 2014년 5월에 버전 "12264"가, 2014년 8월에 버전 "12466"이, 그리고 2015년 1월 30일에(1월 30일에 나왔으나 설치 파일명은 2915년 2월로 되어있다) "12791"이 릴리즈 되었으며 이것을 끝으로 더 이상의 언리얼 엔진 3 업데이트는 없다고 공식적으로 공지되었다. 이 후로는 신규 프로젝트에는 언리얼 엔진 4 라이센스를 권장한다. 현 시점에서는 어차피 멤버쉽 라이센스 가격이 매우 싸므로 기존에 언리얼 엔진 3로 개발하던 프로젝트의 엔진 업데이트가 아닌 이상 신규 프로젝트에는 더 이상 언리얼 엔진 3로 개발을 할 필요가 없는 시점이기 때문이다.

참고로 2007년작 "언리얼 토너먼트 3"의 최종 패치인 v2.1에 사용된 언리얼 엔진 3는 빌드 버전 숫자가 "3809", UDK의 최초 배포버전인 2009년 11월의 빌드 버전 숫자는 "5860", UDK의 최종 배포 버전인 2015년 2월의 빌드 버전 숫자는 "12791"이다. 빌드 숫자가 많이 올라가면 올라갈수록 기능의 개선, 신기술 및 신기능 추가, 개발툴의 추가에서 많은 차이를 보인다. 단순 버그 수정 등으로는 버전 숫자가 거의 차이나지 않는다. 보통 매딜 업데이트 된 버전들을 비교해보면 평균 100 안팎정도로 올라가면서 기능, 기술, 툴이 개선되었다.

정식 언리얼 엔진 3의 라이센스 업체가 받는 것과 거의 동일한 버전으로 매달 업데이트 되었으며 UDK의 최신 버전은 당연히 해당 달의 버전이다. 버전이 바뀌면서 기능의 개선과 변화가 생기지만 기본적인 틀은 변함이 없다.

2014년 3월 19일 GDC에서 일반 대중에게 월 $19.99라는 저렴한 가격의 멤버쉽 라이센스 정책을 발표하였고 더 이상 UDK라는 명칭은 사용하지 않는다. 자세한 내용은 언리얼 엔진 참고.

참고. 릴리즈 되는 날짜는 거의 해당 달의 마지막주에 나오지만 가끔은 첫째주나 중순 쯤에 나오는 경우도 있긴 하다.

언리얼 엔진 정확한 버전을 알아보려면 언리얼 에디터를 실행시키고 도움탭에서 언리얼 개발 키트에 대하여를 누르면 맨 아래쪽에 버전이 나온다. 이것은 언리얼 엔진의 Build 버전으로서 자세한 내용은 언리얼 엔진 참고.

당연하지만 상용되는 언리얼 엔진이 그대로 탑재되었기 때문에 일반에 공개된 엔진임에도 불구하고 현존하는 거의 대부분의 상용 엔진을 쌈싸먹을 최신예 기술들이 총집합되어있다.

이것은 UDK의 공개 의도 덕분인데, 유니티3D의 엔진 시장 홍보, 크라이 엔진의 기술적 홍보 등 여타의 엔진들의 홍보를 의식하여, 언리얼 엔진을 더욱 강력하게 대중에게 각인시킴과 동시에 기존 시장뿐 아니라 모바일이나 인디개발자, 그리고 틈새시장까지 공략하고, 그와 더불어 언리얼 엔진의 잠재적인 사용자 풀을 늘리고 교육시키려는 의도를 가지고 배포한 것이다. 게다가 게임에 국한된게 아니라 애니메이션, 건축설계, 군사용 시뮬레이션 등 비게임 분야에서도 사용될 수 있도록 많은 노력을 기울이고 있다. 그러한 취지에서 대단히 방대하고 자세한 교육 문서를 제공하며 특히나 상용화에서나 제공될 법한 무수히 많은 매뉴얼은 무료 제공 엔진으로서는 파격적인 수준이다. 게다가 한글화된 문서를 제공하는 것 역시 거의 유일한 케이스에 속한다.

이러한 행보 덕분에 이 분야에서 앞서나가고 싶어하는 크라이 엔진 또한 교육용 무료 SDK를 2012년 8월 배포하였으나 UDK의 막상막하의 라이벌이 될 것이라던 예상과 다르게 별 반향이 없다.

-CryEngine3 SDK는 2013년 초를 기준으로 스텐드 얼론으로 실행 파일만 빼는것이 불가능하다.또한 레벨디자이너-모델러-그래픽-프로그래머의 협업이 힘들다. 먼저 UDK는 레벨 디자인을 위해 키스맷 스크립트, 스피드트리, 랜드 스케이프,마타네 에디터를 지원하고 모델러를 위해 애님트리, 피직스 에셋, 애님셋을 지원한다. 그래픽 아티스트를 위해서는 머테리얼 에디터, 스케일 폼을 지원한다. 외부 미들웨어는 세계적으로 인정 받는 검증된 모듈이며 UDK를 사용하면 공짜다.

UDK는 2010년 중순의 버전부터는 64비트를 지원하게 됐으며, 2010년 말에는 iOS를 지원하는 버전이 공개되었다. 처음 iOS버전이 공개되었을때+는 PC판과 모바일판(iOS용)의 관련 바이너리파일들과 에디터가 별도로 실행되었으나 2011년 중순의 업데이트로 동일한 바이너리파일 및 동일한 에디터 내에서 PC판과 모바일판의 작업을 별 다른 설정의 변경 없이 사용이 가능하게 되었으며 PC판<->모바일판의 변환도 쉽게 할 수 있다.
- 초반엔 키스맷을 사용하면 모바일에서는 상당히 느리기 때문에 언리얼 스크립트만으로 작성해야하는 우려가 있었으나 모바일 플랫폼의 괄목할만한 빠른 성능 향상으로 인해 그럴 필요가 없어졌다. 모바일용 키즈멧 기능이 별도로 존재하여 터치 기능들을 쉽게 개발할 수 있다.

2011년 3월 버전부터는 차세대 기술 시연으로 화제가 된 사마리아인 데모에 쓰인 Bokeh Depth of Field, Tessellation, Image Based Reflection, Subsurface Scattering 등 다양한 DX11 전용 신기술을 UDK에 도입하여 사용 할 수 있게 되었다.

사실 다른 거 안 따져도 에픽 게임스는 실로 대인배가 아닐 수 없다! 아무리 변형이 되었고 제약이 걸려있다곤 하지만 현역으로 돌아가고 있는 엔진을 무료로 내놓다니! 거기에 제약 없이 언리얼 엔진 3으로 이식이 가능하다는 장점 또한 존재한다!

고가에 라이센스되는 실제 언리얼 엔진과의 가장 큰 차이는 C++로 이루어진 네이티브 코드에 직접 손을 댈 수 없기 때문에 엔진 깊숙한 곳의 모든 기능을 마음대로 수정을 가할 수 없다는 점이다.

하지만, UDK만으로도 갖가지 장르 및 게임 타입을 만들거나 새로운 기능을 추가하는 것은 전혀 문제가 되지 않는다. 언리얼 스크립트를 게임플레이 스크립트를 작성하거나, DLL 바인딩 기능을 이용하여 C++로 게임코드를 작성할 수도 있고 LUA와 같은 별도의 스크립트 언어도 탑재가 가능하다. UDK에서의 배치(Deployment) 작업을 통해 별도의 실행 파일(EXE)도 생성이 가능하다. 한개의 맵에 마타네를 이용해 오프닝 무비를 만들고 거기에 스케일폼을 이용해서 메뉴를 만들고 다른 맵을 로딩해서 플레이 한다거나 혹은 한개의 맵으로 스트리밍을 설정하여 연결할 수도 있다.

맨 처음 UDK가 나온 2009년 11월 버전에서는 언리얼 스크립트로만 프로그래밍이 가능했지만, 바로 다음달 버전인 2009년 12월 버전부터는 C++를 이용한 DLL 바인딩이 가능하다. 이를 이용해 Lua나 기타 스크립트 언어를 탑재할 수도 있다. 참고

게임 개발자가 되고 싶으면 한번쯤은 써보자. 특히 FPS 장르를 개발하고 싶다면 필수다. AVA 이후로 언리얼 엔진을 사용하려는 회사가 많아진 만큼 익혀두면 취업에 매우 유리하다. 다른 엔진들보다 언리얼 엔진은 언리얼 스크립트의 활용능력이 엄청나게 중요한데다가, 엔진의 인지도, 사용되는 범위 및 기존에 만들어진 언리얼스크립트 사용자 영역이 대단히 커서 본격적인 프로그래밍 언어를 제외하고서는 실제 게임 프로그래밍 업계에서 '실전능력'으로 가장 힘을 발휘할 수 있는 지식 중 하나다. 비디오 튜토리얼도 한국어 자막이 존재하기 때문에 습득하려고 마음만 먹으면 빠르게 익힐 수도 있다. 하지만 워낙에 기능과 툴이 방대해서 생각만큼 쉽사리 익히기는 힘들다. 게임 엔진이니 당연하지만.

언리얼 스크립트는 프로그래밍 언어인 관계로 다른 언리얼 에디터 툴의 기능 사용법같은 동영상 튜토리얼이 없다. 툴의 사용법을 공부하는데에는 약 2개월 정도(투자 시간에 따라 다를 수 있다) 걸리지만 언리얼 스크립트는 6개월 정도는 배워야 한다.
하지만 언리얼 스크립트는 프로그래밍의 기본을 알고 있다면, 특히 C++나 JAVA를 잘 알고 있다면 매우 친숙한 언어가 될 수 있으며 게임플레이 구현에 특화되어 있는만큼 전통적인 프로그래밍 언어와는 다른 부분이 있기도 하지만 프로그래밍의 기본을 안다면 UDN을 참고하여 언리얼 스크립트에 대한 내용을 큰 무리없이 습득 가능하다.

UDK는 Unity3D와 다르게 기본적으로 게임플레이 작동 부분들이 완성되어져 기본 탑재되어 있다. 이 부분은 언리얼 엔진에서 정의한 게임플레이 작동 관련 클래스들인데 이것을 언리얼 스크립트라는 언어 자체와 혼동하는 경우가 있다.

보통은 게임플레이에서도 언리얼 엔진에서 정의한 기본 클래스들을 사용하며 이 경우 특정 부분을 수정하려고 하면 관련 클래스 뿐만 아니라 전체가 어떻게 움직이는지 알아야 하며 한가지 간단해 보이는 기능도 수정하기 위해서는 두가지 클래스이상을 재정의 하여야 한다. 만약 근접 무기를 새로 만들고자 한다면 pawn->controller->inventory->weapon 4개 정도의 클래스가 관계됨을 알게된다.

이런 정보들은 UDN 혹은 기타 관련 페이지에서 대부분 참고가 가능하다.
관련 도서는 국내에선 약간 아쉬운데, 언리얼 디자인 관련 도서는 한국에 출시된 것이 5권 정도 있으나 스크립트는 2권(그나마도 iOS 타이틀을 달고 있는 책은 매우 부실하다.)정도 밖에 없고, 커뮤니티는 외국 영문 사이트인 언리얼 위키 등지에서 참고가 가능하나 한글 사이트로는 디자인 관련은 많아도 언리얼 스크립트 관련 커뮤니티가 좀 부실해 사람들에게 도움을 받기도 애매한 편이다. 물론 자신이 처한 상황을 영어로 잘 풀어써서 포럼에 올릴 수 있을정도라면 예외겠지만.

2 UDK만으로 쉽게 내가 원하는 게임을 만들 수 있을까?

언리얼 스크립트를 쓰지 않고서도 기본 제공되는 기능을 사용해서 키스멧과 툴만을 가지고도 왠만한 구성은 할 수 있으나 자유롭게 새로운 게임타입을 구성하려면 언리얼 스크립트는 할 줄 알아야 한다.
굳이 언리얼 스크립트가 아니더라도 위에서 언급된 DLL 바인딩 기능을 활용하여 C++나 LUA, C# 등의 기타 스크립트 언어를 사용해도 된다.

프로그래밍을 전혀 모르는 사람이 혼자서 UDK를 가지고 툴만을 사용하여 간단한 게임(데스매치, CTF 등)은 만들 수 있으나 프로그래머 없이 자유자재로 갖은 게임들을 만들어 내는 것은 불가능하다. 하지만 이는 어떤 엔진을 쓰더라도 마찬가지이며 프로그래머 없이는 RPG 쯔꾸르 같은 것으로 비슷한 게임을 찍어내는 것 외엔 구현이 불가능한 것과 마찬가지다. 비슷하게 유니티3D도 C#으로 게임 스크립트를 작성해야 하며 프로그래머 없이는 비슷한 결과를 초래한다.

아쉽지만 프로그래밍을 통한 스크립트 작성을 제외한, 키스맷과 툴 전반을 공부해서 레벨 디자인을 한다면 그럭저럭 나쁘지 않은 퀄리티의 게임을, 물론 한정된 장르(서술했듯이 데스매치, CTF)내에서 만들어 볼 수 있다. 몇몇 네이버 카페에선 약간의 키즈멧과 툴을 가지고 게임을 만든다는 건 게임 프로그래머의 경험이라 할 수 없고 애들 장난이나 다름없다고 비판하나, 그에 맞서 게임 개발자를 꿈꾸는 학생들을 위해선 좋은 경험이 될 것이라고 반박하는 네티즌들도 많다.

물론 학생들은 방대한 언리얼 스크립트를 배울 시간이 없으므로, 혹 배운다 해도 보통은 학업에 지장이 크기에 언리얼 스크립트를 배워 게임을 제작하겠다는 것은 무리다. 키즈멧, 툴을 가지고 UDK로 맵을 만들어서 기본으로 제공하는 데스매치 게임이라도 만들어 보는 것이 좋은 경험이 될 것이다. 툴을 썼건 질이 나쁘건 젊을 때 나름대로 '게임을 완성했다'는 경험은 굉장히 큰 자산이 된다. 안 해본 사람은 모른다. 프로 게임회사에서도 엎어지는 프로젝트가 부지기수인데[2] 서로의 의견을 조율하고 희생하면서 게임을 완성시키는 건 쉽게 할 수 없는 경험이다. 게임은 혼자 만드는 게 아니란 말이다.

허나 중요한 것은 UDK는 프로그래머보단 디자이너를 위한 툴이라는 점이다. 애초에 UDK가 공개된 목적이 디자이너들을 편하게 하기 위해서다. 키즈멧 같은 툴도 "프로그래머의 도움에서 벗어나" 디자이너가 조금 더 쉽게 게임플레이 스크립트를 작성할 수 있도록 의도한 것에서 창안된 기능이다. 언리얼 엔진 4에서 키즈멧을 대체한 블루프린트는 그점을 더욱 강조하여 개선되었다. 툴이 발전할수록 디자이너가 프로그래머의 도움없이 혼자서 개발할 수 있게 하는 것이 목적인 것이다.

UDK를 통해 다양한 3D 기술들을 직접 접해보고 셰이더를 조합하고 텍스처를 입혀보고 맵을 만들어 본다면 디자이너 지망생들에게는 나중에 취직해서 하게 될 실제 개발업무와 상당히 비슷한 경험이 된다. 몇몇 카페에서 얘기했듯이 디자이너에게 그들이 말하는 본격 프로그래머의 경험을 요구한다면 그 회사는 개막장 회사다.

또한, UDK에서 제공된 기본 기능들만으로 무언가를 만들어 보는 것이 프로그래머의 경험이라 할 수 없는 애들장난 수준이라고 한다면, 공개된 텍스쳐를 사용하는 아티스트나, 샘플 캐릭터등을 사용하는 3D 모델러, 샘플 SFX나 BGM을 사용하는 사운드 디자이너 같은 다른 포지션에서도 마찬가지다.

이런 류의 '배우려면 본격적인 걸 배워라'하는 사람들이 흔히 하는 잘못이 자기 초보 시절을 전혀 생각 안하는 것이다. 게임 제작에 필요한 툴 사용은 본격 프로그래밍에 비해 간단한 편이지만, 초심자들은 그 툴 사용조차 어려워한다. 구구단을 배워야 할 아이한테 "제대로 수학을 하려면 미적분을 해야지!" 하는 식이다. 본격 프로그래밍은 배워야 할 게 산더미 같고 그 과정을 따라가다 '게임은 언제 만들어요?' 하다가 때려치우는 사람이 부지기수다. 알고 나면 별거 아니라고 하지만 자기는 이미 아니까 별거 아니지. 그걸 진입장벽이라고 텃세를 부리면 게임개발계는 더욱더 고착되기만 할 것이다.

3 사양

3.1 최소 사양

운영체제 : 윈도우 XP 이상
CPU ; 2.0 GHz
램 : 2GB
그래픽 카드 : SM3-호환 비디오 카드
하드디스크 : 3GB 필요

3.2 콘텐츠 개발용 추천 사양

운영체제 : 윈도우 비스타 64비트 서비스 팩 2 이상
CPU : 2.0 GHz 이상의 멀티코어 프로세서
램 : 8GB
그래픽 카드 : NVIDIA 8000 시리즈 이상
하드디스크 : 최대한 넉넉히 (Plenty of HDD space)

3.3 DirectX 11용 게임 개발 최소사양

운영체제 : 윈도우 비스타 SP2 이상(DX11 설치 필수)
CPU ; 2.0 GHz
램 : 2GB
그래픽 카드

- NVIDIA: 400 시리즈 이상
- ATI: 5000 시리즈 이상

하드디스크 : 3GB 필요

  1. 비상업적 용도에 한정해서 무료배포다. 상업적인 용도로 사용하려면 iOS계열처럼 에픽 게임스에 일정량의 라이센스비(정식 언리얼 엔진 라이센스보다는 훨씬싸다.)를 내야 한다.
  2. 실례를 보고 싶다면 이수인이 쓴 '게임 회사 이야기'라는 책을 한번 읽어볼 것. 옛날에 나왔지만 충분히 읽을 만 하다.