Sobre o projeto
EnTT (Entity-Component-System) é uma biblioteca C++20 header-only projetada principalmente para programação de jogos, mas aplicável ao desenvolvimento de software em geral. Ela fornece uma implementação ECS de alto desempenho com política de 'pague pelo que usar', tipos de componentes sem restrições, estabilidade opcional de ponteiros e ganchos de armazenamento personalizáveis. A biblioteca oferece múltiplos padrões de iteração por meio de views e groups, variando de estrutura de arrays (SoA) perfeita a acesso aleatório.
Além do núcleo ECS, o EnTT inclui um sistema RTTI embutido, nomeação de recursos em constexpr, um sistema de configuração mínimo, um construtor de grafo de execução para agendamento otimizado, um localizador de serviços, um sistema de reflexão em tempo de execução não intrusivo e sem macros, utilitários de polimorfismo estático, contêineres personalizados (incluindo um hash map baseado em sparse-set), um agendador cooperativo, gerenciamento de recursos (cache, loaders, handles), delegates, manipuladores de sinais, um despachante de eventos e um emissor de eventos baseado em CRTP.
O EnTT é usado em produção por grandes projetos, incluindo Minecraft (Mojang), ArcGIS Runtime SDKs (Esri) e Ragdoll Dynamics. Ele integra-se via CMake, Conan, vcpkg, Homebrew, build2 e Bazel (bzlmod). A biblioteca requer um compilador compatível com C++20 e fornece documentação abrangente via Doxygen, com suporte a depuração Natvis. Licenciado sob MIT para código, CC BY 4.0 para documentação e CC BY-SA 4.0 para logotipos.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.