Thank you for setting the Foundation up like this!
To make this work in the long run donations are crucial: https://bevyengine.org/donate/
When do the team think the would be comfortable telling people they can build and release game on it?
There are two popular physics engines used in Bevy today: Rapier[0] and bevy_xpbd[1]. Both are candidates for upstreaming, but both have their own challenges. I've spent some time working with each of the authors recently, laying out my concerns and thoughts.
On the Rapier side, the documentation is sparse and aggressively mathematical, it uses a distinct math library from the rest of Bevy, the API to work with Bevy is sometimes clunky and unidiomatic, and it can be quite hard to figure out how to do Ordinary Game Dev Things with it.
On the bevy_xpbd side, the performance is subpar, there can be physical stability issues, it's generally immature, and the XPBD solver that they use is, unbeknownst to the young author at the time of the crate's creation, patented by NVIDIA [2] :(
Both of them are working to improve (and I'm very pleased to see that even independent of this discussion), but neither is ready for imminent official endorsement or integration. One day we'll have a Blessed Choice though.
As for telling people "go forth and build your game!": things are stabilizing, and key functionality gaps are gradually getting filled. I have a terrible tendency to be overly honest, even in my marketing text, so there's going to be a long period of time where the actual answer is "it depends on what you're making".
Today, if you're building a weird game-adjacent bit of software (think CAD) for desktop platforms: totally ready! There are several very happy companies doing that. If you wanna mess around with Rust and nurse the Next Great Solo Dev Science-Based MMORPG Voxel Game: you'll have a blast, and it won't affect your chance of shipping a whit. If you want to build a simulation-y desktop game with lots of procedural generation and complex logic: honestly probably a good fit. You'll hit bugs and limitations, but you will in every other engine you use so...
If you want to ship high-performance web games, AAA graphics or mobile: eh, probably doable but dicey. If you want to ship to console: uh we'll find out if we can jump through all of the hoops and convince the right people to get Rust on console before the Steam Deck knockoffs devour the market (please!).
These will all slowly change, but an answer for "is it ready" will be hard to pin me down on until it's a full-fledged competitor to Unity, Unreal and Godot.
https://www.unsungnovelty.org/posts/05/2023/open-source-proj...
The (non-game) things that I do would be infinitely more painful without Bevy ECS, so I sponsored personally at Diamond for now.
Very excited for relations and I'm hoping that the Bevy Foundation can attract the support it's looking for (and I'll switch over to corporate in a few months if things don't go unexpectedly sideways with my company). :)
[profile.dev.package."*"]
opt-level = 3https://bevyengine.org/learn/quick-start/getting-started/set...
With this, the frame rate immediately went from 13 fps to 60 fps.
Firstly, the overall quality is high and seeing this attention being paid to the project's organization is another good sign.
Documentation is not great. The Bevy book runs out of content very quickly. The "Cheat Book" has additional useful information: https://bevy-cheatbook.github.io/. With these plus the examples I've been able to figure out everything I need, but it's slow going.
I'm not 100% sold on ECS. It loses a lot of type safety and there doesn't seem to be any way to ensure cleanup of entities and their components.
As for the ECS, I've absolutely felt that: the flexibility of the polymorphism created by "just add another component!" can be both chaotic and freeing. Can you say more about what you're looking for with entity cleanup? I haven't heard that complaint before and want to make sure I understand what you mean.
What I think would be useful is essentially an arena allocator associated with a state. So any components and entities created when a state is active would be removed when that state is exited. Otherwise it seems that one must do manual GC, which is error-prone and will almost certainly lead to slow leaks over time.
[0]: https://docs.rs/bevy/latest/bevy/ecs/prelude/struct.State.ht...
For type safety, entities define mapping of types [components are types]. The whole point of ECS is effectively managing types and ensuring correctly typed data is operated on.
It's been ~2 years, but my main reason was wanting to write plain rust, vice using a DSL.
I was under the impression that bevy's Query system is type safe.
I’m not sure what you mean by cleanup entities. Whenever i load a level i put it under a root entity and just despawn the root when im done.
I'm too stupid to use Rust, I just don't have it in me right now, but I really want to support this engine. Please add a one-time donation option!
Also this is a long shot, but any chance of supporting higher level languages. Maybe it calls the underlying Rust code from C#
If you are looking for a more full featured game engine-- I recommend Godot.
I have been using Godot lately and it's refreshing how nicely it flows and how the experience mirrors other OSes (from a Linux user's perspective). If you haven't tried Godot lately, give it a try.
Plus, the whole thing is a single binary (~100mb).
Bevy was also great, but is definitely more of a library and there's not a lot of mature plugins. My use case was a web browser compatible game (wasm compiled bevy) that used websockets for networking. It didn't seem like too much of a stretch, but I didn't end up getting anywhere I wanted to be with bevy unfortunately. Hopefully as it grows it becomes a better option!
But with Godot I ported my code and had it working in the browser with websockets based multiplayer shockingly fast, even having never touched gdscript before!
That said, the Zig Foundation got status in 2020, and the Amethyst Foundation (another Rust gamedev group) also got status recently, so we figured it was worth it to apply since we really do feel like it's the best-fitting designation for how we want to run things and what we want to do.
It seems like it has good bones, but taking real territory away from Unity or Godot will be hard without an editor (not just for non-programmers; some game dev tasks are just way easier with a GUI)
Of course it's open so somebody could build one, but it seems to me this deserves to be a first-class citizen
https://bevyengine.org/news/bevy-0-13/#more-editor-experimen...
I used to think this too. But having written a lot of hobby code using Godot (via Gdext, an excellent Rust wrapper for it) I feel the editor is a nice to have but not indispensable.
Very soon into the game you'll find that you need an editor that lets you add your own game abstractions into the game. And at that point you're better off writing an editor "in game" than shoe horning your abstractions into the game engine editor.
There's a bit more nuance I probably outght to the above description but too tired to type it all out on my phone now.
Having an official editor is definitely on the roadmap.
I just wish it was slightly better with backward compatibility. There's many useful libraries I can't use because they depend on different bevy versions, and updating the code to new major versions is a hassle. And the bevy cheatbook has some pages refering to behavior that changed several versions earlier.
Just crossing my fingers because by the time Bevy reaches that goal, compute power may have just 10x'd again, and the existing game engine giants will have added AI creation tooling by then.
https://www.unsungnovelty.org/posts/05/2023/open-source-proj...
- A 501(c)(3) is for the benefit of the public
- A 501(c)(6) is for the common interests of their members
They both have advantages and disadvantages and are appropriate for certain scenarios.
Examples are:
- A 501(c)(3) Python, Scala, Zig, Mozilla, Apache, SFC, FSF
- A 501(c)(6) .NET, Rust, Eclipse
This has complete sections defining both.
Revy – proof-of-concept time-travel debugger for the Bevy game engine - https://news.ycombinator.com/item?id=39590683 - March 2024 (36 comments)
Bevy 0.13: ECS-driven game engine built in Rust - https://news.ycombinator.com/item?id=39412940 - Feb 2024 (59 comments)
Bevy 0.12 - https://news.ycombinator.com/item?id=38144417 - Nov 2023 (84 comments)
Three Years of Bevy - https://news.ycombinator.com/item?id=37477971 - Sept 2023 (1 comment)
Bevy's Third Birthday - https://news.ycombinator.com/item?id=37081501 - Aug 2023 (6 comments)
Bevy 0.11: ECS-driven game engine built in Rust - https://news.ycombinator.com/item?id=36657970 - July 2023 (29 comments)
Bevy XPBD: A physics engine for the Bevy game engine - https://news.ycombinator.com/item?id=36642867 - July 2023 (20 comments)
Bevy and WebGPU - https://news.ycombinator.com/item?id=35994106 - May 2023 (40 comments)
Bevy 0.10: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=35045224 - March 2023 (91 comments)
Scaling Bevy Development - https://news.ycombinator.com/item?id=34387062 - Jan 2023 (20 comments)
Bevy 0.9: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=33577284 - Nov 2022 (50 comments)
Automated testing in Bevy - https://news.ycombinator.com/item?id=32802402 - Sept 2022 (81 comments)
Bevy 0.8: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=32287828 - July 2022 (18 comments)
Bevy 0.7: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=31043668 - April 2022 (63 comments)
Bevy game engine 0.6 - https://news.ycombinator.com/item?id=29854416 - Jan 2022 (89 comments)
Bevy's First Birthday: a year of open source Rust game engine development - https://news.ycombinator.com/item?id=28132114 - Aug 2021 (13 comments)
Bevy 0.5: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=26716166 - April 2021 (65 comments)
Bevy: A game engine built in Rust - https://news.ycombinator.com/item?id=26131350 - Feb 2021 (117 comments)
Bevy 0.4: data oriented game engine built in Rust - https://news.ycombinator.com/item?id=25480321 - Dec 2020 (23 comments)
Making a Snake Clone with Bevy - https://news.ycombinator.com/item?id=24999073 - Nov 2020 (11 comments)
Bevy 0.3: game engine built in Rust - https://news.ycombinator.com/item?id=24983956 - Nov 2020 (55 comments)
Bevy 0.2 - https://news.ycombinator.com/item?id=24530698 - Sept 2020 (43 comments)
Bevy: A Game Engine in Rust - https://news.ycombinator.com/item?id=24334307 - Aug 2020 (42 comments)
Bevy: A data-driven game engine and app framework built in Rust - https://news.ycombinator.com/item?id=24123283 - Aug 2020 (103 comments)
> game engine built in Rust
I hope it succeeds and gets significant market penetration. Will donate monthly