EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++. Among others, it's used in Minecraft by Mojang, the ArcGIS Runtime SDKs by Esri and the amazing Ragdoll. The entity-component-system (also known as ECS) is an architectural pattern used mostly in game development. This project started off as a pure entity-component system. Over time the codebase has grown as more and more classes and functionalities were added. Statically generated integer identifiers for types (assigned either at compile-time or at runtime). A constexpr utility for human readable resource names. An incredibly fast entity-component system based on sparse sets, with its own pay for what you use policy to adjust performance and memory usage according to the users' requirements. Offers a minimal configuration system built using the monostate pattern.

Features

  • Views and groups to iterate entities and components and allow different access patterns, from perfect SoA to fully random
  • A lot of facilities built on top of the entity-component system to help the users and avoid reinventing the wheel
  • The smallest and most basic implementation of a service locator ever seen
  • A built-in, non-intrusive and macro-free runtime reflection system
  • Static polymorphism made simple and within everyone's reach
  • A cooperative scheduler for processes of any type

Project Samples

Project Activity

See All Activity >

License

MIT License

Follow EnTT

EnTT Web Site

Other Useful Business Software
Go From Idea to Deployed AI App Fast Icon
Go From Idea to Deployed AI App Fast

One platform to build, fine-tune, and deploy. No MLOps team required.

Access Gemini 3 and 200+ models. Build chatbots, agents, or custom models with built-in monitoring and scaling.
Try Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of EnTT!

Additional Project Details

Programming Language

C++

Related Categories

C++ Games, C++ Frameworks, C++ Minecraft Mods

Registered

2021-09-30