- cross-posted to:
- gamedev@programming.dev
- cross-posted to:
- gamedev@programming.dev
This was a really good summary of what Rust feels like in my opinion. I’m still a beginner myself but I recognize what this article is saying very much.
The hacker news comments are as usual very good too:
Well, the alternative to “Rust” here is not another programming language, but rather another game engine.
Because ultimately, most game engines will be implemented in either C++ or Rust, for performance reasons, and C++ itself isn’t terribly better at iteration speed than Rust.
The C++ engines have simply already invested decades into abstractions, like an ECS architecture, higher-level APIs and scripting languages. There’s nothing inherent to Rust which prevents these abstractions from being built into game engines, it just hasn’t been around for that long.
Well, generously I think this guys point is that you shouldn’t use rust for developing actual game logic (you’d use those higher level scripts). For game logic, it’s bad bc it’s not very iterative - and the rest of the stack sucks too but everyone knew that getting into it. But yes, I’m sure you could make a game engine with it
Exactly. I make games for a hobby in Godot, and my workflow is to iterate in GDScript and optimize in something faster (I wrote a world gen in Rust).
Most of a game’s performance is going to be in the engine in shaders, physics, etc, so most of your logic could very well be in a scripting language.
How well does Godot integrate with modules written in other languages? I assume you have to compile a library for each target platform on your Rust component and then link it dynamically in Godot somehow?
Pretty much. If you’re using Godot 4, you use gdext, and for Godot 3, use gdnative.