A lightweight vectorial ECS focused on compatibility and performance.
- Zero dependencies
- Minimal ECS core
- Lightweight and fast
- Zero/small memory allocations/footprint
- Entity/Component managed by vectorization
- Query cache entity
- 255 components, unlimited entity, archetype, query, system
- Adapted to all C# game engine
- Support Web by same framework*
- Support serialzation, network*
struct ComponentA { public int Value; }
struct ComponentB { public int Value; }
var world = new EcsWorld();
var arrayA = world.GetComponentArray<ComponentA>();
var arrayB = world.GetComponentArray<ComponentB>();
world.CreateEntity(typeof(ComponentA), typeof(ComponentC));
var queryDesc = world.CreateQueryDesc().WithAll<ComponentA>().WithNone<ComponentB>().Build();
var query = world.GetQuery(queryDesc);
foreach(var entityId in query)
{
ref var compA = arrayA[entityId];
compA.Value++;
};
The software is released under the terms of the MIT license.
No personal support or any guarantees.
- Building an ECS #2: Archetypes and Vectorization
- ECS back and forth Part 2 - Where are my entities?
- Introducing ECSY: an Entity Component System framework for the Web