-
-
Notifications
You must be signed in to change notification settings - Fork 360
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
Steamworks.GameServer.Init doesn't take 6 arguments / gameserver.init "bad_response" #407
Comments
I've lost 4 hours trying to figure out why my game server won't show up in my game servers list, turns out this is the reason... |
We have had a couple clients report this item but haven't been able to investigate further our selves |
Hmm this was removed in 1.51 here: And updated accordingly in Steamworks .NET: 6527a29#diff-8a013c2d5ffcd2336c8cbecf9484539d11f198f89f6b7e005266cbb5822b30e2 Are you using the 1.51 steam_api.dll? The SDK only ever sets it to 0 now, @fletcherdvalve do you know anything about this? |
In the 2 cases above its from one of our clients which is using the latest unitypackage release from the release options |
Yeah, the usSteamPort port argument is not used. I didn't modify SteamInternal_GameServer_Init, I only changed the inline function in the header to remove it and pass a zero to SteamInternal_GameServer_Init. Later we might update steam_api.dll to remove that argument from SteamInternal_GameServer_Init as well. |
It seems that since this change we are seeing clients with issues initalizing GameServer may not be related but wanted to raise it here. "still have the same issue with the server trying to bind to port 1 for some unknown reasons {"response":{"success":true,"servers":[{"addr":"35.180.225.114:1","gmsindex":-1,"appid":1560620,"gamedir":"e.g. its folder name","region":-1,"secure":false,"lan":false,"gameport":27016,"specport":0}]}} So when we check we can see it is binding on port 1 as well as 27015 and 27016 not sure why its binding on port 1 |
Also on this test we set params as such (0, 7777, 7778, eServerModeNoAuthentication, 1.0.0.0) but this is what we see in responce note game port bound to 7778 but should be 7777 also the addre shouldn't be on port 1 |
From a client
the same fix as the #1 post This resulted in Which is as expected so seems an issue with the GameServer.Init(...) |
I have done a re-read and some more testing on this one
Having a look over the change you linked from Steamworks SDK and the related steam_gameserver.h I do see a note there
When I examen the NativeMethods.cs of Steamworks.NET for the method in question SteamGameServer_Init I see its referencing an entry point SteamGameServer_InitSafe
That is as far as I got, its far to late in the evening :) ... or well early in the day now :( ... to keep poking |
I think you found the problem! Should have time to investigate right away, That should NOT be pointing to InitSafe anymore. |
Pushed live on both master, and the new unity-package branch! Good find @JamesMcGhee! Could you try this out with your repro case? If this works for you I want to get a new release out with this right away. |
With the fix i'm experiencing an EntryPointNotFoundException: SteamGameServer_Init error, after trying to find the entry point name, it's still referenced as SteamGameServer_InitSafe and/or has no reference to SteamGameServer_Init inside the 1.51 bin. |
Same sort of responce as @blacklagoonfr
My steps where
|
Hrm, okay that makes sense since it's inline. Looks like the original suggestion of using SteamInternal_GameServer_Init is probably the ideal one then! |
That's the worksround we are using at the moment We are seeing issues with GameServers not getting messages from clients when using SteamNetworking or SteamNetworkingSockets (and its GameServer varients) even with this work around in place. That issue may be releated to something else around Mirror or similar but was hoping the server intialization and transport issue was related for a single easy fix :) For the moment we using a modified Steam.cs which calls SteamInternal_GameServer_Init, from what I saw in the game server header this is what SteamGameServer_Init does anyway so I think that will do us for now. |
I am also having the same error but I am not sure how to fix this, package is downloaded through the package manager and doesnt allow me to access native NativeMethods.SteamInternal_GameServer_Init or modify the codes. Is only way to fix downloading from github and changing it manually? Why do we need to call NativeMethods.SteamInternal_GameServer_Init instead of GameServer.init? |
Steam.cs : lines 156/162
Steamworks GameServer won't initialize correctly without the Authentication port, this allows the use of the Authentication port.
The text was updated successfully, but these errors were encountered: