2016년 8월 2일 화요일

유니티(Unity)란 무엇인가?

유니티는 게임을 만드는데 최적화되어있는 엔진(Engine)입니다.
유니티 공식 홈페이지에 가면 보다 상세한 정보를 얻을 수 있습니다.

먼저, 엔진이란 용어에 대해 설명을 하겠습니다.
소프트웨어를 개발하려면 프로그래밍 문법을 배워야하지만, 그 보다 근본적인 문제는 개발 도구와 라이브러리를 구하는 것입니다.
개발 도구는 소스 편집기, 컴파일러, 디버거 등의 프로그램을 말하며 이것들이 있어야 여러분들은 소프트웨어를 개발할 수 있습니다.
라이브러리는 소프트웨어 개발에 필요한 시간과 노력을 줄여줄 재료라고 볼 수 있습니다. 소프트웨어 개발을 요리에 비유한다면 잘 손질된 재료를 가져다가 조리 기술로 요리가 만들어지듯이 재료가 없다면 직접 재배하고 손질하느라 시간과 노력이 많이 필요할 것입니다.
라이브러리는 API, SDK등 불리는 용어가 매우 다양하지만, 본질은 재료를 의미합니다.
엔진(Engine)은 소프트웨어 개발에 필요한 토탈 패키지를 의미하며 엔진을 사용한다는 말은 아주 좋은 품질의 소프트웨어를 개발할 수 있다는 말과 동일합니다.
이에 유니티는 게임 개발에 필요한 모든 것을 제공함으로써 좋은 품질의 게임을 보다 적은 시간과 노력으로 만들 수 있도록 해주고 있습니다.

그런데, 여기서 의문은 왜 게임을 만들어야 하는가일 것입니다. 게임은 소프트웨어의 한 분류일 뿐 전부는 아니기에 게임 개발을 소프트웨어 개발과 동일 시 하는 것은 무리가 있을 것입니다.
하지만, 게임에는 현존하는 최고의 소프트웨어 기술이 대부분 포함되어 있습니다. 이 말은 게임을 만들 필요는 없으나 게임 개발 기술은 배울 필요가 있다는 뜻입니다.
대표적으로 최신 기술로 인식되고 있는 VR과 AR의 경우 모두 게임에서 제일 먼저 활용되고 있으니 이 기술을 배우려면 게임 개발에서 찾아야 할 것입니다.


그럼, 유니티에 어떤 소프트웨어 기술이 포함되어있는지 살펴보겠습니다.

3D 그래픽스 기술
3D 그래픽스 기술은 렌더링(Rendering)이라 불리는 Model Data, Lighting, Texture 등 3차원 장면을 만들어내는데 필요한 모든 내용이 포함됩니다.
이 기술은 1970년대부터 시작되어 영화, 게임, 설계 등 각 분야에서 사용되고 있으며 현재까지 엄청나게 발달되었습니다.
초기 3D 그래픽 기술
현재 3D 그래픽 기술

이렇게 발전된 기술을 소프트웨어 개발에 활용하려면 안타깝게도 기존 개발 도구들은 이런 기술을 개발에 끌어다쓰기가 쉽지 않습니다. 하지만, 유니티는 이런 기술을 아주 쉽게 사용할 수 있습니다.


물리 엔진 기술(Physics Engine)
물리 엔진은 시뮬레이션 기술을 의미합니다. 현실 세계에서 일어나는 물리적 현상을 컴퓨터로 재현시키는 것이 물리 엔진의 역할입니다.
이 기술 또한 꽤 오랫동안 개발되었지만, 일부 특수 분야에서만 사용될 뿐 여러분들이 소프트웨어 개발에 활용하기는 힘들었습니다. 하지만, 유니티는 이런 기능을 쉽게 소프트웨어 개발에 사용할 수 있도록 해줍니다.


사운드 제어 기술 (Sound)
소프트웨어에 있어서 소리 제어는 매우 중요합니다. 유니티는 단순히 소리를 Play/Stop만 제어하는 것이 아니라 입체 음향(3D Sound)과 믹싱 효과(Mixing Effect) 등 실감나는 기술을 소프트웨어에 사용할 수 있도록 만들어줍니다.


애니메이션 기술 (Animation)
소프트웨어에서 애니메이션은 사용자에게 어떤 정보를 알리는데 매우 좋은 효과를 보여주기에 많이 사용됩니다. 그러나, 2D 및 3D 애니메이션 기술을 사용하는 것이 쉽지않은데, 유니티는 이것을 쉽게 사용할 수 있도록 해줌은 물론 더욱 더 화려한 효과를 더 할 수 있습니다.



