Three-machine Steam test procedure

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-12 21:27:12 -05:00
co-authored by Claude Fable 5
parent 5892af318e
commit 0deae09386
+62
View File
@@ -0,0 +1,62 @@
# Steam multiplayer — three-machine test procedure
The full end-to-end: three machines, three Steam accounts, one lobby,
one marshaled race over Steam Datagram Relay. Written 2026-07-12 for
the first live test.
## Per machine (all three)
1. Steam client installed, logged in (different account per machine),
and RUNNING.
2. Copy the `dist\` folder onto the machine.
3. In the dist folder, create `steam_appid.txt` containing exactly:
`480`
(Spacewar, Valve's public dev AppID — replaced by the real AppID
once the store page exists.)
4. Add to `environ.ini`:
`RP412STEAM=1`
5. Start with `start-windowed.bat` as usual.
Sanity check per machine: `rpl4.log` should show
`SteamNetTransport: up as 169.254.x.y (fake ports N console, M game)`.
If it says "staying on TCP", Steam isn't running / not logged in / the
appid file is missing.
## The test
1. **Machine A (host):** pick a track, vehicle, color, pilot name on
the setup menu, then click **HOST STEAM RACE**. The lobby room
appears with A listed as `[HOST]`.
2. **Machines B and C:** click **JOIN STEAM RACE** on the setup menu.
(It joins the first open RP412 lobby it finds — pick loadouts on the
menu BEFORE joining; the lobby publishes them.)
3. When all three names show bright in A's room (bright = FakeIP
published), A clicks **L A U N C H R A C E**.
4. All three pods leave the room and boot the mission. Expect in logs:
- every pod: `SteamNetTransport: peer registered` x3
- members: `SteamNetTransport: listening on engine port 1501/1502`
- A: `LocalConsole: connecting to pod 169.254...` then
`egg sent`, `EGG ACK (mesh complete)` per member
- everyone: `All connections completed!` then the race
5. The race runs for the length A picked; A's console stops everyone;
A gets the results screen with all three personas and scores.
6. Everyone lands back in the lobby room. A can launch again —
different track, same lobby, no restarts.
## Notes and knowns
- All pods use engine ports 1501/1502 by convention under Steam; the
transport maps them to the Steam-assigned fake ports per peer.
- FakeIPs are allocated per session — they are exchanged live through
lobby member data, never configured by hand.
- Same-LAN machines may get a direct route from SDR; different
networks relay. Both are fine.
- Two instances under ONE Steam account cannot mesh (one identity per
account) — hence three machines.
- If a member joins after A already launched once, it will answer the
NEXT launch only (launch signals are nonced).
## What to collect if something breaks
`rpl4.log` from each machine (each dist folder), plus which step of
the sequence above diverged.