64kramsystem/rust-game-ports

My ports of open source games to Rust, using different pure-Rust game engines

Projects structure/configuration

Rust Game Ports

.

  • Rust Game Ports
    • Summary
    • Notes
    • Games
      • Boing/ggez
      • Cavern/Macroquad
      • Rusty Roguelike/Bevy ECS
      • Soccer/Fyrox
    • Source Projects/Libraries

Summary

The completed ports are:

Source Game Engine
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.

Notes

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 😄

Games

Boing/ggez

A very straightforward port 🙂

Cavern/Macroquad

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.

Soccer/Fyrox

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

Source Projects/Libraries

Projects:

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

Libraries:

  • ggez
  • Macroquad
  • Bevy
  • Fyrox

  • each project has a dedicated Visual Studio Code configuration (.vscode directory)
  • the Rusty Roguelike project has one directory (workspace) for each step, but a shared target directory (in the parent directory of the projects)
Issues

Collection of the latest Issues

lecoqjacob

lecoqjacob

Comment Icon15

Have you noticed a weird lagging issue when moving around in the bevy port? It seems to be linked to the camera movement where the monsters are basically being rendered twice. Here is a gif of it happening Lagging

Information - Updated Aug 13, 2022

Stars: 29
Forks: 1
Issues: 2

Arsenal 2D retro Rust Game engine

Katharos Technology is focused on producing our first game prototype, bevy game engine and our own Katharos...

Arsenal 2D retro Rust Game engine

Grumpy Visitors 2D Rust game for code reference and learning

Grumpy Visitors is a top-down 2D action arcade game

Grumpy Visitors 2D Rust game for code reference and learning

Rust Game Remake

Remake in rust of a game I made during the here

Rust Game Remake

A 3d rust game using OpenGl and Emscripten to build for the wasm32-unknown-emscripten

It can also run standalone, developed and tested on Linux but will

A 3d rust game using OpenGl and Emscripten to build for the wasm32-unknown-emscripten

Rust Game of Life

This is a simulator of Conway's Game of Life in Rust, using SDL2 to render the game graphically

Rust Game of Life

INOX - Rust Game engine integrated in Blender

It's a Game Engine written in Rust with some bindings for external libs and with Blender as editor

INOX - Rust Game engine integrated in Blender

Rust GameBoy Advanced Emulator

Building this project on linux requires cmake and gtk3

Rust GameBoy Advanced Emulator

A Rust Game Engine

In an effort to learn the Rust language (because I am a nut), I am building a game engine

A Rust Game Engine

A Rust GameBoy emulator!

TetrisZelda: Link's Awakening

A Rust GameBoy emulator!

Another Rust game engine

It's started as a rust version of the tutorial from

Another Rust game engine
Facebook Instagram Twitter GitHub Dribbble
Privacy