这个项目能做什么
EnTT(实体-组件-系统)是一个仅头文件的C++20库,主要面向游戏编程,但也适用于更广泛的软件开发。它提供了高性能的ECS实现,遵循“按需付费”原则,支持不受约束的组件类型、可选的指针稳定性以及可定制的存储钩子。该库通过视图和组提供多种迭代模式,从完美的结构数组(SoA)到随机访问不等。
除了核心ECS之外,EnTT还包含内置的RTTI系统、constexpr资源命名、极简配置系统、用于优化调度的执行图构建器、服务定位器、非侵入式无宏运行时反射系统、静态多态工具、自定义容器(包括基于稀疏集的哈希映射)、协作调度器、资源管理(缓存、加载器、句柄)、委托、信号处理器、事件分发器,以及基于CRTP的事件发射器。
EnTT已被包括Minecraft(Mojang)、ArcGIS Runtime SDK(Esri)和Ragdoll Dynamics在内的主要项目用于生产环境。它通过CMake、Conan、vcpkg、Homebrew、build2和Bazel(bzlmod)集成。该库需要支持C++20的编译器,并通过Doxygen提供全面文档,支持Natvis调试。代码采用MIT许可证,文档采用CC BY 4.0,徽标采用CC BY-SA 4.0。
评论
0 评分人数达到10人后显示
登录后参与讨论。