Unity 검색

Games Focus: 대규모 게임 제작을 위한 스케일링

2022년 11월 23일 엔진 & 플랫폼 | 15 분 소요
Games Focus: Expanded scale for ambitious games | Hero image
Games Focus: Expanded scale for ambitious games | Hero image
공유

Is this article helpful for you?

Thank you for your feedback!

이 포스팅은 핵심 제품의 향후 개발 계획을 소개하는 Games Focus 시리즈의 아홉 번째 글입니다. 이번 편에서는 대규모 게임 제작을 지원하기 위해 Unity가 제공하는 기능의 현재 상황, 예정된 릴리스 계획, 앞으로의 비전 등을 다룹니다.

안녕하세요. 저는 유니티 DOTS 팀의 프로덕트 매니저인 아이작 세아입니다. 현재 Unity용 엔티티 컴포넌트 시스템(ECS) 제품 전략을 맡고 있습니다.

DOTS 팀은 크리에이터가 훌륭한 게임을 만들 수 있도록 툴을 개선해 왔습니다. 유니티에 입사하기 전 저 역시 Unity를 사용하여 멋진 게임과 경험을 만들기 위해 기술 자료와 동영상을 열심히 연구하고, 엔진에 익숙해지는 데 수많은 시간을 보냈습니다.

한 명의 크리에이터로서 Unity 2022.2 테크 스트림에서 출시될 Unity용 ECS를 소개하게 되어 정말 기쁩니다. Unity용 ECS 릴리스는 수많은 크리에이터들에게 게임의 판도를 바꾸는 기회가 될 것입니다.

이번 Games Focus 시리즈에서는 숙련된 Unity 크리에이터가 누릴 수 있는 Unity용 ECS의 이점, 얼리 어답터들이 ECS를 활용한 방법, 그리고 2023년과 그 이후의 계획을 살펴보겠습니다.

대규모 게임 제작 지원

Power ambitious games

Unity용 ECS의 목표는 Unity를 사용해 크리에이터가 더 야심 찬 게임을 제작하도록 돕는 것입니다. 이 목표를 달성하기 위해 유니티에서는 메모리의 데이터 레이아웃에 대해 더욱 예측 가능한 처리와 제어 기능을 제공하고, 게임플레이 요구 사항이 폭발적으로 증가하더라도 손쉽게 효율적인 병렬 구조를 구현하도록 지원합니다.

2021년 시장에 출시된 게임의 50% 이상이 Unity로 제작되었으며, ECS 없이도 사용자들은 계속해서 훌륭한 게임을 제작했습니다. Unity용 ECS는 Unity 타이틀을 출시한 경험이 있고, 게임 오브젝트와 MonoBehavior 아키텍처의 한계를 이해하며, 적극적으로 더 세밀한 제어 기능과 결정론적 분명성을 찾고 있는 숙련된 Unity 크리에이터에게 탁월한 가치를 제공합니다. 경험이 풍부한 개발자는 Unity용 ECS를 사용하여 메모리를 더 정확하게 관리하고, 게임플레이 프레임의 게임 코드 프로세싱을 더 포괄적으로 제어하며, 궁극적으로 더 복합한 게임플레이를 까다로운 기기 제약 사항에 맞출 수 있습니다.

현재 이용 가능한 툴

Megacity, a sample available starting with Unity 2022.2 Tech Stream, showcases how users can achieve large-scale streaming and rendering of thousands of entities at a stable frame rate.
Unity 2022.2 테크 스트림과 함께 제공되는 샘플인 메가시티(Megacity)는 사용자가 어떻게 안정적인 프레임 속도로 수천 개의 엔티티를 대규모 스트리밍하고 렌더링할 수 있는지 보여 줍니다.

Unity 2022.2 테크 스트림부터 Unity용 ECS에는 다음 패키지가 함께 제공됩니다.

  • Entities: Unity에서 ECS를 지원하는 기본 패키지
  • Unity Physics 및 Havok Physics for Unity: 결정론적 대규모 시뮬레이션을 지원하는 ECS 호환 물리 엔진
  • Netcode for Entities: 대규모 멀티플레이어 게임 제작을 지원하는 넷코드 패키지
  • Entities Graphics: 유니버설 렌더 파이프라인(URP)과 고해상도 렌더 파이프라인(HDRP)을 비롯한 스크립터블 렌더 파이프라인(SRP)으로 대량의 ECS 데이터를 배칭할 수 있는 그래픽스 패키지

