stride icon indicating copy to clipboard operation
stride copied to clipboard

Entity Component System Epic

Open xen2 opened this issue 7 years ago • 5 comments
trafficstars

Some improvements need to be done to ECS:

  • cache localized data
  • easier parallelism/jobs
  • easier background preloading to avoid stuttering when a new entity is added to scene

xen2 avatar Aug 23 '18 00:08 xen2

@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.

Kryptos-FR avatar Oct 10 '18 02:10 Kryptos-FR

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.

ghost avatar Apr 09 '19 02:04 ghost

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

CodingMadness avatar Dec 13 '20 19:12 CodingMadness

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.

SimantoR avatar Apr 30 '21 16:04 SimantoR

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

ykafia avatar Jul 19 '22 10:07 ykafia