关于使用 AllocateMessage(steamworks SDK 版本)的专用服务器的说明请求
你好,感谢你对这个产品的工作 :) 我正在修改一个专用服务器程序,使用的是 GameNetworkingSockets 的 Steamworks SDK 版本。 我认为 API 或文档中存在以下不一致性: - `ISteamNetworkingUtils_AllocateMessage` 用于创建消息,其中可以设置出站通道。m_idxLane 必须写入结构中。 - Steamworks SDK 附带两个初始化方法,分别是 `SteamAPI_Init` 和 `SteamInternal_GameServer_Init_V2`。由于这是一个专用服务器,我们使用后者。 - 游戏服务器版本没有初始化 `ISteamNetworkingUtils` 接口,该接口用于使用第一个提到的函数,尽管 `SteamGameServer_InitEx` 确保它具有正确的接口版本,该接口在安装的 Steam 中存在。 代码可以正常构建和运行,但是,在访问接口时会出现错误消息 `[S_API FAIL] 尝试在 SteamAPI_Init 成功之前访问 Steam 接口 SteamNetworkingUtils004。` 这是使用 Linux libsteam_api.so。 只有一个函数可以访问 `ISteamNetworkingUtils`,即客户端版本。由于构建专用服务器所需的其他接口,它们都有相应的 `SteamGameServer_` 前缀接口函数。事实上,Steamworks 文档 (https://partner.steamgames.com/doc/sdk/api: Steam Game Servers) 没有提到 `ISteamNetworkingUtils` 的游戏服务器版本。我不知道这是否会导致 Steamworks_api 内部错误,尽管它似乎运行正常。`SteamAPI_Init` 可以消除此消息,但会检查是否运行着 Steam 桌面客户端,因此我不会在服务器程序中使用它。 同样的问题也出现在这里,我认为根本原因是一样的: https://GitHub.com/Facepunch/Facepunch.Steamworks/issues/630
内容来源: ValveSoftware/GameNetworkingSockets