본문 바로가기
카테고리 없음

유니티 게임 엔진에 대한 종합 가이드: 질문에 대한 답변

by 아수랑 2025. 3. 2.
728x90

Unity로 게임을 제작하는 방법이 궁금하신가요? 이 가이드에서는 다음 게임 프로젝트를 위한 엔진으로 Unity를 고려할 때 알아야 할 모든 것을 알려드립니다.

관련 분야: 프로덕션
작성자: Mars Buttfield-Addison, Contributor, Computer Science Researcher

 

Unity 테크놀로지스 제공



기술의 발전과 사용자 친화적인 게임 엔진의 확산으로 게임 개발에 대한 접근성이 그 어느 때보다 높아졌습니다. 하지만 시중에 다양한 툴과 서비스가 존재하기 때문에 초보 개발자는 자신의 경험과 요구 사항에 가장 적합한 제품을 찾기가 어려울 수 있습니다.

게임 개발에는 게임 디자인, 에셋 제작(2D 에셋, 3D 에셋, 애니메이션), 스크립팅, 테스트 등 다양한 요소가 포함되지만, 게임 엔진을 이해하고 플러그인 및 보완 소프트웨어를 사용하는 방법을 이해하는 것은 게임을 성공적으로 시작하기 위한 핵심 요소입니다. 유니티는 다양한 옵션 중 하나로, 상대적으로 사용하기 쉽고 유연하며 사용 가능한 리소스의 수가 많아 게임 개발자에게 인기가 많습니다.

반응형


Unity란 무엇인가요?

Unity는 모든 최신 플랫폼용 게임을 제작할 수 있는 강력한 게임 엔진입니다.

게임 엔진은 게임 개발을 지원하는 전문 애플리케이션으로, 다음과 같은 기능을 제공합니다:

 

코드와 에셋을 연결하고 조작할 수 있는 에디터 환경, 그리고

이동 물리 또는 플랫폼별 빌드 프로세스와 같은 기본 기능을 위한 일련의 툴을 제공합니다.



에셋 관리부터 물리 시뮬레이션까지 모든 것을 커스텀 코드로 작성하는 대신 엔진 없이 게임을 제작할 수도 있지만, 테스트와 유지 관리에 불필요한 부담을 주기 때문에 점점 더 드물어지고 있습니다. 대신 기성 게임 엔진 솔루션을 사용하면 처음부터 다시 개발할 걱정 없이 바로 게임 시스템 제작으로 넘어갈 수 있습니다.

Unity 에디터는 macOS, Windows, Linux에서 실행되며 2D/3D 에디터 환경, 에셋 관리자, 강력한 렌더 엔진, 유연한 .NET 기반 C# 스크립팅 시스템 등이 통합되어 있습니다. 모델링 툴부터 버전 관리까지 모든 기능이 통합되어 있으며, 프로젝트에 바로 사용할 수 있는 사전 제작된 에셋으로 가득한 에셋 스토어도 내장되어 있습니다.

 

그림 1. Unity 에디터 인터페이스.


Unity로 어떤 유형의 게임을 만들 수 있나요?

이 질문은 “전자레인지로 무엇을 만들 수 있나요?”라는 질문과 비슷합니다. 사실상 모든 유형의 게임을 Unity로 만들 수 있지만, 일부 게임이 다른 게임보다 더 적합할 수 있을 뿐입니다. 유니티가 여러분의 요구 사항에 가장 적합한 솔루션인지 알아보기 위해 유니티가 가장 잘하는 몇 가지 기능과 다른 솔루션이 더 적합한 시나리오를 살펴보겠습니다.

최신 플랫폼에서 Unity는 게임 출시의 대부분을 차지하는 경우가 많으며, 60~70% 범위로 추정되는 것이 일반적입니다. 유일하게 비교할 수 있는 제품은 2017년 출시 이후 수년 동안 연간 게임 매출 1위를 차지한 게임인 포트나이트의 개발사로 유명한 언리얼 엔진입니다. 그 외에도 Godot과 같은 완전 무료 오픈 소스 모드 지원 엔진이나 RPG Maker와 같은 특정 게임 장르에 맞춘 엔진 등 보다 구체적인 사용자 요구 사항을 충족하기 위한 수많은 소규모 게임 엔진이 존재합니다.


