Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Besides Bevy there’s also Fyrox Engine that looks very promising. https://fyrox.rs/
I don't know how major they are considered, but Embark Studios is doing quite a bit of Rust in the open source space, most notably (IMO) rust-gpu and kajiya
I don't know how major they are considered, but Embark Studios is doing quite a bit of Rust in the open source space, most notably (IMO) rust-gpu and kajiya
Externally, you can write a lot of native Windows stuff in Rust already. Personally, I'm having a lot of fun with WinSafe.
Sure, if you'll forgive me again for copying over text from a previous post. For context, I'm the author of gecs, which is a compile-time library for generating Entity Component System worlds and performing queries against them during compilation. Over the course of writing this library I encountered a number of limitations of Rust's compile-time capabilities with generics and both declarative and proc macros. Some of them I managed to push through with hacks, but others are simply impossible to solve (at least, as far as I can tell after expending a lot of effort trying) on stable.
Adding onto this, I successfully written a game in Godot using gdnative / gdext. I started with a split approach using gdscript and rust for CPU intensive but found that the API layer was slow at transferring large amounts of data (serialization?). I ended up rewriting it in all rust and it worked like a charm. I was able to target native and web assembly, the web assembly was much slower but worked on the browser.
Adding onto this, I successfully written a game in Godot using gdnative / gdext. I started with a split approach using gdscript and rust for CPU intensive but found that the API layer was slow at transferring large amounts of data (serialization?). I ended up rewriting it in all rust and it worked like a charm. I was able to target native and web assembly, the web assembly was much slower but worked on the browser.
I've made at least one thing in Rust that can be considered a "game", and so far I have not needed a debugger for it. Instead, I draw text on-screen with diagnostic/debug info about whatever I'm looking/pointing at. If that doesn't provide enough detail/persistence, I can always add tracing/logging, so I can read the logs and follow the state changes and control flow to figure out where the bug is. (And this matches my experience in Python, which is the language I use most at work.)
So my advice would be to try Bevy, but don't force it if it doesn't work for you. If you're interested in more "low-level" graphics programming or you have some experience in that area, then learning wgpu is another thing you can do (and if you start doing advanced things with Bevy, you will want to be familiar with wgpu anyway)
If you're just getting started, Bevy seems to be the most popular choice of engine for pure Rust gamedev. I've had a little bit of success with Bevy, but ultimately most of my projects end up being plain wgpu and winit, because I prefer having control over the render pipeline and the structure of my data, and I don't personally benefit much from an ECS.
Related posts
- Immediate Mode GUI Programming
- GDext: Rust Bindings for Godot 4
- Can someone explain how exactly are multiple languages supported in a single game engine
- Unity’s pricing is a symptom, not the cause of tougher times for the industry
- “This Is a Disaster:” Game Developers Scramble to Deal with Unity’s New Fees