Skip to content

sypwex/vvvvvv-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VVVVVV Rust fork

This project is the game engine of the desktop version of the VVVVVV-game and is derivative work based on original source code. The main purpose is to learn plain Rust game engine development, so directory structure and API mimics the original work. But this code is not a direct port, it's a rewrite from scratch with some changes like respecting Rust borrow checker rules.

Since this repository is just a game engine, in order to start the game one need assets, and since VVVVVV is the commercial product + according to original source code License the assets (data.zip) can not be included in this repository, so to say redistributed. So You can get your own copy by buying the original game, preferably PC-version since assets available directly in installation folder (e.g. from Steam). The other option is to load assets from Make and Play edition. Please note that assets are intented for personal use only and should not be redistributed without Terry notice.

Build

Assuming Rust is installed and available in PATH.

Use stable Rust toolchain, e.g. rustup default stable.

Ubuntu 23.10

sudo apt install clang libphysfs-dev libsdl2-dev libsdl2-mixer-dev
cargo build

Apple x86/Intel (tested on MacOS 10.15.7)

brew install sdl2 sdl2_mixer physfs
brew link sdl2
cargo build

Apple ARM/M1 (tested on MacOS 14.5)

Since brew installs x86 version, use one vcpkg provides.

rustup default stable
vcpkg install sdl2 sdl2-mixer physfs ???
cargo build

Windows (TODO)

vcpkg install sdl2 sdl2-mixer physfs ???
cargo build

Run

cargo run --release

data.zip currently should be in the same directory as the executable, so one can use next little helper script:

mkdir -p ./target/{debug,release} && cp data.zip ./target/debug/ && cp data.zip ./target/release/

Notes

You can search original code by function signature, like

SoundTrack::SoundTrack(const char* fileName)

About

VVVVVV-game engine Rust fork

Topics

Resources

Stars

Watchers

Forks

Languages