유니티와 언리얼 엔진 비교

2D 및 3D 게임을 위한 범용 게임 개발 소프트웨어를 제공하는 대형 서비스형 소프트웨어 제공업체라는 점에서 Unity와 Unreal Engine을 비교하는 것은 흔한 일입니다. 선호도는 전적으로 주관적인 경우가 많지만, 두 진영 모두 각자의 언덕에서 기꺼이 죽을 각오를 하는 개발자로 가득 차 있습니다. 그럼 두 진영의 게임으로 이야기를 풀어봅시다.

언리얼 엔진에 비해 Unity는 모바일 게임이나 광범위한 플랫폼 지원 요구 사항이 있는 타이틀에 더 많이 사용됩니다. Unity 기반 게임으로 추가 플랫폼을 타겟팅하는 것은 빌드 시 체크박스에 체크하는 것만큼 간단할 수 있으며, 지난 10년간 3D 및 많은 2D 모바일 게임의 사실상 표준이 되어 온 개발 프로세스의 이점을 누릴 수 있습니다. 빌드 크기가 중요한 요소이긴 하지만, Unity는 이미 모바일 게임 제작에 필요한 모든 툴과 플랫폼에서 작동하며, 다양한 앱 스토어에서 Unity 기반 게임을 출시할 수 있는 길도 열려 있습니다.

또한 Unity는 상대적으로 접근하기 쉽고 라이선스 비용이 저렴하며 초보자를 위한 튜토리얼이 풍부하기 때문에 신생 스튜디오나 소규모 스튜디오에서도 인기가 높습니다. Unity는 게임 디자인을 가르치는 대학에서 인기 있는 교육 툴이기 때문에 게임 업계에서 프로가 된 학생들 중 상당수가 프로가 된 후에도 충성도 높은 Unity 사용자를 유지하고 있습니다. 전용 툴이 없어도 Unity 프로젝트에서 협업하는 과정은 다른 대안 툴을 사용할 때처럼 부담스럽지 않습니다. Unity는 게임 프로젝트를 빠르게 시작할 수 있는 대표적인 방법으로 꼽히며, 이는 전 세계 게임 애호가 및 게임 잼 참가자들 사이에서 압도적인 인기를 누리고 있는 것만 봐도 알 수 있습니다.

또한 복잡한 물리 모델링이 요구되는 게임과 같이 틈새 엔진이나 맞춤형 엔진을 주로 사용하는 게임 카테고리에서도 Unity가 선택되고 있습니다. 이 카테고리에서 주목할 만한 유니티 게임으로는 사실적인(따라서 매우 까다로운) 궤도 물리학의 영향을 받아 플레이어가 우주선을 설계하고 조종하여 태양계의 먼 천체를 탐사하는 게임인 케르발 우주 프로그램(Kerbal Space Program)이 있습니다. 유니티의 기반이 되는 물리 엔진은 언리얼 엔진과 같은 다른 엔진과도 공유되지만, 유니티의 차별점은 물리 인터랙션을 비롯한 핵심 컴포넌트에 대한 커스텀 스크립팅 지원입니다.

따라서 작고 특이한 무언가를 만들거나 모든 곳에 배포해야 하는 경우 Unity가 적합할 수 있습니다. 하지만 이제 차이점을 살펴보겠습니다. 제한된 비모바일 플랫폼용 대형 게임을 제작하는 경우라면 Unreal 엔진을 사용하는 것이 더 적합할 수 있습니다. 유니티와 달리 언리얼은 대형 AAA 타이틀을 타깃으로 삼는 데 매우 솔직했으며, 최근에야 로열티가 없는 라이선스 티어를 제공하기 시작했습니다(제한이 있긴 하지만). 언리얼은 종종 더 복잡하다고 여겨지지만 사실적인 그래픽이 우선시되는 게임에서 일반적으로 선택되며, 두 툴의 툴링 지원은 거의 비슷합니다. 따라서 둘 중 하나를 선택하는 것은 게임과 제작자의 구체적인 요구 사항에 따라 달라집니다.

