- Today
- Total
프로그래밍 농장
[Unreal Engine] Data Table 본문
1. Data Table
일반적으로 데이터를 관리할 때는 정형적인 구조를 가진 데이터 형식을 사용한다.
예를 들어 엑셀이나 데이터베이스에서 흔히 볼 수 있는 형태이며,행(Row)과 열(Column)로 구성된 구조화된 데이터 형태를 데이터 테이블(Data Table)이라고 한다.
Unreal Engine에서도 이러한 개념을 기반으로 Data Table이라는 데이터 관리 시스템을 제공한다.
Data Table은 구조화된 데이터를 테이블 현태로 저장하고 관리할 수 있는 Asset 이다. 이러한 Data Table은 여러 개의 데이터를 동일한 구조로 정리하여 관리할 수 있는 데이터 컨테이너라고 볼 수 있다.
1-1. Data Table이 필요한 이유
게임 개발시에는 캐릭터 능력치나 아이템 스탯과 같은 데이터가 매우 많으며, 일반적인 방식에서는 이러한 값들이 코드 내부에 직접 작성되는 경우가 많다.
ex) float AttackDamage = 10.0f; ..
하지만 위와 같은 방식은 데이터가 코드에 강하게 결합되어, 아래와 같은 문제를 발생시킨다.
- 데이터를 수정하기 위해 코드를 수정해야 함
- 값을 변경할 때마다 프로젝트를 다시 빌드해야 함
- 기획(디자인) 에서 직접 데이터를 수정하기 어려움
- DataTable 자체가 .uasset 으로, 빌드/패키징 의존성이 발생 -> 변경사항 반영하려면 해당 Asset이 다시 cook/package 되어야 함
Data Table을 사용하면 이러한 데이터를 언리얼 코드에서 분리하여 별도의 데이터 Asset으로 관리할 수 있다.
(코드에서 데이터 보관 X , 필요할 때 Data Table 이라는 Asset 에서 데이터를 읽어서 사용하며, 아래와 같은 장점이 있다.
- 코드 수정없이 데이터만 변경 가능 (에셋 (리소스)만 재빌드 하면된다.
- 기획자가 에디터에서 직접 수정 가능
- 여러 데이터를 체계적으로 관리 가능
2. Data Table이 주로 사용되는 경우
Data Table은 위와 같은 장점들이 있으며, 게임 프로젝트에서는 주로 정적인 데이터를 관리하는데 매우 적합하다.
예를 들어 다음과 같은 데이터들이 대표적인 사례이다.
- 캐릭터 기본 스택
- 몬스터 능력치
- 아이템 정보
- 레벨별 경험치 테이블
이러한 데이터들은 게임 실행 중에 크게 변경되지 않고, 여러 시스템에서 공통으로 참조하기 때문에 Data Table로 관리하면 매우 편리하다.