I’ve been trying to get steam multiplayer to work but I’ve ran into some problems using the shipping build.
I’ve tried the multiplayer using Lan mode and it works fine.
This is my setup:
Using steam v132
I got a steam_appid.txt with 480 in it in the folder where the .exe is.
Used the steam setup utility, target.cs has usessteam=true, defaultengine.ini also looks right.
build.cs has: DynamicallyLoadedModuleNames.Add(“OnlineSubsystemSteam”);
Got the 4 dlls in Engine\Binaries\ThirdParty\Steamworks\Steamv132\Win64
To test I’m using two diffent pcs with 2 steam accounts.
When using the shipping build (adding it to steam so the overlay etc. shows) the find session function just instantly fails.
When using the development build and creating a session on the pc that has ue4 installed i can find the session on the other pc and join it. When creating a session on the pc that doesnt have ue4 installed i can’t find it on the other pc.
My guess is that even though the overlay shows in the shipping build, the steam online function just fails or is somehow not enabled.
Okay, it’s possible that Shipping doesn’t enable logging, so we can’t look there.
You mentioned you placed your steam_appid.txt beside your .exe file. In a packaged build, there are several exe files. There is one in the main package folder, and there is one in your GAMENAME/Binaries/PLATFORM/ folder. The second of these folders is the one where your txt file needs to be, if it’s not there at currently.
The differences in UE4 code for Shipping and Non-Shipping in relation to Steam are the following: the ability to clear achievements, and the auto generation and cleanup of steam_appid.txt files.
You mention that you also had issues with your non-ue4 computer finding sessions. Are you running the Steam client on both computer? If Steam fails to initialize for some reason, UE4 will instead load the Null onlinesystem, which will only give you basic LAN support as far as session finding goes. The log options I told you about above should help you figure out what is going on, at least in Development builds.
Nothing looks too out of place in that log for hosting a match, could you perhaps upload a log of a client doing a search while there is a hosted match?
Steam will filter lobbies for you by your appid, but if there are more than your maximum requested results (50 in this case), you may not find the ones you’re looking for. UE4 session searches and Steam lobby searches support filtering of results based on key/values, but I am unsure how much of that is exposed through your AdvancedSessions plugin. You may want to add some unique game identifier to your sessions while you’re testing under the test app id, so you only get results you care about.
I’ll just have to work out why i can host a session on pc1 and find it on pc2, but not the other way round, logs seem identical.
Gonna have to try on another pc to see what could be up.