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 零售主机模式)
测试步骤
- 将 Xbox One 主机设置为某一受支持的语言。
- 安装该游戏。
- 启动此游戏。
- 导航该游戏并且确保体验与主机所选语言的体验相符。
- 如果该标题提供游戏内菜单选项以便切换语言,则选择每个语言以便安装各语言区块。
- 对于所有支持的语言重复执行步骤 1-5。
- 在各代设备上重复执行步骤 1-6。
预期结果
按预期安装所需的语言包。通过示例
- 该游戏基于主机语言设置安装所需的语言包。
- 通过从菜单选项中选择另一种语言,安装正确的语言包。
- 该游戏保持稳定,不会崩溃或停止响应。
失败示例
- 该游戏未基于主机语言设置安装所需的语言包。
- 通过从菜单选项中选择另一种语言,未安装正确的语言包。
- 该游戏崩溃或停止响应。
129-02 设备特定内容的智能交付
所需工具:
- 1 个 Xbox One
- 1 个 Xbox One S
- 1 个 Xbox One X
- 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)
测试步骤
- 将 Xbox One 主机设置为某一受支持的语言。
- 安装游戏。
- 启动游戏。
- 导航该游戏并且确保仅安装 Xbox One 特定内容。
- 在各代设备上重复执行步骤 1-4,并确保安装了各代设备特定内容。
- 对于所有支持的语言重复执行步骤 1-5。
预期结果
按预期安装所需的设备特定的内容。通过示例
- 该游戏安装所需的设备特定的内容。
- 该游戏保持稳定,不会崩溃或停止响应。
失败示例
- 该游戏未安装所需的设备特定的内容。
- 该游戏崩溃或停止响应。
129-03 设备特定的内容的迁移
所需工具:
- 1 个 Xbox One
- 1 个 Xbox One S
- 1 个 Xbox One X
- 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)
测试步骤
- [Xbox One 主机] 将 Xbox One 主机设置为某一支持的语言。
- [Xbox One 主机] 将游戏安装到某一外部 USB 设备。
- [Xbox One 主机] 启动该游戏。
- [Xbox One 主机] 导航该游戏并且确保仅安装 Xbox One 特定的内容。
- 将 USB 设备移至某一 Xbox One X 主机
- [Xbox One X 主机] 获取更新以便安装 Xbox One X 特定的内容。
- [Xbox One X 主机] 启动该游戏并且确保该主机正常处理其他 Xbox One X 内容的安装。
- 将该 USB 设备移回至某一 Xbox One X 主机。
- [Xbox One 主机] 导航该游戏并且确保该游戏正常处理要安装的两个平台内容。
- 在 Xbox One Series X|S 上重复执行步骤 [5] - [9]。
预期结果
按预期安装所需的设备特定的内容。通过示例
- 该游戏安装所需的设备特定的内容。
- 该游戏保持稳定,不会崩溃或停止响应。
失败示例
- 该游戏崩溃或停止响应。
129-04 按需内容的智能交付
所需工具:
- 1 个 Xbox One
- 1 个 Xbox One S
- 1 个 Xbox One X
- 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)
测试步骤
- 将 Xbox One 主机设置为某一受支持的语言。
- 安装游戏。
- 启动游戏。
- 安装所有按需内容。
- 对于所有支持的语言重复执行步骤 1-4。
- 在各代设备上重复执行步骤 1-5。
预期结果
按需内容按预期安装。通过示例
- 该游戏按预期安装按需内容。
- 该游戏保持稳定,不会崩溃或停止响应。
失败示例
- 游戏未按预期安装按需内容。
- 游戏崩溃或停止响应。
129-05 功能与方法
所需工具:
- 1 个 Xbox One
- 1 个 Xbox One S
- 1 个 Xbox One X
- 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)
测试步骤
- 安装基本标题,而不安装与功能和方法相关的任何可选内容。
- 导航到标题的所有区域,尝试访问未安装的内容并确保标题保持稳定。
- 对于系统 UI 中公开的每个功能,请安装该功能,并尝试在标题中访问该功能,并确保标题保持稳定。
- 对于系统 UI 中未公开的每个功能,通过标题 UI 选项安装"功能"视图,并确保标题保持稳定。
- 对于每个方法,请确保用户拥有任何相关的应用商店权限,并执行全新安装。
- 确保标题中已安装和访问 Recipe 中包含的任何功能。
预期结果
未安装可选内容且标题允许在安装时访问可选内容,则标题会保持稳定。通过示例
- 未安装可选内容时,标题会保持稳定。
- 安装标题后,可访问可选内容。
失败示例
- 未安装可选内容时,标题会崩溃或变得无响应。
- 安装时,游戏不允许访问可选内容。