A few months ago I had developed a high-performance ECS called Arch, it was designed for game development and data oriented programming.
It is based on Archetypes & Chunks and was heavily inspired by Unity's ECS.
Since then it has matured and has a number of pretty cool features. From bulk operations to an own source generator and systems api.
And best of all, it supports .NetStandard2.1, .Net6 and .Net7! Theres also a small sample project (currently only monogame) and a detailed wiki!
public struct Position{ float X, Y };
public struct Velocity{ float Dx, Dy };
// Create a world and entities with position and velocity.
var world = World.Create();
for (var index = 0; index < 1000; index++)
world.Create(new Position{ X = 0, Y = 0}, new Velocity{ Dx = 1, Dy = 1});
// Query and modify entities ( There are also alternatives without lambdas ;) )
var query = new QueryDescription().WithAll<Position,Velocity>(); // Targets entities with Position AND Velocity.
world.Query(in query, (ref Position pos, ref Velocity vel) => {
pos.X += vel.Dx;
pos.Y += vel.Dy;
});
So you can also use it with Godot 🙂 Since I want to improve and extend the ECS constantly, I wanted to get some feedback.
So if it doesn't work with some Godot versions or you have further wishes, let me know!
Also feel free to leave feedback and a star! (Also always looking for contributors) 🙂