Unity용 ECS를 기존의 정식 제작에 사용할 수 있는 Burst 컴파일러 및 C# Job System과 함께 활용하여 잡 예약과 스크립트 컴파일 문제도 해결할 수 있습니다. 무엇보다도 Unity 2022.2 테크 스트림에서 제공되는 Unity용 ECS는 정식 제작을 완벽하게 지원하기 때문에 누구든지 지원 채널Success 플랜에 쉽게 접근하여 ECS를 최대한 활용할 수 있습니다.

게임 오브젝트 생태계와 호환되는 프레임워크 옵션

ECS for Unity enables you to easily interoperate between GameObject data and ECS data through familiar authoring components.
Unity용 ECS를 사용하면 익숙한 저작 컴포넌트를 통해 게임 오브젝트 데이터와 ECS 데이터를 쉽게 상호 운용할 수 있습니다.

Unity용 ECS의 작업 경험을 개선하기 위해 유니티에서는 사용자에게 친숙한 Unity 저작 경험의 다양한 기능을 Unity용 ECS에서도 사용할 수 있도록 구현했습니다.

Unity용 ECS는 게임 오브젝트 생태계와 호환되는 프레임워크 옵션입니다. 컴포넌트 데이터, 원형 및 엔티티 뷰, 새로운 저널링 창, 엔티티 디버거, 프로파일링 툴, 데이터 모드와 같은 툴을 Unity 에디터에 완벽하게 통합하는 저작 워크플로가 도입되었으며, 그 덕분에 사용자는 저작 데이터와 런타임 데이터를 쉽게 탐색할 수 있습니다.

제작 환경에 ECS를 활용하여 세밀한 제어 기능과 결정론적 분명성 구현

Electric Square leveraged many aspects of ECS for Unity to build their fast-paced Apple Arcade racing game, Detonation Racing.
Electric Square는 Unity용 ECS의 여러 요소를 활용하여 속도감이 빠른 Apple Arcade 레이싱 게임인 Detonation Racing을 제작했습니다.

Detonation Racing을 개발할 때 Electric Square는 대규모 스트리밍이 필요한 빠른 속도감의 iOS 레이싱 게임을 구현하기 위해 Unity용 ECS를 사용했습니다. 게임을 제작하면서 팀은 품질을 보증하고 게임플레이를 디자인하는 과정에서 ECS의 결정론적 특성을 적극적으로 활용했습니다. Unity용 ECS의 결정론적 분명성을 활용한 결과 Electric Square는 게임 디자이너가 Detonation Racing에 딱 들어맞는 폭발 효과를 찾도록 시나리오를 정확하게 재현했으며, 이때 ECS 기반 게임 코드가 세밀한 제어 기능과 결정론적 분명성을 제공하여 게임을 대규모로 최적화하고 새로운 게임 코드를 작성할 수 있었습니다.

Jonas from Electric Square walks us through how deterministic behavior from ECS allowed them to recreate scenarios that retain the same gameplay behavior each time.
Electric Square의 조나스가 ECS의 결정론적 동작을 통해 매번 같은 게임플레이 동작을 유지하는 시나리오를 재현한 방법을 소개합니다.

Unity용 ECS는 데이터와 게임 로직을 명확하게 분리하므로 주요 게임플레이 변경 사항에 적응할 수 있습니다. Electric Square의 경우 게임 코드를 확실하게 컴포넌트화한 덕분에 게임플레이 기능과 시스템을 효율적으로 분리했고, 그 결과 개발자는 게임플레이 문제를 해결할 때 게임플레이 코드를 살펴보며 코드와 데이터를 쉽게 변경할 수 있었습니다.

Unity용 ECS를 Burst 컴파일러 및 C# Job System과 함께 사용하면 효율적인 병렬 구조를 구현할 뿐 아니라 게임 코드가 실행과 메모리 할당/할당 취소 모두에 대해 예측 가능한 방식으로 작동하게 만들 수 있습니다. 기기 메모리에 대한 강력한 제어를 통해 Electric Studio는 복잡한 게임플레이를 까다로운 기기 요구 사항에 맞추고 캐싱 전략을 최적화했습니다.

스파이크 없는 스트리밍과 메모리 효율이 뛰어난 대규모 렌더링

Selling over 1 million copies in their first week, Stunlock Studios successfully leveraged ECS for Unity to build their hit title, V Rising.
Stunlock Studios는 ECS를 효과적으로 활용하여 히트 타이틀인 V Rising을 제작한 결과 출시 첫 주 만에 1백만 건 이상의 판매를 달성했습니다.

대규모 게임을 제작하려면 복잡한 게임 경험을 스트리밍 및 렌더링하는 동시에 저사양 기기부터 고사양 기기까지 모든 기기의 메모리와 프로세싱 제약 조건을 맞출 수 있는 효율적인 데이터 파이프라인이 필요합니다.

V Rising data points: 160K in-game interactable objects, 5 square kilometer gameplay map, 350K server-side entities

실제 사례로는 고딕풍의 오픈 월드 판타지 서바이벌 게임인 V Rising에서 Entities Graphics 패키지서브 씬을 활용한 Stunlock Studios가 있습니다. 이 툴을 사용하여 Stunlock Studios는 게임 월드에서 5km² 크기의 맵에 분산된 16만 개가 넘는 상호 작용 가능한 오브젝트를 스트리밍하여 특정 서버에서 총 35만 개의 엔티티를 스트리밍했습니다.

또한 Stunlock Studios는 Entities Graphics 패키지를 통해 ECS의 성능과 확장 기능을 활용하여 익숙한 HDRP로 작업하면서 엄청난 양의 생동감 넘치는 씬을 렌더링할 수 있었습니다. 그 결과 놀라운 확장성과 뛰어난 몰입감을 가진 게임이 탄생했습니다.

결정론적 대규모 시뮬레이션과 Havok Physics for Unity

Megacity showcases how Unity Physics enables thousands of active colliders, moving vehicles and physics interactions at scale.
Unity Physics가 어떻게 수천 개의 활성 콜라이더, 움직이는 차량, 물리 상호 작용을 대규모로 지원하는지 보여 주는 메가시티

수백에서 수천 개에 달하는 물리 콜라이더를 사용하여 대규모의 결정론적 시뮬레이션을 제작하려는 경우 Unity용 ECS에 포함된 Unity Physics 패키지와 Havok Physics for Unity 패키지를 사용해 보세요. ECS와 호환되는 결정론적 상태 비보존 물리 엔진인 Unity Physics는 리지드바디, 조인트, 충돌 검사, 기타 쿼리 등 탄탄한 물리 솔버(physics solver) 컴포넌트 세트와 함께 제공되므로 고성능의 결정론적 물리 월드를 제작할 수 있습니다.

또한 Unity용 ECS는 세계에서 가장 인기 있는 게임에서 사용되고 있는 업계 최고의 결정론적 물리 시뮬레이션 및 충돌 검사 기능을 갖춘 Havok Physics for Unity를 지원합니다. Havok Physics for Unity를 사용하면 최적화된 캐싱으로 대규모 월드와 복잡한 물리 씬에서 성능과 안정성을 개선할 수 있습니다.

Unity 2022.2 테크 스트림에서 크리에이터는 메가시티를 직접 살펴볼 수 있습니다. 메가시티는 다양한 동적 오브젝트가 포함되어 수천 개의 활성 물리 오브젝트가 어떻게 큰 규모에서도 효율적으로 상호 작용하는지 보여줍니다.

대규모 멀티플레이어 게임 제작 지원

ECS Racing, a competitive multiplayer racing sample
ECS Racing: 경쟁형 멀티플레이어 레이싱 샘플

Unity용 ECS는 멀티플레이어 게임을 제작하는 크리에이터에게도 많은 이점을 제공합니다.

Unity용 ECS와 함께 사용할 수 있는 컴패니언 패키지인 Netcode for Entities 패키지는 직렬화 성능 최적화, 물리 예측, 원격 플레이어 예측, 런타임 시 예측과 보간을 전환하는 기능을 갖춘 ECS 기반의 고급 서버 권한 네트워킹 라이브러리를 제공합니다. Unity 2022.2 테크 스트림부터 크리에이터는 클라이언트측 예측을 통한 클라이언트/서버 아키텍처, 보간, 지연 보상을 비롯한 다양한 기능을 보여 주는 경쟁형 멀티플레이어 레이싱 샘플을 사용해 볼 수 있습니다.

향후 계획

A collection of authoring tools provided in ECS for Unity in Unity 2022.2 Tech Stream
Unity 2022.2 테크 스트림의 Unity용 ECS에서 제공되는 저작 툴 컬렉션

Unity용 ECS가 정식 출시되면서 Burst 컴파일러와 C# Job System을 사용하는 크리에이터에게는 이제 Unity로 더 야심 찬 게임을 제작할 수 있는 탄탄한 기반이 마련됩니다. 하지만 유니티는 여기서 멈추지 않고 더 나아가 다음과 같은 영역을 개선하기 위해 노력하고 있습니다.

