[NDC] 유니티 ECS & Job System 분석 및 적용 - 타일 맵 기반 게임 적용 사례
NDC 넥슨 · YouTube
AI 핵심 요약
광활한 타일 맵에서 같은 종류의 유닛과 오브젝트가 대량으로 생성·이동하는 시뮬레이션 게임을 기존 Unity 방식으로 구현하자 성능 한계가 드러났다. 발표자는 데이터 지향 설계에 기반한 Unity ECS와 C# Job System을 분석하고, 타일 렌더링과 유닛 이동·생성처럼 반복 처리가 많은 부분에 적용했다. 기존 GameObject와 프리팹을 변환해 활용하고 클래식 방식과 ECS를 함께 쓰는 하이브리드 구조를 구성했으며, 타일 수만 개와 유닛 만 단위의 테스트에서 성능 개선을 확인했다. ECS는 모든 게임에 적합한 해법이 아니며, 동종 데이터가 많고 반복 갱신되는 작업을 골라 적용하고 아키타입·청크 구조와 당시 프리뷰 API의 제약을 이해해야 한다고 설명했다.
- ECS의 성능 이점은 같은 구조의 데이터를 연속된 메모리에 배치해 캐시 지역성을 높이는 데서 나온다.
- 컴포넌트는 데이터만 담는 구조체로 설계하고, 엔티티에 꼭 필요한 컴포넌트만 붙여 청크 공간을 효율적으로 사용한다.
- 컴포넌트를 추가하거나 제거하면 엔티티가 다른 아키타입으로 이동할 수 있으므로 구조 변경을 잦게 하지 않도록 설계한다.
- ECS를 전체 프로젝트에 한꺼번에 도입하기보다, 대량의 동종 오브젝트가 매 프레임 갱신되는 부분부터 적용한다.
- 기존 GameObject와 ECS를 함께 쓰는 하이브리드 방식으로 점진적으로 전환할 수 있지만, 프리뷰 단계의 API 변화와 디버깅 제약을 고려해야 한다.
소개
NDC 2019 유니티 ECS & Job System 분석 및 적용 - 타일 맵 기반 게임 적용 사례 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 함동기 2. 발표자 소개 : 유니티로 모바일 시뮬레이션 게임을 만들고 있습니다. 이전에는 도미네이션즈 중국 런칭 및 라이브 업무를 담당했습니다. NDC 14에서 Cocos2d-x 관련 내용으로 발표를 했고 같은 주제로 책을 쓰기도 했습니다. 3. 세션 소개 : 유니티의 새로운 개발 패러다임인 ECS(Entity Component System)와 C# Job System의 개념과 활용 방법, 개발 중인 프로젝트에 적용한 사례를 다룹니다. 현재 타일 맵 기반의 시뮬레이션 게임을 개발하고 있습니다. 게임 특성상 플레이 중 비슷한 타입의 오브젝트들이 무수히 생성되어 움직이고 또 사라집니다. 기존의 유니티 개발 방식으로는 원하는 퍼포먼스를 얻기 힘들었습니다. 이에 기존 코드를...
비슷한 학습 자료
컨퍼런스 NDC
NDC 2019 [ AI로 고퀄리티 모션 만들기 - 지형 적응형 실시간 IK 모션 생성 기술] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 유문원 2. 발표자 소개 : NCSOFT의 Game AI Lab 소속인 Motion AI팀에서 연구 중이며, AI 기술을 활용한 모션 생성 기술에 대해 연구하고 있습니다. 최근에는 motion style transfer, terrain-adaptive motion synthesis 연구를 진행하고 있습니다. 3. 세션 소개 : 최근 게임 시장에서 애니메이션 품질에 대한 기대가 높아지면서 모션 생성 기술에 대한 연구가 활발히 진행되고 있습니다. 이 세션에서는 NCSOFT Motion AI팀에서 연구 중인 지형 적응형 실시간 모션 생성 기술에 대해 소개합니다. Machine learning 기반의 이 기술은 다양한 지형 환경에 맞추어 새로운 모션을 생성할 수 있으며 실시간 동작...
딥러닝 · 머신러닝 게임 프로그래밍
컨퍼런스 NDC
NDC 2019 [유니티의 “에디터 윈도우” 톺아보기 - 〈AnyPortrait〉 개발 경험과 유니티 에디터 에셋 구현 이슈] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이승직 2. 발표자 소개 : 인디 게임 제작팀 RainyRizzle의 팀장으로서 기획 및 제작을 담당하고 있습니다. 모바일 게임인 "TwoSides"를 제작하였으며, 현재는 유니티 엔진에서 구동되는 2D 애니메이션 에디터인 "AnyPortrait"를 개발하고 판매하는 업무를 하고 있습니다. 또한, 대학생들을 대상으로 진행된 "GGGC 2018"에서 유니티 에디터 에셋 구현 방법에 대해서 발표를 했습니다. 이번 NDC 19에서는 더 많은 내용과 1년의 경험을 더 담아서 유니티로 게임 제작에 도움이 되는 툴을 만드는 방법과 이슈들을 공유하고자 합니다. 3. 세션 소개 : 유니티를 사용하시는 분들을 포함하여, 게임을 제작하는 많은 분들은 더 ...
게임 프로그래밍
컨퍼런스 NDC
NDC 2019 [언리얼 4 UMG - 초보자도 쉽게 배우는 게임 UI 개발] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김준태 2. 발표자 소개 : 현재 넥슨지티 아트BF팀에서 신규개발 프로젝트의 UI 디자인 업무를 담당하고 있습니다. 3. 세션 소개 : UMG는 언리얼 모션 그래픽 UI 디자이너의 줄임말로 언리얼 4 엔진에서 프런트 엔드 UI 개발을 위한 미들웨어입니다. 그런데 UMG를 현업에서 활용하기 위한 방법은 현재 입문자를 위한 수준의 자료도 많이 부족합니다. 저는 이번 발표에서 UMG에 대한 기본적인 활용법을 소개하고 UMG를 처음 접하게 되면서 겪는 문제점과 그 해결 방안들을 알려드림으로써 UMG로 프런트 엔드 디자인을 구성하는 방법을 다루어 보고자 합니다. 이 세션이 언리얼 4 엔진을 활용한 프로젝트에서 UI 디자인을 담당하시는 분들에게 조금이나마 도움이 될 수 있을 것으로 생각합니다. 감사합니...
게임 프로그래밍 게임 아트 · 그래픽
컨퍼런스 NDC
NDC 2019 [버텍스 컬러 마스킹을 이용한 지형 맵 제작 - 타일 맵 기반 게임 적용 사례] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 함동기 2. 발표자 소개 : 유니티로 모바일 시뮬레이션 게임을 만들고 있습니다. 이전에는 도미네이션즈 중국 런칭 및 라이브 업무를 담당했습니다. NDC 14에서 Cocos2d-x 관련 내용으로 발표를 했고 같은 주제로 책을 쓰기도 했습니다. 3. 세션 소개 : 유니티로 타일 맵 기반의 모바일 시뮬레이션 게임을 만들고 있습니다. 지형 맵 제작 시 정해진 종류의 타일을 조합하는 방식으로는 표현할 수 있는 효과가 제한적이고 인위적인 느낌이 납니다. 여러 가지 대안을 찾던 중 버텍스 컬러 마스킹 방식을 이용해 더욱 높은 퀄리티의 지형 맵을 만들 수 있었습니다. 참관객들은 이 강연을 통해 지형 맵 제작에 대한 전반적인 지식을 얻을 수 있습니다. 나아가 전통적인 지형 맵 제작 방식과 버...
게임 프로그래밍 게임 아트 · 그래픽
컨퍼런스 NDC
NDC 2018 [유체역학 엔진 개발기 - 게임에서 물리 기반의 유체를 구현하기 위한 고군분투] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 옥찬호 2. 발표자 소개 : 현재 넥슨 코리아에서 마영전 게임 클라이언트 개발을 담당하고 있습니다. C++와 게임 개발, 컴퓨터 그래픽스, 오픈 소스에 관심이 많습니다. 페이스북 C++ Korea 그룹을 운영하며 스터디 활동과 함께 다양한 책을 번역/집필 중이며, 남는 시간엔 학생들과 함께 다양한 오픈 소스 프로젝트를 진행하며 보다 나은 미래를 만들기 위해 노력하고 있습니다. 옮긴 책으로는 『게임샐러드로 코드 한 줄 없이 게임 만들기』 (에이콘출판사, 2013), 『유니티 Shader와 Effect 제작』 (에이콘출판사, 2014), 『2D 게임 프로그래밍』 (에이콘출판사, 2014), 『러스트 핵심 노트』 (한빛미디어, 2017), 『모던 C++ 입문』 (길벗, 2017)이 ...
게임 프로그래밍 게임 아트 · 그래픽
컨퍼런스 NDC
NDC 2018 [안드로이드에서 유니티 프로젝트 네이티브 프로파일링 삽질기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 하재승 2. 발표자 소개 : 넥슨 라이브인프라실에서 라이브 게임들에 필요할 기반 기술들을 쌓아 올리는 중. 무점검 실시간 게임 정보 수집 툴 ZERO 개발(NDC2017). 배포후 프로파일링 툴 JYP 개발(NDC2015). 던전앤파이터 최적화 담당(NDC2014), NCSOFT 서버 버너(NDC2011) 등 툴 및 프레임워크 개발, 빅샷 개발, 메틴2 개발. 3. 세션 소개 : 만들어진 게임을 최적화하기 위해선서 프로파일링이 필수적인 과정입니다. 어떤 코드 영역에서 불필요하게 시간을 소요하는지 파악하고, 우선적으로 개선할 병목지점을 찾아내어 같은 노력으로 더 큰 효과를 볼 수 있습니다. 하지만 안드로이드에서 Unity+IL2CPP이나 Unreal 등 C++로 만들어진 네이티브 앱에 사용할 ...
게임 프로그래밍