Wave Rider Nusantara
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-unknowntarget; 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
- Author: Abu Sofian
- Email: [email protected]
- LinkedIn: linkedin.com/in/abusofianid