Hi,
I am currently working on the migration of our game on Steam and have successfully managed to create a Steam session when a client hosts a multiplayer game which can then be found and joined by other clients.
However, I am struggling with the migration of our dedicated server application.
I’m using two different scenarios (which should both work in theory):
Public dedicated server on Internet (bIsLANMatch and bUsesPresence set to false in the session settings)
In this case the problem is that clients can’t find the server using a session research.
In the server’s log, everything seems to be OK. I even activated LogOnline verbose to be able to check everything in detail. The session is created successfully, in the log I can see the Server SteamP2P IP, the Server IP, the Master Server Data and the Aux Server Data. I even used directly two methods from the Steam API to check if the Anonymous authentication worked and to log the session’s owning user name.
Dedicated server on LAN (bIsLANMatch and bUsesPresence set to true in the session settings)
In this case, the server crashes when a client initiate a LAN session research.
The session seems to be created successfully, and the server is listening for LAN beacon requests but I don’t seem to be logged in (even though I started the dedicated server from the Steam client) and therefore the session has no OwningUserId and this causes a server crash when a client starts a LAN session research in FOnlineSessionSteam::AppendSessionToPacket.
Additional information
I implemented the RegisterServer method of our GameSession class to create a Steam session, passing 0 as HostingPlayerNum, since I can’t get a FUniqueNetId from a local player like in the case of a client hosting a game.
I used this page to open UDP and TCP ports on our router even if all my tests are done on a local network for now, but it didn’t help.
I am using two different PC on Windows with two different steam accounts.
I tried launching my dedicated server using the Steam client (I uploaded the dedicated server application on Steamworks, we have an APPID for it) and directly using a script file but with the Steam client running. I even tried installing it using SteamCMD.
I attached a cleaned version of the log file for each case, leaving only relevant entries.
Does anyone have an idea on what I could be missing?