ECS 워크플로 통합: 유니티는 Unity용 ECS 출시와 함께 새로운 사용 사례가 다양하게 등장할 것으로 기대하고 있습니다. 단기적인 관점에서 DOTS 팀은 Unity용 ECS의 활용 방식을 관찰한 후 그에 기반하여 워크플로를 더욱 통합하고 더 나은 경험을 제공하고자 합니다. 물론 많은 크리에이터가 좋은 캐릭터 컨트롤러를 원한다는 사실도 알고 있습니다. 그래서 유니티는 네트워킹을 염두에 두고 확장성과 성능을 향상하기 위해 구축된 강력한 ECS 기반 캐릭터 컨트롤러인 Rival을 인수했습니다.

크로스 플레이 멀티플레이어 게임 제작 지원: 멀티플레이어 게임 지원은 DOTS 팀에서 항상 가장 중점적으로 고려하는 부분이며, 즉시 사용할 수 있는 기능을 제공하여 다양한 장르의 멀티플레이어 게임을 효율적으로 지원하고자 합니다. 여기에는 크로스 플레이 개발을 단순화하기 위한 크로스 플랫폼의 결정론적 분명성에 대한 작업뿐만 아니라 멀티플레이어 게임 코드에서 결정론적 분명성과 관련한 요구 사항을 지원하는 작업도 포함됩니다.

오픈 월드 게임 제작 지원: DOTS 팀에서는 특히 콘텐츠 확장 기능과 관련하여 Unity에서 오픈 월드를 더욱 탄탄하게 지원하기 위해 개발 역량을 투입하고 있습니다. 현재의 주요 개발 대상 두 가지는 애니메이션과 월드 구축입니다.

DOTS 팀은 데이터 지향 기술을 활용하며 커스터마이즈할 수 있는 고성능 3D 애니메이션 시스템을 제작하고 있습니다. Unity용 ECS가 대규모 게임 제작을 위한 매우 강력한 기반을 제공하지만, 향후 출시될 애니메이션 시스템은 게임 오브젝트 게임플레이에 대한 액세스를 유지하여 사용자가 가장 익숙한 워크플로로 계속 작업을 이어갈 수 있도록 지원하고자 합니다. 동시에 메카님의 안정성과 성능에 초점을 맞춰 가능한 경우 수정 사항을 백포팅할 것입니다.

월드 구축 측면에서 보자면, 유니티는 Unity 2022.2 테크 스트림에서 새로운 스플라인 저작 프레임워크를 출시합니다. 이 프레임워크를 통해 개발자와 테크니컬 아티스트는 커스텀 컴포넌트로 강이나 도로 등의 지오메트리를 그리기 위한 툴을 제작할 수 있습니다. 스플라인 저작 프레임워크는 브랜칭, 병합, 돌출 등의 스플라인 오브젝트에 대한 아티스트 워크플로를 개선하며 계속 발전할 것입니다. 마지막으로 터레인용 오버레이, 흩뿌리기 개선, 터레인 디테일 밀도 관리 등 여러 기능을 통해 아티스트가 더 자유롭게 환경을 제작할 수 있도록 지원하기 위해 노력하고 있습니다.

Unity에서 더 쉽게 월드를 구축하도록 돕는 다양한 툴을 계속해서 추가하고 있으니 최신 스플라인 툴을 확인해 보세요.

Unity용 ECS 리소스

Unity용 ECS는 Unity를 사용하는 게임 개발의 새로운 패러다임으로, 많은 크리에이터에게 생소한 툴입니다. 다음 가이드와 기술 자료, 샘플을 통해 더 빠르고 쉽게 Unity용 ECS를 사용해 보세요.

DOTS 팀은 Unity용 ECS의 사용 경험과 크리에이터가 제작하고 있는 게임들을 반가운 마음으로 기다리고 있습니다. 사용 후 피드백을 공유해 주세요. Unity 포럼이나 유니티 공식 Discord 채널에서 이 포스팅과 관련된 질문이나 의견을 들려주시기 바랍니다. DOTS 공개 로드맵을 확인하고 이에 관한 피드백과 의견을 제공하실 수도 있습니다.

지난 몇 달 동안 살펴본 각 주요 영역의 내용을 요약해서 다룰 마지막 Games Focus 시리즈도 많이 기대해 주세요.

2022년 11월 23일 엔진 & 플랫폼 | 15 분 소요

Is this article helpful for you?

Thank you for your feedback!

관련 게시물