Organize a game world's objects, data, and logic using the ECS pattern for better performance in a C++ game engine.
Add runtime reflection to a C++ application so code can inspect and manipulate objects without knowing their types at compile time.
Use the built-in signal and event system to decouple communication between different parts of a C++ game or application.
Manage resources and schedule tasks inside a C++ game without pulling in a full game engine.
Requires a C++17-compatible compiler, add the header to your project or install via vcpkg or Conan.
EnTT is a C++ library designed primarily for game development. It implements a pattern called Entity-Component-System (ECS), which is a common way to structure game objects. In an ECS architecture, a game world is made up of entities (plain identifiers with no logic of their own), components (data attached to those entities, such as position, velocity, or health), and systems (code that processes all entities that have a certain combination of components). This separation of data from behavior tends to result in faster-running code because it keeps related data grouped together in memory. The library started as a focused ECS implementation and has grown into a broader toolkit. Beyond the core ECS, it includes a runtime reflection system (a way for code to inspect and manipulate objects at runtime without knowing their types at compile time), an event and signal system for communication between different parts of a program, resource management tools, a task scheduler, and several utility containers. The README describes these as added over time as the author wanted them for their own projects. One of the most cited facts about EnTT is that it is used in Minecraft, developed by Mojang. The README mentions this as a point of confidence in the library's stability and cross-platform reliability, since Minecraft runs on essentially every platform that exists. EnTT is a header-only library, meaning you do not compile it separately. You include the header file in your C++ project and it is ready to use. It requires a compiler that supports modern C++ (specifically C++17 or newer). Installation is available through common C++ package managers. The library is aimed at C++ developers working on games or other performance-sensitive applications where the ECS pattern is a good fit. It is not a game engine and does not handle graphics, audio, or input on its own. It is a foundational building block that handles the data and logic organization layer of a game, which other systems are then built on top of.
← skypjack on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.