저는 Entity Framework에 대해 많이 읽었으며 지금은 게임에서 구현하려고합니다. 엔티티 프레임 워크는 게임 엔티티를 구성 요소의 간단한 컨테이너로 만드는 것을 기반으로합니다. 구성 요소에는 엔티티의 특정 특성 (및이 특성을 설명하는 모든 변수/접근 자)이 포함됩니다. 게임 논리는 시스템을 생성하여 모듈화됩니다. 각 시스템은 게임 로직의 특정 측면 (예 : Collisions, Rendering, Animation)을 구현하고 실행합니다. 각 시스템은 컴포넌트의 특정 조합이있는 모든 엔티티에 액세스 할 수 있어야합니다 (예 : RenderSystem은 , PositionComponent 및 AnimationComponent가있는 엔티티 만 가져야 함).엔티티 구성 요소 시스템 프레임 워크에 가장 적합한 데이터 구조
제 질문은 그러한 기능을 달성하기위한 최상의 데이터 구조에 관한 것입니다.
현재 나의 생각은 List of Entity의 Vector (N 개의 셀 (N은 가능한 구성 요소의 수))를 만드는 것입니다. 따라서 엔티티를 생성 (인스턴스화 및 특정 구성 요소 추가) 할 때마다 포함 된 각 구성 요소의 각 목록에서이 엔티티를 참조합니다. 엔티티를 "죽이는"경우 각 목록에서 각 참조를 제거해야합니다. 문제는 검색 키가 조합 인 구성 요소의 조합이고 단일 구성 요소가 아니기 때문에 특정 시스템에서 어떤 엔터티를 처리해야 하는지를 쿼리하는 것이므로 오버 헤드가 추가됩니다 (많은 검색 및 비교가 필요합니다). 끝난).
제 생각은 좋은가요? 사용할 수있는 더 나은 데이터 구조가 있습니까? 게임의 모든 요소는 하나의 레벨에서 수천 개의 Entites를 합한 Entity로 가정됩니다 (일부 공간 분할을 사용할 수도 있음).
[Visitor pattern] (http://www.javaworld.com/article/2077602/learn-java/java-tip-98--reflect-on-the-visitor-design-pattern.html)을 사용합니다.). –
최상의 데이터 구조를 얻으려면? 천재! – Narek