# Roadmap OpenRA3 is a very large undertaking. This roadmap is deliberately honest about scope: reconstructing a 2008 RTS engine from a decompiler plus a related open engine is a multi-year, multi-person effort. The milestones below are ordered so that each one produces something that builds and runs. ## Done - [x] **v0.0.1 — skeleton + minimal skirmish.** C++26 modules, GCC 16, CMake/Ninja, Docker `dev`/`deploy`, GitLab CI. Reads `BIG4`/RefPack data from a local install, recovers map start waypoints, and runs a deterministic headless two-player skirmish to a decision. - [x] **v0.1.0 — map renderer + window.** Software ARGB framebuffer, TGA decoder for the map art, BMP output, map/grid/unit compositing, and an SDL3 window viewer (pan/zoom). - [x] **v0.2.0 — dual toolchain.** Switched to Clang + libc++ with `import std;` in every module; added an isolated Windows cross-build (llvm-mingw + SDL3 MinGW) producing `openra3.exe` + `SDL3.dll`, alongside the Linux build. Both images are separate to keep the toolchains apart. - [x] **v0.3.2 — real terrain.** `ra3.terrain` parses the map's `HeightMapData` and `BlendTileData` and rasterises the actual terrain from the install's `Terrain.big` tile textures (top-down, elevation-shaded), replacing the `_art.tga` overview as what `render` draws. - [x] **v0.3.0 — real balance + skirmish + Vulkan.** `ra3.data` pins the retail numbers (damage types, `ArmorTemplate` percentages, weapons, units, structures, ore economy) audited from EA's open RA3 XML; `ra3.skirmish` is rebuilt on them (armour resolution, weapon target masks, pay-as-you-go build queue, power, tech prerequisites, refinery ore cycle, team-wipe victory); and `ra3.vulkan` replaces the presentation stack with Vulkan (SDL3 surface, embedded SPIR-V), with a null fallback where no loader exists. ## Next - [ ] **v0.3.1 — tactical map view.** The Vulkan/SDL viewer reproduces the retail tactical view (`TheTacticalView`, `ra3_1.12.game` `0x00cdb7b4`): opens centred on the player's start, wheel zoom, edge scroll and clamped pan. A hand-rolled HUD was tried and removed — the real in-game interface is `.apt` art that must be recovered first, so it is not on the near roadmap. - [ ] **v0.4.0 — real update modules.** Locomotor movement, projectiles and warheads, build placement, shroud, and pathfinding, driven by the `GameObject` module set recovered from the binary. - [ ] **v0.5.0 — data-driven content.** Deserialise the compiled assets (`global.bin`/`static.*.bin` + `.manifest`) so `ra3.data` reads the install instead of pinned constants; real maps, models and strings. - [ ] **v0.6.0 — full renderer.** Perspective terrain (the heightmap is decoded but drawn top-down today), W3D models and the full in-game client on Vulkan, plus input. ## Cross-cutting tracks - **RE depth** — keep recovering retail layouts (see [`REVERSE_ENGINEERING.md`](REVERSE_ENGINEERING.md)); every structure gets an address citation and a test. - **Determinism & replay** — the logic random stream and frame ordering must be reproducible; replay format and a golden-replay test suite. - **Offline only** — no online mode. Multiplayer, if pursued, is LAN lockstep on the message stream, never an online service.