반응형
ECS란?
Entity, Component, System의 약자로써
Entity와 Component와 System에 대한 역할 분리를 철저히 한 설계 방식이다.
내가 이해한 바를 적어보자면,
Entity : 객체를 Entity의 id, key 등으로 분류하여 매핑시켜 Coponent와 System을 연결해주는 객체
Component : 역할에 필요한 "데이터, 즉 변수"만 가지고 있는 객체
System : Component의 데이터를 기반으로 실제 역할에 필요한 행위를 하는 객체
라고 이해하였다.
하지만 이건 개념일 뿐이고, ECS를 사용하는 이유는 간단하다.
바로 선형적 데이터 구조를 통해 캐시친화율을 극단적으로 올려 성능 향상을 꾀하는 것이 목표다.
그러기 위해서 주의해야 할 점이 있다.
첫 번쨰.
간혹 ecs를 검색해보면, unordered_map을 사용하는데, 이것이 과연 캐시친화적 설계인가? 하는 의문이 든다. 매핑의 기본은 해시맵에서 시작한다지만 과연 캐시친화적 설계에 해시맵이 적절한지 고려해볼 필요가 있다. 최대한 선형적 데이터구조를 띄는 설계를 해야하지 않을까?
두 번째,
내가 생각하는 최적화 기법
1. Entity의 컴포넌트 배열을 bit_set을 사용한다.
2.
반응형
'프로그래밍 > 게임제작' 카테고리의 다른 글
[자체엔진, 유니티] 유니티의 모델 렌더링 구조를 하나하나 파헤쳐보자 (0) | 2024.12.19 |
---|---|
[WinAPI] 유피의 소원 (2) | 2024.10.07 |
[연습작] 콘솔 오목게임 (0) | 2024.04.03 |
[연습작] 던파 플래시 모작 (1) | 2024.02.12 |
[연습작] 비행기 게임 (1) | 2024.02.12 |