728x90

Unity의 기능은 무엇인가요?

Unity는 광범위한 툴과 통합 에코시스템을 포괄합니다. Unity 에디터는 툴과 에셋이 한데 모여 상상할 수 있는 거의 모든 유형의 게임을 개발할 수 있는 곳입니다. 에디터 내 기능에 대해 설명하기 전에 Unity 컴포지션의 기본 작동 방식부터 살펴보겠습니다...


Unity의 게임 오브젝트

Unity의 기본 구성 요소는 게임 오브젝트입니다. 게임 오브젝트는 컴포넌트를 붙일 수 있는 Unity 씬에 존재하는 엔티티입니다. 게임 오브젝트에는 메시와 같은 물리적 측면을 나타내는

메시(모델) 및 머티리얼(텍스처)과 같은 물리적 측면을 나타냅니다;

오브젝트를 단단하게 만들거나 중력을 받는 등 오브젝트와 물리 엔진의 상호작용에 영향을 줍니다;

이러한 동작을 정의하는 스크립트를 첨부하여 오브젝트에 동작을 부여하거나 특정 입력에 응답할 수 있도록 합니다;

객체의 속성 또는 다른 객체와의 의미 관계를 정의합니다,

등의 작업을 수행할 수 있습니다.

 

이러한 방식으로 게임 오브젝트는 플레이어(물리적 모델과 움직임 동작을 위한 컴포넌트와 인벤토리 시스템과 같은 관련 오브젝트에 대한 링크)부터 카메라(위치와 렌더링 설정, 상태, 움직임 신호를 위한 컴포넌트), 씬 트리거(물리적 측면은 없지만 씬에서 보이지 않게 존재하며 무엇을 감시하고 어떻게 반응하는지에 대한 컴포넌트가 있음)에 이르기까지 모든 것을 나타낼 수 있습니다. 따라서 Unity의 게임은 씬으로 구성되며, 각 씬에는 게임 오브젝트 계층 구조가 있고, 각 게임 오브젝트에는 목적에 맞는 컴포넌트가 포함됩니다. 오브젝트와 동작을 정의하는 이 방식은 매우 유연하며, 모든 것이 빌딩 블록으로 구성되어 있어 변화가 빠르기 때문에 학습 곡선이 빠르게 평탄화되고 다양한 동작 컴포넌트를 작업하는 팀과 같이 쉽게 분산할 수 있는 개발 환경과 역동적인 개발 환경을 제공합니다.

이는 게임별 모델, 에셋, 시스템, 비헤이비어 등 Unity에서 무언가를 만드는 방식에 대한 해답입니다. 따라서 유니티의 차별화 요소는 광범위한 개발 프로세스를 지원하고 상용구 시스템 생성을 단축할 수 있다는 점입니다. 프로젝트가 시작된 후 다른 엔진으로 포팅하는 것은 매우 어렵기 때문에 선택한 엔진이 원하는 워크플로를 지원하는지 확인해야 합니다.


Unity에서 스크립팅하기

스크립팅부터 시작하겠습니다. Unity에서 게임 오브젝트의 컴포넌트는 동작을 정의하는 스크립트에 대한 레퍼런스가 될 수 있습니다. 이러한 스크립트는 일반적으로 C#으로 작성되며, 최고 수준의 코드 에디터 지원 및 통합, 버전 관리, 테스트 툴 등 Unity 에디터 외부의 언어로서 C#에 존재하는 오래 지속되고 강력한 에코시스템을 활용할 수 있습니다. 하지만 C# 코드를 작성하고 싶지 않은 사용자를 위해 Unity에는 Unity 비주얼 스크립팅이라는 시각적 노드 기반 로우코드 편집 환경도 내장되어 있습니다.

 

