7eb765696d5a9170821b61a519dea1d8ef251881
Root cause of the three-machine failure found and fixed. The connection-status callback was registered as a per-connection config value pointer - which the steam_api flavor of the library never dispatches (only the standalone lib does). So members never saw the incoming connection request, never accepted, and the owner timed out after 120s of state-5 retries. Valve''s own SpaceWar example registers SteamNetConnectionStatusChangedCallback_t with STEAM_CALLBACK; the transport now does the same through a CCallback listener constructed after SteamAPI_Init. Proven with the new RP412STEAMSELFTEST=1 loopback: one machine listens on its fake console port and dials its own FakeIP - the log now shows incoming/accept/connected on both ends and a verified data round trip, connect succeeded on attempt 1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Red Planet 4.12
Red Planet is the VWE pod-racing game built on the in-house MUNGA engine
(Win32 / DirectX 9, MUNGA_L4 platform layer). The 4.12 line is the
consumer port: a version of Red Planet that can be sold on Steam and played
over internet multiplayer, without cockpit-pod hardware.
Forked from RP411 (the arcade/cockpit 4.11 line) with full history preserved.
Goals
- Steam distribution — Steamworks integration, SteamPipe builds, store-ready packaging.
- Internet multiplayer — take the engine's LAN-era WinSock networking online (NAT traversal, matchmaking, latency tolerance).
- No cockpit required — keyboard / mouse / gamepad input and on-screen replacements for the pod's RIO panel and plasma display, drawing on vRIO.
- Self-hosted sessions — in-game race setup/join replacing the operator-driven TeslaConsole flow.
See docs/RP412-ROADMAP.md for the plan and the Steam-multiplayer logistics.
Building
Unchanged from 4.11 for now — see BUILD.md
(VS 2005/2008 + DirectX SDK June 2010, Release|Win32, output Release\rpl4opt.exe).
Toolchain modernization is a roadmap item.
Related repositories
| Repo | Role |
|---|---|
| RP411 | Upstream arcade source (this repo's base) |
| VRIO | Virtual RIO panel + vPLASMA display — input bindings and display emulation to fold in |
| TeslaSuite | TeslaConsole / Launcher / vPOD — the arcade session-control stack 4.12 replaces (and a reference for the Munga control protocol, TCP 1501) |
Languages
C++
86.5%
C
13%
PowerShell
0.3%
Assembly
0.2%