-
Notifications
You must be signed in to change notification settings - Fork 678
Description
Hello, thank you for the work on this product :)
I'm revising a dedicated server program, build using the steamworks sdk version of GameNetworkingSockets.
I believe there to be the following inconsistency with the API or documentation:
-
ISteamNetworkingUtils_AllocateMessageis required to create a message in which you can set the outbound lane. The m_idxLane must be written into the structure. -
Steamworks SDK comes with two init methods,
SteamAPI_Initand,SteamInternal_GameServer_Init_V2
Since it is a dedicated server, we use the last one. -
The gameserver variant does not initialize the
ISteamNetworkingUtilsinterface required to use the first mentioned function, despiteSteamGameServer_InitExensuring it has the correct version of the interface present in the installed version of steam.
The code will build and run just fine, however, it makes an error message when accessing the interface
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
This is using the linux libsteam_api.so
There is only one function to access ISteamNetworkingUtils, which is the client version. Since for every other interface needed to build a dedicated server, they have a corresponding SteamGameServer_ prefixed interface function. Indeed, the steamworks documentation (https://partner.steamgames.com/doc/sdk/api : Steam Game Servers), does not mention a gameserver version of ISteamNetworkingUtils becoming available.
I do not know if this is causing internal errors in the steamworks_api, even though it seems to run fine.
SteamAPI_Init makes the message go away, but checks for a running steam desktop client, so I won't use it in the server program.
The same thing was also noticed here, which I assume the root cause is the same:
Facepunch/Facepunch.Steamworks#630