그림 2. Unity 비주얼 스크립팅 인터페이스.


Unity의 성능

유니티의 자체 프로파일러 툴을 사용하면 Unity 기반 게임의 성능을 쉽게 보장할 수 있습니다. 프로파일러는 게임 시스템을 실행하고 CPU 사용량, GPU 사용량, 메모리 사용량, 오디오 관리, 물리 시뮬레이션 등에서 이상 징후와 성능 개선 기회를 찾습니다. 또한 지난 몇 년 동안 유니티는 머신러닝 모델을 훈련하고 배포하는 데 유니티 환경을 사용할 수 있는 오픈 소스 프레임워크인 Unity ML-Agents를 출시하여 인공 지능 분야에서 큰 반향을 일으켰습니다. 이 프레임워크는 엔진 내에서 직접 게임이나 시뮬레이션을 위한 에이전트(봇)를 훈련하는 데 사용할 수 있으며, C#과 Python에 걸쳐 다양한 기존 툴을 사용할 수 있습니다.


유니티 에셋 스토어

이뿐만이 아닙니다. 유니티의 에셋 스토어는 에디터에서 기본적으로 제공하지 않는 모든 것을 위한 마켓플레이스를 제공합니다. 이를 통해 사용자는 이미 알고 있고 애용하는 툴과 통합을 믹스 앤 매치하여 Unity 에디터 내에서 고도로 커스터마이즈된 사용자 경험을 만들 수 있습니다.

Unity 엔진 내부 작업의 기본 개념에 대해 자세히 알아보려면 곧 제공될 튜토리얼 콘텐츠를 확인하세요. Unity 엔진 외부에서 필요한 모든 작업은 외부 툴의 통합과 지원에 관한 내용입니다.


Unity와 호환되는 다른 툴에는 어떤 것이 있나요?

Unity는 2000년대 중반부터 사용되어 왔으며 수십만 개의 게임이 출시되었습니다. 개발자와 툴 제작자가 상당수 포함된 대규모 팬/사용자층을 보유하고 있습니다. 수많은 사람이 Unity용 툴을 만들었다고 해도 과언이 아닙니다. 상상할 수 있는 거의 모든 작업을 수행할 수 있는 툴이 있습니다. 하지만 게임 개발 파이프라인의 주요 단계에서 가장 많이 사용되는 툴을 살펴보겠습니다.

먼저 콘셉트 단계부터 살펴보겠습니다. “시스템, 레벨, 레이아웃 디자인을 Unity에서 직접 '그레이박싱'하는 것이 일반적이며, 이를 지원하는 다양한 커뮤니티 툴이 있습니다. 환경 프로토타이핑을 위해 제작된 환상적인 에셋 팩을 저렴하게(예: Synty의 폴리곤 프로토타입 팩) 또는 무료로(예: Kenney의 아이소메트릭 미니어처 프로토타입 팩)을 사용하면 빠르게 시작할 수 있으며, Unity 게임 오브젝트의 모듈식 디자인은 초기 단계의 반복적인 시스템 디자인에 적합합니다.


2D 및 3D 에셋 제작

다음은 에셋 제작입니다. 이전과 마찬가지로 Unity 에셋 스토어 등에서 제공되는 풍부한 사전 제작 에셋을 활용할 수 있습니다. 또는 엄밀히 따지자면 Unity에는 프로빌더에 몇 가지 기본 모델링 기능이 내장되어 있지만, 사용하기에 다소 제한적이고 사용하기에 좋지 않아서 단순하거나 저폴리 스타일의 게임에만 사용하는 경향이 있습니다. 이러한 '영웅 에셋'의 경우 외부 모델링 툴을 대신 사용한 다음 Unity로 임포트하여 애니메이션을 제작하고 사용하는 것이 일반적인 프로세스입니다.

