Об этом проекте
EnTT (Entity-Component-System) — это header-only библиотека на C++20, разработанная в первую очередь для программирования игр, но применимая и в более широкой разработке программного обеспечения. Она предоставляет высокопроизводительную реализацию ECS с политикой «плати только за то, что используешь», неограниченными типами компонентов, опциональной стабильностью указателей и настраиваемыми хуками хранилища. Библиотека предлагает несколько шаблонов итерации через views и groups — от идеальной структуры массивов (SoA) до произвольного доступа.
Помимо ядра ECS, EnTT включает встроенную систему RTTI, constexpr-именование ресурсов, минимальную систему конфигурации, построитель графа выполнения для оптимального планирования, локатор служб, ненавязчивую систему рефлексии времени выполнения без макросов, утилиты статического полиморфизма, пользовательские контейнеры (включая хеш-карту на основе sparse-set), кооперативный планировщик, управление ресурсами (кэш, загрузчики, дескрипторы), делегаты, обработчики сигналов, диспетчер событий и эмиттер событий на основе CRTP.
EnTT используется в продакшене крупными проектами, включая Minecraft (Mojang), ArcGIS Runtime SDKs (Esri) и Ragdoll Dynamics. Она интегрируется через CMake, Conan, vcpkg, Homebrew, build2 и Bazel (bzlmod). Библиотека требует компилятор, совместимый с C++20, и предоставляет исчерпывающую документацию через Doxygen с поддержкой отладки Natvis. Лицензирована под MIT для кода, CC BY 4.0 для документации и CC BY-SA 4.0 для логотипов.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.