As another promising free and open source game engine written in Rust, Bevy continues maturing and there's a brand new release up for you to try out with lots of advancements.
What actually is it? The developer says quite clearly that it's a "refreshingly simple data-driven game engine built in Rust" with a data-driven custom Entity Component System, a 2D and 3D rendering system, support for all major systems (Windows, MacOS, Linux plus mobile), hot reloading to get instant feedback, a custom built-in UI system and more. It's looking really smart.
Going over the vast changelog of everything that's new and improved in Bevy 0.4, here's some highlights:
- A WebGL2 rendering backend, meaning games built with Bevy can now run in the browser. They also now have a showcase of their examples running in the web.
- Live shader reloading so you can update changes to shaders at runtime.
- GLTF loader improvements that now supports the Camera.
- Dynamic Linking for improved compile times.
- Huge rendering optimizations.
- 3D textures support.
- A new built-in Logging and Profiling system.
- HiDPI support
See more on the Bevy website.
Want to see a game being built with Bevy? The version 0.4 update post mentioned a game called colonize, it's an in-development Dwarf Fortress / Rimworld-like game in the early stages - and it's also free and open source. Worth keeping an eye on or joining in perhaps if you're looking for a new Rust game dev project
I wonder if Rust led to some performance advantages or disadvantages, in comparison to C. I saw some people hell bent in making everything in Rust, regardless if it is the best tool for the job or not.
If the ecosystem is big enough rust is (nearly) always (in my opinion) the better choice over c if the programmers are fluent in rust.
The performance is with the right abstraction on par with c/c++ and the abstractions are more readable and maintainable once you learn rust. But this is ofcourse a chicken egg problem. Someone has to start expanding the ecosystem, so yes if you want to say they "hell bent" but with the rising popularity, i think this are logical steps people make.
I wonder if Rust led to some performance advantages or disadvantages, in comparison to C. I saw some people hell bent in making everything in Rust, regardless if it is the best tool for the job or not.
I've seen some saying that Rust can provide performance benefits that are hard to reach in C due to easier way of parallelizing things and avoiding race conditions bugs. Rust compiler can do some optimizations due to safety guarantees that C/C++ compilers can't.
Looks cool. Is it using Vulkan underneath?I think it uses wgpu-rs as the backend, which itself has a number of rendering API backends. As I recall, it was defaulting to Vulkan but also had some kind of a GL backend, but I remember that being experimental/in-dev.
I wonder if Rust led to some performance advantages or disadvantages, in comparison to C. I saw some people hell bent in making everything in Rust, regardless if it is the best tool for the job or not.
I've seen some saying that Rust can provide performance benefits that are hard to reach in C due to easier way of parallelizing things and avoiding race conditions bugs. Rust compiler can do some optimizations due to safety guarantees that C/C++ compilers can't.
Yes all these myths are being repeated on the internet over and over.
The only thing rust can avoid is one special case during multi-threading, the data race. Race conditions are still very well possible for rather obvious reasons. Parallelization still remains a non-trivial task that needs appropriate skills of a programmer.
Also, C is for sure not the "competitor" when we are talking about game engines. There is no speed or other advantage to be expected from Rust. The point of this language is rather to avoid common bugs that are memory management related.
If you want advanced memory control, Rust does not even allow you to do that in a reasonable fashion, so this convenience comes with a price..
Last edited by Shmerl on 28 December 2020 at 5:14 pm UTC
@aristorias: all of that is pretty wrong, but if you want proper sources and not myths, go find what actual developers say. I wouldn't touch C for big projects if Rust is an option.
Listen, I've been doing professional software engineering for the past 20 years and I therefore know very well what I am talking about ;-). Do you? Or maybe you got a language barrier there, I can't tell.
Listen, I've been doing professional software engineering for the past 20 years and I therefore know very well what I am talking about ;-). Do you? Or maybe you got a language barrier there, I can't tell.
I don't know for how long you have been doing it, but you sounded pretty clueless about Rust above.
Last edited by Shmerl on 29 December 2020 at 5:22 pm UTC
@aristorias: all of that is pretty wrong, but if you want proper sources and not myths, go find what actual developers say. I wouldn't touch C for big projects if Rust is an option.
Oh. I see a lot of half truths and misconceptions are being mixed together and form some alternate kind of parallel universe n this forum.
The mentioning of C here is totally out of place. The strength of C is low level systems programming and absolutely irrelevant for game engine programming. (C++ is a different language!) - As the poster above already said.
Also, using Rust does not automatically make a software product faster than the same software written in language X. There are countless little artificial benchmarks that claim to show some advantage over some other random language. In reality however, Rust like any other language is bound to the constraints of information technology and if there is an advantage over something else, then this is bought be some other "disadvantage". In quotes - because in the end it's only about personal taste (or almost religious belief for some) for which language you settle down. A proof that in special case Y language X is faster than Z, is utterly irrelevant in complex software products were mostly architectural design decisions are responsible for the performance.
Rust also cannot avoid race conditions, for that the compiler must execute the program and be aware of its edge cases and then judge smartly - that's simply impossible. Data races however, can be avoided at compile time and is a rather trivial case and got much more glory than it's worth it on the internet .... The potentially security relevant bugs that can be avoided with this language are not necessarily relevant for games and come with the consequence that Rust made memory allocation more abstract.
Long story short, Rust does not revolutionize the game development at all and will co-exist with countless other languages which are already established ...
Those who claim C is better never dealt with the horrors of oversized projects that try to stretch C limitations in bizarre ways because the language is so antiquated and limited by today's standards.
And the second point - I'm totally not interested in proving this. It's not about personal taste, it's about progress of languages design. If you don't get it - good, you'll get it eventually. If not - keep using C if it suits you. That won't stop others from criticizing it.
Last edited by Shmerl on 29 December 2020 at 11:20 pm UTC
See more from me