Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Support for UDK Based Games in LAN Mode (can only be used on Self-Hosted GSM) #117

Open
Hornochs opened this issue Sep 12, 2024 · 0 comments

Comments

@Hornochs
Copy link

Problem:
UDK Based Games (Unreal Engine 3) uses Submodules, even in the network stack. Unreal Tournament 3 uses the same systems, which means Unreal Tournament 3 is currently supported by GSM, but only for Servers that are meant to be Internet servers. (equals startparamenter ?bIsLanMatch=false). I describe further what happens for querying, which I'm parallel in work in this GameDig Issue. The Systems that are implemented are:

  • [IpDrv.OnlineGameInterfaceImpl]
  • Steamworks

The Developer can add new subsystems, turn them on and off however they like it. Unreal Tournament 3 uses for Internet Servers GameSpy Protocol, while Toxikk, another UDK Game, uses the Steam Submodule for querying.

Suggested Solution
Its necessary to create a new Protocol for querying UDK Games in LANmode ?bIsLanMatch=true. After that supported Games like Unreal Tournament 3, Toxikk, Renegade X can be queryied in LANmode, of course only for self hosted GSM. An additional Gameentry, like ut3lan will be necessary.

Query Details

More Details about LAN Quering is written in the officiel UDK documentation. After messing around I noticed the following "flow" how UDK handles LAN Discovery.

  • Client sends an Broadcast Package from Source and Destination Port UDP 14001
  • Servers listening to this beacon answer on this with a Broadcast UDP Package Destination Port 14001 and all the informations, like server name etc. Payload looks like this for Unreal Tournament 3 (provided by RattleSN4KE)
    image
  • While this happens Client waits for UDP Packages listening on Port 14001

Sending the UDP Beacon Package to the server directly, results in the same behaviour: the Server sends an Broadcast with the Package

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant