Unity의 정의

Tutorial

foundational

+10XP

10 mins

(375)

Unity Technologies

Unity의 정의

이 튜토리얼에서는 Unity 엔진 자체에 대해 자세히 알아보겠습니다. Unity를 게임 엔진이라고도 하는 이유를 확인하고, Unity가 어떻게 만들어졌으며 지금까지 어떻게 진화했는지 살펴봅니다.

Languages available:

1. 개요

Unity는 게임 엔진으로 시작했지만, 다양한 산업 분야에서 사용되는 제작 툴로 발전했습니다. 하지만 Unity의 근원은 여전히 게임 엔진이며, Unity가 만들어진 이유와 과정을 알아보면 Unity가 왜 지금과 같은 방식으로 작동하는지를 알 수 있습니다.

게임 엔진이라는 용어의 의미를 정확히 모르더라도 걱정하지 마세요. 게임 엔진은 게임 업계에서 꾸준히 회자되는 용어지만, 명확한 설명이 제공되는 경우는 많지 않습니다. Unity를 처음 접하는 사용자나 다른 업계의 크리에이터라면 혼란스러울 수 있습니다. 먼저 게임 엔진이 무엇인지 정의하는 것부터 시작하겠습니다.

2. 게임 엔진의 정의

게임을 제작하는 과정은 겉으로 보이는 것보다 훨씬 복잡합니다. 지금 여러분이 이 튜토리얼을 읽고 있는 컴퓨터나 모바일 기기에서는 화면에 전원을 공급하고, 밝기 설정을 지정한 값으로 유지하고, 인터넷에 연결한 상태를 유지하고, 화면에 텍스트와 이미지를 표시하는 방법을 기기에 알려 주는 운영체제가 실행되고 있습니다. 또한 기기의 전원에 대한 액세스를 제한하는 등 직접적으로 관련되어 있지 않은 수많은 작업이 백그라운드에서 수행되고 있습니다. 이처럼 단순히 텍스트를 표시하는 것만으로도 많은 작업을 관리해야 합니다.

그러면 콘텐츠를 읽거나 보는 것이 아닌 콘텐츠를 제작하는 과정을 생각해 보겠습니다. 이메일을 작성해 보았다면, 메시지를 작성하기 위해 이메일 프로그램 내부의 작동 방식을 이해할 필요가 없다는 사실을 알고 있을 것입니다. 다른 모든 작업은 프로그램이 대신 처리하며, 작성자는 메시지의 내용을 작성하는 일에만 집중하면 됩니다. 게임 엔진도 마찬가지입니다.

게임 엔진에는 게임 제작을 위한 모든 요소가 모여 있습니다. 모든 애플리케이션과 마찬가지로 게임은 3D 모델, 스크립트, 오디오 파일 등 여러 요소로 구성됩니다. 이러한 요소를 모두 결합하여 완전한 사용자 경험을 만들 수 있습니다. 3D 모델이나 스크립트, 오디오 파일을 음식 재료에 비유하자면, Unity를 비롯한 여러 게임 엔진은 재료를 넣는 냄비와 같습니다.

여러분이 이 튜토리얼을 읽을 수 있게 해 주는 운영체제와 같다고 생각해 보세요. 게임 엔진은 게임이 화면에 표시되고, 오브젝트가 다른 오브젝트와 상호 작용하고, 사운드가 들리고, 애플리케이션을 기기에서 실행할 수 있는 형식으로 퍼블리시할 수 있게 합니다. 여러분이 콘텐츠를 만들면 게임 엔진은 원활하게 작동하는 환경에서 콘텐츠를 구현할 수 있는 툴을 제공합니다.

3. 게임 엔진으로 하는 작업

이제 게임 엔진이 무엇인지에 대한 기초 지식을 배웠으니, 크리에이터가 게임 엔진으로 어떤 작업을 하는지 자세히 알아보겠습니다. 게임 엔진이 여러분이 제공할 콘텐츠를 구현하기 위한 것이라면, 콘텐츠는 무엇일까요?

크리에이터는 게임 엔진에서 사용자가 최종 제품을 통해 경험할 모든 요소를 조합합니다. 최종 제품이 게임이라면 크리에이터는 플랫폼에서 점프하는 것과 같은 게임플레이를 디자인합니다. 최종 제품이 애니메이션이라면 레코딩할 액션을 고안하며, VR 건축 시각화라면 사용자가 걸어 다닐 사실적인 환경을 구축합니다. 또한 게임 엔진은 크리에이터가 본인의 제품을 인터랙티브 경험으로 만들 수 있는 수단을 제공합니다. Unity는 겉으로 드러나지 않는 아주 많은 작업을 수행하므로 크리에이터는 가장 중요한 사용자 경험 제작에만 집중하면 됩니다.

