What is Rust's potential in game development?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • Fyrox

    3D and 2D game engine written in Rust

  • Besides Bevy there’s also Fyrox Engine that looks very promising. https://fyrox.rs/

  • arewegameyet

    The repository for https://arewegameyet.rs

  • 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.

    WorkOS logo
  • rust-gpu

    🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

  • 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

  • kajiya

    💡 Experimental real-time global illumination renderer 🦀

  • 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

  • winsafe

    Windows API and GUI in safe, idiomatic Rust.

  • Externally, you can write a lot of native Windows stuff in Rust already. Personally, I'm having a lot of fun with WinSafe.

  • gecs

    a generated entity component system 🦎

  • 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.

  • gdnative

    Rust bindings for Godot 3

  • 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.

  • 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.

    InfluxDB logo
  • gdext

    Rust bindings for Godot 4

  • 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.

  • FlipFlop

    A digital logic simulator built on simple rules. (by agausmann)

  • 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.)

  • blender-tools

    🐵 Embark Addon for Blender

  • learn-wgpu

    Guide for using gfx-rs's wgpu library.

  • 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)

  • bevy

    A refreshingly simple data-driven game engine built in Rust

  • 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.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts