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-belt
usespiston-music
to play music.piston-music
depends 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
rustup
during install. - Download the latest 2.0.x SDL2 MSVC development
library (
SDL2-devel-2.0.x-VC.zip
). - Unpack and copy all
.lib
files fromSDL2-devel-2.0.x-VC\SDL2-2.0.x\lib\x64\
into a folder. If theLIB
system environment variable does not exist, create it. Add that folder path toLIB
. - Copy
SDL2.dll
into therust-belt
project 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
.lib
files fromSDL2_mixer-devel-2.0.x-VC\SDL2_mixer-2.0.x\lib\x64
into the same folder added in step 4 that was added to theLIB
system environment variable. - Copy
SDL2_mixer.dll
andlibmpg123-0.dll
into therust-belt
project 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\bin
to systemPATH
. - Download the latest 2.0.x SDL2 MinGW development
library (
SDL2-devel-2.0.x-mingw.tar.gz
). - Unpack and copy all
.lib
files fromSDL2-devel-2.0.x-mingw\SDL2-2.0.x\x86_64-w64-mingw32\lib
into a folder. If theLIBRARY_PATH
system environment variable does not exist, create it. Add that folder toLIBRARY_PATH
. - Copy
SDL2.dll
into therust-belt
project 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
.lib
files 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 theLIB
system environment variable. - Copy
SDL2_mixer.dll
andlibmpg123-0.dll
into therust-belt
project folder, next toCargo.toml
.
- Install Homebrew (by default this will install
gcc
via Xcode development tools). brew install sdl2
brew install sdl2_mixer --with-flac --with-fluid-synth --with-libmikmod --with-mpg123
sudo apt install libsdl2-dev libsdl2-mixer-dev
To build:
$ cargo build
To 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.