https://www.youtube.com/watch?v=anoA9d2vn9A
DOTS : Data-Oriented Tech Stack
유니티
객체 지향 디자인의 문제점
- 개발자가 의도한대로 빠르게 코드로 옮길 수 있는 장점이 있는 반면에 여러가지 단점이 있을 수도 있다.
- 기능이 추가 될 때마다 구조가 복잡하다.
- 과거 개발 히스토리를 파악해 두어야 한다.
- 연산처리가 객체 중점이다 : CPU 보다는 메모리를 많이 사용한다.
3번의 문제로
연산 중심의 효율적인 디자인?
잉여 자원이 많이 남는 CPU를 적극적으로 사용하여 성능을 끌어올릴 수 있는 디자인에 대해 연구하게 된다.
Data Oriented Design : DOD
- 객체 중심이 아닌, 데이터 중심이다. 분리가 되어 있다.
DOD의 단점? 어렵다...
DOTS의 종류
- Sparse Set(스파스 셋)
DOD와 같은 방식이다.
ex) 마인크래프트, 오버워치
- ARchetype (아키타입)
엔티티의 조합 타입별로 묶어서 관리하는 방식
ex)유니티, 언리얼
메이저 게임 엔진에서 주로 채용된 방식으로 동일한 조합의 형태만을 모아서 빠르게 접근할 수 있도록
관리하는 DOTS 입니다.
ECS : Entity Component System
GameObjects와 호환되는 데이터 지향
무조건 ECS가 좋은 방법인가?
CPU 연산 능력 활용도가 많이 올라가니까 기본 방식에 비해 무조건 좋은 것이 아닌가? 라고 생각할 수 있다.
- 성능은 좋지만 제대로 구현하기 위해 배워야할 내용이 너무 많다.
- 유니티 컴포넌트를 100% 사용하기에는 아직 업데이트가 좀 더 필요하다.
- 게임 개발 스케일, 난이도를 확인하여 OOP, DOTS 를 선택하는 것이 중요!