概述
本文档介绍如何在将 GDK 组件集成到项目中时开始使用 Unreal Engine。 这将涵盖不同类型的Unreal Engine插件 & 平台扩展、如何设置它们以及提供的插件和扩展中包含哪些功能。
GDK 平台扩展 & 关联的插件由 Epic Games 维护 & 分发。
重要
作为 Unreal Engine 5.7 的一部分发布的 Microsoft GDK 插件Unreal Engine使你能够使用 Win64 平台生成 GDK 游戏。 这允许为 Windows 版本提供统一的平台,从而缩短准备时间,启用单个可执行方案,并改进与当前使用 Win64 的 Unreal Engine 插件的兼容性。 WinGDK 将不再接收功能更新,被视为旧平台。 Epic Games 提供了一个迁移工具,用于将现有项目从 WinGDK 移植到 Win64。 有关详细信息,请参阅 Epic Games 中的 GDK 文档 。
先决条件
使用 GDK 平台扩展 & 插件进行Unreal Engine需要以下先决条件:
- Unreal Engine 4.27 或更高版本 (某些插件将需要较新版本)
- Visual Studio 2019 (16.9) 或更高版本
- Windows SDK (22000 或更高版本)
- Windows 10 (1709 或更高版本) 或Windows 11
- 2021 年 4 月更新 2 GDK 或更高版本
Microsoft适用于Unreal Engine的 GDK 插件
有多个 GDK 插件在为项目启用时提供不同的功能。 本节中列出的插件目前是 Epic Games 分发的 GDK 平台扩展的一部分。
若要访问Microsoft GDK 插件和 GDK 平台扩展,您必须是 Xbox 开发人员计划的成员,包括ID@Xbox,并且通过此访问请求表单请求访问Unreal Engine的 开发者社区 GDK 组。 批准后,将授予你访问包含 GDK 平台扩展Unreal Engine源的访问权限。
注意
目前,电脑、Xbox Series X|S & Xbox One 开发都需要加入 Xbox 开发人员计划并请求访问 GDK 插件和 GDK 平台扩展。 如有任何问题,请联系Microsoft代表寻求帮助。
要考虑的关键 GDK 插件如下所示:
| 插件名称 | 平台支持 | 最低引擎版本 |
|---|---|---|
| 适用于 Unreal Engine 的 Microsoft GDK 运行时插件 | Win64 | Unreal Engine 5.7+ |
| 适用于Unreal Engine的 Microsoft GDK 应用商店插件 | Win64 | Unreal Engine 5.7+ |
| 联机子系统 GDK | Win64、WinGDK、XB1、XSX | Unreal Engine 4.27+ |
适用于Unreal Engine的 Microsoft GDK 运行时插件提供对 GDK 运行时功能的访问权限,例如与 Xbox 兼容的游戏保存和 Xbox 用户选择。 此插件作为 MSGamingRuntime 存在于 GDK 平台文件夹中。
适用于 Unreal Engine 的 Microsoft GDK 应用商店插件提供自动生成用于提交到 Xbox 电脑应用的 .msixvc 包。 此插件作为 MSGameStore 存在于 GDK 平台文件夹中。
联机子系统 GDK 插件提供 GDK 与联机子系统的集成,联机子系统是一个引擎抽象层,可为成就、好友 & 匹配等关键功能提供通用接口调用。 作为 OnlineSubsystemGDK,这位于所有平台文件夹(包括 Win64 支持的 GDK 文件夹)中。
提供进一步功能的其他 GDK 插件包括:
| 插件名称 | 平台支持 | 最低引擎版本 |
|---|---|---|
| 游戏输入基础 | Win64、WinGDK、XB1、XSX | Unreal Engine 5.4+ |
| Windows) (游戏输入 | Win64、WinGDK | Unreal Engine 5.4+ |
| Xbox 通用游戏输入 | XB1、XSX | Unreal Engine 5.4+ |
| GDK 包区块安装程序 | Win64、WinGDK、XB1、XSX | Unreal Engine 5.7+ |
| GDK 虚拟键盘 | Win64、WinGDK、XB1、XSX | Unreal Engine 5.7+ |
| Windows 虚拟键盘 | Win64 | Unreal Engine 5.7+ |
游戏输入 (Windows) 、游戏输入基础和 Xbox 通用游戏输入插件提供与引擎中的 GameInput 功能的集成。 它们的结构如下:
- GameInput (友好名称:游戏输入基)
- 包含此列表中要实现的插件的核心功能和接口
- 平台:Win64
- GameInput_WinGDK、GameInput_XB1和GameInput_XSX扩展了 GameInput 插件,以添加对各自平台支持的支持, (父)
- GameInputWindows (友好名称:游戏输入 (Windows) )
- 依赖于 GameInput,并从 GameInput 插件实现接口
- 平台:Win64
- GameInputWindows_WinGDK扩展 GameInputWindows 以添加对 WinGDK 平台的支持, (父)
- XboxCommonGDKGameInput (友好名称:Xbox Common GameInput)
- 依赖于 GameInput 并从 GameInput 插件实现接口
- 平台:无指定
- 等效于 GameInputWindows,但对于两个 Xbox 平台和不同的接口实现 (由于平台之间的 GameInput 差异)
- XboxCommonGDKGameInput_XB1和XboxCommonGDKGameInput_XSX扩展了 XboxCommonGDKGameInput,以添加对其各自平台的支持, (父)
GDK 包区块安装程序插件提供了其他功能,可在生成 GDK 包时利用智能交付。 与 Win64 兼容的插件位于 Engine\Platforms\GDK\Plugins 文件夹中。 在各自的平台文件夹中,有特定于平台的插件,其中包含 WinGDK、XB1 & XSX 的平台后缀。
GDK 虚拟键盘插件和 Windows 虚拟键盘插件提供了附加功能,可在游戏中调用虚拟键盘。 在手持设备上考虑游戏板方案时,这一点尤其重要。 Windows 虚拟键盘插件提供不依赖于 GDK 的实现,并且可以在 Win64 平台上跨店面使用。
对于 GDK 虚拟键盘插件,它利用特定于 GDK 的 API 来启用此功能。 与 Win64 兼容的插件位于 Engine\Platforms\GDK\Plugins 文件夹中。 在各自的平台文件夹中,有特定于平台的插件,其中包含 WinGDK、XB1 & XSX 的平台后缀。
Unreal Engine & GDK 平台扩展
Unreal Engine中特定于 GDK 的代码是 GDK 平台扩展的一部分,该扩展是基础引擎源的扩展,允许使用 GDK for PC、Xbox One 和 Xbox Series X|S 生成游戏。 这些扩展包括一组 GDK 平台和 GDK 插件, (上面列出的) ,这些插件与引擎配合使用以扩展必要的功能。
开始使用 GDK 构建游戏需要这些扩展。 GDK 平台扩展的结构作为单个相互依赖的下载捆绑在一起,这意味着它还要求你将Microsoft GDK 与 Xbox 扩展 (GDKx) ) 与目标平台无关。 目前不支持将这些扩展用于 GitHub 上的 GDK。
扩展将包括 Engine\Platforms 源代码,特定于 GDK 的平台包括:
- WinGDK (不要采用此平台,因为它被视为旧平台。使用适用于 Win64 平台的 Microsoft GDK 应用商店 & 运行时插件,用于未来所有新的 PC GDK 项目。)
- XB1
- XSX
GDK & XboxCommon 文件夹提供平台之间的共享代码 (GDK 跨所有平台,XboxCommon 跨 Xbox One (XB1) 和 Xbox Series X|S (XSX) 平台) 。 可在 GDK 平台扩展下载中每个平台的后续插件文件夹中找到每个平台的插件。
有关 Xbox One & Xbox Series X|S 配置的详细信息,请参阅 Epic 的 GDK 文档。
注意
如果使用 Unreal Engine 4,则将显示 XboxOneGDK 而不是 XB1。 此平台在 Unreal Engine 5 中重命名为 XB1。
GDK & 引擎兼容性
每个Unreal Engine版本都将包括发行说明,这些发行说明指定编辑器支持的主要 GDK 版本。 此版本已通过测试来验证与引擎的兼容性。 下面是一个示例:
定义此和受支持的 GDK 版本的范围的配置文件是 Engine\Platforms\GDK\Config 文件夹中的 GDK_SDK.json 文件。 下面是一个示例:
{
"MainVersion": "250402",
"MinVersion": "240604",
"MaxVersion": "250499",
}
如果想要采用比Unreal Engine版本更新的 GDK,修改此文件中的 GDK 版本将允许读取较新的 GDK。 虽然我们努力避免兼容性问题,但某些 GDK 可能需要对引擎进行修改才能正常工作,在修改最大版本时,无法保证兼容性超出此文件的已发布版本中定义的 Epic Games。
使用 GDK 平台扩展的项目更新
获取 GDK 平台扩展源后,需要 更新项目文件 才能访问 IDE 中特定于 GDK 的平台。 这可以通过在引擎版本的根目录中运行 GenerateProjectFiles.bat 来完成。
完成后,你将在 IDE 解决方案平台下拉列表中看到针对每个平台生成的选项。
重新生成编辑器后,你将在 Unreal 编辑器中看到这些平台设置和选项。 若要对此进行测试,请选择“平台”下拉列表,并确认列表中是否存在 WinGDK、XB1 & XSX。
有关详细信息,请参阅 [从源生成Unreal Engine] (https://aka.ms/ue_build_source).
重要
Unreal Engine的 Microsoft GDK 插件提供构建 GDK 游戏作为 Win64 平台的一部分的功能。 这在 Win64 上跨电脑店面提供了统一的平台,并消除了与 WinGDK 平台存在的重复烹饪和插件不兼容。
Unreal Engine的Microsoft GDK 插件是Unreal Engine内 PC GDK 集成的未来。 若要详细了解它们,以及如何通过 Epic 提供的迁移脚本将现有 WinGDK 项目迁移到 Win64 + GDK 插件,请参阅 Epic 的 GDK 文档。
将 GDK 插件添加到项目
注意
默认情况下,会自动为 XB1 & XSX 启用 GDK 插件的子集。 有关平台启用的功能的详细信息,请参阅引擎源中的UEBuildXboxCommon.cs。
获取并设置 GDK 平台扩展后,可以开始配置项目以开始使用 GDK。 上述每个插件都将在 Unreal 编辑器的“编辑菜单”下的 插件 UI 中提供。
选择插件时,请确保检查框来启用它。 建议在启用所需插件以确保完整功能后重启编辑器。
除了在编辑器中启用插件外,还应确保定义的任何 生成目标 也启用这些插件进行编译。 可在下面找到适用于 Windows 生成目标的示例:
EnablePlugins.AddRange([
"MSGameStore",
"MSGamingRuntime",
"OnlineSubsystemGDK",
]);
若要详细了解如何使用适用于Unreal Engine的 GDK 插件设置生成目标,请参阅 Epic 的 GDK 文档。
为特定于游戏的数据配置 GDK 插件
设置 GDK 插件和 GDK 平台扩展后,需要更新“项目设置”菜单中的平台 & 插件设置。
可在平台设置中找到 XB1 & XSX 平台,Unreal Engine的 Microsoft GDK 插件可在插件设置中找到:
每个设置中都有一组类似的设置,可帮助你配置 MicrosoftGame.config 文件和打包配置。
本地 MicrosoftGame.config 将需要你的产品信息(如游戏 ID 和应用商店 ID)才能与 GDK & Xbox 服务配合使用。 可以利用“与合作伙伴中心关联”选项登录到具有 合作伙伴中心 访问权限的Microsoft帐户,并将产品详细信息自动拉取到本地 MicrosoftGame.config 文件,从而节省在本地启动和运行的手动步骤。
除了 MicrosoftGame.config 设置之外,还有一些用于打包和安装选项的其他设置:
除了平台 & 插件设置之外,还需要确保 DefaultEngine.ini 具有必要的信息。 应根据使用上面详述的 MS Gaming (PC GDK) 插件设置自动写入此部分。 下面是使用 GDK 插件进行引用的 DefaultEngine.ini 示例:
注意
如果要在平台引擎 ini 文件 ((例如 WindowsEngine.ini) )中指定任何替代,则需要手动修改该文件。
[/Script/MSGamingSupport.MSGamingSettings]
TitleId=00000000
PrimaryServiceConfigId=00000000-0000-0000-0000-000000000000
ProductId=ProductValue
ContentId=ContentIDValue
PackageName=PackageName
StoreId=0000000000
DefaultDisplayName=Test Game
PublisherName=CN=PublisherValue
PublisherDisplayName=Test Company
EKBID=EKBIDValue
MSAAppId=MSAppIdValue
bRequireXboxLive=True
bUseSimplifiedUserModel=True
ManifestVersion=1
若要利用 GDK 包区块安装插件进行智能交付,请确保在 ini 文件中也指定了这一点。
[StreamingInstall]
DefaultProviderName=GDKPackageChunkInstall
将 OnlineSubsystem 用于 GDK
OnlineSubsystem GDK 插件提供关键 Xbox 服务 API 的引擎抽象,以简化为跨许多商店 & 平台执行类似作而编写的游戏代码, (例如登录、商店购买、成就、好友、matchmaking.) 。 如果要构建 GDK 游戏,建议利用此 OnlineSubsystem 。
若要配置 OnlineSubsystem GDK,需要编辑 DefaultEngine.ini (或平台引擎 ini 文件,) 包含其他详细信息,以确保它适用于你的游戏。 下面是 WindowsEngine.ini 的示例:
[OnlineSubsystem]
DefaultPlatformService=GDK
[OnlineSubsystemGDK]
eEnabled=True
AchievementMode=2017
; to specify using title-managed achievements, must match configuration in Partner Center
StatsMode=2013
; to specify using event-based stats, must match configuration in Partner Center
PrimaryServiceConfigId=00000000-0000-0000-0000-000000000000
Unreal 中使用的成就名称需要映射到合作伙伴中心中使用的成就 ID。 若要映射 Unreal 中使用的成就名称,请在项目的 platforms\GDK\Config\OSS\ 目录中创建名为 Achievements.json 的文件(请注意,路径可能不存在,可能需要自己创建)。 Achievements.json 包含成就名称到合作伙伴中心 ID 的映射。 例如,如果项目有 10 个成就,从成就 1 到成就 10,Achievements.json 将如下所示:
{
"AchievementEventName" : "NotUsedInAchievement2017",
"AchievementMap" :
{
"achievement 1" : 1,
"achievement 2" : 2,
"achievement 3" : 3,
"achievement 4" : 4,
"achievement 5" : 5,
"achievement 6" : 6,
"achievement 7" : 7,
"achievement 8" : 8,
"achievement 9" : 9,
"achievement 10" : 10
}
}
有关详细信息,请参阅 在合作伙伴中心配置游戏管理的成就。
除了配置 DefaultEngine.ini & 设置Achievements.json文件外,还需要在对 Online::GetSubsystem () 的调用中传递GDK_SUBSYSTEM。
注意
联机子系统 GDK 通过 GDK PlayFabParty 插件直接利用 PlayFab Party 作为套接字子系统。
利用 Visual Studio 和 Unreal Engine
Visual Studio 提供了附加功能(作为Visual Studio 安装程序的一部分),以便更好地与Unreal Engine集成。 这包含在游戏开发中,C++有效负载。 有两个可选安装组件,称为“Unreal Engine的Visual Studio Tools”和“用于Unreal Engine的 Visual Studio 调试器工具”,它们提供本机 uplugin 支持以及从 Visual Studio 中调试蓝图逻辑的功能。
若要详细了解Unreal Engine Visual Studio Tools,请参阅此处。
生成、烹饪 & 打包项目
可以利用 Unreal 自动化工具 为每个 GDK 平台自动生成、制作和打包游戏,包括使用 Win64 平台为 GDK 插件集成创建包。 为此,请使用以下语法:
RunUAT BuildCookRun -project=TestGame -Platform=Win64 -build -cook -stage -pak -archive -archivedirectory=C:\TestGame\ -package
可以通过 Unreal 编辑器生成、烹饪和打包游戏。 有关此过程的阶段,请参阅 生成作:Cook、Package、Deploy 和 Run。
每个平台都需要内容的独特厨师,以确保它适用于目标平台。 导航到编辑器中的“平台”下拉菜单,然后选择所需平台的“烹饪内容”。
若要在编辑器中打包游戏,请导航到编辑器中的“平台”下拉菜单,然后选择所需平台的“打包项目”。 这会在生成输出目录中创建 XVC/MSIXVC 包。
测试项目
还可以利用 Unreal Automation Tool 部署和启动生成。 为此,请使用以下标志:
RunUAT BuildCookRun [...]] -package -deploy -run
可以利用内置启动设置作为 Unreal 编辑器 项目启动器 一部分来测试独立生成。
对于通过编辑器 UI 生成的包,需要使用 GDK 工具在 Unreal 编辑器外部安装和启动它们,因为目前不支持从项目启动器中安装和启动它们。 有关如何为电脑 GDK 游戏执行此作的信息,请参阅 利用Microsoft游戏开发工具包工具来安装和启动电脑游戏。
使用适用于 Unreal Engine 的 Microsoft GDK 插件,你可以利用“在编辑器中播放” (PIE) 直接从 Win64 平台上的编辑器内使用 Xbox 服务测试游戏。
注意
WinGDK 平台和在编辑器中播放 (PIE) 支持存在一些已知限制。 建议对此平台进行独立和打包的生成测试。
其他信息
将 PlayFab 与 Unreal Engine 配合使用
若要了解有关使用 PlayFab(包括直接集成和插件)在Unreal Engine(包括联机子系统支持)的详细信息,请参阅 PlayFab Unreal Engine快速入门页。
Windows Handheld 设备检测
Unreal Engine 5.7 支持通过 FPlatformMisc::IsDeviceHandheld () 检测 Windows 手持设备。 这将根据设备状态返回 true/false。
获取帮助
有关任何Unreal Engine特定支持或问题,包括与适用于 Unreal Engine 的 Microsoft GDK 插件或 GDK 平台扩展相关的问题,请参阅 Epic GDK 支持论坛。
如果你正在寻找与特定于 GDK 的主题相关的帮助,这些主题并非特定于Unreal Engine特定集成,请在 上发布这些内容,请参阅 Xbox GDK 论坛。
使用较旧版本的 Unreal Engine
如果使用 Unreal Engine 4.26 或更早版本,则需要按照不同的步骤来定位 GDK。 此外,与较新版本的引擎相比,这需要更多平台功能 & 打包的自定义集成。 建议升级到 Unreal Engine 4.27 或更高版本,以获得最佳体验。
有关将 GDK 与 Unreal Engine 4.26 或更高版本配合使用的详细信息,请参阅为早期版本的 Unreal 构建 GDK 游戏。