I've been using Bevy recently so here are some thoughts on this: 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 everyth…
A note on the ECS: This is largely due to poor understanding on my part, but I moved my computational chemistry (egui-based) GUI program (Visualizes various wave function properties) from Bevy to WGPU directly, because the ECS was difficult to grok and debug. It felt like more work to reinvent wheels regarding rendering than manipulate the ECS. I had it working in Bevy, but ported. Not a canonical use case for a game…
The Bevy Foundation
71–80 of 82 posts
Re: The Bevy Foundation
#72Does Bevy have a graphical editor yet (or one on the roadmap)? 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
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.
Re: The Bevy Foundation
#73Earlier quoted context omitted.
How does it lose type safety? I was under the impression that bevy's Query system is type safe.
ECS is basically a very simple relational database. There is no equivalent of foreign keys or other constraints between components. I can't say, for example, "every entity that has a location must also have an associated mesh". If I forget to add a component it's just a silent failure. Everything runs fine, just the expected result doesn't happen.
[1] https://zig.news/kristoff/struct-of-arrays-soa-in-zig-easy-i...
Re: The Bevy Foundation
#74Revy – 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)
Re: The Bevy Foundation
#75If 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).
Re: The Bevy Foundation
#76Earlier quoted context omitted.
Thanks, I'll donate soon. Also this is a long shot, but any chance of supporting higher level languages. Maybe it calls the underlying Rust code from C#
A scripting language is an explicit non-goal for first-party support, but there have been tools for using the ECS entirely without Rust types which can be exposed via FFI or embedded languages like Lua. Just search "_by_id" in the bevy_ecs docs, and you'll find all of the associated APIs for access. There are then (unsafe) APIs for creating the internal mappings necessary to use them. These are normally called via th…
Maybe the next time I'm on vacation I'll embrace rust...
Re: The Bevy Foundation
#77Earlier quoted context omitted.
Thanks (I am the aforementioned project manager) :) Docs are a high priority for me, especially beginner content, assets, and rendering for me. Rust's in-repo examples are really helpful for ensuring they stay up to date, but aren't a replacement for a guided tour. 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. C…
Most games have different states. For example, you have the main menu screen and perhaps different levels. Each of these could be a state. I think Bevy already has an abstraction for this[0] but it only records the current state. There is no other information associated with it IIUC. What I think would be useful is essentially an arena allocator associated with a state. So any components and entities created when a s…
I could see an efficient version of that being a nice thing to have built in, though. It’s definitely a very common thing.
Re: The Bevy Foundation
#78Earlier quoted context omitted.
A scripting language is an explicit non-goal for first-party support, but there have been tools for using the ECS entirely without Rust types which can be exposed via FFI or embedded languages like Lua. Just search "_by_id" in the bevy_ecs docs, and you'll find all of the associated APIs for access. There are then (unsafe) APIs for creating the internal mappings necessary to use them. These are normally called via th…
So basically it's possible, but not recommended. Maybe the next time I'm on vacation I'll embrace rust...
For more developer experience oriented reasons why this is done, I strongly suggest reading cart's reasons for making Bevy to begin with: https://github.com/bevyengine/bevy/discussions/8107#discussi.... More specifically the "Turtles all the way down" bullet point.
Re: The Bevy Foundation
#79Although Bevy says it's an engine, I think that's a bit of an overstatement. It's more of a library/framework. There's a lot you need to do from scratch. 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 i…
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!
Re: The Bevy Foundation
#80Earlier quoted context omitted.
How does it lose type safety? I was under the impression that bevy's Query system is type safe.
ECS is basically a very simple relational database. There is no equivalent of foreign keys or other constraints between components. I can't say, for example, "every entity that has a location must also have an associated mesh". If I forget to add a component it's just a silent failure. Everything runs fine, just the expected result doesn't happen.
I should note that this is a problem with most game engines, not something unique to Bevy. For example, Unity is infamous for requiring arcane combinations of components to avoid silent failures.