XR-129:智能交付内容管理 *

版本 1.3, 2021/4/1

当需要当前未安装的内容时,支持智能交付的游戏必须能够从容处理有关情形。 当需要从光盘或 Xbox Live 安装附加内容时,游戏可通过调用 GDK 中的 PackageInstallChunksAsync 或 XDK 中的 AddChunkSpecifiersAsync 来实现。

有关使用 GDK 进行流式安装或智能交付的详细信息,请阅读流式安装和智能交付概述

详细信息

使用智能交付,游戏可以使用游戏内容的特定于设备的安装、特定于语言的安装或按需安装。 如果游戏允许需要不自动安装内容的功能/设置的游戏内更改,则这些游戏必须:

  • 在内容不可用时不会崩溃或停止响应。
  • 使用 PackageInstallChunksAsync (GDK) 或 AddChunkSpecifiersAsync (XDK) API 正确启动安装。 强烈建议游戏显示游戏启动的内容安装进度,使用 XPackageCreateInstallationMonitor (GDK) 或使用 AddChunkSpecifiersAsync API (XDK) 获取的 PackageTransferWatcher 对象的事件和方法。

示例方案:

语言包

用户正在使用 en-US 作为其主机语言设置,并且您还通过智能交付提供 fr-FR、it-IT、es-SP、fr-CA、de-AU 和 ja-JP 语言。 默认情况下,因为用户已将其主机设置为 en-US,所以平台将安装 en-US 语言区块作为基础安装。

但是,如果您的游戏在一个游戏内菜单中提供语言选择,并且如果该用户选择不同于最初安装的其他语言,则您的游戏必须触发其他语言内容的安装。

设备

该用户最初在一个外部驱动器上将该游戏安装为 Xbox One S 游戏。 该用户将此外部驱动器移到某一 Xbox One X 主机。 该平台将在该启动标记前自动安装 Xbox One X 区块,但在该游戏可从其启动集运行时,不在特定于 Xbox One X 的启动集中的任何内容都将被流式传输。 您的游戏必须检查是否安装了针对该设备类型的区块,并且在等待区块时正常处理此情形。 此外,提供特定于设备的优化(例如改进的纹理)的游戏应该将此情形视为其内容管理体验的一部分。

按需内容

用户正在玩一个游戏,该游戏具有一个多人游戏活动、一个角色编辑器以及一个关卡编辑器。 您的游戏已在您的布局文件中将它们标记为按需资产。 您的游戏应该在针对这些模式的菜单项中指示需要安装这些内容。 如果用户选择这些菜单项之一,或者游戏需要这些内容,则该游戏必须请求安装这些内容。 用户可以取消对安装这些内容的请求,并且游戏必须从 AddChunkSpecifiersAsync 正常处理此返回值。

实现指南和最佳做法

其他资源

认证测试案例

129-01 语言包的智能交付

所需工具:

  • 1 个 Xbox One
  • 1 个 Xbox One S
  • 1 个 Xbox One X
  • 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)

测试步骤

  1. 将 Xbox One 主机设置为某一受支持的语言。
  2. 安装该游戏。
  3. 启动此游戏。
  4. 导航该游戏并且确保体验与主机所选语言的体验相符。
  5. 如果该标题提供游戏内菜单选项以便切换语言,则选择每个语言以便安装各语言区块。
  6. 对于所有支持的语言重复执行步骤 1-5。
  7. 在各代设备上重复执行步骤 1-6。

预期结果
按预期安装所需的语言包。

通过示例

  1. 该游戏基于主机语言设置安装所需的语言包。
  2. 通过从菜单选项中选择另一种语言,安装正确的语言包。
  3. 该游戏保持稳定,不会崩溃或停止响应。

失败示例

  1. 该游戏未基于主机语言设置安装所需的语言包。
  2. 通过从菜单选项中选择另一种语言,未安装正确的语言包。
  3. 该游戏崩溃或停止响应。

129-02 设备特定内容的智能交付