비 전문가를 위한 개발 환경
흔히, 소프트웨어 개발에 있어서 프로그래밍 문법을 반드시 알아야 한다고 주장합니다. 필자는 다룰 수 있는 프로그래밍 언어가 5종류 이상이며, 개발 경력 10년이 넘는 숙련자 이지만, 그렇게 생각하지 않습니다. 코딩은 알아두면 좋은 것일 뿐 필수는 아니라고 생각합니다.
특히, 텍스트기반 프로그래밍은 고도의 추상적 사고력이 필요하기에 익힐 수는 있어도 잘 하는 것은 차원이 다릅니다.
배워야 할 것은 코딩이 아니라 디자인과 로직(Logic)에 관한 훈련입니다.
유니티는 게임을 개발할 때, 코딩을 할 줄 아는 사람과 그렇지 않은 사람이 협업해야 한다는 것을 잘 알기에 코딩을 할 줄 모르는 사람에게 필요한 도구를 제공하고 있습니다.
Scene 디자인은 마치 3D 디자인 프로그램을 다루는 것과 같은 인터페이스를 제공하여 디자인 능력만으로 좋은 결과를 낼 수 있도록 만들어줍니다.

또한, 대부분의 설정이나 옵션을 위한 메뉴가 존재하기에 코딩없이 해당 기능에 대한 원리와 사용법 학습만으로도 충분히 만들어낼 수 있습니다.
코딩이 필요한 경우 비주얼 로직(Visual Logic)기반으로 표현할 수 있는 도구를 제공하기에 텍스트기반 코딩 없이 필요한 로직을 만들어낼 수 있습니다.
캐릭터의 행동 패턴을 표현할 수 있는 유니티 메카님 에디터

코딩없이 로직을 만들 수 있는 PlayMaker (별도 구매 필요)


에셋 스토어(Asset Store)
소프트웨어 개발에 필요한 것은 코딩 라이브러리 뿐 아니라 리소스라 불리는 이미지, 음악 등도 포함이 됩니다. 특히, 혼자서 개발을 진행하려면 다른 전문 영역에 대한 도움이 절실합니다. 유니티는 자체적으로 에셋 스토어를 운영하여 유니티 개발자들이 서로 도움을 줄 수 있는 시스템을 만들었습니다.
이곳에서는 소프트웨어 개발에 필요한 재료를 유료 혹은 무료로 얻을 수 있고, 심지어 본인이 재료를 만들어 다른 유니티 사용자에게 판매함으로써 수익을 낼 수 있는 좋은 시스템입니다.


멀티 플랫폼 빌드
멀티 플랫폼 빌드란, 다양한 운영 체제에서 작동할 수 있는 소프트웨어 개발을 의미합니다. 예전과 달리 OS의 종류가 다양해지면서 소프트웨어 개발에 어려움을 겪고 있습니다.
그 이유는 OS마다 개발 도구와 라이브러리 사용법 등이 다르기 때문입니다.
여러분이 Android App 개발을 했다고 해서 iOS용 App 개발이 쉽게 되는 것이 아닙니다. Android App개발을 위해 공부했던 만큼 iOS App개발을 위해 노력과 시간을 투자해야 합니다.
문제는 이런 경우가 꽤 많다는 것이고, 앞으로 소프트웨어 개발에 있어서 멀티 플랫폼을 지원하는 것은 매우 중요한 이슈가 되고 있습니다.

유니티는 이 문제를 해결해주었기 때문에, 여러분이 유니티에서 개발된 것은 클릭 한번으로 쉽게 여러 플랫폼을 지원하는 소프트웨어가 되도록 할 수 있습니다.
유니티의 플랫폼 빌드 선택 메뉴


유니티 라이센스 정책
가장 궁금한 것은 유니티를 사용하려면 얼마가 필요한가일 것입니다.
유니티는 다음과 같은 라이센스 정책을 가지고 있습니다.
  • 개인(Personal) : 무료 (학생/일반인/연 매출 1억 이하 창업자)
  • 플러스(Plus) : 월 $35 (보다 전문적인 기능을 원하는 사람)
  • 프로(Pro) : 월 $125 (상용 결과물을 전문적으로 다루는 사람)
  • 기업(Enterprise) : 별도 책정 (전문 기업)
Personal버전의 경우 소프트웨어 개발에 필요한 기능 제약은 없기에 처음 시작하는 사람들은 부담없이 할 수 있습니다. 또한 여러분이 상용 결과물을 목표로 한다 하더라도 연 매출 1억까지는 무료로 시도할 수 있습니다. 유니티는 만들어진 상용 결과물에 대해 어떤 로열티도 요구하지 않습니다.




이제는 그냥 소프트웨어를 만드는 것이 아니라 혁신적이고 창의적인 소프트웨어를 만들어야 합니다.
그렇다면, 단순히 문법을 배워 코딩하는 방법을 배운 것을 넘어서 최신 소프트웨어 기술을 여러분의 결과물에 활용할 수 있어야 합니다.
다른 어떤 개발 도구나 방법론보다 유니티가 이를 달성하는데 가장 좋은 선택이 될 수 있을 것이라 확신합니다.


댓글 없음:

댓글 쓰기