0강) 유니티5(Unity 5) |
세상에는 정말 많은 게임엔진들이 존재합니다.
대중에게 공개되어 돈을 지불하거나 혹은 지불하지 않고 사용할 수 있는 게임엔진도 있고, 회사에서 직접 개발하여 회사내에서 개발하는 게임에만 적용이 가능한 게임엔진이 있습니다.
이 중에서 대중에게 공개되어 사용할 수 있는 게임엔진에서 가장 대표적인 게임엔진은 "언리얼엔진", "크라이엔진", "유니티", "게임브리오", "소스엔진" 등이 있습니다.
우리가 이 강의에서 쓸 게임엔진은 바로 여기에 해당되는 "유니티" 입니다.
게임엔진? |
게임엔진은 게임개발을 하기 위한 소프트웨어를 뜻합니다. |
왜 유니티를 쓰는 것인가? |
일단 유니티 에디터를 간단히 봅시다.
(잘 안보이시면 사진클릭 후 원본보기)
첫번째 이유는 프로그래밍을 잘 모르는 사람들도 어느정도 쉽게 할 수 있는 게임엔진 디자인을 가지고 있습니다.
(물론 사람마다 다르긴 합니다.)
두번째 이유는 게임엔진이 그래픽 디자인 프로그램과 유사한 형태로 되어있어서 급하게 뭔가를 바꿔야 할때(프로그래밍 소스 제외) 프로그래머가 없어도 쉽게 편집이 가능합니다.
세번째 이유는 스크립트 언어로 "C#", "Java Script"를 사용합니다.
(C#은 Mono를 사용(.net 2.0기반)하고 UnityScript라고 하지만 "Java Script"를 사용합니다.)
(Mono는 조만간 .net 4.0 이상의 버전을 지원할 것이라고 합니다.)
(이제 유니티5.5로 업데이트되어 Mono 4.4로 업데이트되었습니다.)
네번째 이유는 언리얼엔진이나 크라이엔진에 비해서 용량이 적고 그나마 가볍다.
유니티의 단점은? |
사람마다 다르겠지만 공통적인 단점이 하나 있습니다.
바로 "GC(가비지 컬렉션)"기반의 언어를 사용한다는 점입니다.
GC? |
일반적으로 GC는 "Garbage Collection"의 약자로 쓰인다. 그리고 이 GC를 수행해주는 것을 "Garbage Collector"라고 한다. GC이전의 언어들은(C언어, C++, 포트란 등) 메모리에 어떤 데이터를 넣고 사용한 후에 메모리를 직접 프로그래머가 비워줘야 했다. 하지만 GC가 적용된 언어들은(JVM에서 돌아가는 언어, Erlang, JavaScript, .net 기반의 언어 등) 자동으로 메모리를 비워주기 때문에 수고가 덜어졌다. 하지만 이 GC를 프로그래머가 직접 조절할 수 없어서 프로그램 성능에 문제가 생길 수 있고, 완벽하게 메모리 수거가 되지 않을 수 있다. (자세한 내용 : 나무위키) |
이 "GC" 때문에 게임 도중에 심한 랙을 겪을 수 있으며 성능에 많은 무리가 갑니다.
또 다른 단점이 있는데 바로 "멀티쓰레드 문제"입니다.
위 사진을 보시면 쓰레드가 여러개로 나뉘어 있는 것을 보실 수 있습니다.
그냥 이 사진을 보시면
사람1 : 어? 멀티쓰레드를 지원하네?
라고 생각하실 수 있습니다.
틀린 말은 아닙니다만..
(사진 출처 : 유니티 공식 사이트 매뉴얼)
위의 그림은 유니티의 플로우차트 입니다.
위의 과정으로 유니티가 작동을 하게 되는데 빨간색 네모는 "메인 쓰레드", 초록색 네모는 "물리 쓰레드", 파란색 네모는 "렌더링 쓰레드" 입니다.
사실 위의 그림을 봐도 "멀티 쓰레드"를 지원하는 것처럼 보입니다.
사실은 위의 과정같은 멀티 쓰레드는 지원합니다만!
왠만한 프로그래밍을 통한 작업은 전부 "메인 쓰레드"에서 실행이 됩니다.
그런데 이 메인 쓰레드는 쓰레드가 1개입니다.
그래서 대부분의 메인 쓰레드 프로그래밍 기반의 유니티 게임을 실행하면 듀얼코어 컴퓨터에서는 CPU를 50%만, 쿼드코어 컴퓨터에서는 CPU를 25%만 먹고있는 광경을 보게 됩니다.
(그래서 사실상 완벽한 멀티 쓰레드라고 보기가 좀 그럽니다.)
(하지만 물리 쓰레드는 멀티 쓰레드를 지원합니다.)
그런데 "메인 쓰레드"를 멀티 쓰레드로 활용이 가능하긴 합니다만 많은 접근오류를 뿜어내기 때문에 유니티에서는 "코루틴"이라는 개념을 도입하여 사용하여야 합니다.
(또는 사용자 레벨선에서 쓰레드를 돌려야 합니다.)
(코루틴은 나중에 더 깊게 파고들겠습니다.)
또 다른 단점을 소개하자면 "가격대비 퀄리티"입니다.
(기사 출처 : 비즈팩트)
그렇습니다.
언리얼엔진4가 무료화 되었습니다.
그리고 가격정책도 꽤 괜찮습니다.
엔진 |
로열티 기준 및 가격 |
유니티5 Personal |
연간 수익 10만달러 이상인 경우 Plus로 전환(월 약 4만원) |
언리얼엔진4 |
분기당 수익 3천달러 이상인 경우 초과금액의 5% |
연습만을 목적으로 하는데는 두 엔진 다 상관이 없습니다.
그래서 이렇게 언리얼엔진이 무료화된 시점에서 "유니티를 굳이 써야하나?"라는 의문점을 가지게 만들기도 합니다.
유니티 다운로드 |
유니티에 대해서 조금이나마 알게되었으니 이제 다운로드 해봅시다.
유니티 다운로드 하기 |
[다운로드 : 공식 홈페이지]
유니티5는 총 4가지 버전으로 나뉩니다.
개인버전(무료)과 플러스버전(유료), 프로버전(유료), 기업용버전(유료)으로 나뉩니다.
우리는 금전적 이익을 취할것이 아니고 유니티 연습을 위한 것이기 때문에 "개인버전(Personal)"을 선택하여 다운로드합니다.
그리고 "설치 프로그램 다운로드"를 클릭하여 설치합니다.
유니티는 매킨토시를 지원하고 리눅스도 지원합니다.
유니티 다운로드 하기 |
[매킨토시 : 공식 홈페이지] [리눅스 : 유니티 공식 포럼 개발자 쓰레드] |
유니티 설치 |
Next를 누르고, 약관에 동의하고 Next를 누릅니다.
여기서!!
그리고 설치경로를 정하고 설치하면 됩니다.
설치가 끝나고 유니티를 실행하면 위의 화면이 잠깐 뜨게 됩니다.
로그인 창이 뜨게 됩니다.
그러면 설치가 끝이 납니다.
강의 끝) |