使用本主题准备要发布到 Microsoft Store 的 Unreal 游戏。
- 使用 Unreal 4.27 或更高版本
- 游戏运行时服务 (GRTS) 和电脑引导程序
- 注册 ID@Xbox
- 通过 GDK 支持获取对 Unreal 源的访问权限
- 实现平台功能
- 在合作伙伴中心创建产品
- 为 Microsoft Store 配置游戏
- 测试平台功能
- 发布
- Unreal 的 GDK 配置疑难解答
- 附录
使用 Unreal 4.27 或更高版本
将 Unreal 游戏与 Microsoft 游戏开发工具包集成的最简单方法是升级到最新版本的 Unreal。 对 Windows 和 Xbox 主机的 GDK 支持已内置于 4.27 或更高版本的 Unreal 中。
注意
默认情况下,4.27 之前的 UE 版本不支持 Direct3D 11。 可在 UE 4.26 中启用 Direct3D 11 支持,方法是集成两个更改列表,如本技术说明中所述: 4.27 之前 WinGDK 中的 DX11 支持。 如果这些更改未集成,则 Direct3D 12 将在 4.25Plus/4.26 中使用,而不考虑指定 Direct3D 11 的任何设置。
如果不想升级到 4.27 或更高版本,请按照本主题后一节的 早期版本的 Unreal 中的说明进行操作。
注意
Unreal 4.26 也内置了 GDK 支持,但不建议使用,因为它存在若干问题,包括缺少 Direct3D 11 支持,以及导致游戏首次演练期间出现断续现象的 PSO 着色器缓存问题。
最新的游戏运行时服务 (GRTS) 和电脑引导程序
从 2202 年 5 月 GRTS 版本开始,电脑引导程序已添加到电脑游戏启动体验中。 电脑引导程序依赖于游戏运行时服务(GRTS),如果开发电脑上的 GRTS 过期,则在尝试登录时可能会生成错误(E_FAIL)。 有关详细信息,请参阅“电脑引导程序”概述。
注册 ID@Xbox
在获得对具有 GDK 支持的 Unreal 源的访问权限之前,需要在计划中注册 ID@Xbox。 ID@Xbox 计划支持开发人员使用 Xbox 服务在 Xbox 和 Widows 上发布游戏。 可以通过转到 Xbox One 的独立开发者计划 | Xbox 并单击“立即申请”来开始注册过程。
通过 GDK 支持获取对 Unreal 源的访问权限
重要事项:即使为电脑构建,也需要访问主机开发。
若要开始 Unreal GDK 开发,请通过使用主机开发申请表请求访问权限。 如果访问请求未通过,请与开发者客户经理 (DAM) 联系。
标准 Unreal 不包含对 GDK 的支持。 这就是需要请求访问 Unreal 的 GDK 支持的原因。
实现平台功能
GDK 平台集成是 Unreal 的联机子系统的一部分。 若要告知 Unreal 使用 GDK 联机子系统,请编辑 WinGDKEngine.ini 文件(在 Platforms\WinGDK\Config 中),以包括以下内容:
[OnlineSubsystem]
DefaultPlatformService=GDK
登录
登录是 GDK 的联机子系统的一部分。
成就
若要在 Unreal 游戏中使用成就,需要对游戏和合作伙伴中心项目进行以下更改。
将 Unreal 设置为将 GDK 联机子系统与游戏管理的成就和基于事件的统计信息一同使用
成就是 GDK 联机子系统的一部分。 若要告知 Unreal 使用游戏管理的成就和基于事件的统计信息,请编辑 WinGDKEngine.ini 文件(在 Platforms\WinGDK\Config 中),以包括以下内容:
[OnlineSubsystemGDK]
AchievementMode=2017
StatsMode=2013
在 合作伙伴中心 中为游戏配置统计信息和成就系统
若要配置成就:
- 转到合作伙伴中心面板。
- 导航到游戏。
- 在导航窗格中展开“Xbox 服务”部分。
- 单击“Xbox 设置”。
- 确保统计信息配置系统设置为基于事件的统计信息。
- 确保“成就配置系统”设置为“游戏管理成就”。
注意:如果要从 XDK 迁移,则将 OnlineSubsystemLive 替换为 OnlineSubsystemGDK。 需要将此设置为 Windows GDK .ini 文件中的默认 OnlineSubsystem。
在 Unreal 中映射成就名称
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
}
}
云保存
云保存是 Unreal 中游戏保存界面的一部分,不需要进行其他配置才能启用。
有关在 Unreal 中使用游戏保存界面的信息,请参阅 Unreal 引擎文档中的保存和加载游戏。
注意:如果在找出交叉保存不起作用的原因时遇到问题,请务必记住,GDK 的保存位置不同于常规保存游戏位置。 如果遇到问题,请检查保存的游戏保存到何处,以及在不同位置时查询它们的位置。
Microsoft Store API
应用内购买和可下载内容 (DLC) 等 Microsoft Store 集成也是 Unreal 的联机子系统的一部分。
在合作伙伴中心创建产品
需要先在合作伙伴中心创建启用 Xbox 服务的产品,然后才能测试 Xbox 服务功能或将游戏发布到 Microsoft Store。 有关合作伙伴中心的更多信息,请参阅在合作伙伴中心设置应用或游戏,用于托管合作伙伴。
为 Microsoft Store 配置游戏
在创建用于测试或上传到 Microsoft Store 的包之前,需要使用在合作伙伴中心中创建的产品定义中的值来配置项目。
使用以下步骤在 Unreal 编辑器中配置项目:
- 在 Unreal 编辑器中,选择编辑,然后选择项目设置。
- 在左窗格中, 选择平台,然后选择 Windows (GDK) 如以下屏幕截图所示。
- 完成显示的表单。 电脑版开发需要以下字段。
- 产品名称 - 这是游戏的显示名称
- 区域性图像资源
- Microsoft Store 徽标
- 应用程序徽标
- 应用程序小徽标
- 应用程序初始屏幕
可在合作伙伴中心找到其余所需字段。 按照以下步骤转到合作伙伴中心并完成产品配置:
- 转到合作伙伴中心仪表板。
- 从产品列表中选择自己的游戏。
- 选择游戏设置选项卡,然后选择标识详细信息。
- 选择显示详细信息以展开标识详细信息部分。
- 使用表中的以下值,然后将合作伙伴中心的值复制到 Windows (GDK)项目设置。
合作伙伴中心中的名称 | Unreal 编辑器中的姓名 |
---|---|
Package/Properties/PublisherDisplayName | Package/Properties/PublisherDisplayName |
Xbox 游戏 ID | 游戏 ID |
包/标识/名称 | 包/标识/名称 |
包/标识/发布者 | 包/标识/发布者 |
Xbox 服务 -> Xbox 设置 -> 标识 | MSAAppId |
测试平台功能
平台功能在编辑器中暂不工作。 它们仅在打包的版本中正常工作。 这意味着你可以为平台功能编写代码,但在未创建包的情况下无法对其进行测试。
若要测试登录、云保存和成就等平台功能,你需要创建一个测试帐户并切换沙盒。 我们将在后面的部分中介绍如何创建包、测试帐户并切换沙盒。
创建包
使用与其他 Unreal 平台相同的方式打包游戏。 使用以下步骤创建一个 MSIXVC 包以上传到 Microsoft Store。
- 通过选择 GDK 上的 文件>包项目>Windows 来访问打包对话框。
- 从文件资源管理器对话框选择内部输出的文件夹 ,然后选择选择文件夹。
如果遇到错误,可以手动构建。 有关手动构建的详细信息,请参阅游戏打包、内容更新和流式安装测试。
安装并运行包
有关安装和运行软件包的更多信息,请参阅使用 Microsoft Game 开发工具包工具来安装和启动 PC 游戏。
创建测试帐户
你需要创建一个可访问开发沙盒的测试帐户,以便能够测试 Xbox 服务功能。 有关创建测试帐户详细信息,请参阅 创建测试帐户。
正在下载 Xbox 应用
Xbox 应用有助于验证测试帐户是否已登录。 可在此处下载:Xbox 应用
切换开发沙盒
创建测试帐户后,请使用该帐户通过以下步骤访问开发沙盒。
若要查找沙盒的 ID,请转到“合作伙伴中心”。
导航到游戏。
在左侧导航窗格中选择 Xbox 服务>游戏设置。
注意
沙盒 ID 位于“游戏设置”页左上角的第一个选项卡上。 它的名称类似于“ABCDEF.0”。
打开开始菜单。
输入Microsoft GDK 命令提示符,然后在键盘上选择 Enter。
打开第一个命令提示符。
在命令提示符处,输入 XblPCSandbox.exe[你的沙盒 ID]。
命令提示符启动多个应用后,使用测试帐户登录到 Xbox 应用。
如果能够成功登录,则已创建测试帐户并更改为沙盒以开始测试。 如果在登录时遇到问题,请参阅疑 难解答登录和沙盒 文章以获取帮助。
发布
将游戏与 GDK 集成后,即可发布。 转到“合作伙伴中心”并按照 UI 中的说明提交游戏。
Unreal 的 GDK 配置疑难解答
验证游戏是否与合作伙伴中心中的数值匹配
如果游戏无法登录或对 Xbox 服务的调用失败,请验证在"为游戏配置Microsoft Store "部分中设置的值是否与合作伙伴中心中项目的值匹配。
验证 WinGDKEngine.ini 和 Achievements.json 的内容
验证WinGDKEngine.ini和 Achievements.json 的设置,如将 Unreal 设置为将 GDK 联机子系统用于游戏管理的成就和基于事件的统计信息部分中所述。
使用 fiddler 检查网络流量
如果上述两个步骤均未解决此问题,请考虑安装 Fiddler 并检查游戏生成的网络流量。 有关详细信息,请参阅 对电脑游戏的 Xbox 服务流量进行故障排除。
示例
Unreal 和 GDK 示例可用作参考,用于将项目与调用 xboxlive.com 进行比较并查看预期的网络流量。
Unreal 示例
Unreal 示例 ShooterGame 设置为使用 GDK 和 Xbox 服务,并可用作与项目配置进行比较的参考。 可以将此示例与游戏的合作伙伴中心项目的值一起使用,使用为游戏配置Microsoft Store部分中所述的过程。 在 UE 源存储库中,可以在 Samples\Games\ShooterGame
下找到 ShooterGame 示例。
GDK 示例
Achievements2017_desktop GDK 示例可与 Fiddler 结合使用,以查看用于登录、查询和设置成就的网络流量。 Achievements2017_desktop 已设置为使用其自己的合作伙伴中心项目,并可以与现有的配置一起使用。
GameSave_desktop GDK 示例可与 Fiddler 结合使用,以查看云保存的网络流量。 GameSave_desktop 已设置为使用其自己的合作伙伴中心项目,并可以与现有的配置一起使用。
其他故障排除提示信息
有关其他故障排除提示,请参阅故障排除登录和沙盒。
附录
较早版本的 Unreal
如果使用早于 4.26 的 Unreal 版本,则仍可通过遵循前面的一些说明来定位 GDK。 但是,需要集成平台功能并自行创建包。 有关详细信息,请参阅适用于电脑的 Unreal 开发:入门(早期版本)。