Об этом проекте
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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.