Bolt-on multiplayer layer confined to src/native and hand-written code (no codegen output touched): - GhostRelay core (src/native/skate3_native_ghost_relay.*): small UDP relay matching clients into rooms by a shareable code; forwards each client's pose to the other room members. Used by both the standalone binary and the in-game LAN host fallback. - Standalone server (tools/ghost_relay_main.cpp, ghost_relay target): runs on a public VPS or behind a free tunnel; clients connect OUTBOUND, so no port forwarding is needed on any client. - In-game module (skate3_native_ghost.*): captures the local player's world transform at Sk8::UpdateBoneTransforms exit (pack-owner entity +416, verified layout) and broadcasts it at a fixed rate; auto-connects to the default public relay, falls back to LAN auto-host + UDP broadcast discovery when unreachable. - Renderer: draws a solid-color cube per remote player in RenderScene via the existing scene PSO tint.a>0 branch (no new shader/SPIR-V). - UI: GhostDialog (M key) with enable toggle, room code, relay override, status readout. Off by default. Wire protocol in skate3_native_ghost_proto.h (JOIN/HELLO/POSE/PING/LEAVE).
39 lines
669 B
Text
39 lines
669 B
Text
# Build output and generated recompilation sources
|
|
/out/
|
|
/build/
|
|
/generated/
|
|
/generated.backup-*/
|
|
/tools/*
|
|
# ...except the ghost multiplayer relay server (a first-party tool).
|
|
!/tools/ghost_relay_main.cpp
|
|
|
|
# Local game dump and retail media. Users must provide their own copy.
|
|
/game/
|
|
*.iso
|
|
*.xex
|
|
|
|
# Local runtime/config overrides
|
|
skate3.toml
|
|
skate3_ultrawide_targets*.toml
|
|
CMakeUserPresets.json
|
|
|
|
# Diagnostics and binary build products
|
|
*.log
|
|
*.dmp
|
|
*.wpix
|
|
*_gpu_events.csv
|
|
*_gpu_screenshot.png
|
|
*.pdb
|
|
*.ilk
|
|
*.obj
|
|
*.lib
|
|
*.exe
|
|
*.map
|
|
|
|
# Editor and CMake scratch
|
|
/.vs/
|
|
/.vscode/
|
|
/.cache/
|
|
|
|
# Local developer scripts (texture decoding, extraction, bootstrap helpers)
|
|
/scripts/
|