Внутренняя архитектура ECS
Обзор
Внутренняя реализация ECS модуля состоит из четырех основных менеджеров:
![digraph ecs_architecture {
rankdir=TB;
node [shape=box];
Scene -> EntityManager;
Scene -> ComponentManager;
Scene -> SystemManager;
Scene -> ResourceManager
EntityManager -> FreeList;
ComponentManager -> ComponentStorages;
SystemManager -> SystemList;
ResourceManager -> ResourceMap
}](../../../_images/graphviz-a572fa7bc302a9106c3719d5c8dfa6fa0c2ea0f4.png)
Архитектура ECS
Взаимодействие компонентов
ComponentManager использует для каждого типа компонента отдельное хранилище,состоящее из параллельных векторов компонентов и сущностей (cache‑friendly), а также хеш-таблицы для быстрого доступа по сущности. Подробнее см. ecs-componentmanager.
Последовательность операций
scene.createEntity() → EntityManager.createEntity()
scene.addComponent() → ComponentManager.addComponent()
scene.update() → SystemManager.update() → ISystem.update()
scene.update() → SystemManager.start() → ISystem.start()
scene.setResource() → ResourceManager.setResource()