keywords: [UE4]Steam SDK接入相关

案例工程

Third-person Survival Game for Unreal Engine 4 (Sample Project)
https://github.com/tomlooman/EpicSurvivalGame
该示例工程中有接入Steam SDK的相关细节。

使用第三方plugin

Advanced Sessions Plugin
https://forums.unrealengine.com/community/community-content-tools-and-tutorials/41043-advanced-sessions-plugin

将该plugin加入工程后,再做以下修改:

在DefaultEngine.ini的[/Script/Engine.Engine]下添加:

+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

再增加:

[OnlineSubsystem]
DefaultPlatformService=Steam
 
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

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

然后启动编辑器后,以Standalone模式运行,且保证电脑上启动了Steam客户端,则启动游戏后会,在游戏屏幕右下角会自动弹出Steam相关菜单。

如果不使用该plugin,手动编写接入代码,则还需要添加以下配置:

  • 工程名.Build.cs构造函数中添加:

      PublicDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils" });
      DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam");
    
  • 工程名.Target.cs构造函数中添加:

      bUsesSteam = true;
    
手动接入steam SDK

Online Subsystem Steam
https://docs.unrealengine.com/en-us/Programming/Online/Steam

Steam, Using the Steam SDK During Development
https://wiki.unrealengine.com/Steam,_Using_the_Steam_SDK_During_Development

Integrating Steam SDK – Part 1
http://orfeasel.com/steam_integration_p1/

Handling Steam Achievements – Steam Integration Part 2
http://orfeasel.com/handling-steam-achievements-steam-integration-part-2/

中文翻译:
集成 Steam SDK(一)
http://gad.qq.com/program/translateview/7191581

处理Steam成就系统——接入Steam SDK(二)
http://gad.qq.com/program/translateview/7191582

Shipping模式下steam集成无效的问题

在打包输出目录下,例如:\WindowsNoEditor\MyProj\Binaries\Win64\,新建一个文本文件:steam_appid.txt,并且内容为“480”。480表示steam测试使用的app id。

参考自:Steam integration not working on a Shipping Build
https://answers.unrealengine.com/questions/474029/steam-integration-not-working-on-a-shipping-build.html


阳光,源自你内心的澄澈。