stride3d / stride

Stride (formerly Xenko), a free and open-source cross-platform C# game engine.
https://stride3d.net
MIT License
6.62k stars 957 forks source link

Entity Component System Epic #132

Open xen2 opened 6 years ago

xen2 commented 6 years ago

Some improvements need to be done to ECS:

Kryptos-FR commented 6 years ago

@RUSshy Maybe it works well, but integrating it into Xenko would be a pain: you would basically have to redesign everything. Instead we should build on top of what we already have.

ghost commented 5 years ago

I came here from this comment and the related question about Unity ECS in 2018/2019 DOD or DOTS (data oriented design/data oriented tech stack) the goal here is of course to have a way out of unity vendor lock in with xenko. Is it possible to list where we are at thus far. https://forums.xenko.com/t/is-it-possible-to-incorporate-ecs-pattern-with-xenko-engine/1548/15

For us and many studios the time to pivot is now. xenko is only place I can find mention of brdf besides blender folks. So with rendering and c# support and now open source annoucements, huge potential for studios looked to have a way out to mirror their code changes in way we can port out of unity if we need to for licensing etc.

I do see that Svelto.ECS a few places. I saw it on godot i think. Not sure if he is just good at posting on forums or if it is actually good. Just wanted to document the consideration and ask for any list of what we might be able to do to port Unity to xenko using the DOTS path, so no vendor lock in but similar quality.

CodingMadness commented 3 years ago

Hey ppl is anything happened in this regard to Stride since then? WOuld really love ot hear about this! :)

SimantoR commented 3 years ago

Are these systems working? Link. If I could get a little bit more idea about this, maybe I can help make more systems. I'm sure Parallel.For would be a great way to multi-thread things.

ykafia commented 2 years ago

I made an implementation of FLECS in C#, it is a work in progress and can use structs as components. I've tried my best to avoid boxing and i hope it works a bit better on the cache friendliness front (need some testing). I've added the use of classes too which could be useful to reuse existing code in Stride. Maybe someone could chime in and give some critics about the implementation