# Red Planet 4.12 — the Steamification **Red Planet** is VWE's pod-racing game: eight-player VTV races on Mars, originally played from inside full-motion cockpit pods. This repo is the third life of that code: | Generation | What it was | |------------|-------------| | **Red Planet 4.10** | The original game, running on the **Tesla 1** pod platform (DOS-era MUNGA engine, serial RIO cockpit hardware, operator console, batch-file relaunch between missions) | | **Red Planet 4.11** | The **Win32 port** of 4.10 ([RP411](https://gitea.mysticmachines.com/VWE/RP411.git)) — DirectX 9, WinSock TCP, TeslaConsole/TeslaLauncher session control; still arcade pods, still a LAN | | **Red Planet 4.12** | **This repo: the Steamification of 4.11** — the same engine, the same wire protocol, the same missions, made sellable on Steam and playable over the internet with no cockpit hardware | The architecture is deliberately conservative: the arcade's design survives intact, with each pod-era dependency replaced by a consumer equivalent behind the engine's existing seams. | Arcade (4.10/4.11) | 4.12 replacement | |--------------------|------------------| | RIO cockpit board (serial) | **PadRIO** — virtual RIO from XInput pad + keyboard, fully rebindable (`bindings.txt`, vRIO profile format) | | Seven physical displays | **Single-window cockpit** — all displays composed on a locked 1920×1080 canvas around the viewscreen, with the real button banks lamp-lit and clickable | | Pod button lamps | On-screen lamps, plus an **RGB keyboard mirror** (Windows Dynamic Lighting) | | TeslaConsole operator | **In-game front end** — race setup menu builds the mission egg locally; an in-process console marshals every race (missions still only end on a console stop, exactly as designed in 1995) | | TeslaLauncher relaunch-per-mission | **Single binary** — menu → race → results → menu in one process | | WinSock TCP LAN mesh | **NetTransport seam** — the deterministic pod mesh unchanged, running over plain TCP (LAN/dev) or **Steam Networking Sockets** (FakeIP + Steam Datagram Relay) | | Site network / fixed IPs | **Steam lobbies** — lobby owner is the console; members exchange FakeIPs and loadouts as lobby data | **Status: it works.** Release [v4.12.1](https://gitea.mysticmachines.com/VWE/RP412/releases/tag/v4.12.1) carries the first verified end-to-end internet build: three machines, three Steam accounts, lobby → mesh → marshaled five-minute race → deaths and respawns → timed stop → results on every machine → rematch from the same lobby. ## Playing Grab the release zip (or run `pack-dist.ps1` on a build). Single player: run `start-windowed.bat` — the game boots into the race setup menu. Steam multiplayer: see [docs/STEAM-3-MACHINE-TEST.md](docs/STEAM-3-MACHINE-TEST.md) (until RP412 has its own AppID it runs under Spacewar, 480). The two config files beside the exe are self-documenting: **environ.ini** (every engine option, commented) and **bindings.txt** (every key, pad button, and axis; written with the full default layout on first run). Default controls: numpad flies (8/2/4/6 stick, 7/9 pedals, 0 trigger), Shift/Ctrl throttle, Alt reverse, arrows look, Space fires, letter rows are the MFD button banks as printed on the panel. **Alt+Q** aborts a mission. ## Building **VS 2022 (v143)** + DirectX SDK June 2010 + the vendored Steamworks SDK (`extern/steamworks_sdk_164`) — see [BUILD.md](BUILD.md). Solution `WinTesla.sln`, configuration `Release|Win32`, output `Release\rpl4opt.exe`. ## Documentation | Doc | Contents | |-----|----------| | [docs/RP412-ROADMAP.md](docs/RP412-ROADMAP.md) | The original plan and workstreams | | [docs/RP412-FRONTEND-DESIGN.md](docs/RP412-FRONTEND-DESIGN.md) | TeslaConsole analysis, the egg format, the console protocol, and the Steam mapping — with status notes as each layer landed | | [docs/STEAM-3-MACHINE-TEST.md](docs/STEAM-3-MACHINE-TEST.md) | Multiplayer test procedure, Steam Input notes, the abort key | | [BUILD.md](BUILD.md) | Toolchain and build steps | Dev tooling: `tools/two-pod-test.ps1` races two pods on loopback, marshaled by a console feeder speaking the arcade Munga protocol. ## Related repositories | Repo | Role | |------|------| | [RP411](https://gitea.mysticmachines.com/VWE/RP411.git) | Upstream: the Win32 arcade port this repo Steamifies (full history preserved; remote `rp411` for cross-pulling fixes) | | [VRIO](https://gitea.mysticmachines.com/VWE/VRIO.git) | Virtual RIO panel + vPLASMA — source of the bindings format, the cockpit layout, and the keyboard lamp mirror | | [TeslaSuite](https://gitea.mysticmachines.com/VWE/TeslaSuite.git) | TeslaConsole / Launcher / vPOD — the arcade session-control stack 4.12 absorbed (and the reference implementation of the Munga control protocol, TCP 1501) |