인기있는 것이 없다면 왜 안됩니까?
그러한 프레임 워크의 작동 방식에 대한 합의와 유사한 것은 없기 때문입니다.
Gamedev.net의 스레드에서 사람들이 구성 요소 기반 게임 시스템에 대해 이야기 할 때 실제로 3 가지 요소를 기반으로 구성 요소가 작동 할 것으로 예상되는 방식에 대해 적어도 8 가지 가능한 순열이 있다고 결정했습니다.
인보 드 및 아웃 보드 -구성 요소를 엔티티로 집계해야합니까 아니면 서브 시스템의 일부 여야하고 엔티티 ID로만 연관되어야합니까?
정적 대 동적 구성 -엔티티는 잘 알려진 인터페이스를 통해 코드로 통신 할 수있는 알려진 컴포넌트 세트 (예 : 1 물리, 1 애니메이션, 1 AI 등)로 구성되거나 엔티티에 임의의 수량의 컴포넌트가 추가 될 수 있습니다. 그들 (다른 관심있는 구성 요소를 찾기위한 관련 전략과 함께)
구성 요소에 대한 데이터와 엔티티에 대한 데이터 -주로 작동하는 구성 요소가 데이터를 보유해야합니까? 아니면 모든 구성 요소가 액세스 할 수있는 공유 공간의 엔터티에 데이터를 저장해야합니까?
구성 요소가 어떻게 통신해야하는지 (공유 데이터를 통해? 기능 포인터를 통해? 신호 / 슬롯을 통해? 전혀 아닙니까?), 구성 요소 유형에 따라 고정 된 순서로 구성 요소를 업데이트하는 방법에 대한 추가 질문이 있습니다. -생성 시점에 정의 된 엔티티 순서? (토폴로지 종류의 구성 요소 상호 의존성에 따라?) 등)
이러한 각 선택은 완전히 임의적이며 한 시스템으로 수행 할 수있는 모든 작업을 다른 시스템으로 수행 할 수 있습니다. 그러나 코드를 작성하는 방법은 각 경우마다 상당히 다릅니다. 그리고 사람들은 자신에게 가장 적합한 방법에 대해 강한 의견을 갖고있는 것 같습니다.
현재 사람들은 여전히 구성 요소가 어떻게 객체 지향을 대체 할 수 있다는 생각에 여전히 사로 잡혀 있으며, 전통적으로 게임이 만들어 졌던 방식과는 다른 큰 변화를 상상하고 있습니다. -사람들은 연령대에 따라 다양한 하위 시스템을 요소에서 제외했습니다.) 아마도 몇 년 안에 상황이 해결되었을 것이고 사람들은 하나 또는 두 개의 상당히 표준적인 접근법에 정착 할 것입니다.