Skip to content

Vanguard Engine

Vanguard title art

A clean-room, open-source RTS engine compatible with Command & Conquer: Red Alert 2 + Yuri's Revenge data files — playable two ways:

  • Classic mode (bring your own assets). Point the engine at your own legally-owned RA2/YR installation and it reads the original MIX/SHP/VXL/PAL/CSF/INI files directly, serving 100% retail art, audio and rules. No EA/Westwood game data is — or ever will be — distributed with this project.
  • Original mode (nothing to bring). The repository ships a fully original asset slice — AI-generated and procedurally synthesized art, voices, music, maps and an original ruleset (see docs/ASSETS.md) — so anyone can clone and play without owning the game.

The in-game menu's ASSETS selector is the single switch between the two; neither mode ever mixes assets from the other.

Quickstart

npm install

# Original mode — no game files needed:
npm run dev --workspace @vanguard/client
# then open the printed URL (free mode engages automatically without an install)

# Classic mode — with your own RA2/YR install:
RA2_DIR=/path/to/ra2 npm run dev --workspace @vanguard/client

Requires Node.js >= 20.19.

What it looks like

Original mode on one of the shipped maps — every sprite, building, voice and note in this scene is original to the repository:

A Soviet base in Original mode: reactors, construction yard, barracks, war factory, sentry gun, conscripts and Rhino tanks

The vehicle and infantry sprites are drawn by a parametric renderer — flat-shaded 3D primitives projected through the retail voxel camera, 32 coherent facings per unit:

Parametric unit sheets: Rhino Heavy Tank, War Miner, MCV, Conscript

(Classic mode renders your own install's retail art — not shown here, since no EA imagery ships in this repository.)

Architecture

TypeScript monorepo:

Package Purpose
@vanguard/formats Loaders for Westwood file formats (MIX, PAL, SHP, VXL/HVA, TMP, CSF, AUD, INI, MAP)
@vanguard/sim Headless, bitwise-deterministic simulation core — fixed-point integer math only, seeded PRNG, pure advance(World, Orders[]) → World
@vanguard/game Rules projection (INI → typed sim rules), skirmish bot, replay + self-play harnesses
@vanguard/render Three.js isometric renderer — reads sim state, never writes it
@vanguard/client Browser client: boot, HUD, menu, input, and the dev asset server for both modes

Determinism is enforced by lint rules (no floats, no Math.random, no wall-clock in sim code) and by replay golden-master tests: identical seed + order stream must produce an identical per-tick SyncHash on every platform.

Development

npm test                         # portable suite (no game files needed)
RA2_DIR=~/path/to/ra2 npm test   # + integration tests against your own install
npm run lint

See docs/ROADMAP.md for milestone history and what's next, and CONTRIBUTING.md for the clean-room rules that keep this project publishable.

License

Copyright (C) 2026 Harshil Mathur and the Vanguard Engine contributors.

GPL-3.0-or-later. Ported code and its upstreams, each GPL-compatible and carrying per-file attribution headers:

  • XCC by Olaf van der Spek (GPL-3.0-or-later) — MIX/CRC/Blowfish, SHP/TMP/VXL/PAL/AUD decoders.
  • FinalSun/FinalAlert 2 Mission Editor by Matthias Wagner, released under GPLv3 by Electronic Arts — INI tokeniser, map pack codecs, voxel normal tables.
  • minilzo-js by Alistair Braidwood (GPL-2.0-or-later) — LZO1X decompression.

The committed original assets are documented in docs/ASSETS.md; to the extent they are copyrightable, they are licensed under the same terms as the project.

Legal

This is a non-profit, fan-made, clean-room reimplementation. It is in no way affiliated with or endorsed by Electronic Arts Inc. "Command & Conquer" and "Red Alert" are trademarks of Electronic Arts Inc. No copyright infringement is intended: the engine ships no EA game data — Classic mode requires users to own the original game, and Original mode's committed assets are original to this project.

This project is also not affiliated with the OpenRA project; despite the repository name, it is an independent engine (working codename Vanguard) with its own codebase.

About

Clean-room, open-source RTS engine compatible with Red Alert 2 + Yuri's Revenge data files. Playable with zero game files via a fully original asset mode. GPLv3.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages