StaticECS — Bitmap Entity Component System
За десятилетия существования ECS сложились два фундаментальных способа хранить компоненты: архетипы (Unity DOTS, Flecs, Bevy) и sparse sets (EnTT, LeoECS). Каждый из них несёт структурные ограничения, которые не устраняются оптимизацией реализации — они вытекают из самой модели данных. StaticEcs — третья модель. Она основана на инвертированном иерархическом битовом индексе : не сущности хранят маски своих компонентов, а компоненты хранят битовые карты сущностей. Фильтрация запроса — это побитовое AND, обрабатывающее 64 сущности за одну инструкцию CPU. Добавление или удаление компонента меняет один бит и не перемещает никаких данных. В статье разбираю, как устроена эта архитектура, чем она отличается от архетипов и sparse sets, и что даёт на практике.
https://habr.com/ru/articles/1027940/
#ECS #C# #NET #gamedev #game_development #performance #data_structures #Unity #архитектура #оптимизация

