top | item 39412940

Bevy 0.13: ECS-driven game engine built in Rust

137 points| _cart | 2 years ago |bevyengine.org | reply

59 comments

order
[+] pcwalton|2 years ago|reply
I wrote the lightmaps, reflection probes, and irradiance volumes support for this release! Bevy has really been a joy to work with, and the community is fantastic.
[+] SeanAnderson|2 years ago|reply
I've been building My First Game™ using Bevy after teaching myself Rust last year. I feel super cool running Rust in WASM in the browser! It's been a great experience overall and I highly recommend exploring what Bevy has to offer.

The community is really exceptional. I ask questions daily and get helpful responses usually within minutes. Bevy hides some of the complexities of Rust, such as lifetimes, away from normal development. This was a pleasant surprise for someone coming in with little awareness of Rust.

Writing in ECS is pretty confusing to begin with and, IMO, represents the steepest part of the learning curve. After a while ECS starts to feel more natural though and you'll wonder why you were ever comfortable doing OOP.

The main sore spots for me are: UI needs a lot of work to be ergonomic and beautiful, there's a lot of footguns related to performance and event handling/change detection, which do have workarounds, but at the cost of ergonomics, and, specifically for WASM, everything (including rendering) is still single-threaded which makes the app perform worse than well written JavaScript for now.

I'd be happy to try and answer any questions about my experience as a complete noob to Rust/Bevy/ECS/game development and having immersed myself ~full time on a game for the past year.

FYI, you can browse my game's code here: https://github.com/MeoMix/symbiants

[+] mikercampbell|2 years ago|reply
Hey!! I’m on the same journey! Yew, but with Bevy ECS and HTML as my “rendering engine”.

Keep me posted!!

[+] _cart|2 years ago|reply
Bevy's creator and project lead here. Feel free to ask me anything!
[+] mattcanhack|2 years ago|reply
No question, just want to say thanks! I've had a lot of false starts trying game tutorials but the ones I found for Bevy were really easy to follow. I was working two versions behind and the changelog for Bevy was so well done that I was able to figure out most of what changed. Bevy was also just straightforward to use.
[+] gaganyaan|2 years ago|reply
Are there any good "end to end" examples that show things like a splash screen, main menu, pause menu, video settings, that sort of thing?
[+] iknowstuff|2 years ago|reply
I gotta ask newbie questions.

Any concrete plans for a GUI editor?

Does stuff like Lumen/Nanite from UE5 have any chance of existing in Bevy?

[+] vacuity|2 years ago|reply
I can't help but feel that between events and commands, and especially with all the parallelism, there's no clean, powerful solution to manage all manner of inter-system interactions. Having .before(), .after(), .chain(), different schedules and whatnot is great, but I think there's something lacking in the model to round it all out. Granted, I'm a novice in these matters and I understand that concurrency brings many hard problems. Could you spare your thoughts on the matter? Thanks!
[+] Jamustico|2 years ago|reply
What did you have for lunch
[+] mrec|2 years ago|reply
> The built-in collection of primitives is already quite sizeable

And yet no teapot! Literally unusable.

[+] mochathoughts|2 years ago|reply
In two / three years, where do you see the project?
[+] CrimsonCape|2 years ago|reply
Any idea why the example image in the OP link appears to be running at sub-optimal framerate?

What is the expected ECS overhead per frame (not including graphics interaction, i.e. code specifically in the ECS model)?

Since an ECS is typically a flattened scene graph, is there still a game loop? Wouldn't be necessary, correct? You only need to respond to the inputs...

[+] hasty_pudding|2 years ago|reply
This looks like a really cool project!

Is it portable to Browser? Or is that on the roadmap?

[+] mochathoughts|2 years ago|reply
Love the way the Bevy project is moving. In a year or two, this project will be a serious alternative to the current Unity / Unreal / Godot engines. Getting it right first is vital, and I'm glad the team is spending a lot of time perfecting the nitty-gritty details before adding features like UI / Editor / etc.
[+] CooCooCaCha|2 years ago|reply
As usual bevy is moving at an impressive pace. Excited for them to break ground on the new scene/ui system
[+] martin-t|2 years ago|reply
Honestly, if you wanna see impressive pace, look at Fyrox. It has had scenes and UI for ages.

While bevy is a decent piece of tech, it gets way more hype than it deserves, especially when there are more mature and capable alternatives.

[+] skybrian|2 years ago|reply
What’s a gizmo? It seems to be some kind of 3d graphics term, but I didn’t find a good definition.
[+] pcwalton|2 years ago|reply
The term is kinda fuzzy and means different things in different engines, but in Bevy it refers to lightweight 3D wireframe overlays that you can use for visual debugging.
[+] martin-t|2 years ago|reply
To the uninitiated, bevy is one of Rust's two main game engines, the other being Fyrox.

Bevy, despite being written by an army of contributors is continually behind Fyrox which is developed mostly by one guy. Fyrox not only has an editor and a UI toolkit, both of which bevy devs keep just talking about, it recently also added a UI editor. In addition the author is writing 2 games to dogfood Fyrox.

Yet despite all this, Fyrox gets a fraction of the attention and money. Maybe it's because it uses proven old tech instead of being a resaerch project, maybe it's because the author is russian, maybe because people are afraid of a 3D-first engine, maybe fyrox doesn't focus on promotion enough. Idk, but here i am doing my bit to make the world a tiny bit more fair even if I annoy all the bevy fans who kept posting about bevy on every single fyrox post that wasn't completely downvoted and ignored.

[+] timeon|2 years ago|reply
While I think Fyrox is impressive, reading your comment felt like: Sir, This Is A Wendy's
[+] Deukhoofd|2 years ago|reply
Looks to me like Fyrox is competing more with Godot or Unity, than it is with Bevy. The cool part about Bevy is its ECS handling. There aren't a lot of ECS-first game engines, and Bevy is one of the few that do exist.
[+] charlotte-fyi|2 years ago|reply
Your conspiratorial framing here strikes me as odd, as well as unnecessarily denigrating Bevy as a "research project." Isn't the answer quite obvious, which is that if someone wants to use an engine built off "proven old tech", they should probably just use one of the major players in the space, and that Bevy's uniqueness/commitment to the ECS model is precisely what causes it to generate more hype and energy? Is this really an issue of "fairness"?
[+] whateveracct|2 years ago|reply
> Yet despite all this, Fyrox gets a fraction of the attention and money.

Heh Bevy sounds like Rust itself. Good PR with money behind it is its no1 cause of adoption.