Wave Rider Nusantara

React Rust Python License

Wave Rider Nusantara is an arcade-style game inspired by the culture and visual identity of the Indonesian archipelago. This repository contains multiple implementations of the game.

Game versions

Version Description Technology
Web Browser-based game React, JavaScript
Rust Rust game that can run as a desktop application or compile to WebAssembly for browsers Rust, Macroquad, WebAssembly
Python Python desktop implementation Python

The React version has a separate deployment at waveridernusantara.web.id. Availability of other hosted builds depends on their respective deployment configuration.

Requirements

Install the tools for the version you want to run:

  • Web: Node.js and npm.
  • Rust desktop / WebAssembly: stable Rust and Cargo. Building WebAssembly also requires the wasm32-unknown-unknown target; the build script installs it. FFmpeg is optional when the committed OGG soundtrack is present.
  • Python: Python and the dependency manager or packages described by the Python project.

Run the web version

git clone https://github.com/abusofianid/game-wave-rider-nusantara.git
cd game-wave-rider-nusantara/react
npm install
npm run dev

Follow the terminal output to open the local development URL.

Run the Rust version

For desktop play:

cd rust
cargo run --release

For a local WebAssembly build:

cd rust
./scripts/build-wasm.sh
python3 -m http.server 8000

Then open http://localhost:8000/web/. Serve the generated files over HTTP; do not open the HTML file directly from the filesystem.

See the Rust README for controls, build requirements, audio details, and deployment configuration.

Run the Python version

The Python version is a desktop game built with Python and Pyglet. The entry point is python/main.py, and its dependencies are listed in python/requirements.txt.

1. Install Python

Install a supported Python 3 version from python.org. On Windows, enable the option to add Python to PATH if the installer offers it.

2. Clone the repository

If you have not cloned the repository yet:

git clone https://github.com/abusofianid/game-wave-rider-nusantara.git
cd game-wave-rider-nusantara

3. Create a virtual environment

Run these commands from the repository root:

Windows (PowerShell):

py -m venv .venv
.venv\Scripts\Activate.ps1

Linux / macOS:

python3 -m venv .venv
source .venv/bin/activate

4. Install dependencies and launch the game

python -m pip install --upgrade pip
python -m pip install -r python/requirements.txt
python python/main.py

Run the game from the repository root as shown above so the relative asset paths resolve as expected. If you prefer to work inside the Python project directory, use cd python, then install with python -m pip install -r requirements.txt and launch with python main.py.

5. (Optional) Package a Windows executable

The project includes PyInstaller in its requirements. From the python directory on Windows, run:

pyinstaller --name WaveRiderNusantara --onefile --windowed --add-data "assets;assets" main.py

The executable is generated in python/dist/. Packaging is optional; you can play directly with python main.py.

For the full Python project overview and implementation details, see the Python README.

Assets and licensing

The Rust implementation reuses optimized WebP game artwork and a committed OGG Vorbis soundtrack. See the relevant source directories and license files before redistributing the game or its assets. The repository includes MIT and Apache-2.0 license files; check third-party asset attribution requirements separately.

Contact

Share this project:

Updates