Cache Friendly, Memory Efficient, Multithreaded
At the heart of this C++17 library is the ECSManager
class: It takes care of saving all entities and components in contigous memory. It is designed to increase data locality as much as possible while keeping memory usage as low.
An example of how this library might be used can be found in main.cpp
To make use of PancakeECS one only needs to declare a new Scene
.
All GameObjects
that will be instantiated will be created within the scope of the active scene if not declared otherwise. Components can be easily added and removed to GameObjects
using the AddComponent<>
and RemoveComponent<>
methods.
ComponentViews
allow for easy iteration over ComponentDatas. Multithreading is made easy by means of parallel_foreach
of a ComponentView.
Implementing new Components is done by inheriting from the ComponentData
class.