3D 모델링의 경우 요즘 가장 많이 사용되는 툴은 단연 Blender입니다. 무료인 데다 오픈 소스이고, 훌륭한 커뮤니티와 다양한 매체의 풍부한 온라인 튜토리얼이 지원되며, Unity는 기본적으로 .blend 파일을 임포트할 수 있기 때문입니다. Blender, Maya/3ds Max 및 기타 인기 있는 대체 툴에서 모델을 임포트할 수 있는 Unity의 퍼스트 파티 지원으로 선택의 폭이 넓어졌으며, 일반 .obj 포맷으로 익스포트되는 복셀 에디터(예: MagicaVoxel) 또는 조각 툴(예: ZBrush) 같은 전문 에디터는 Blender 변환을 통해 Unity로 직접 임포트할 수 있습니다.

 

그림 3. Blender 3D 모델링 인터페이스.


Unity에서 코딩하기

이제 시스템 구현과 코딩에 대해 알아보겠습니다. Unity는 사용자가 선호하는 모든 코드 에디터를 지원합니다. Visual Studio, Visual Studio Code, JetBrains Rider에 대한 퍼스트 파티 지원은 물론, Atom(더 이상 사용되지 않지만 여전히 사랑받는), Sublime, Xcode와 같은 다른 에디터에서도 최소한의 조작만으로 원활하게 작동하도록 설정할 수 있습니다. 버전 관리의 경우 Unity는 PerforcePlastic 기반 버전 관리를 위한 커스텀 통합 기능을 제공하지만, 많은 사용자가 커스텀 플러그인(Unity에서 직접 사용할 수 있는)이나 코드 에디터 통합(스크립트 파일만 버전 관리)을 통해 사실상 업계 표준인 GitHub, GitLab 또는 BitBucket 같은 호스팅 솔루션을 사용하는 것을 더 선호합니다. 하지만 Unity는 사람이 읽을 수 없는 메타데이터나 씬 파일의 변경으로 복잡한 병합 충돌이 발생하는 것으로 악명이 높으므로 신중하게 접근해야 합니다.


Unity에서 테스트하기

튜닝 및 테스트로 넘어갑니다. Unity에 내장된 프로파일러는 대부분의 튜닝에 외부 툴이 필요하지 않은 경우가 많지만, 성능 및 기능 테스트를 위한 다른 옵션도 존재합니다. 또한 플레이 테스트의 경우 iOS용 TestFlight, Steam 베타 릴리스를 통한 PC 등 대부분의 플랫폼과 스토어에서 테스트할 수 있는 통합 기능이 제공됩니다.

마지막으로 빌드, 패키지 및 배포 단계입니다. 유니티는 로컬 및 클라우드 기반 버전 모두에서 모든 주요 플랫폼에 대해 '원클릭' 빌드를 지원하여 번거로움을 최소화합니다. 타겟 플랫폼이 많은 게임의 빌드 및 검증 프로세스를 자동화하기 위해 관리형 CI/CD 솔루션부터 UnityTest 프레임워크용 스마트 래퍼에 이르기까지, 최신 콘솔 플랫폼을 대상으로 하는 데 필요한 모든 중요한 규정 준수 검사를 처리하는 여러 인기 타사 툴이 존재합니다.

콘셉트 디자인의 초기 단계부터 출시 후 유지 관리 단계까지, 유니티는 필요한 모든 툴을 제공합니다.


Unity의 가격 구조는 어떻게 되나요?

많은 사용자에게 Unity는 완전 무료일 수 있습니다. 유니티는 유료로 특정 빌드 및 지원 서비스를 제공하는 비공개 소스 제품이지만, 프로젝트에서 유니티를 사용하는 가격을 결정하는 주요 라이선스 조건은 주로 수익 규모에 따라 결정됩니다. 이는 가장 공정한 가격 책정 모델 중 하나로, 어떤 게임을 만들었는지, 얼마나 많은 인원이 함께 작업했는지, 게임 제작으로 얼마나 많은 수익을 올렸는지는 중요하지 않습니다. Unity 라이선스는 네 가지 티어로 제공됩니다.

무료 티어는 지난 1년간 미화 10만 달러 미만의 수익을 올린 개인이나 단체에 적용됩니다. 즉, 선불 라이선스 비용과 이후 로열티가 전혀 발생하지 않습니다. 덕분에 학생과 취미로 Unity를 사용하는 사람들이 널리 사용할 수 있으며, 게임 디자인 및 개발 교육을 위한 인기 툴로 자리 잡았습니다.

다음 단계의 라이선스는 Unity 플러스 플랜으로, 팀 전체의 공동 개발을 지원하는 일련의 툴이 포함되어 있으며 최종 빌드에서 일부 Unity 브랜딩이 제거됩니다. 이 플랜은 연간 '시트' 당 수백 달러 정도의 비용이 들며, 여기서 시트는 해당 라이선스가 적용되는 Unity에 액세스할 수 있는 개인을 의미합니다. 시트는 스튜디오에서 일괄 구매한 다음 Unity를 직접 사용해야 하는 개별 직원에게 할당합니다. 라이선스 재할당(취소 및 다른 사람에게 즉시 재발급)은 가능하지만, 라이선스 특성상 한 조직이 구매하는 시트 수는 일반적으로 전체 프로그래머 수와 비슷하며 애니메이터, 레벨 디자이너 및 QA에 대한 추가 할당도 포함됩니다.

Unity 라이선스의 추가 계층은 일반적으로 매우 큰 규모의 스튜디오를 대상으로 합니다. 더 높은 좌석당 사용료를 지불하면 고급 협업 툴과 유니티의 클라우드 기반 자동 빌드 시스템 등 하위 티어의 모든 표준 및 프리미엄 기능을 이용할 수 있을 뿐만 아니라 유니티에서 제공하는 일정 수준의 맞춤형 기술 및 기능 지원도 받을 수 있습니다.


유니티에 대한 자세한 내용은 어디에서 확인할 수 있나요?

툴과 마찬가지로 Unity 엔진의 인기로 인해 튜토리얼은 어디에나 있습니다. 신규 개발자가 선호한다는 것은 '초보자용' 콘텐츠가 많다는 뜻이고, Unity의 오랜 역사로 인해 수년 동안 많은 문서가 구식이 되었을 수 있으므로 사용 중인 버전 번호를 잘 확인하지 않으면 혼란을 겪을 수 있지만, 전반적으로 커뮤니티에서 만든 콘텐츠는 Unity의 가장 큰 강점 중 하나입니다.

빠르게 진화하는 대형 소프트웨어 프로젝트가 그렇듯이 공식 문서는 잘 만들어져 있지만, 잘 만들어져 있어도 의미가 모호한 경우가 많습니다. 게임 엔진은 그 자체의 잘못이 아니더라도 복잡하기 마련이며, 이보다 더 나은 엔진은 없습니다. 유니티의 경우 실용적인 강좌 콘텐츠가 부족한 부분을 잘 채워줍니다. 하지만 이 커뮤니티는 실제 현장에서 Unity로 다양한 종류의 멋진 작품을 만들고 있는 사람들이 제공하는 비디오 튜토리얼, 팟캐스트, 글(이 글과 같은)을 통해 활발하게 운영되고 있습니다.

개발자로서 저는 제가 작업 중인 프로젝트와 유사한 특정 툴이나 게임에 대한 데브로그나 커버스토리에서 가장 유용한 정보를 발견했습니다. 다른 사람들은 Udemy나 Coursera와 같은 온라인 제공업체의 공식 강좌에서 그 가치를 높이 평가했습니다. 이 모든 것이 효과가 없다면 기꺼이 질문에 답하거나 스크립트를 함께 디버깅해 주는 친절한 사람들로 가득한 수백 개의 친절한 Discord 서버가 있습니다.


* 원문:

 

A comprehensive guide to the Unity Game Engine: Answers to Your Questions

Are you curious about how to make games with Unity? This guide will teach you everything you need to know when considering Unity as the engine for your next game project.

www.gamedeveloper.com

 

댓글