所需工具:

  • 1 个 Xbox One
  • 1 个 Xbox One S
  • 1 个 Xbox One X
  • 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)

测试步骤

  1. 将 Xbox One 主机设置为某一受支持的语言。
  2. 安装游戏。
  3. 启动游戏。
  4. 导航该游戏并且确保仅安装 Xbox One 特定内容。
  5. 在各代设备上重复执行步骤 1-4,并确保安装了各代设备特定内容。
  6. 对于所有支持的语言重复执行步骤 1-5。

预期结果
按预期安装所需的设备特定的内容。

通过示例

  1. 该游戏安装所需的设备特定的内容。
  2. 该游戏保持稳定,不会崩溃或停止响应。

失败示例

  1. 该游戏未安装所需的设备特定的内容。
  2. 该游戏崩溃或停止响应。

129-03 设备特定的内容的迁移

所需工具:

  • 1 个 Xbox One
  • 1 个 Xbox One S
  • 1 个 Xbox One X
  • 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)

测试步骤

  1. [Xbox One 主机] 将 Xbox One 主机设置为某一支持的语言。
  2. [Xbox One 主机] 将游戏安装到某一外部 USB 设备。
  3. [Xbox One 主机] 启动该游戏。
  4. [Xbox One 主机] 导航该游戏并且确保仅安装 Xbox One 特定的内容。
  5. 将 USB 设备移至某一 Xbox One X 主机
  6. [Xbox One X 主机] 获取更新以便安装 Xbox One X 特定的内容。
  7. [Xbox One X 主机] 启动该游戏并且确保该主机正常处理其他 Xbox One X 内容的安装。
  8. 将该 USB 设备移回至某一 Xbox One X 主机。
  9. [Xbox One 主机] 导航该游戏并且确保该游戏正常处理要安装的两个平台内容。
  10. 在 Xbox One Series X|S 上重复执行步骤 [5] - [9]。

预期结果
按预期安装所需的设备特定的内容。

通过示例

  1. 该游戏安装所需的设备特定的内容。
  2. 该游戏保持稳定,不会崩溃或停止响应。

失败示例

  1. 该游戏崩溃或停止响应。

129-04 按需内容的智能交付

所需工具:

  • 1 个 Xbox One
  • 1 个 Xbox One S
  • 1 个 Xbox One X
  • 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)

测试步骤

  1. 将 Xbox One 主机设置为某一受支持的语言。
  2. 安装游戏。
  3. 启动游戏。
  4. 安装所有按需内容。
  5. 对于所有支持的语言重复执行步骤 1-4。
  6. 在各代设备上重复执行步骤 1-5。

预期结果
按需内容按预期安装。

通过示例

  1. 该游戏按预期安装按需内容。
  2. 该游戏保持稳定,不会崩溃或停止响应。

失败示例

  1. 游戏未按预期安装按需内容。
  2. 游戏崩溃或停止响应。

129-05 功能与方法

所需工具:

  • 1 个 Xbox One
  • 1 个 Xbox One S
  • 1 个 Xbox One X
  • 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)

测试步骤

  1. 安装基本标题,而不安装与功能和方法相关的任何可选内容。
  2. 导航到标题的所有区域,尝试访问未安装的内容并确保标题保持稳定。
  3. 对于系统 UI 中公开的每个功能,请安装该功能,并尝试在标题中访问该功能,并确保标题保持稳定。
  4. 对于系统 UI 中未公开的每个功能,通过标题 UI 选项安装"功能"视图,并确保标题保持稳定。
  5. 对于每个方法,请确保用户拥有任何相关的应用商店权限,并执行全新安装。
  6. 确保标题中已安装和访问 Recipe 中包含的任何功能。

预期结果
未安装可选内容且标题允许在安装时访问可选内容,则标题会保持稳定。

通过示例

  1. 未安装可选内容时,标题会保持稳定。
  2. 安装标题后,可访问可选内容。

失败示例

  1. 未安装可选内容时,标题会崩溃或变得无响应。
  2. 安装时,游戏不允许访问可选内容。