collective: GSE_FORCE_LOG + CI fix + EOSPlus/Steam friend-join + raw-UDP↔P2P bridge #4
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
splitux-gg/gbe_fork-splitux!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/belts-ip-p2p-bridge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Env-gated (
GSE_IP_P2P_BRIDGE=1, dormant otherwise) host-side bridge for UE5 Steam co-op games whose host listens via legacyISteamNetworking::ReadP2PPacket(Steam P2P virtual port) while joiners connect with a raw passthrough UDP socket (e.g. Belts of Iron on a LAN-beacon session — UE picks asymmetric transports the emulator can't otherwise reconcile).Mechanism: goldberg binds a real UDP socket on the game's P2P-channel port, resolves an incoming datagram's source IP → peer SteamID (new
Networking::get_steam_id_from_ip), and injects it as a normal DATACommon_Messageintounprocessed_messages— reusing the existing receive pipeline so it getsprocessed()+ theP2PSessionRequest_t→AcceptP2PSessionWithUserhandshake. The host'sSendP2PPacketreplies to a bridged peer go back out as raw UDP to the recorded endpoint. Joiner side is pure raw UDP — untouched.Validated: Belts of Iron co-op now connects end-to-end (
Join succeeded/Welcomed by server→ travels into the host world) under the splitux per-instance netns+bridge harness. Files:dll/network.cpp+network.h(IP→SteamID),dll/steam_networking.cpp+.h(bridge). Leaf-locked, cross-platform, no change to other games (env-gated).