Online Subsystem Steam API 使你可以将虚幻引擎(UE)应用程序发布到Valve的Steam平台。 Steam 模块的主要目的是帮助你通过一组功能(如媒介和通栏广告)将应用程序分发给Steam用户。 此外,Steam模块实现多个由Online Subsystem公开的接口,支持Steamworks Software Development Kit(SDK)提供的大多数功能。
Steam应用ID
所有使用Steam Online Subsystem的游戏都必须有有效的应用程序ID,因为如果Steamworks API不知道你应用程序的Steam应用ID,就无法初始化。 在初始化Steam之前,UE将生成 steam_appid.txt
(在正常关闭引擎时,UE会删除这个文件)。 需要注意的是, steam_appid.txt
必须位于应用程序可执行文件所在的目录,因为Steam将在当前工作目录寻找这个文本文件。 此外,该文件不应包含在任何Steam映像中。
如果你打开 steam_appid.txt
,将会看到 SteamDevAppId 条目,这个字段向Steam暗示应用程序ID。 这样就无需使用Steam客户端(尽管它必须运行)启动游戏。
如果想要测试应用程序,可以使用 SteamDevAppId 480
,这是所有开发者共享的测试应用ID。 虽然你可以使用之前提到的测试应用ID来测试大都数Steam接口,但应用程序需要有Steam应用ID才能发布。
配置应用程序设置
打开项目的 DefaultEngine.ini
文件,并添加以下设置:
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
NetDriverDefinitions 描述了可供UE使用的网络驱动器,并添加了以下属性:
- DefName 是该网络驱动器定义的唯一名称。
- DriverClassName 是主网络驱动器的类名称。
- DriverClassNameFallBack 是退却网络驱动器的类名(如果主网络驱动器类初始化失败)。
-
为了告诉UE使用Online Subsystem Steam,添加以下设置:
[OnlineSubsystem]
DefaultPlatformService=Steam
- 现在,你已经告诉UE,你希望应用程序使用Steam Online Subsystem,接下来需要添加以下设置来配置 OnlineSubsystemSteam 模块:
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
- 最后,需要为应用程序连接在网络驱动器中指定Steam类:
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"