Engine MK1 is an Entity-Component based engine that stores data in ObjectPools and runs logic through a TaskScheduler.
Storing data in an ObjectPool allows you to make better use of CPU cache, avoiding costly cache-misses and improving performance.
Use of the TaskScheduler is optional. So you can have a mix of concurrent and serial code, giving greater flexibility.
- Core: Classes and structs for implementing an entity-component engine.
- Graph: Lets you make a directed graph (cyclic or acyclic) and run BFS and DFS on it.
- ObjectPool: Lets you store and access objects in contiguous aligned memory.
- Planner: A goal oriented action planner implementation.
- TaskScheduler: Takes a group of tasks (with option interdependencies) and schedules them to run on worker threads.
- EventStream: Manages the sending, receiving and processing of asynchronous events.