bevy-cheatbook
space_editor
bevy-cheatbook | space_editor | |
---|---|---|
7 | 2 | |
1,680 | 285 | |
3.1% | - | |
8.9 | 9.8 | |
23 days ago | 9 days ago | |
Rust | Rust | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bevy-cheatbook
-
The Bevy Foundation
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 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.
-
how to learn bevy
This is quite helpful to cover the features of bevy with some code examples and explanations with links to git repositories as reference. Most of it appears to be from 0.9, but you can reference to the migration guide to see how to change from it. Ctrl-f is your friend to see which version changes what.
- Unofficial Bevy Cheat Book
-
New to Bevy, Migrating from Unity3D: Need Advice on 2D Game Dev Tools
You can see working examples of nearly everything you asked about in the Bevy Cheatbook
-
Survey: How have shader compilation messages been for you?
The biggest source of wasted time for me was finding out that my shaders which were working on native didn’t work on webgl. For one of the more perplexing error messages, I opened this issue in the cheatbook a while ago.
-
Bevy 0.5
wasm mostly works :) There's a nice PR open on the cheatbook that documents the process quite well that you can work off of.
-
Orthographic projection with top left origin
Great! Are you okay if I submit this to the Unofficial Bevy Cheatbook? This question comes up pretty frequently and this is a great little snippet.
space_editor
-
3 years of fulltime Rust game development, and why we're leaving Rust behind
As someone who's become a core contributor to Bevy lately, while also doing contract work in Unity on the side, I obviously disagree with the idea that Rust isn't up to the task of game dev. The grass isn't greener on the Unity side, with a mountain of technical debt holding the engine back. (They're still using Boehm GC in 2024!) Bevy is a breath of fresh air just because it's relatively new and free of legacy. Using Rust instead of C++ is just one part of that. Bevy has a more modern design throughout: for instance, it has a relatively straightforward path to GPU-driven rendering in an integrated system, without having to deal with three incompatible render pipelines (BiRP, HDRP, URP).
What I find more interesting is the parts of the article that boil down to "Rust isn't the best language for rapid development and iteration speed". And that may well be true! I've long thought that the future of Bevy is an integrated Lua scripting layer [1]. You don't even need to get into arguments about the suitability of the borrow checker: it's clear that artists and designers aren't going to be learning Rust anytime soon. I'd like to see a world in which Rust is there for the low-to-mid-level parts that need performance and reliability, and Lua is there for the high-level logic that needs fast iteration, and it's all a nicely integrated whole.
Long-term, I think this world would actually put Bevy in a better place than the existing engines. Unity forces you into C# for basically everything, which is both too low-level for non-programmers to use and too high-level for performance-critical code (unless you have a source license, which no indie developer has). Unreal requires C++, which is even more difficult than Rust (IMO), or Blueprints, which as a visual programming language is way too high-level for anything but the simplest logic. Godot favors GDScript, which is idiosyncratic for questionable gain. I think Rust and Lua (or something similar) would put Bevy in a Goldilocks spot of having two languages that cover all the low-, mid-, and high-level needs well.
As for the other parts of the article, I disagree with the ECS criticism; ECS has some downsides, but the upsides outweigh the downsides in my view. I do agree that Bevy not having an official editor is an ongoing problem that desperately needs fixing. Personally, I would have prioritized the editor way higher earlier in Bevy's development. There is space_editor [2] now, which is something.
[1]: https://github.com/makspll/bevy_mod_scripting
[2]: https://github.com/rewin123/space_editor
-
The Bevy Foundation
There are a few third-party ones. https://github.com/rewin123/space_editor is the one I use. It's not pretty, but it works well enough.
Having an official editor is definitely on the roadmap.
What are some alternatives?
awesome-bevy - A collection of Bevy assets, plugins, learning resources, and apps made by the community
rusty-shooter - [suspended] 3d shooter written in Rust using rg3d
wgpu-rs - Rust bindings to wgpu native library
bevy_webgl2 - WebGL2 renderer plugin for Bevy game engine
bevy - A refreshingly simple data-driven game engine built in Rust
rust-analyzer - A Rust compiler front-end for IDEs
rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]
bevy_ecs_ldtk - ECS-friendly ldtk plugin for bevy, leveraging bevy_ecs_tilemap
naga - Universal shader translation in Rust