"Arch" ECS for monogame received "pure ecs" support and its 1.1.0 Update, check it out ! :)

I developed a highperformance c# archetype ECS for game development and data oriented programming some weeks ago :slight_smile:

[Arch ECS]((GitHub - genaray/Arch: A high performance c# Archetype Entity Component System ( ECS ) with optional multithreading.)

for (var index = 0; index < 1000; index++) 
   var entity = world.Create(new Position{ x = 0, y = 0}, new Velocity{ dx = 1, dy = 1});

// Query and modify entities 
world.Query(in query, (ref Position pos, ref Velocity vel) => {
   pos.x += vel.dx;
   pos.y += vel.dy;
});

Since then it came a long way, today it had its first “major” update which restructured a lot of its internals. During that process it became even faster than before ! Especially the lookup speed has been improved by over 100%.

Furthermore it recently received “pure ecs” support ( requires a fork ), with a simple flag, you can now easily slim down the Entity itself from 8 to 4 bytes in total to save memory and speed up your operations :slight_smile:

#PURE_ECS
public static World world;
world.Query(in desc, static (ref Target target, ref Damage damage) => {
   ref var health = ref world.Get<Health>(target.target);  // Thats the pure ecs part basically.
   health.current -= damage.dmg;
});

Feel free to check it out, leave some feedback, some contribution or even a star ! ^^

4 Likes

I’m currently using Arch in my latest prototype project and really enjoying it so far. I like the lightweight API.

Pretty similar to my homemade ECS, but a little easier to use. Nice work!

1 Like

Thanks a lot ! :slight_smile:

Glad to get some feedback, once you have a polished prototype, I could even link it on the github page if that’s in your interest ^^

I will definitely continue to refine and improve Arch. Soon another and better optimized query API will be released, which will be equivalent to the current Unity Entities API :slight_smile: