rust-belt is a 2D video game inspired by the classic
Asteroids arcade game,
featuring an original soundtrack 🎼. It is implemented using the
Rust game engine, Piston.
-
The latest stable release of Rust.
- Install
rustup.
- Install
-
rust-beltusespiston-musicto play music.piston-musicdepends on two third-party non-Rust libraries, SDL2 and SDL2_mixer. Install instructions are provided below.
Select to proceed with either the MSVC or GNU toolchain.
- Ensure you are using the latest stable 64-bit MVSC toolchain with
rustup show(stable-x86_64-pc-windows-msvc). - Ensure you have installed the Build Tools for Visual Studio
as instructed by
rustupduring install. - Download the latest 2.0.x SDL2 MSVC development
library (
SDL2-devel-2.0.x-VC.zip). - Unpack and copy all
.libfiles fromSDL2-devel-2.0.x-VC\SDL2-2.0.x\lib\x64\into a folder. If theLIBsystem environment variable does not exist, create it. Add that folder path toLIB. - Copy
SDL2.dllinto therust-beltproject folder, next toCargo.toml. - Download the latest 2.0.x SDL2_mixer MSVC
development library (
SDL2_mixer-devel-2.0.x-VC.zip). - Unpack and copy all
.libfiles fromSDL2_mixer-devel-2.0.x-VC\SDL2_mixer-2.0.x\lib\x64into the same folder added in step 4 that was added to theLIBsystem environment variable. - Copy
SDL2_mixer.dllandlibmpg123-0.dllinto therust-beltproject folder, next toCargo.toml.
- Ensure you using the latest stable 64-bit GNU ABI toolchain with
rustup show(stable-x86_64-pc-windows-gnu). - Install MSYS2.
- In an MSYS2 terminal:
pacman --sync mingw-w64-x86_64-gcc - Add
C:\msys64\mingw64\binto systemPATH. - Download the latest 2.0.x SDL2 MinGW development
library (
SDL2-devel-2.0.x-mingw.tar.gz). - Unpack and copy all
.libfiles fromSDL2-devel-2.0.x-mingw\SDL2-2.0.x\x86_64-w64-mingw32\libinto a folder. If theLIBRARY_PATHsystem environment variable does not exist, create it. Add that folder toLIBRARY_PATH. - Copy
SDL2.dllinto therust-beltproject folder, next toCargo.toml. - Download the latest 2.0.x SDL2_mixer MinGW
development library (
SDL2_mixer-devel-2.0.x-mingw.tar.gz). - Unpack and copy all
.libfiles fromSDL2_mixer-devel-2.0.x-mingw\SDL2_mixer-2.0.x\x86_64-w64-mingw32\lib\into the same folder added in step 6 that was added to theLIBsystem environment variable. - Copy
SDL2_mixer.dllandlibmpg123-0.dllinto therust-beltproject folder, next toCargo.toml.
- Install Homebrew (by default this will install
gccvia Xcode development tools). brew install sdl2brew install sdl2_mixer --with-flac --with-fluid-synth --with-libmikmod --with-mpg123
sudo apt install libsdl2-dev libsdl2-mixer-dev
To build:
$ cargo buildTo run:
$ cargo run --release| Keyboard | Menu | Game |
|---|---|---|
| W | Up | Accelerate Forward |
| S | Down | Accelerate Backward |
| A | Rotate left | |
| D | Rotate right | |
| Space | Select | Shoot |
| X | Return to Menu | |
| Esc | Exit | Exit |
Special thanks to @aochagavia for rocket, which provided many examples to pull from.
Music composed by @johnthagen. All rights reserved.
Sound from freesound.org.

