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.
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.
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.
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!
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...
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.
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.
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.
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.
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"?
[+] [-] pcwalton|2 years ago|reply
[+] [-] SeanAnderson|2 years ago|reply
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
Keep me posted!!
[+] [-] _cart|2 years ago|reply
[+] [-] mattcanhack|2 years ago|reply
[+] [-] gaganyaan|2 years ago|reply
[+] [-] iknowstuff|2 years ago|reply
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
[+] [-] Jamustico|2 years ago|reply
[+] [-] mrec|2 years ago|reply
And yet no teapot! Literally unusable.
[+] [-] mochathoughts|2 years ago|reply
[+] [-] CrimsonCape|2 years ago|reply
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
Is it portable to Browser? Or is that on the roadmap?
[+] [-] mochathoughts|2 years ago|reply
[+] [-] CooCooCaCha|2 years ago|reply
[+] [-] martin-t|2 years ago|reply
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
[+] [-] pcwalton|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] martin-t|2 years ago|reply
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
[+] [-] Deukhoofd|2 years ago|reply
[+] [-] charlotte-fyi|2 years ago|reply
[+] [-] whateveracct|2 years ago|reply
Heh Bevy sounds like Rust itself. Good PR with money behind it is its no1 cause of adoption.