Об этом проекте

Flecs — высокопроизводительный фреймворк системы компонентов сущностей (ECS), предназначенный для разработчиков на C и C++, создающих игры и симуляции. Он предоставляет быстрое, легковесное и переносимое решение с не имеющим зависимостей API C99 и современным типобезопасным API C++17, который не использует контейнеры STL. Ключевые особенности: - Отношения сущностей: полная поддержка отношений между сущностями, впервые реализованная в ECS с открытым исходным кодом. - Иерархии и префабы: встроенная поддержка графов сцен и повторно используемых шаблонов сущностей. - Производительность: кэш-дружественное хранилище на основе архетипов/SoA, способное обрабатывать миллионы сущностей за кадр, а также планировщик без блокировок для многоядерного выполнения. - Переносимость: собирается менее чем за 5 секунд и работает в браузере через emscripten без изменений. - Рефлексия: встроенный фреймворк рефлексии с сериализацией JSON и поддержкой компонентов во время выполнения. - Язык запросов: мощная система запросов с соединениями и наследованием. - Инструменты: дополнение статистики для профилирования и веб-интерфейс Flecs Explorer для мониторинга и управления. Flecs используется в нескольких коммерческих играх, включая Tempest Rising и Territory Control 2, а также имеет сообщественный центр Flecs Hub с модулями для преобразований, физики, рендеринга и многого другого. Сообществом поддерживаются привязки к языкам C#, Rust, Zig, Lua и Clojure. Проект распространяется под лицензией MIT, активно развивается, содержит более 13 000 тестов в CI и поддерживается сообществом в Discord.