Home

Awesome

What is this?

A real time strategy game/engine written with Rust and WebGPU. Eventually it will be able to run in a web browser thanks to WebGPU. This project is inspired by Total Annihilation, Supreme Commander, Spring Engine and Zero-k.

Demo

Map editor Map editor HQ version

Unit editor Unit editor HQ version

Play mode Gameplay (35000 units) HQ version

Goal

The ultimate goal is to provide a modern, carefully crafted, minimal and highly constrained set of tools for players/designers to create mods (game variant) without programming knowledge. Those tool would be comprised of :

All in one executable.

the test for this goal would be to be able implement a Zero-k clone in this project, with all its features and play it with 32 players.

Non-Goals

Features

Supported platforms

All thanks to WebGPU and wgpu-rs (and winit). No efforts was made by me in this regard. If anything I posted a stupid issue there that was solved in 0.03 second.

Build

git clone https://github.com/Ruddle/oxidator
cd oxidator
cargo run --release

Fun stuff if you clone this

Shaders are automatically hot-reloaded if you change any .frag or .vert file and you compiled with either shaderc

cargo run --features use_shaderc --release

or glsl_to_spirv

cargo run --features use_glsl_to_spirv --release

Logs can be enabled via the environment variable RUST_LOG. for instance:

RUST_LOG=oxidator=debug cargo run --release

My go-to command when I develop:

RUST_LOG=oxidator=debug cargo run --features use_shaderc --release

You can also compile all the shaders to spirv without starting the full application. The compiled shaders will be saved in /src/shader/compiled. This folder is used when no shader compiler flag is enabled.

cargo run --features use_shaderc --release compile

Roadmap

I push features that I feel like pushing in the moment. This project could (and probably will) lose its only contributor any time before any playable milestone is reached.