Rust Game Ports
Rust Game Ports
- Rusty Roguelike/Bevy ECS
- Source Projects/Libraries
The completed ports are:
|Code the Classics Vol. 1||Boing||ggez|
|Code the Classics Vol. 1||Cavern||Macroquad|
|Hands-on Rust: Effective Learning...||Rusty Roguelike||Bevy (ECS)|
|Code the Classics Vol. 1||Soccer||Fyrox|
I currently don't plan any further ports.
Nightly Rust may be required for some games.
The games have been carefully ported; some design details have been implemented non-idiomatically; this has been intentional, in order not to diverge too much from the original projects (and therefore, to make direct comparison not too hard). Nonetheless, if you have doubts/suggestions about the quality of the code, you're invited to open an issue 😄
A very straightforward port 🙂
Another very straightforward port 🙂
This port suffers from two Macroquad bugs:
- the music starts with a delay;
- on Nvidia cards, on Linux, CPU runs at 100% load (reported here).
Only the stable part of the library is used (the experimental
scene API is not used).
Rusty Roguelike/Bevy ECS
The ECS part of this game, originally Legion, has been ported to Bevy (the graphic/input library used is still bracket-lib).
I wrote a mini book, "Learn Bevy's ECS by ripping off someone else's project", based on this project.
This port required a non-trivial restructuring, in order to move to a scene-graph based design.
The port suffers from two Fyrox bugs:
- at least one sound plays with a delay (reported here);
- some images render incorrectly (reported here).
- Code the Classics Vol. 1 (repository and book): A very beautiful book on beginning game programming, written in Python; the project comprises of several games of different genres, each with a surprising complexity under the hood
- Rust Roguelike/Hands-on Rust: Effective Learning... (repository and book): Another great book, on writing games in Rust; the project is divided in clear and progressive steps, and it's, in my opinion, the most effective way to learn working with ECSs (in this case, Legion)
- each project has a dedicated Visual Studio Code configuration (
- the Rusty Roguelike project has one directory (workspace) for each step, but a shared
targetdirectory (in the parent directory of the projects)