Replies: 3 comments
-
|
There's a reason the Quick Start guide starts with a stability warning 🙂
The standard in larger game studios using other engines like Unity, Unreal Engine, etc. is to pick a version and stick with it for the development of a game, not to spend a ton of time and resources constantly porting to newer versions. The same can be done with Bevy; you don't have to update unless you want to. Though, of course, because it is still evolving so rapidly, each version often adds things that may be very useful for your project, and learning resources can get outdated, so there is incentive to update. Whereas with more mature engines, there are typically enough features that there is less need to use the latest version. Personally my experience (~3-4 years, though primarily as a library author) with Bevy updates has been that migrations really aren't too bad, typically taking 20 minutes to a couple hours to get things to compile and work like normal, and maybe some more to adopt any new features or APIs. The most painful part of migrations is waiting on ecosystem crates to update, but that is a bit better nowadays with the RC process, and oftentimes you can also update smaller crates yourself, if needed. Also, if you rely on advanced rendering internals, those can break in hard-to-debug ways. But yeah, it's totally reasonable to use something more mature and stable; like the Quick Start guide says, Bevy is still in fairly early stages of development (game engines are big), and things break and evolve often :) I would expect stabilization to happen gradually, with core parts like the ECS having fewer large breaking changes over time. But no engine is ever finished unless it is abandoned, even engines like Unity, Godot, and Unreal Engine still have breaking changes. |
Beta Was this translation helpful? Give feedback.
-
|
Agree. Chasing Bevy version is very frustrating for a serious project. Bevy has been in "early stages of development" for five years and from time to time there are too many changes about ergonomics instead of adding new functions. |
Beta Was this translation helpful? Give feedback.
-
|
I must confess, I'm finding it hard myself. If I was a Rust veteran and had taken the time to really dig into Bevy end-to-end before writing a single line of code (I didn't have the time), maybe it would be easier. As it was, I quickly iterated through a Rust book during my parental leave (I wanted to both work on a game and learn Rust), put something together in roughly 6 months, didn't touch it for about 10 months after I got back to work and coming back, I'm putting myself back into context and... it took some doing to migrate from 0.14.2 to 0.15.3 (I was hoping it might help fix a problem I had, it didn't...). The breaking changes in the UI really set me back (I use UI all over the place, my game is 2D, plus the more declarative UI rendering style really appealed to my web dev background). Loading my save games also broke. There are no examples that I could find about saving and loading a scene (even though saving and loading is a basic feature found in most games) which is a shame, because I rely on them a lot to get unstuck. In the end, of all things, chatgpt bailed me out (as it turns out, I was erroneously assigning to a scene and that was fine in 0.14.x, but really, it is a dynamic scene and 0.15.x militantly refused to do the assignment, but gave me a somewhat nebulous unknown loader type error). I must admit, I was really eyeing Godot here for a bit and considered byting the bullet and just porting my game to it, probably with the Rust extension (I don't feel like using GDScript, I want to use an existing general-purpose programming language). At this point, everything works with 0.15.x (minus my bug I need to resolve) so I think I'll just ride with that and hope the engine doesn't have too many bugs at that version, because I need to progress with my project. If I encounter a show-stopping bug, I'll re-evaluate whether it is easier to switch to 0.16.x or just redo it in Godot and etcetera. What I won't do is keep up with the updates. In my particular situation, that would be insanity. But otherwise, I'm personally liking the ECS API. That was new to me when I started the project and it has a certain elegance to it. |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
I have been with bevy for many years now. i always find myself chasing the next version , never get to stabilize the games , it always breaks , always takes time. I have given up trying. I am moving out of bevy and i will not use for my games any more. Maybe i am missing something but this kind of development is not the right way , even the basic core changes all the time , porting is hell it takes time , money and effort.. thank you but no. Unless you decide on a functioning core that will not change so rapidly colors , structures windows , base of the base , I'm done here.
Beta Was this translation helpful? Give feedback.
All reactions