本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P8 为项目配置 Steam(Configuring A Project for Steam)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。
文章目录
- P8 为项目配置 Steam
- 8.1 在线子系统类
- 8.2 创建项目并配置 Steam
- 8.3 Summary
P8 为项目配置 Steam
本节课将创建一个新的虚幻引擎项目,并为它配置使用 Steam
平台在线子系统。
8.1 在线子系统类
-
虚幻引擎的在线子系统提供了一种访问在线平台服务(
Steam
、Xbox Live
等)的方法,利用在线子系统可以处理任何在线平台服务的好友、成就、设置配对会话(Setting up matching sessions)等系统功能,而我们必须要做的就是为特定的平台配置我们的项目。
-
我们需要在
Engine.ini
这个配置文件下指定默认平台服务。虚化引擎的在线子系统可以通过 “IOnlineSubsystem
” 类中的静态函数 “Get
” 进行访问,该函数返回值是一个指向相应子系统的指针,具体参阅官方文档 《IOnlineSubsystem::Get》
8.2 创建项目并配置 Steam
-
创建第三人称游戏项目,名称为 “
MenuSystem
”。
-
打开“插件”(Plugins)浏览器选项卡,启用(Enabled) “
Online Subsystem Steam
” 插件,重启虚幻引擎。
-
打开 Visual Studio,在右侧解决方案资源管理器展开 “
/Games/MenuSystem/Source/MenuSystem/
”,打开 C# 文件 “MenuSystem.Build.cs
”,添加公共依赖模块名称(Public dependency module names) “OnlineSubsystemSteam
” 和 “OnlineSubsystem
” 后进行编译,其中 “OnlineSubsystem
” 是与 “OnlineSubsystemSteam
” 交互的 总体子系统(Overall subsystem)。
注意
"OnlineSubsystem"
后面要留有一个空格,否则编译会出现以下错误
-
在 “
/MenuSystem/Config/
” 目录下打开 “DefaultEnigne.ini
”,在官方文档 《Online Subsystem Steam》中将示例的配置代码复制粘贴到 “DefaultEnigne.ini
” 的后面。配置代码的含义参阅官方文档。[/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")[OnlineSubsystem] DefaultPlatformService=Steam[OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480; If using Sessions ; bInitServerOnClient=true[/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
NetDriverDefinitions 描述了可供UE使用的网络驱动器,并添加了以下属性:
- DefName 是该网络驱动器定义的唯一名称。
- DriverClassName 是主网络驱动器的类名称。
- DriverClassNameFallBack 是退却网络驱动器的类名(如果主网络驱动器类初始化失败)。
—— 虚幻引擎官方文档 《Online Subsystem Steam》
-
关闭 Visual Studio和虚幻引擎,删除工程目录自动生成的(auto-generated)下 “
Binaries
”、“Intermediate
”和“Saved
” 三个文件夹。
-
点击 “MenuSystem.uproject”,重新构建项目,可以看到出现提示窗口 “Missing MenuSystem Modules”,点击 “是(Y)”,虚幻引擎将重新启动,“
Binaries
”、“Intermediate
”和“Saved
” 三个文件夹将重新生成。
8.3 Summary
本节课创建了一个新的虚幻引擎第三人称游戏项目 “MenuSystem
”,然后通过修改项目配置文件 “MenuSystem.Build.cs
” 和 “DefaultEngine.ini
”来为项目设定使用 Steam
平台在线子系统。
在 8.1 在线子系统类 中,虚化引擎的在线子系统可以通过 “IOnlineSubsystem
” 类中的静态函数 “Get
” 进行访问,该函数返回值是一个指向相应子系统的指针,具体参阅官方文档 《IOnlineSubsystem::Get》。
在 8.2 创建工程并配置 Steam 的 步骤 3 中,修改配置文件 “MenuSystem.Build.cs
” 时要注意添加了 "OnlineSubsystem"
后要留一个空格,否则编译会出现错误。
在 8.2 创建工程并配置 Steam 的 步骤 4 中,配置 “DefaultEnigne.ini
” 的示例代码中每一行的含义在在官方文档 《Online Subsystem Steam》中都有说明。