-
Hi! I'm looking for a stable ECS library for a long-term project. Bevy is prone to constant breaking changes, which is the right thing to do to ensure a future with less historical baggage. But I'm wondering about the plans for the ECS crate, and whether there are more breaking changes planned for the near future. Specs is okay, but unmaintained (and a bit verbose, although very fast). Maybe I should just roll my own ECS, to make sure that I don't run into major breaking changes, but then I won't work on the original project. How stable is bevy_ecs at the moment, keeping in mind that it will be used for the years to come? Thanks in advance :) |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
It depends on what kind of stability you are looking for. More often than not, the "breaking" is just some changes that can easily be fixed by mechanical work (a good example is the addition of I wouldn't worry about changes that requires you to rewrite the entirety of your game, I've maintained two/three codebases across bevy versions, and all breaking changes were easy to deal with (if even once or twice a bit pointless and cheap). Don't expect a "this is a completely new way to write code" à la JS framework or Android/iOS update. Even major changes to third party crates like The 0.10.0 release soonish (1-3 months) might be the most breaking ECS update to date (the stageless scheduler). But even then, bevy should provide tools to map your stage-based system schedules to the stageless ones fairly easily. I don't know of any plans similar to stageless in the future, and I expect most breaking changes to be simple mechanical changes after that. There will be large changes (relations) but they seem more additive than transformative. Also note that bevy updates once every 3/4 months, not every other weeks, so it's not a red queen race where you have to spend as much effort on updating as on working on your game. The one warning I'll push is do not use |
Beta Was this translation helpful? Give feedback.
It depends on what kind of stability you are looking for. More often than not, the "breaking" is just some changes that can easily be fixed by mechanical work (a good example is the addition of
#[derive(Resource)]
orExtract<T>
).I wouldn't worry about changes that requires you to rewrite the entirety of your game, I've maintained two/three codebases across bevy versions, and all breaking changes were easy to deal with (if even once or twice a bit pointless and cheap). Don't expect a "this is a completely new way to write code" à la JS framework or Android/iOS update. Even major changes to third party crates like
bevy-inspector-egui
were easy to deal with (like wow, I just had to remove a…