Skip to content

Commit

Permalink
Merge pull request #123 from 64kramsystem/preparations_for_release
Browse files Browse the repository at this point in the history
Repository preparations for release
  • Loading branch information
64kramsystem authored Aug 3, 2022
2 parents da247ae + 8470f42 commit b58482f
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 139 deletions.
64 changes: 30 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,50 @@
# Rust Game Ports

My ports of open source games to Rust, using different pure-Rust game engines.
Official host of games ported using Rust game libraries.

- [Rust Game Ports](#rust-game-ports)
- [Summary](#summary)
- [Notes](#notes)
- [Games](#games)
- [Screenshots](#screenshots)
- [Ports](#ports)
- [Boing/ggez](#boingggez)
- [Cavern/Macroquad](#cavernmacroquad)
- [Rusty Roguelike/Bevy ECS](#rusty-roguelikebevy-ecs)
- [Soccer/Fyrox](#soccerfyrox)
- [Source Projects/Libraries](#source-projectslibraries)
- [Projects structure/configuration](#projects-structureconfiguration)
- [Source Projects](#source-projects)
- [Game Libraries](#game-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 |
| Source | Game | Engine | Tested on |
| ------------------------------------ | :-------------: | :--------: | :-------: |
| Code the Classics Vol. 1 | Boing | ggez | Linux |
| Code the Classics Vol. 1 | Cavern | Macroquad | Linux |
| Hands-on Rust: Effective Learning... | Rusty Roguelike | Bevy (ECS) | Linux |
| Code the Classics Vol. 1 | Soccer | Fyrox | Linux |

I currently don't plan any further ports.
## Screenshots

## Notes
Boing:

Nightly Rust may be required for some games. The games have been developed tested on Linux; if anybody finds issues with Windows, open an issue and I'll quickly look into it 😄
![Boing](/images/readme/boing.png?raw=true)

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 😄
Cavern:

## Games
![Cavern](/images/readme/cavern.png?raw=true)

### Boing/ggez
Rusty Roguelike:

![Boing](/images/readme/boing.png?raw=true)
![Rusty Roguelike](/images/readme/rusty_roguelike.png?raw=true)

Soccer:

![Soccer](/images/readme/soccer.png?raw=true)

## Ports

### Boing/ggez

A very straightforward port 🙂

Expand All @@ -46,8 +54,6 @@ This port suffers from one bug:

### Cavern/Macroquad

![Cavern](/images/readme/cavern.png?raw=true)

Another very straightforward port 🙂

This port suffers from two Macroquad bugs:
Expand All @@ -59,37 +65,27 @@ Only the stable part of the library is used (the experimental [`scene`](https://

### Rusty Roguelike/Bevy ECS

![Rusty Roguelike](/images/readme/rusty_roguelike.png?raw=true)

The ECS part of this game, originally Legion, has been ported to Bevy (the graphic/input library used is still [bracket-lib](https://github.com/amethyst/bracket-lib)).

I wrote a mini book, ["Learn Bevy's ECS by ripping off someone else's project"](https://saveriomiroddi.github.io/learn_bevy_ecs_by_ripping_off), based on this project.

### Soccer/Fyrox

![Soccer](/images/readme/soccer.png?raw=true)

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](https://github.com/FyroxEngine/Fyrox/issues/324));
- some images render incorrectly (reported [here](https://github.com/FyroxEngine/Fyrox/issues/320)).

## Source Projects/Libraries

Projects:
## Source Projects

- Code the Classics Vol. 1 ([repository](https://github.com/Wireframe-Magazine/Code-the-Classics) and [book](https://wireframe.raspberrypi.org/books/code-the-classics1)): 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](https://github.com/thebracket/HandsOnRust) and [book](https://pragprog.com/titles/hwrust/hands-on-rust)): 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](https://github.com/amethyst/legion))
- Code the Classics Vol. 1 ([repository](https://github.com/Wireframe-Magazine/Code-the-Classics) and [book](https://wireframe.raspberrypi.org/books/code-the-classics1))
- Rust Roguelike/Hands-on Rust: Effective Learning... ([repository](https://github.com/thebracket/HandsOnRust) and [book](https://pragprog.com/titles/hwrust/hands-on-rust))

Libraries:
## Game Libraries

- [ggez](https://github.com/ggez/ggez)
- [Macroquad](https://github.com/not-fl3/macroquad)
- [Bevy](https://github.com/bevyengine/bevy)
- [Fyrox](https://github.com/FyroxEngine/Fyrox)

## Projects structure/configuration

- each project has a dedicated Visual Studio Code configuration (`.vscode` directory)
26 changes: 0 additions & 26 deletions boing-ggez/.vscode/launch.json

This file was deleted.

1 change: 0 additions & 1 deletion boing-ggez/rust-toolchain

This file was deleted.

26 changes: 0 additions & 26 deletions cavern-macroquad/.vscode/launch.json

This file was deleted.

29 changes: 0 additions & 29 deletions rusty_roguelike-bevy/.vscode/launch.json

This file was deleted.

23 changes: 0 additions & 23 deletions soccer-fyrox/.vscode/launch.json

This file was deleted.

0 comments on commit b58482f

Please sign in to comment.