Bevy 0.8: data oriented game engine built in Rust
bevyengine.org
bevyengine.org
It was delightful to watch. Regardless of any criticisms of Rust compared to other "next C++" languages (e.g. Zig, Vale, Hare, Odin, Carbon, etc) the amazing community is what's already ensured Rust's place at the top made me realize that the community is going to drive Rust to stardom
Edit: this is coming from an ex-professional Unity dev
I hope the rendering pipeline is much more ergonomic -- I found doing shaders in Bevy 0.7 was incredibly painful. Most things in Bevy just "make sense", but the render internals were somehow both low-level (lots of explicit memory sizing and boilerplate) and convoluted (think FizzBuzzEnterpriseEdition). It doesn't help that WGPU and WGSL have very limited resources online compared to, well, OpenGL and GLSL or anything DirectX. It almost made me just reach for good old C++, especially since the normally amazing Rust errors were absolutely terrible with anything going on in render land. Hopefully I can check out 0.8 soon and see those improvements!
I hope Bevy going forward continues to put a lot of effort into the render pipeline so it is as ergonomic and intuitive as the rest of it. I think the ECS core is absolutely brilliant -- the rest just needs to be at the same level. A challenging language plus a difficult render path and a niche library (WGPU) is a tough sell to game devs IMO.
Some Youtube Content: https://www.youtube.com/playlist?list=PL6uRoaCCw7GN_lJxpKS3j...
Source on GitHub.
We've been peeling back the layers of the "editor onion" for awhile now. We've been focused on "foundational engine systems" since Bevy first released. But from here on out, our focus will be shifting. My next big project is "asset preprocessing", which is an important part of editor workflows. Other prominent Bevy developers have started to shift their focus toward preparing Bevy UI for editor scenarios.
I would like to break ground on the editor by the end of the year and have some sort of scene editor MVP proved out. This is ambitious, but I think it is possible given where we are at now. It will be awhile before we have a final editor workflow sorted out, but this will be an open, iterative process that the community will be able to follow along with as it develops.
Mobile is in a pretty good spot at this point: iOS support is pretty stable now. People have already started publishing Bevy iOS apps to the Apple App Store: https://noumenal.app.
Android is close, but not quite there yet. As of this release, Android builds kind of work again. You can build and deploy android apps, but they lose their renderer context if you suspend or resume the app. Audio also doesn't work yet :)
We will be focusing on scenes, asset workflows, ui, and the editor from here on out (with scenes, asset workflows, and UI being the focus for the next release).
I'd like to have some sort of editor MVP by the end of the year.
Until then, there are community efforts like: https://github.com/jakobhellermann/bevy_editor_pls
https://github.com/jakobhellermann/bevy_mod_js_scripting/blo...
Given how new this effort is, I suspect there are plenty of areas with room for improvement.
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)
Anyways, Rust seems viable for gamedev and IMO Bevy is taking a great approach wrt the borrow checker (by using ECS, more liberal types even if it technically creates UB). I really hope this project takes off and actually leads to some great games, and maybe it will manage to be less bloated than some other game engines...
> Bevy officially only supports Rust as the "one true way to define app logic". We have very good reasons for this and that philosophy likely won't change any time soon
This is one thing disagree with. At least until/unless Rust gets a way to write code without worrying about borrow checker, like a Rust DSL which provides automatic Cow or Rc<RefCell on everything.
Rust's performance is critical for some game logic but a lot of logic really doesn't need performance, and the borrow checker is going to make that non-performance-sensitive code much harder to write, for no gain. This is especially an issue because most game devs work in teams and have team members who aren't as experienced with performance or the borrow checker or coding in general. It would be nice to have a "sandboxed" environment where a) you don't worry about the borrow checker and b) everything it checked so you don't worry about annoying memory corruption issues, but in exchange the code is a lot slower.
> These, when combined with our reflection APIs, provide the tools needed to start building scripting support!
> @jakobhellermann has started building their own JavaScript / TypeScript plugin for Bevy.
But it looks like they're making it possible to interface with other languages anyways! Which is the right move IMO. The Bevy maintainers and I can disagree with using multiple languages, but it doesn't matter as long as they provide the minimal bare-bones tools to do whatever.