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

feat: Adding Toxikk as supported Game / Adding UDK Games Support for LAN Mode #628

Open
Hornochs opened this issue Sep 5, 2024 · 1 comment

Comments

@Hornochs
Copy link

Hornochs commented Sep 5, 2024

What is this feature about?
Add Toxikk, an Areana FPS as supported Protocol. For this UDK Games (Unreal Engine 3) needs to be addes as supported protocol

Additional context/references
Toxikk uses Unreal 3 / UDK Engine with additional Support for the Valve Protocol.

@Hornochs Hornochs changed the title feat: Adding Toxikk as supported Game feat: Adding Toxikk as supported Game / Adding UDK Games Support for LAN Mode Sep 10, 2024
@Hornochs
Copy link
Author

UDK Games using different SubSystems, for the networking stuff as well. In the Engine itself are systems integrated for LAN Servers and for Steam. The Developer can decide if Subsystems like steam are enabled or not. Toxikk uses Steam.

The Caviot: The Steam Subsystem gets only loaded on Dedicated Servers which are ment for Internethosting, equals startparamenter bIsLanMatch=false and make it possible to query by Valve Protocol. As soon as the servers are startet with bIsLanMatch=true the Steam Subsystem won't be loaded. Then a different Subsystem gets loaded, if I unterstand correctly it's [IpDrv.OnlineGameInterfaceImpl]

Having a look in Toxikk at UDKGame/Config/UDKEngine.ini seeing two references on Port 14001:

[IpDrv.OnlineGameInterfaceImpl]
LanAnnouncePort=14001
LanQueryTimeout=5.0
LanPacketPlatformMask=1
LanGameUniqueId=0x4D5707DB

[OnlineSubsystemLive.OnlineSubsystemLive]
LanAnnouncePort=14001
VoiceNotificationDelta=0.2
NumLogins=1
CurrentNotificationPosition=NNP_BottomRight
MaxLocalTalkers=2
MaxRemoteTalkers=9
bShouldLogArbitrationData=true
bShouldLogStatsData=true
LanQueryTimeout=3.0
LanPacketPlatformMask=1
LanGameUniqueId=1297287213
bShouldUseMcp=false

After digging in the Source Code of the Unreal Engine [OnlineSubsystemLive.OnlineSubsystemLive] referes to xBox 360 System. 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 (provides by RattleSN4KE of UT3 Hub Discord Server)
    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
Projects
None yet
Development

No branches or pull requests

1 participant