Entity Component System
I decided to build a complete ECS (Entity Component System) using C++20 purely for fun and learning purposes. This project gave me the opportunity to sharpen my C++ knowledge and test my problem-solving skills. In particular, the most interesting challenges I faced were:
- Designing and implementing a packed component array to store data-only components in contiguous memory chunks.
- Designing and implementing an archetype system with support for efficient queries to retrieve all entities owning a specific set of components.
- Handling memory management by writing custom memory allocators to reduce heap allocations and memory fragmentation.
- Setting up a complex CMake project with multiple sub-projects and dependencies.
I released version 1.1 of the system on GitHub.