Migrating my ECS to Rust

Hello guys. I'm more or less a newbie with Rust.
I come from the julia language.
There I made one powerful ECS based on database-like layout and reactive pipelines which aims to overcomes the traditional tradeoffs of sparse set ECS like EnTt and archetypal ECS like Flecs.
I'm thinking about migrating it to rust.
But first I would like to know your thoughts about the ECS.
Do you think the my ECS concept is interesting enough to deserve to be ported in a more low level language.
Does reactive pipelines are easy to handle with ECS ?
Anyways I ready to hear your thoughts. You can read the readme of my ECS in julia to have a full overview of the idea.
Feel free to leave a :glowing_star: on my repo if you like it :eyes:

If you're talking ECS, you should probably take a look at https://bevy.org/learn/quick-start/getting-started/ecs/, as one of the most popular in Rust today.

ECS is absolutely interesting in Rust, probably even more so than in most languages because of how it helps side-step ownership and cycle issues.

4 Likes

Yeah. If want to migrate my ECS it's because I think it's really different from bevy
I even think it may be a step forward for the whole ECS paradigm.
So maybe porting it to rust may even make it better

To be honest, the reason why I don't use bevy is just because it's just a traditional ECS leveraging rust strength.
We can't really rely on that to judge the quality of an ECS (since I could say in Julia or nim I can make multiple executions paths for a systems or adding code at runtime).
If I want to migrate my work to Rust, it's just because I believe it's a different take on the ECS paradigm.
Rust is just a really good mean to make the idea even better.
I just wanted some insight and I tried multiple time to see what the rust community think about it (It’s not the first community I ask) and to be frank, I have been kinda tired that everyone doesn't even listen a second about what I say and instantly redirect me to Bevy. I know about bevy, if my work was just a bevy ecs clone, I wouldn't talk about it...
Anyways I think the I will do the migration, just for fun to see how it goes

You said you're a, quote, "newbie with Rust". You mention other things like Flecs, but not Bevy. So of course it gets mentioned.

Perhaps if you compared and contrasted how you think yours would be better then you'd get better engagement.

(It would probably also help if your readme link wasn't broken.)

1 Like

The Bevy ECS is mostly notable for just how much effort it puts into ensuring that it's easy to use; how fast it is isn't really relevant most of the time given that like any ECS it's already way ahead of the curve: being able to handle 100 vs 10,000 NPCs is a much bigger deal than 10,000 vs 12,000. If storage layout does matter then you do already have the option of tablular vs sparse set per Component, so if pagination does show significant improvement it could easily be added to Bevy ECS.

That said, if you can improve performance by using a different design I'm sure there would still be plenty of people interested!

As of yet the only question mark for me is it from the readme it seems like you have a columnar store per field, which would interfere with being able to slap an impl block on Component types. Maybe that's just a Julia workaround though?

2 Likes

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.