电脑版 Unreal 开发:入门


使用本主题准备要发布到 Microsoft Store 的 Unreal 游戏。

使用 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   

在 合作伙伴中心 中为游戏配置统计信息和成就系统

若要配置成就:

  1. 转到合作伙伴中心面板
  2. 导航到游戏。
  3. 在导航窗格中展开“Xbox 服务”部分。
  4. 单击“Xbox 设置”。
  5. 确保统计信息配置系统设置为基于事件的统计信息
  6. 确保“成就配置系统”设置为“游戏管理成就”。

注意:如果要从 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 编辑器中配置项目:

  1. 在 Unreal 编辑器中,选择编辑,然后选择项目设置。
  2. 在左窗格中, 选择平台,然后选择 Windows (GDK) 如以下屏幕截图所示。

    Unreal 中的平台“项目设置”屏幕截图

  3. 完成显示的表单。 电脑版开发需要以下字段。
  • 产品名称 - 这是游戏的显示名称
  • 区域性图像资源
    • Microsoft Store 徽标
    • 应用程序徽标
    • 应用程序小徽标
    • 应用程序初始屏幕

可在合作伙伴中心找到其余所需字段。 按照以下步骤转到合作伙伴中心并完成产品配置:

  1. 转到合作伙伴中心仪表板
  2. 从产品列表中选择自己的游戏。
  3. 选择游戏设置选项卡,然后选择标识详细信息
  4. 选择显示详细信息以展开标识详细信息部分。
  5. 使用表中的以下值,然后将合作伙伴中心的值复制到 Windows (GDK)项目设置。
合作伙伴中心中的名称 Unreal 编辑器中的姓名
Package/Properties/PublisherDisplayName Package/Properties/PublisherDisplayName
Xbox 游戏 ID 游戏 ID
包/标识/名称 包/标识/名称
包/标识/发布者 包/标识/发布者
Xbox 服务 -> Xbox 设置 -> 标识 MSAAppId

测试平台功能

平台功能在编辑器中暂不工作。 它们仅在打包的版本中正常工作。 这意味着你可以为平台功能编写代码,但在未创建包的情况下无法对其进行测试。

若要测试登录、云保存和成就等平台功能,你需要创建一个测试帐户并切换沙盒。 我们将在后面的部分中介绍如何创建包、测试帐户并切换沙盒。

创建包

使用与其他 Unreal 平台相同的方式打包游戏。 使用以下步骤创建一个 MSIXVC 包以上传到 Microsoft Store。

  1. 通过选择 GDK 上的 文件>包项目>Windows 来访问打包对话框。
  2. 文件资源管理器对话框选择内部输出的文件夹 ,然后选择选择文件夹

如果遇到错误,可以手动构建。 有关手动构建的详细信息,请参阅游戏打包、内容更新和流式安装测试

安装并运行包

有关安装和运行软件包的更多信息,请参阅使用 Microsoft Game 开发工具包工具来安装和启动 PC 游戏

创建测试帐户

你需要创建一个可访问开发沙盒的测试帐户,以便能够测试 Xbox 服务功能。 有关创建测试帐户详细信息,请参阅 创建测试帐户

正在下载 Xbox 应用

Xbox 应用有助于验证测试帐户是否已登录。 可在此处下载:Xbox 应用

切换开发沙盒

创建测试帐户后,请使用该帐户通过以下步骤访问开发沙盒。

  1. 若要查找沙盒的 ID,请转到“合作伙伴中心”。

  2. 导航到游戏。

  3. 在左侧导航窗格中选择 Xbox 服务>游戏设置

    注意

    沙盒 ID 位于“游戏设置”页左上角的第一个选项卡上。 它的名称类似于“ABCDEF.0”。

  4. 打开开始菜单。

  5. 输入Microsoft GDK 命令提示符,然后在键盘上选择 Enter

  6. 打开第一个命令提示符。

  7. 在命令提示符处,输入 XblPCSandbox.exe[你的沙盒 ID]

  8. 命令提示符启动多个应用后,使用测试帐户登录到 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 开发:入门(早期版本)

另请参阅

Unreal 开发论坛
登录和沙盒疑难解答