4. 게임 엔진으로 하지 않는 작업

인터랙티브 경험의 기본 구성 요소인 오브젝트와 사운드 등의 에셋은 게임 엔진 내에서 제작하지 않습니다. 대신 에셋은 DCC(디지털 콘텐츠 제작) 툴이라는 전문 외부 프로그램에서 제작됩니다. 에셋 임포트 과정을 용이하게 하기 위해 많은 DCC가 Unity와 통합되어 있습니다.

실시간 개발에 사용되는 가장 일반적인 유형의 DCC 툴은 다음과 같습니다.

  • 3D DCC: 3D 모델, 애니메이션 캐릭터, 환경을 제작하는 프로그램. 예: Maya, ZBrush, Blender
  • 2D DCC: 2D 이미지, 일러스트레이션, 텍스처, 인터페이스를 제작하는 프로그램. 예: Photoshop, Illustrator, Substance Painter, Gimp
  • 오디오 DCC: 음향 효과와 음악을 녹음, 편집, 믹싱하는 프로그램. 예: Audition, Logic Pro, Reaper, Audacity
  • IDE(통합 개발 환경): 다양한 언어로 코드를 작성하는 프로그램. 예: Visual Studio, Rider
  • 실시간 엔진: 3D 콘텐츠나 애플리케이션을 실시간 개발, 렌더링, 퍼블리시하는 프로그램. 예: Unity, Unreal

다음 튜토리얼에서는 각 DCC 유형을 자세히 설명합니다.

Unity 에셋 스토어

DCC 활용법을 배워서 Unity 에셋을 만든다면 훌륭한 기술이 되겠으나, 프로젝트의 모든 에셋을 처음부터 새로 만들 필요는 없습니다. DCC로 제작되어 바로 사용할 수 있는 수많은 에셋을 Unity 에셋 스토어에서 다운로드할 수 있으며, 그중에는 무료 에셋도 있습니다. Unity ID가 있으면 에셋 스토어 웹사이트와 Unity 에디터의 패키지 관리자를 연결하는 링크를 통해 에셋을 바로 다운로드하고 프로젝트로 임포트할 수 있습니다. 다음 튜토리얼에서는 에셋 스토어로 이동하여 프로젝트를 개선하기 위한 특정 에셋을 받아 보고 직접 에셋 스토어를 살펴봅니다.

5. Unity 이야기

게임에서 시작한 Unity의 여정

유니티 테크놀로지스에서 출시한 최초의 제품은 게임 엔진이 아니라 게임이었습니다.

2005년, 유니티를 창업한 요아킴 안테, 데이비드 헬가슨, 니콜라스 프랜시스는 회사 설립 1년 후 MacOS용 비디오 게임인 GooBall을 출시했습니다. 당시 사명은 Over the Edge Entertainment였습니다. 이 게임은 다른 개발자에게 엔진의 라이선스를 부여할 목적으로, 창업자들이 직접 개발한 엔진으로 제작되었습니다.

Unity 등장 전 게임이 만들어지던 방법

당시 대부분의 게임 회사는 다양한 프로젝트를 위해 자체 엔진을 개발했으며, 게임을 제작할 때마다 새 엔진을 만드는 경우도 있었습니다. 그렇게 하면 제작사 고유의 요구 사항을 충족하는 툴을 만들 수 있었지만, 대신 많은 시간과 비용이 소요되었습니다. 게임 개발과 엔진 제작을 동시에 진행할 수 있는 경우도 많았지만, 게임의 핵심 컨셉이 변경되면 엔진도 재작업해야 할 수 있으므로 판매 가능한 제품을 릴리스하는 데 더 오랜 시간이 걸리기도 했습니다.

사용할 만한 사전 제작된 엔진이 부족하다는 사실은 특히 개인이나 소규모 팀으로 구성된 인디 개발자에게 부담이 되었습니다. 게임 엔진 제작은 매우 기술적인 과정이며, 광범위한 프로그래밍 경험이 필요합니다. 인디 개발자가 광범위한 프로그래밍 경험을 갖고 있지 않은 경우, 막대한 비용이 드는 엔진의 라이선스를 구매하는 것 외에 선택의 여지가 없었습니다. 그래서 2000년대 중반 이전에는 인디 게임 개발자가 게임 개발 기업에 비해 매우 적었으며, 상업적으로 성공한 인디 게임은 거의 없었습니다.

