"Find Session" Search Fails

I was testing out multiplayer with another developer on our team. He was hosting the game. For some reason when I try to find available games to join I get “Search failed”. When I run the game, the steam overlay works great, and the “steam_appid.txt” is successfully created in the folder with the ‘.exe’. I packaged my game using the “Development” configuration. I am using Engine version 4.7.3. Our hosting, searching and joining method works when we use the “OnlineSubsystemNull” but now with steam it is giving us problems. Below is my DefaultEngine.ini

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

Here is a screen shot of my networking:

This is how I create the session. I know this is working since a fail on “sessions create” quits the game.

Sorry in advance if this is annoying, I split the pic into two pic to make it easier to read. But this is the process I use to “find sessions” and populate my game list. FYI I used the “Multiplayer ShootOut” game from Unreal as a refence.

This is what it looks like when it fails:

My suspicion was that Steam doesn’t let you test these features with the developer id 480. But I saw in another post that it should work even with the 480 app id. Does anyone have any insight into this issue?

I tried re-installing the engine but that didn’t seem to help. Still working on it.

I was able to get it working! Apparently you can’t search for sessions, using the steam subsystem, while currently hosting a session. This isn’t ideal for what I wanted but I will start another post for figuring a way around that.

Im trying to make a multiplayer game, I have created it out from the multiplayer shootout example and it all works perfectly when I run two instances on my own computer, packaged or in editor but when I tried with a friend over the internet the Find Games menu didn’t show my friend when he was hosting and the same when we tried the other way around, it came up with “no sessions found” every time.

I have forwarded port 7777 but my friend has not.

I have not tried using the steam SDK yet so this could be the problem? If I use the Steam SDK I would have to be green lite for steam to actually make it work so to speak? Just wondering because its a lot of money to get a game green lite, at least it is when you don’t know for sure if you are going to make any money from it.

Would using the Steam SDK allow players to avoid port forwarding?

Thanks

Yes, using Steam SDK will fix this problem. I am not sure if this is 100% correct but this is how I think about. You need a place where all the hosted games can be “broadcasted”, that what steam will do. When you host a game it will go up on the steam servers. When people search for available games the SDK will take them to the steam servers to see if there are any games. Without this “middleman” the game client won’t know where to look to find games. I believe it just looks locally, which is why it works when you test it by yourself. You could potentially create your own server to host broadcasted games but it’s more trouble than it’s worth. Hope this helps explain things.

Ya so when you use Steam SDK you don’t have to do port forwarding so it’s super nice and makes it easier to share the game allowing others to play.

I remember getting this error as well. Try 2 things:

First make sure the Steam SDK version is the version the engine is expecting. I got a lot of problems trying to change the version the engine was expecting so I downloaded the older SDK to match the default version the engine is expecting.

Second I use the development packaging configuration. It still allows you to send them game to others for play tests. I am not 100% sure but there may be an issue with trying to to use the shipping configuration without a Steamworks ID.

Give that a try and let me know.

excellent, thanks, Would using the steam sdk avoid players having to do port forwarding on their computers to host it too?

I have just followed the steps for getting it to use the steam sdk now but when I packaged the project I got this error Failed to load session and when searching for games in the Find Games menu I get Failed to find sessions.

I did not update the steam sdk that UE4 already has, I don’t know if this would be the problem.

I also exported it as a shipping build, do I have to use development for this?

cant think of any other causes yet

Did you download or build the engine? I am not by my computer but I can give you more details later. Try using the development packaging first and see if that fixes it.

the version that is in the UE4 steamworks folder seems to b the same as in the steamworks build.cs file, is there somewhere else I need to check?

downloaded it through the launcher

I got an error this time I tried to build the game, attached is the build log, I don’t know if you understand that sort of thing, I cant interpret much of it

oh hang on I think ive found what caused that, I took the // of a bit that I wasn’t meant to in the build.cs

well it has exported now but its still not working… same error “Failed to find sessions.” I could send you the project but its 3.4 GB so it would take for ever to upload

If you put your project up on github I will take a look at it.

I did a quick tutorial about this:

I would do it this way:

  1. Go to github.com sign up and sign in

  2. Then you’ll want to create a new repository

  3. Then clone that repository on to your local machine

  4. Then copy and paste a few of you project folders over into the cloned repository (I would do less than 1 GB at a time since pushes bigger than that get a little more complicated).

  5. Then push those files up.

  6. Repeated steps 4 and 5 until all your files are up into the repository.

ill give it a go but never worked out how to use github, where would I find the upload button?

Flipin hell why cant it be in English, repository’s gits and command lines… urm I’m lost.

I got to stage 4 but could not push, it said no configured push destination… I tried following its suggested steppes (git remote client add) but I must have given it the wrong information or something, or do I put your name and url after remote client add?

If you are using the Shell aka using the command li e then do it this way. Navigate to where you want the repository to be using “cd {file path}”. Then do “git clone {url of github repository page}”. Then add your file to the cloned folder, you can just drag and drop. Then do “git add .” Then “git commit -m ‘some message’” finally “git push”.

If you did all that and it is still giving that error. You can do " git push {url of github repository page}"

first push is going up, I think its working, I did a hybrid of using git shell and the other bit I think.

first push is up here, I notice now that your defaultEngine.ini file is different to my one, I left my’n how the multiplayer demo was, should I copy your version instead?

here is the repository so far GitHub - JazzCousins/DragonGame

I just took a look at your defaultEngine.ini and it looks fine. I’ll try and figure out the problem tonight