엔진의 탄생

GooBall은 성공하지 못했지만, Unity는 성공했습니다. 안테, 프랜시스, 헬가슨은 Apple의 Worldwide Developers Conference에서 Unity 엔진을 처음 선보였습니다. 초반부터 적극적으로 채택되지는 않았지만, Unity 엔진은 곧 인디 개발자들의 눈길을 끌었습니다.

Unity는 게임 산업이 변화하기 시작한 2000년대 중반에 시장에 출시되었고, 독보적인 자리를 선점하며 '인디 게임 혁명'에서 중요한 역할을 차지하게 되었습니다. Unity의 초기 성공에는 세 가지 요소, 즉 게임을 위한 신뢰도 높은 디지털 배포 모델의 도입, 인디 개발자들이 매력을 느낄 수 있는 기능에 대한 집중, 초기 스마트폰에 대한 지원이 아주 중요했습니다.

Unity가 처음 출시되었을 무렵에 고속 인터넷 도입이 본격화되면서 게임을 디지털로 배포할 수 있게 되는 시기가 열렸습니다. 이전에는 인디 개발자가 게임을 배포할 수 있는 모델이 거의 없었습니다. 거의 모든 게임은 대형 퍼블리셔와 계약을 거쳐 소매점에서 판매되었는데, 퍼블리셔야말로 인디 개발자가 독립해 나오는 곳이었으니 아이러니한 상황이었습니다. 인터넷에 더 빠르고 쉽게 액세스할 수 있게 되면서 일반 사용자는 개발자의 개인 웹사이트에서 호스팅되는 게임을 쉽게 다운로드하거나, 이 시기에 등장하기 시작한 '디지털 배포 서비스'라는 온라인 스토어프론트를 통해 게임을 다운로드할 수 있었습니다. 디지털 배포 서비스는 호스팅과 판매 처리, 경우에 따라서는 디지털 권한 관리나 소셜 관련 요소까지 관리합니다. 개발자는 이러한 서비스를 사용하여 판매와 배포를 직접 관리하지 않고 게임의 제작과 유지 관리에 더 많은 시간을 투자할 수 있게 되었습니다. 2000년대 중반에는 소매점을 통한 게임 판매가 게임 구매의 대부분을 차지했지만, 게임을 찾고 플레이하기 위해 디지털 배포 서비스를 사용하는 소비자가 점차 늘기 시작했습니다. 별안간 인디 개발자가 잠재 고객에게 다가갈 수 있는 기회를 갖게 된 것입니다.

Unity는 처음 출시되었을 때 인디 개발자에게 합리적인 가격으로 엔진을 제공하여 다른 라이선스 엔진과 Unity를 차별화했습니다. 또한 개발자에게 양질의 경험을 제공하는 데 집중했는데, 이는 다른 라이선스 엔진이 간과했던 부분입니다. 이 두 가지 요소는 점점 규모를 키워 나가는 인디 개발 커뮤니티에서 Unity가 주목을 받는 데 큰 역할을 했습니다.

처음 iPhone이 App Store를 타사 애플리케이션에 개방했을 때 이 플랫폼을 처음으로 지원하는 여러 툴 중에는 Unity도 있었으며, 이를 통해 폭발적으로 성장하는 모바일 게임 시장에서 Unity의 입지를 굳힐 수 있었습니다. 곧 App Store의 게임 중 절반 이상이 Unity로 개발되었습니다. 이러한 추세는 현재도 iOS와 Android 모바일 게임에서 계속되고 있습니다.

6. 다음 단계

한때 Unity의 핵심 가치는 '게임 개발의 민주화'였습니다. 지금의 핵심 가치는 '개발의 민주화'로, 게임에서 초점을 옮기는 것이 아니라 훨씬 넓고 다양한 분야를 향해 열린 엔진이 되고자 합니다. Unity는 이제 게임 엔진에서 실시간 엔진으로 발전하여, 새로운 기능을 제공하며 게임 개발자는 물론 다양한 산업 분야의 애니메이터, 엔지니어, 디자이너, 트레이너, 마케터 등을 지원합니다. Unity는 모두를 위한 엔진이며, 누구나 사용할 수 있습니다.

이제 Unity의 배경과 역사를 알아보았으니, 다음 튜토리얼을 계속 진행하여 Unity의 실시간 엔진을 사용하는 다양한 업계에 대해 알아보세요.

Complete this Tutorial