Xbox 主机游戏的 Xbox 认证测试要求

版本 13.1 - 2024/10/01

简介

Xbox 要求 (XR) 包含所有 Xbox 主机游戏开发者和发布者必须遵循的策略、技术要求、产品组件相关的要求。 XR 旨在确保针对 Xbox 主机创建的产品不仅稳定可靠,而且还可以提供一致、安全、令人放心和愉快的用户体验。

除非特别说明,否则所有 Xbox 要求均适用于 Xbox One 和 Xbox Series X|S 主机世代。

基本要求

此类别的要求适用于编码标准、游戏行为和游戏提交的一般规则。

XR-001:游戏稳定性 *

游戏必须符合有关游戏稳定性Microsoft应用商店策略。 以下策略适用于此要求:

10.1.2
产品必须完全正常运行,并且必须为目标系统和设备提供适当的功能。

001-01 游戏稳定性

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 导航游戏的所有区域,包括但不限于:
    • 游戏玩法
    • 菜单和功能
    • 可下载内容 (DLC)。
  4. 使用不包含先前保存数据的新 Xbox 档案,在与 Xbox 服务断开连接的情况下重复步骤 1-3。

预期结果
游戏不稳定性是指在没有给予用户任何通知的情况下由于软件崩溃而无法识别用户输入或者用户无法继续操作的任何状态。

通过示例

  1. 游戏的表现稳定。
  2. 游戏不会导致意外的用户数据丢失。

失败示例

  1. 游戏崩溃、无法响应,或导致主机重新启动。
  2. 游戏导致用户数据丢失。
  3. 显示持续 20 秒钟以上的非交互式暂停或静态屏幕。
  4. 游戏包含加载屏幕,该屏幕持续显示超过两分钟,并且没有进度指示。
  5. 游戏包含加载屏幕,该屏幕持续显示超过三分钟,具有进度指示器。

001-02 游戏挂起后的稳定性

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏并开始玩游戏。
  3. 在此游戏中的不同时间点,使用 xbapp suspend [PFN] 暂停游戏。
  4. 等待至少 30 秒,使游戏完全挂起,并且使挂起中断任何 HTTP 请求。
  5. 在该游戏成功挂起后,从主页选择相应磁贴返回到游戏中。
  6. 确认游戏正常恢复,并且确认用户可以从他们的上个保存位置继续进行他们保存的游戏进度。
  7. 继续到下一个保存位置,保存游戏,然后返回主菜单。
  8. 重新加载步骤 7 中创建的存档并确保所有进度仍然存在。
  9. 在整个游戏中重复步骤 3-8。

预期结果
游戏不稳定性是指在没有给予用户任何通知的情况下由于软件崩溃而无法识别用户输入或者用户无法继续操作的任何状态。 此外,不得导致用户在返回游戏后丢失任何保存进度。

通过示例

  1. 游戏的表现稳定。
  2. 游戏不会导致意外的用户数据丢失。
  3. 游戏从挂起状态恢复,并且用户能够立即从他们上次停止游戏的位置继续玩游戏。
  4. 游戏从挂起状态恢复,并且将提示用户是否要从上次停止游戏的位置继续玩游戏。
  5. 游戏从挂起状态恢复,并且游戏将返回到之前的菜单或初始交互状态,但用户能够加载他们上次保存的位置。
  6. 在需要在线服务连接的在线游戏期间处于挂起状态之后,游戏将从挂起状态恢复并且使用户返回到之前的菜单或初始交互状态。
  7. 由于系统终止了游戏(通常是由连接的存储去同步所致),包执行状态为“包执行状态: 4 (已终止)”。 不会出现恢复行为,因为游戏将从终止状态启动。 通过命令行运行 xbapp query <Package Full Name>,可观察执行状态。

失败示例

  1. 由于挂起失败,包执行状态为“包执行状态: 0 (未知)”。 通过命令行运行 xbapp query <Package Full Name>,可观察执行状态。
  2. 游戏将从挂起状态恢复,并且包执行状态为“包执行状态: 0 (未知)”。 通过命令行运行 xbapp query <Package Full Name>,可观察执行状态。
  3. 游戏将从挂起状态恢复,然后重新启动以回到初始启动序列。
  4. 用户无法与合作伙伴托管的服务重新建立连接。

001-03 游戏进入连接待机状态后的稳定性

配置:
一个具有以下配置的主机:

  • 已在“设置”>“>帐户”>“>登录、安全和密钥”>“>即时登录”>“>使用即时登录”中启用即时登录。
  • 已在“设置”->“>常规”->“>休眠模式和启动”->“>待机”中设置待机。

测试步骤

  1. 在主机上启用“随开即用”设置和“即时登录”设置(请参阅“配置”)。
  2. 使用已设置为用户的常用主机并且具有游戏许可的主机登录到 Xbox 档案。
  3. 启动游戏,登录到某一档案并开始玩游戏。
  4. 按主机上的电源按钮,待电源按钮停止闪烁后将进入连接待机状态。
  5. 使用主机上的电源按钮从待机状态恢复。
  6. 按步骤 1 中所述使用自动登录功能登录到同一 Xbox 档案。
  7. 重新启动游戏,然后从用户离开的位置继续玩游戏。
  8. 继续到下一个保存位置,保存游戏,然后返回主菜单。
  9. 重新加载步骤 8 中创建的存档并确保所有进度仍然存在。
  10. 在整个游戏中重复步骤 3-9。

预期结果
游戏不稳定性是指在没有给予用户任何通知的情况下由于软件崩溃而无法识别用户输入或者用户无法继续操作的任何状态。 此外,不得导致用户在返回游戏后丢失任何保存进度。

通过示例

  1. 游戏将从连接待机状态恢复,并且用户能够立即从他们上次停止游戏的位置继续玩游戏。
  2. 游戏将从连接待机状态恢复,并且将提示用户是否要从上次停止游戏的位置继续玩游戏。
  3. 游戏将从连接待机状态恢复,并且游戏将返回到之前的菜单或初始交互状态,但用户能够加载他们上次保存的位置。
  4. 在需要在线服务连接的在线游戏期间进入连接待机状态之后,游戏将从连接待机状态返回并且使用户返回到之前的菜单或初始交互状态。
  5. 由于系统终止了游戏(通常是由连接的存储去同步所致),包执行状态为“包执行状态: 4 (已终止)”。 不会出现恢复行为,因为游戏将从终止状态启动。 通过命令行运行 xbapp query <Package Full Name>,可观察执行状态。

失败示例

  1. 由于挂起失败,包执行状态为“包执行状态: 0 (未知)”。 通过命令行运行 xbapp query <Package Full Name>,可观察执行状态。
  2. 游戏将从连接待机状态恢复,并且包执行状态为“包执行状态: 0 (未知)”。 通过命令行运行 xbapp query <Package Full Name>,可观察执行状态。
  3. 游戏将从连接待机状态恢复,然后重新启动以回到初始启动序列。
  4. 用户无法与合作伙伴托管的服务重新建立连接。

XR-003:提交的游戏质量 *

标题必须在提交认证时具有功能完整、可测试且满足 Xbox 控制台质量标准。

功能完整且可测试:
游戏提交必须包含所有客户端代码、提交项目和可下载内容。 必须提供合作伙伴服务且正确配置它们以便进行测试和认证。 提交给 Microsoft 时,必须使用当前版本的提交验证器将游戏干净打包,并且在提交时游戏必须包含提交验证器日志。

Xbox 质量标准:
Xbox 主机上的游戏必须在各种游戏场景的游戏模式中正常运行,以满足玩家的要求。

  • 游戏完整性: 用户必须能够完成所有游戏模式,同时游戏必须为玩家提供持续的可玩体验。 每个游戏的可玩体验各不相同,但通常意味着帧率无大幅下降,无冻结、僵局、导致主要进度障碍的漏洞或图像损坏。
  • 选项和设置: 当在游戏中更新游戏设置时以及在终止和再次启动游戏后,选项、控件、语言等游戏设置得到正确应用。 如果适用,则遵循默认的主机设置。
  • 导航和内容可用性: 内容中无死胡同、游戏菜单可导航,且所有内容均可用(如果适用)。
  • 支持好友数少和多的玩家: 当玩家没有好友或拥有大量好友时,体验都能保持稳定并正常运行。 通常情况下,大量好友会导致统计信息发布/检索方面的问题
  • 具有允许的本地或在线多人游戏数的游戏功能: 使用受支持的模式,游戏模式通过受支持的本地或在线玩家组合正常运行
  • 保存游戏兼容性: 内容更新后,保存游戏和/或玩家进度会继续正常运行。 此外,在使用基本光盘版本加载已更新保存时,不得发生永久保存数据丢失。
  • 挂起和继续:从连接的待机状态或挂起状态恢复时,将保留游戏进度。

003 02 游戏完整性

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动此游戏。
  3. 在所有菜单和子菜单中导航,查看所有类型的媒体和/或功能,或进入并完成所有游戏模式。
    • 游戏:导航、与之交互并完成所有菜单 UI、额外内容、单人游戏模式和多人游戏模式,包括任何其他功能。 在离线、在线、拆分屏幕和系统链接模式下测试(如果适用)。 使用尽可能的最大玩家数测试多人游戏模式。
    • 应用:导航所有不同类型的媒体内容并与之交互,包括任何其他功能。

预期结果
所有游戏必须为用户提供可靠、公平、一致和完善的 Xbox 娱乐体验。

通过示例

  1. 可在所有模式下完成游戏。

失败示例

  1. 游戏在给定级别的末尾崩溃。
  2. 如果用户已完成另一模式,将无法完成特定模式。

003-03 选项

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动此游戏。
    • 在测试团队中设置各种选项,以便针对每个选项设置测试每个可用值。
    • 这必须涵盖游戏内的选项以及运行游戏时可以查看的任何系统设置。
  3. 检查游戏菜单中的所有设置和选项是否正确反映在最终用户体验中(例如,亮度、对比度、音量、难度等)。
  4. 终止游戏,然后在重新启动游戏后确保所有设置和选项仍有效。
  5. 让测试团队更改游戏所有方面的选项设置并验证它们是否准确反映在整个游戏中。

预期结果
游戏中的所有选项设置必须按预期方式工作,且在重新启动游戏后所有选项和设置值必须仍有效。

通过示例

  1. 如果将游戏内语言选项设置为荷兰语,则游戏只使用荷兰语字幕。

失败示例

  1. 如果用户使用暂停菜单反转水平或垂直摄像头控制信息,摄像头控制信息不影响游戏内设置。
  2. 在终止并重新启动游戏后,在玩游戏期间设置的所有选项值将重置为默认值。

003-04 语言支持

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 导航到主机的语言设置,并设置要与使用的主机区域设置匹配的语言。
  4. 按顺序测试每种语言,确保正确启动游戏并为游戏中每种支持的语言展示正确的本地化设置。
  5. 确保所有对于游戏进度非常重要的关键游戏文本清晰可辨。

预期结果
游戏必须在所有语言设置中正确启动,且必须为所有支持的语言在游戏内展示正确的本地化设置。 在显示受支持的语言文本区域中,无论显示设置如何,文本都必须保持清晰可辨。

通过示例

  1. 所有本地化设置在所有语言版本中正确显示。
  2. 将主机设置为不受支持的语言来启动游戏时,将仅显示英语文本。

失败示例

  1. 德国本地化设置显示为法语版本。
  2. 将主机设置为德语时发现重大本地化问题。
  3. 将主机设置为不受支持的语言来启动游戏时,不显示文本字符或显示 null 字符。

003-05 导航

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动此游戏。
  3. 使用控制器在所有菜单和选项屏幕(前端、游戏内和其他区域)中导航,确保所有导航按钮按预期方式工作。
    • 如果在任何菜单 UI 中显示按钮标签或命令提示符,请验证可以正确发出每个命令。
  4. 如果支持且连接并启用了传感器,使用自然用户界面 (NUI) 重复步骤 3。
  5. 如果支持且连接并启用了传感器,使用语音用户界面 (VUI) 重复步骤 3。
    • 如果可使用不是默认命令的其他 VUI 命令,请验证所有 VUI 命令在所有支持的语言中是准确的。

预期结果
导航命令必须按预期方式工作。

通过示例

  1. 游戏中的所有区域都可以按预期方式导航。

失败示例

  1. 进入某些菜单时,游戏在控制器上显示与按钮关联的图像,但是按该按钮时控制器没有任何反应。

003-07 排行榜

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动此游戏。
  3. 主机 A 和 B:登录到互为好友的档案。
  4. 主机 A:导航到可以发布排行榜的某个游戏区域(仅当游戏支持排行榜时)。
    • 测试人员必须检查游戏内排行榜和系统中显示的排行榜。
  5. 满足必需的最低要求,执行所有步骤以发布到排行榜。
  6. 主机 A:发布分数后,验证已将统计信息正确发布到排行榜,且可以使用提供的筛选器对统计信息进行排序。
  7. 主机 B:导航到排行榜菜单,验证已将主机 A 的统计信息正确发布到排行榜,且可以使用提供的筛选器对统计信息进行排序。
  8. 对所有游戏模式重复步骤 2-7。
  9. 主机 A 和 B:如果可以在 Xbox 上玩竞争性合作游戏,请对每个游戏模式重复步骤 2-7。
  10. 如果可以在多个 Xbox 档案上玩单机多人拆分屏幕游戏,请确保可以执行以下操作之一:
    • 用户可以发布到每个排行榜。
    • 至少主角档案可以将分数发布到每个排行榜。
    • 对于两个用户都可以将分数发布到排行榜的游戏,正确为每个参与者登记分数。

预期结果
游戏必须允许用户将统计信息发布到所有可用排行榜并使用提供的筛选器对这些排行榜进行排序。

通过示例

  1. 可以成功发布到所有排行榜。

失败示例

  1. 从排行榜 A 导航到排行榜 B 时游戏停止响应。
  2. 用户无法发布到特定排行榜。

003-08 低或高好友计数

测试步骤

  1. 登录到 Xbox 档案。
  2. 使用具有 100 个好友的档案登录。
  3. 启动游戏。
  4. 执行以下操作(如果适用):
    • 查看所有可用的排行榜并使用所有筛选选项。
    • 查看某好友的玩家卡片。
    • 查看某好友的丰富显示状态信息。
    • 邀请某好友加入游戏会话并玩游戏到结束。
  5. 使用没有好友的帐户重复步骤 4(如果支持,请使用“最近使用的玩家”列表来验证步骤 4)。
  6. 使用具有 100 个好友以上的档案重复步骤 4。
  7. 报告所有导航行为实例。

预期结果
档案在好友列表中包含的好友数不应对游戏功能造成不良影响。

通过示例

  1. 最小和最大好友计数对游戏都没有负面影响。

失败示例

  1. 使用支持 Xbox 的档案(好友数为零)时,如果用户进入排行榜且查看“仅好友”筛选器,将显示类似以下的消息:“错误。 未连接到 Xbox。“显示不正确。
  2. 任何查看好友的排行榜的尝试将导致空白页面。 将筛选器从“好友”切换回来,则显示类似以下的错误消息:“无法读取排行榜统计信息”。
  3. 使用好友数超过 100 的玩家档案并创建私人匹配时,如果进入多人游戏模式,游戏不提供对用户好友列表的访问。

003-14 本地多个玩家

测试步骤

  1. 确定游戏支持的每台主机的最大用户数。
  2. 主机 A 和 B:对于每台主机的最大用户数,连接相关的控制器数。
  3. 登录到 Xbox 档案。
  4. 启动游戏。
  5. 主机 A:使用足够的槽创建一个 Xbox 多人游戏会话,以允许在两台主机上加入最大用户数。
  6. 主机 B:找到主机 A 托管的多人游戏会话。
  7. 验证所有用户都可以加入多人游戏会话。
  8. 主机 A:启动游戏会话并验证以下事项:
    • 所有用户都可以开始玩游戏。
    • 速度没有变慢。
    • 没有任何图形问题。
    • 没有任何声音问题。
    • 没有任何负面的玩游戏体验。
    • 所有用户都可以完成游戏会话。

预期结果
游戏必须允许每台主机的最大用户数在所有支持 Xbox 的游戏模式下玩游戏而不会出错。

通过示例

  1. 单台主机上有两个玩家时,没有对帧速率造成负面影响。

失败示例

  1. 当任何参与的主机达到最大玩家数时,Xbox 游戏会话显示图形和音频响应变慢。

003-16 保存游戏的兼容性

测试步骤

  1. 登录到 Xbox 档案。
  2. 在未连接到 Xbox 网络时启动基本游戏。
  3. 开始玩一段时间的游戏以在每个模式下保存游戏进度(如游戏进度、选项和设置、虚拟形象创建等)。
  4. 重新启动游戏并验证你可以加载并恢复从步骤 3 保存的游戏进度。
  5. 连接到 Xbox 服务并下载基本游戏的内容更新。
  6. 应用内容更新后,请验证你是否仍可以加载并恢复在步骤 3 中保存的游戏进度。
  7. 重新启动游戏,开始玩新游戏一段时间以再次保存游戏进度。
  8. 退出并卸载游戏。
  9. 在未连接到 Xbox 网络时启动基本游戏。
  10. 验证以下事项之一:
    • 您可以在加载并恢复保存的游戏进度而不出错。
    • 游戏显示一条消息,指示在未获取 Xbox Live 的内容更新前无法使用保存的游戏进度。
    • 游戏不显示在 6 中保存的游戏信息。
  11. 重新启动游戏并连接到 Xbox 网络以接收内容更新。
  12. 应用内容更新后,验证您仍然可以加载并恢复保存的游戏进度。

预期结果
游戏的内容更新版本必须可以成功加载使用内容未更新版本保存的游戏。

通过示例

  1. 游戏的内容更新版本可以成功加载所有保存的信息。
  2. 启动基本版本加载更新的保存时,将通知用户丢失内容并给出无法加载保存的文件的原因,或在基本版本中看不到在内容更新版本中保存的信息。

失败示例

  1. 游戏的内容更新版本无法加载在步骤 3 中保存的游戏。
  2. 当使用游戏的内容更新版本加载存档信息时,游戏的基础版本崩溃。

003-17 耳机状态更改

测试步骤

  1. 在 Xbox 音频设置下启用适用于耳机的 Windows Sonic 作为耳机格式。
  2. 将一对耳机附加到控制器或将一对耳机无线附加到 Xbox。
  3. 启动标题和进度进行播放。
  4. 验证通过电视和耳机收听音频。
  5. 使用耳机,验证音频在一小段后是否返回。
  6. 重新插入耳机,验证音频是否通过电视和耳机收听。
  7. 在整个游戏中重复步骤 5-6。

预期结果
继续听取音频,没有问题。

通过示例

  1. 当删除耳机时,音频将返回,而不会遇到问题。
  2. 耳机连接后,音频返回且没有问题。

失败示例

  1. 耳机状态更改后,将不会再听到音频。
  2. 耳机状态更改后,音频会失真或损坏。

暂停后 003-18 耳机状态更改

测试步骤

  1. 在 Xbox 音频设置下启用适用于耳机的 Windows Sonic 作为耳机格式。
  2. 将一对耳机附加到控制器或将一对耳机无线附加到 Xbox。
  3. 启动标题和进度进行播放。
  4. 验证通过电视和耳机收听音频。
  5. 自然地暂停标题。
  6. 移动耳机。
  7. 继续标题,验证是否通过电视听到音频。
  8. 重新插入耳机,验证通过电视和耳机收听音频。
  9. 在整个游戏中重复步骤 5-8。

预期结果
继续听取音频,没有问题。

通过示例

  1. 当删除耳机时,音频将返回,而不会遇到问题。
  2. 耳机连接后,音频返回且没有问题。

失败示例

  1. 耳机状态更改后,将不会再听到音频。
  2. 耳机状态更改后,音频会失真或损坏。

连接备用状态后 003-19 耳机状态更改

配置:
一个具有以下配置的主机:

  • 已在“设置”>“>帐户”>“>登录、安全和密钥”>“>即时登录”>“>使用即时登录”中启用即时登录。
  • 已在“设置”->“>常规”->“>休眠模式和启动”->“>待机”中设置待机。

测试步骤

  1. 使用已设置为用户的常用主机并且具有游戏许可的主机登录到 Xbox 档案。
  2. 在 Xbox 音频设置下启用适用于耳机的 Windows Sonic 作为耳机格式。
  3. 将一对耳机附加到控制器或将一对耳机无线附加到 Xbox。
  4. 启动标题和进度进行播放。
  5. 验证通过电视和耳机收听音频。
  6. 使主机进入连接待机状态。
  7. 耳部耳机。
  8. 重新启用控制台,继续游戏。
  9. 验证通过电视听到音频。
  10. 重新插入耳机,验证音频是否通过电视和耳机收听。
  11. 重复整个标题中的步骤 4-11。

预期结果
继续听取音频,没有问题。

通过示例

  1. 当删除耳机时,音频将返回,而不会遇到问题。
  2. 耳机连接后,音频返回且没有问题。

失败示例

  1. 耳机状态更改后,将不会再听到音频。
  2. 耳机状态更改后,音频会失真或损坏。

XR-130:Xbox 主机系列和世代 *

所有面向某一主机世代的游戏都必须支持该世代的整个设备系列。

默认情况下,未使用智能交付的 Xbox One 游戏在 Xbox Series X|S 上以兼容模式运行。 在 Xbox Series X|S 上以兼容模式运行时,使用智能交付的游戏必须正常工作。

为了保持主机各世代之间的一致性,游戏必须:

  • 通过游戏板输入通过支持导航。 游戏可能要求事先批准才能使用附加外围设备。
  • 确保保存的游戏跨世代中的主机类型运行。
  • 确保未基于世代中的主机类型对在线玩家进行划分。
  • 确保跨世代中的主机类型提供完全相同的游戏模式。
  • 在各世代(Xbox One 和 Xbox Series X|S)之间,共享相同 TitleID 的游戏必须:

130-01 控制器输入

所需工具

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

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 导航游戏的所有区域,然后通过各区域中的控制器输入确认游戏接受导航。
  4. 在所有世代设备上重复上述所有步骤。

预期结果
该游戏支持在游戏的所有区域内通过控制器进行导航,并且对于其他输入设备(例如键盘/鼠标),不具有强制执行的行为。 游戏可能要求事先批准才能使用附加外围设备。

通过示例

  1. 该游戏在所有游戏区域中都接受来自某一控制器的输入。

失败示例

  1. 该游戏仅在某些游戏区域中接受来自某一键盘和/或鼠标的输入。

130-02 保存游戏漫游

所需工具

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

测试步骤

  1. 登录到设备 A 上的某一 Xbox 档案并且启动该游戏。
  2. 开始玩游戏并且生成保存进度(如果可能,通过更改或添加新的设置配置创建一个设置存档)。
  3. 退出游戏。
  4. 使用步骤 1 中使用的相同档案登录到相同世代中的其他设备。
  5. 启动与步骤 1 相同的游戏,并且确认所有已保存游戏以及任何设置和/或配置文件均可以正确访问和加载,并且它们没有任何针对特定相同世代设备的依赖关系。
  6. 在相同世代设备上重复上述所有步骤。
  7. 对于跨世代(Xbox One 和 Xbox Series X)共享同一 TitleID 的游戏,请对两个世代上均可用的内容重复步骤 1–4。

预期结果
保存游戏必须在相同世代中完整运行,并且对于跨世代(Xbox One 和 Xbox Series X)共享相同 TitleID 的游戏,保存游戏也对两个世代均可用的内容完整运行。

通过示例

  1. Xbox One S 上进行的一个游戏保存在 Xbox One 和 Xbox One X 上正常工作,反之亦然,跨 Xbox One 设备的整个系列都能完全正常工作。
  2. 对于跨世代(Xbox One 和 Xbox Series X)共享相同 TitleID 的游戏,游戏保存必须适用于两个世代均可用的内容。

失败示例

  1. 在一个世代(Xbox One 或 Xbox Series X)中进行的游戏保存不会在该世代的所有设备类型之间完全加载。
  2. 对于跨世代(Xbox One 和 Xbox Series X)共享相同 TitleID 的游戏,对于两个世代均可用的内容,游戏保存未完全加载。

130-03 在线细分

所需工具

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

测试步骤

  1. 登录到某一 Xbox 档案并且在相同世代的所有设备类型上启动该游戏。
  2. 完成一个跨所有设备的 Xbox 网络多人游戏会话。
  3. 跨该游戏支持的所有 Xbox 网络多人游戏模式重复步骤 2。

预期结果
Xbox 网络玩家必须能够加入其他 Xbox 网络玩家,而与正从相同世代使用哪一种主机类型无关。

通过示例

  1. 来自相同世代设备的所有主机都能够在多人游戏中互相对战。

失败示例

  1. 基于其 Xbox One 主机类型对相同世代中的 Xbox 网络联机玩家进行细分。

所需工具

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

测试步骤

  1. 登录到某一 Xbox 档案并且启动该游戏。
  2. 找到访问所有精选游戏模式。
  3. 跨相同世代的设备重复上述所有步骤,并且确保所有游戏模式在每台设备上都是相同的。

预期结果
必须跨相同世代的设备提供相同的游戏模式。

通过示例

  1. 来自相同世代的设备的所有主机都提供一组相同的游戏模式。

失败示例

  1. 来自相同世代的设备的一个或多个主机基于其相同世代主机类型提供不同的游戏模式。

130-05 兼容性模式

所需工具

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

测试步骤

  1. 对于 Xbox One 游戏,登录到某一 Xbox 档案并且启动该游戏。
  2. 在兼容模式下玩游戏并确保该游戏按预期运行。
  3. 找出 Xbox Series X 与 Xbox One X 在游戏性能、视觉效果或音频方面存在的明显差距。
    • 检查所有不同的分辨率输出以查看性能问题。
    • 使用与 HDR 兼容的屏幕检查自动 HDR。
  4. 重复步骤 3,但此次需要找出 Xbox Series S 与 Xbox One S 在游戏性能、视觉效果或音频方面存在的明显差距。
  5. 确保 Xbox Series X|S 设备之间以及 Xbox One 和 Xbox Series X|S 设备之间的多人游戏保真度(如果支持)。
    • 检查匹配。
    • 检查双向邀请。
    • 检查通过 shell 进行的双向加入。
  6. 确保进入和从暂停状态返回能够按预期工作。
  7. 确保主机重新启动后,所有游戏存档均会保留。
  8. 确保 Xbox One(任何家庭成员)与 Xbox Series X|S(任何家庭成员)之间的漫游存档可以正常工作。

预期结果
不支持智能交付的 Xbox One 游戏必须在 Xbox Series X|S 上运行,并且没有功能或性能问题。

通过示例

  1. 在 Xbox Series X|S 上运行时,游戏不会出现性能问题。|
  2. 在 Xbox Series X|S 上运行时,游戏不会出现功能问题。
  3. 在 Xbox Series 主机之间运行时(包括在 Xbox One 和 Xbox Series 之间玩多人游戏时),游戏可以正确进入、畅玩和完成所有多人游戏模式。
  4. 在 Xbox Series X|S 主机上运行时,游戏正确支持暂停和恢复。
  5. 用户在 Xbox Series X|S 主机上创建的游戏存档在完全重启后仍会保留。
  6. 用户在 Xbox One 上创建的游戏存档可以漫游到 Xbox Series X|S,并且所有进度仍然存在。 将相同的游戏存档漫游回 Xbox One 也会保留所有进度。

失败示例

  1. 在 Xbox Series X|S 上运行时,游戏出现性能问题。|
  2. 在 Xbox Series X|S 上运行时,游戏出现功能问题。
  3. 在 Xbox Series 主机之间运行时或者在 Xbox One 和 Xbox Series 之间玩多人游戏时,用户无法在所有模式下进入、畅玩或完成多人游戏。
  4. 在 Xbox Series X|S 主机上运行时,游戏无法正确暂停和恢复。
  5. 用户在 Xbox Series X|S 主机上创建的游戏存档或游戏存档的一部分在完全重启后无法保留。
  6. 用户在 Xbox One 上创建的游戏存档无法在不丢失进度的情况下漫游到 Xbox Series X|S。 将相同的游戏存档漫游回 Xbox One 还会丢失部分/所有进度。

XR-131:对游戏 DVR 和屏幕截图的显示模式支持 *

游戏必须确保游戏 DVR 和屏幕截图跨显示模式和类型正常工作。 采用 HDR 显示的游戏通过呈现 SDR 和 HDR 交换链来实现上述要求,因为 SDR 交换链用于 SDR 屏幕截图、广播和游戏 DVR。

131-01 游戏 DVR 和屏幕截图

所需工具

  • 1 台 Xbox One S
  • 1 台 Xbox One X
  • 1 个 Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)
  • 1 4k/HDR 显示屏

测试步骤

  1. 登录到一台设置为 1080p 的 Xbox One S 和 Xbox Series S 主机,此主机连接有一个 HDR 显示屏并且在此主机的设置中配置了 HDR 输出。
  2. 启动游戏。
  3. 当该游戏仍在运行时在主机设置中禁用 HDR。
  4. 返回到该游戏,然后确认显示的图形中不存在缺陷。
  5. 在 Xbox One X 和 Xbox Series X 上使用 4K 分辨率重复步骤 1-4。

预期结果
在 HDR/4K 输出切换到 SDR 时未显示图形缺陷。

通过示例

  1. 没有黑屏,也没有黑条和任何明显的视觉缺陷。

失败示例

  1. SDR 图像与 HDR 图像相比显著更浅或更深。
  2. SDR 图像小于 HDR 图像。
  3. 在 SDR 图像上显示明显的黑条或黑色边框。

XR-022:官方命名标准 *

对于 Xbox 主机和/或 Xbox 网络功能,游戏必须采用最新版术语列表中定义的命名标准。

在 Xbox 主机中,游戏不得使用术语列表中未明确包含的术语来显示图像、指代主机系统的组件或外围设备的组件。

022-01 官方命名标准

测试步骤

  1. 启动游戏。
  2. 访问游戏的所有区域。
  3. 导航所有菜单和子菜单。
  4. 更改所有可用的设置和选项。
  5. 如果游戏支持保存功能,请保存并加载所有可能的游戏类型。
  6. 观看所有电影场景。
  7. 请注意显示的所有文本和图像。

预期结果
所有文本均遵循最新的术语列表。 图像不得使用术语列表中未明确包含的术语显示主机系统的组件或外围设备的组件。

通过示例

失败示例

  1. 游戏使用来自竞争平台的专有术语或图像。
  2. 游戏使用术语列表中未包含的术语来指代主机系统的组件或外围设备的组件。

XR-074:与 Xbox 和合作伙伴服务断开连接 *

游戏必须正常处理与 Xbox 和合作伙伴服务连接有关的错误。 游戏在出现故障后重试对 Xbox 服务的请求时,必须遵循 Xbox 设定的重试策略。 在服务不可用时,游戏必须相应管理与用户的信息传递。 如果某一合作伙伴服务不可用,游戏不得指示存在与 Xbox Live 有关的问题。 当网络服务速度减慢或间歇性可用时,游戏不得崩溃或挂起。

074-01 WAN 与 Xbox 服务断开连接

测试步骤

  1. 登录到 Xbox 档案。
  2. 执行以下操作时,请断开 WAN 网络(如果使用以太网开关/集线器,则断开与网络设备连接的上行电缆。如果设备是通过 WiFi 连接的,则断开与无线接入点连接的上行电缆)的连接:
    • 创建一个新的保存点。
    • 加载一个保存点。
    • 到达一个自动保存点。
    • 枚举保存的游戏的列表。
    • 搜索并加入一个在线会话。
    • 尝试创建一个在线会话。
    • 查看一个排行榜(如果适用)。
    • 离线玩游戏。

预期结果
在主机无法访问 Xbox 服务时,该游戏应该能够使用用户友好的错误消息做出响应。

通过示例

  1. 游戏显示错误消息,指出与 Xbox 服务的网络连接丢失。
  2. 当在不要求 Xbox 服务的本地游戏模式下玩游戏时,游戏不显示一条错误消息。
  3. AppX 清单中带 RequireXboxLive 的标题将暂停,连接丢失时将终止。

失败示例

  1. 用户无法完成非在线 Xbox 游戏会话。
  2. 游戏进入无法响应或不稳定状态。

074-02 直接断开连接

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 在游戏中执行以下操作时,从设备上拔下网络电缆,或者切断 WAP 或无线路由器的电源:
    • 创建一个新的保存点。
    • 加载一个保存点。
    • 到达一个自动保存点。
    • 枚举保存的游戏的列表。
    • 搜索并加入一个在线会话。
    • 尝试创建一个在线会话。
    • 查看一个排行榜(如果适用)。
    • 离线玩游戏。

预期结果
在设备失去与 Xbox 服务的连接时,该游戏应该能够使用用户友好的错误消息做出响应。

通过示例

  1. 当游戏处于在线游戏模式时显示一个用户友好的消息。
  2. 在离线游戏模式期间该游戏不会中断游戏过程。
  3. AppX 清单中带 RequireXboxLive 的标题将暂停,连接丢失时将终止。

失败示例

  1. 在离线游戏模式期间将显示一条错误消息。
  2. 在网络进入离线状态后,用户能够查看在线菜单或者查看缓冲的媒体。

074-03 挂起与 Xbox 服务的断开连接

配置
此测试用例仅适用于主机。 安装游戏并使用 GDK 中的 xbapp list 返回游戏的程序包全名 (PFN)。

测试步骤

  1. 登录到某一 Xbox 档案并且启动该游戏。
  2. 在处于主菜单或前端菜单上时:
    • 通过运行 xbapp suspend [PFN] 来暂停游戏,或等待 30 秒以使游戏自然完全暂停,并让暂停中断任何 HTTP 请求。
    • 恢复该游戏。
  3. 如果支持,请从以下区域重复步骤 2-4:
    • 在单人游戏会话期间。
    • 在在线多人游戏会话期间。
    • 在处于游戏前多人游戏大厅时。
    • 在查看在线排行榜时。
    • 在视频或音频播放期间。

预期结果
在被挂起后该主机如果无法访问 Xbox 服务,则该游戏必须成功做出响应、顺利处理问题情况,并且在适当时通过用户友好的错误消息予以响应。

通过示例

  1. 当处于在线 Xbox 多人游戏会话时,该游戏显示一条错误消息,指示丢失了与 Xbox 服务的网络连接。
  2. 该游戏在不要求 Xbox 服务的本地游戏模式下玩游戏时,不显示一条错误消息。

失败示例

  1. 用户无法完成非在线 Xbox 游戏会话。
  2. 该游戏进入无法响应或不稳定状态。
  3. 游戏在恢复后显示误导或不正确的错误消息。

074-04 挂起期间 Xbox 服务重新连接

配置
此测试用例仅适用于主机。 安装游戏并使用 GDK 中的 xbapp list 返回游戏的程序包全名 (PFN)。

测试步骤

  1. 登录到某一 Xbox 档案并确保主机设置为常用主机。
  2. 在没有与 Xbox Live 的连接,但保留本地网络连接的情况下,启动游戏。
  3. 在处于主菜单或前端菜单上时:
    • 通过运行 xbapp suspend [PFN] 来暂停游戏,或等待 30 秒以使游戏自然暂停,并让暂停中断任何 HTTP 请求。
  4. 等待至少 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  5. 重新连接上行电缆,然后等待主机重新连接到 Xbox 网络。
  6. 恢复该游戏。
  7. 如果支持,请从以下其他区域重复步骤 2-6:
    • 在单人游戏会话期间。
    • 在保存/加载游戏前的保存/加载菜单内。

预期结果
在被挂起后该主机如果无法访问 Xbox 服务,则该游戏必须成功做出响应、顺利处理问题情况,并且在适当时通过用户友好的错误消息予以响应。

通过示例

  1. 用户无需中断即可恢复该游戏和完成离线 Xbox 游戏会话。
  2. 该游戏保持稳定,并且不会出现崩溃。

失败示例

  1. 用户无法完成非在线 Xbox 游戏会话。
  2. 该游戏进入无法响应或不稳定状态。
  3. 游戏在恢复后显示误导或不正确的错误消息。

074-05 固定低带宽

所需工具:
GDK/XDK 中的 xbstress.exe

配置
网络模拟由命令行压力工具 xbstress.exe 控制。 该工具配置不同的主机压力源,包括网络模拟。 出于网络目的,xbstress.exe 在 Xbox 设备上控制一个指定的驱动器,它将删除数据包、注入延迟并且限制吞吐量。 xbstress.exe 具有三个预先配置的模拟配置文件,允许你轻松地模拟重要的网络情况:最低、平均和极佳。 最低配置文件将映射到此 XR。

测试步骤

  1. 使用 XBStress 最低配置文件,将与 Xbox 设备的连接限制在最低操作要求。
  2. 执行游戏相关的在线操作,包括但不限于:
    • 导航所有菜单。
    • 玩游戏在线游戏会话。

预期结果
当用户的 Internet 连接速度下降到低于 192 Kbps 时,游戏不得崩溃或者导致用户数据丢失。

通过示例

  1. 将显示一条用户友好的消息,指示可能由于低带宽而影响在线玩游戏。
  2. 游戏不会崩溃,并且不会导致用户数据丢失。

失败示例

  1. 游戏崩溃或导致用户数据丢失。

074-06 变化的低带宽

所需工具
GDK/XDK 中的 xbstress.exe

配置
网络模拟由命令行压力工具 xbstress.exe 控制。 该工具配置不同的主机压力源,包括网络模拟。 出于网络目的,xbstress.exe 在 Xbox 设备上控制一个指定的驱动器,它将删除数据包、注入延迟并且限制吞吐量。 xbstress.exe 具有三个预先配置的模拟配置文件,允许你轻松地模拟重要的网络情况:最低、平均和极佳。 最低配置文件将映射到此 XR。

测试步骤

  1. 禁用 xbstress 中的所有网络限制。
  2. 执行游戏相关的在线操作,包括但不限于:
    • 导航所有菜单。
    • 玩游戏在线游戏会话。
  3. 执行步骤 2 时,启用 xbstress 的最低配置文件。

预期结果
当用户的 Internet 连接速度下降到低于 192 Kbps 时,游戏不得崩溃或者导致用户数据丢失。

通过示例

  1. 将显示一条用户友好的消息,指示可能由于低带宽而影响在线玩游戏。
  2. 游戏不会崩溃,并且不会导致用户数据丢失。

失败示例

  1. 游戏崩溃或导致用户数据丢失。

074-07 动态连接丢失

所需工具

  • 对于主机,使用 GDK/XDK 中的 xbstress.exe
  • 对于 Windows 10,使用 Fiddler Classic。

配置:
对于 Xbox 设备,网络模拟受到命令行压力工具 xbstress.exe 的控制。 xbstress.exe 允许用户阻止一组域名和 IP,使用提供的地址列表执行此测试,以便阻止非 Microsoft 流量。

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 访问非 Microsoft 在线功能。
  4. 如果在 Xbox 主机上进行测试,请使用以下命令为非 Microsoft 流量创建具有 xbstress 的中断网络通道: xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]
  5. 使用 xbstress simulate network=channels 启动网络模拟。
  6. 如果在 Windows 10 上进行测试,则使用 fiddler 模拟停机。

预期结果
游戏应正常处理与 Microsoft 服务断开连接的情况。

通过示例

  1. 在丢失与合作伙伴托管的服务的连接时游戏不会挂起或崩溃。

失败示例

  1. 显示的错误意味着存在与 Microsoft 服务有关的问题。
  2. 显示非描述性错误消息。
  3. 游戏崩溃、变得不稳定,或导致主机重新启动。

074-08 预先启动停机

所需工具

  • 对于主机,使用 GDK/XDK 中的 xbstress.exe
  • 对于 Windows 10,使用 Fiddler Classic。

配置:
对于主机,可以通过命令行压力工具 _xbstress.exe 设置网络模拟。 xbstress.exe 允许用户阻止域名和 IP 列表。 此测试使用提供的地址列表执行,以阻止非 Microsoft 流量。

测试步骤

  1. 如果在 Xbox 设备上进行测试,请使用以下命令为非 Microsoft 流量创建具有 xbstress 的中断网络通道: xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]
  2. 使用 xbstress simulate network=channels 启动网络模拟。
  3. 如果在 Windows 10 上进行测试,则使用 fiddler 模拟停机。
  4. 登录到 Xbox 档案。
  5. 启动游戏。
  6. 访问非 Microsoft 在线功能。

预期结果 游戏应提供用户友好的错误消息,指示存在与访问非 Microsoft 服务有关的问题,并且应允许有机会重试连接。

通过示例

  1. 在丢失与合作伙伴托管的服务的连接时游戏不会挂起或崩溃。

失败示例

  1. 显示的错误意味着存在与 Microsoft 服务有关的问题。
  2. 显示非描述性错误消息。
  3. 游戏崩溃、变得不稳定,或导致主机重新启动。

XR-132:服务访问限制 *

在调用 Xbox 网络服务时超出了基于游戏和用户的限制或者未遵循 Xbox 网络服务重试政策的游戏可能会受到速率限制,这可能会导致服务中断或弃用。 未能遵守指定的限制可能会阻止游戏发布,并且与已发布游戏相关的生产内问题可能导致 Xbox 网络服务在删除游戏前一直挂起。

132-01 服务访问限制

所需工具

  • 对于 Windows 10、Xbox Series X|S 或任何基于 GDK 的游戏,使用 Fiddler Classic。
  • 对于 Xbox 主机、使用 Fiddler Classic 或 XblTraceAnalyzer.exe (来自 GDK)
  • Xbox 服务 Trace Analyzer,用于分析来自XblTraceAnalyzer.exe和/或 Fiddler 的输出文件

测试步骤

使用 Fiddler Classic

  1. 在启动游戏之前,请先启动 Fiddler Classic,并确保将其配置为从主机或 Windows 10 电脑(无论该游戏从何处运行)捕获网络流量。
  2. 在 Fiddler Classic 运行并捕获网络流量的情况下,启动游戏并继续遍历所有区域,包括但不限于:
    • 创建一个游戏存档、重新启动主机并且加载该游戏存档
    • 连续快速地更改丰富显示状态(如果可能)
    • 解锁和查看成就
    • 发布到所有排行榜并使用所有筛选器查看所有排行榜
    • 查看游戏内好友列表(包括状态为“已阻止”的好友)并且在页面之间快速移动
    • 赢得并查看英雄数据
    • 匹配到所有在线模式中,包括找不到可用会话(如果可能)和生成语音流量
    • 创建、保存和共享一个游戏剪辑
    • 访问游戏内商店(如果适用)
  3. 测试结束后,将 Fiddler 捕获保存到本地目录。
  4. 在 GDK 命令提示符下,运行 xbltraceAnalyzer -data filepath -outputdir filepath
  5. 在步骤 4 中打开输出目录,并且打开“index”文件(如果系统提示,则选择“允许阻止的内容”)。

使用xbtrace.exe
xbtrace.exe 在游戏启动之前无法启动,但应尽快启动它,以便捕获游戏在启动过程中调用的任何 Xbox 服务。 因此,捕获游戏流量的首选方法是 Fiddler Classic,因为它可以在启动游戏之前启动。

  1. 在游戏正在运行的情况下,运行 xbtrace start xboxliveservices 并且继续在游戏的所有区域中导航,包括但不限于以下操作:
    • 创建一个游戏存档、重新启动主机并且加载该游戏存档
    • 连续快速地更改丰富显示状态(如果可能)
    • 解锁和查看成就
    • 发布到所有排行榜并使用所有筛选器查看所有排行榜
    • 查看游戏内好友列表(包括状态为“已阻止”的好友)并且在页面之间快速移动
    • 赢得并查看英雄数据
    • 匹配到所有在线模式中,包括找不到可用会话(如果可能)和生成语音流量
    • 创建、保存和共享一个游戏剪辑
    • 访问游戏内商店(如果适用)
  2. 测试结束后,run xbtrace stop 两次。
  3. 浏览主机文件,并且在 SystemScratch > xbtrace 中,你将找到该 csv 文件。 查看时间戳,以便确保其记录了您停止录制的时间。 在本地复制它。
  4. 在 XDK 命令提示符下,运行Xbltraceanalyzer -data filepath -outputdir filepath
  5. 在步骤 4 中打开输出目录,并且打开“index”文件(如果系统提示,则选择“允许阻止的内容”)。

预期结果
游戏在其 Trace Analyzer 输出结果中未显示任何严重警告。 游戏必须确保将其对 Xbox 终结点的服务调用保持在指定突发值和维持限制之下。

通过示例

  1. 在调用 Xbox 服务时该游戏未超出维持限制。

失败示例

  1. 该游戏超出维持限制(速率限制在其生效的限制)达 10 倍。 例如,如果精细速率限制生效时的维持限制设置为 300 秒内 300 个调用,则达到或高于 300 秒内 3000 个调用的游戏将失败。

132-02 游戏事件限制

测试步骤

  1. 安装该游戏并且在游戏正在运行的情况下,继续在游戏的所有区域中导航,包括但不限于以下方面:

    • 创建一个游戏存档、重新启动主机并且加载该游戏存档
    • 连续快速地更改丰富显示状态(如果可能)
    • 解锁和查看成就
    • 发布到所有排行榜并使用所有筛选器查看所有排行榜
    • 查看游戏内好友列表(包括状态为“已阻止”的好友)并且在页面之间快速移动
    • 赢得并查看英雄数据
    • 匹配到所有在线模式中,包括找不到可用会话(如果可能)和生成语音流量
    • 创建、保存和共享一个游戏剪辑
    • 访问游戏内商店(如果适用)
  2. 在测试期间,观察游戏以查看游戏事件限制系统 toast 是否出现。

    游戏事件限制系统 Toast 的图像

预期结果
游戏不得触发游戏事件限制系统 toast。

通过示例

  1. 该游戏未触发游戏事件限制系统 toast。

失败示例

  1. 该游戏触发游戏事件限制系统 toast。

XR-133:本地存储写入限制 *

使用本地存储的游戏在 5 分钟增量时间内对永久本地存储或临时存储的总写入量不得超过 1 GiB。

有关通过 GDK 与 Xbox 主机上的本地存储的详细信息,请阅读本地存储部分

133-01 本地存储写入限制

测试步骤

  1. 安装该游戏并且在游戏正在运行的情况下,继续在游戏的所有区域中导航,包括但不限于以下方面:
    • 创建一个游戏存档、重新启动主机并且加载该游戏存档
    • 玩所有游戏模式并解锁/查看成就
  2. 在测试期间,观察游戏以查看本地存储写入限制系统 toast 是否出现。

预期结果
游戏不得触发本地存储写入限制系统 toast。

通过示例

  1. 游戏未触发本地存储写入限制系统 toast。

失败示例

  1. 游戏触发本地存储写入限制系统 toast。

在线安全和隐私

此类别中的要求适用于保护用户的安全和隐私。

XR-013:将 Microsoft 帐户与发布者帐户关联 *

在 Xbox 上,使用合作伙伴托管服务的游戏或需要凭据的帐户必须支持所有 Xbox 用户,并提议将该帐户与用户的Microsoft帐户相关联。 在 Xbox 主机外部,游戏可以选择允许帐户关联以便支持其游戏体验。

如果在游戏中启用了发布者帐户登录,则以下规则将适用:

发布者帐户登录

  • 容纳所有用户
    如果游戏功能需要发布者帐户登录, (单人游戏、多人游戏、跨网络游戏、排行榜) ,则登录和注册必须支持提供游戏游戏的所有用户类型、年龄和区域,以及本地/地区法律允许这些功能,无论年龄分级如何。

    • 游戏发布者可以选择不支持其发布者帐户的特定区域、年龄等。 如果某个区域、年龄组或其他玩家组无法创建或登录帐户,则游戏不能要求这些用户使用账户登录来使用游戏功能。
    • 如果基于游戏的注册体验(例如年龄或地区)不支持特定帐户设置,则游戏必须通过提供消息来妥善处理,以便在支持该用户的外部站点或移动优化体验上注册。
  • 获取同意并提供帐户信息使用条款
    游戏必须请求使用并获取许可才能使用玩家Microsoft帐户中的信息来自动填充注册/帐户创建体验。 必须在游戏 (中向用户提供所有适用的使用条款、隐私和其他政策,或者在发布者帐户创建过程中) 带有指向此类信息链接的通知。

  • 披露要求
    如果游戏或其他功能需要发布者帐户,则必须在游戏的产品说明和任何物理包装(包括年龄等任何限制)中披露该帐户。 在游戏中,游戏必须定义发布者帐户的原因和用法。 如果发布者帐户限制或限制子帐户的体验,建议将此文本添加到商店详细信息页,以增强买家意识:

Xbox 子帐户可能无法访问游戏的某些功能,包括在线多人游戏、通信和其他在线功能。 在 Xbox 中,儿童是指 13 岁以下的玩家,除非当地法律另有规定。

发布者帐户/Microsoft 帐户链接

  • 使用 Xbox 安全令牌服务 (XSTS) 进行身份验证
    将用户的发布者帐户链接到用户的Microsoft帐户时,必须使用 XSTS 令牌提供标识信息进行身份验证。 有关 XSTS 令牌身份验证的详细信息,请参阅游戏服务的 Xbox 服务身份验证要求授权

  • 获取同意并提供选择
    必须将用户的发布者帐户链接到用户的Microsoft帐户,通知用户。 如果链接了用户的帐户,则必须为用户提供选择退出的选项。 用户必须能够取消帐户的关联。

  • 容纳所有用户
    如果游戏功能需要发布者帐户登录, (单人玩家、多人游戏、跨网络游戏、排行榜) ,则登录和注册必须支持提供游戏游戏的所有用户类型、年龄和区域,以及本地/地区法律允许这些功能,无论年龄分级如何。

注意

发布者可以实施其他欺诈防护机制,例如,当链接的帐户首次从新设备登录时,双重身份验证中断。 此行为不违反此 XR。

013-01 将 Microsoft 帐户与发布者帐户关联

测试步骤

  1. 验证游戏是否支持或需要非 Xbox 帐户或登录名以获取服务或功能。
  2. 通过使用新创建的 Xbox 档案,使用发布者提供的服务帐户或登录名以在初始设置过程中输入非 Xbox 帐户凭据。
  3. 在完成帐户链接过程之前,验证游戏允许用户查看应用中的使用条款或通知用户如何查看使用条款。
  4. 验证是否未提示用户在任何位置重新输入其非 Xbox 帐户凭据。
  5. 在游戏正在运行时注销后重新登录。
  6. 重复步骤 [4]。
  7. 终止后使用相同的档案重新激活游戏。
  8. 重复步骤 [4]。
  9. 终止游戏。
  10. 通过删除可能已由该游戏创建的任何保存的文件,确认游戏未在本地存储非 Xbox 帐户凭据。
  11. 重新激活该游戏,然后重复步骤 [4]。
  12. 在不同的主机上,使用相同的档案启动该游戏,然后重复步骤 [4]。
  13. 验证用户是否可以取消其 Xbox 配置文件与非 Xbox 帐户的链接。
  14. 对属于游戏年龄分级的 Xbox 子女帐户(年龄低于 13 岁)重复步骤 [1]-[13]。

预期结果
该游戏必须允许为处于游戏年龄分级范围内的所有用户创建发布者帐户。 在完成帐户链接过程之前,用户只需提供一次凭据,并允许用户查看使用条款,或通知用户如何查看使用条款。 必须向用户提供一个机制,以便取消其 Xbox 档案与其非 Xbox 帐户的关联。

通过示例

  1. 游戏从不要求用户在最初输入非 Xbox 帐户或登录凭据后随时重新输入其非 Xbox 帐户或登录凭据,并且游戏会在链接过程中和关联帐户期间提供使用条款通知。
  2. 该游戏允许为处于游戏年龄分级范围内的所有用户创建发布者帐户。

失败示例

  1. 游戏要求用户在每次启动游戏时输入其非 Xbox 帐户或登录凭据。
  2. 游戏要求用户在从其他主机运行游戏时输入其非 Xbox 帐户或登录凭据。
  3. 该游戏未提供用于在帐户关联过程中查看使用条款的方法。
  4. 该游戏未提供用于从其非 Xbox 帐户取消关联其 Xbox 档案的方法。
  5. 该游戏不允许为处于游戏年龄分级范围内的所有用户创建发布者帐户。

XR-014:玩家数据和个人信息 *

游戏发布者完全负责根据适用法律收集和处理最终用户数据,尤其是当用户是子女时。

此外,当游戏包含玩家从 Xbox 获取的信息,或者直接从 ((如网站或移动应用) )获取玩家的信息时,游戏不得显示给其他玩家:

  • 可用于导致用户财务损失的信息(如身份证号或信用卡号)。
  • 泄露国家/地区外的用户地址的信息。
  • 允许用户在线模拟其他用户的信息,例如帐户凭据。

处理子数据
从儿童或青少年年龄组中的帐户收集数据时,游戏只能请求验证年龄或获得家长同意所需的个人数据。

定义
地址是可以将用户的位置确定到城市或乡镇级别的任何信息。 这包括但不限于以下各项:

  • 物理地址
  • 通讯地址
  • 帐单邮寄地址
  • 邮政编码
  • IP 地址或相关信息
  • 地理位置信息

014-01 个人信息

测试步骤

  1. 访问游戏的所有方面,包括所有可能的 Xbox 多人游戏会话。
  2. 访问可能保存内容或者跨 Xbox 网络发送内容或者将内容发送到某一游戏服务器的所有方面。

预期结果
游戏不得显示有关其他用户的个人信息,如 XR 正文中详述的那样。

通过示例

  1. 游戏显示您所居住的国家/地区并与其他主机上的用户共享。
  2. 该游戏使用用户的 IP 地址定义用户的一般位置(没有比省/市/自治区或国家/地区更具体)并且向排行榜上的其他用户显示该位置。

失败示例

  1. 游戏与其他主机上的用户传输和共享用户的个人信息。 示例:Email地址、位置 (州/国家/地区) 、姓名、出生日期、个人资料密码、机密问题、密码 () 、信用卡详细信息。

014-02 数据收集

测试步骤

  1. 使用儿童或青少年帐户启动游戏。
  2. 访问游戏的所有区域,包括所有可能的单人和 Xbox 多人游戏模式。
  3. 查看用户正在请求哪些数据。

预期结果
游戏不得向儿童或青少年用户请求超出年龄验证所需的数据或获取家长同意 ((例如家长) 的电子邮件地址)。

通过示例

  1. 游戏不向儿童或青少年用户请求任何数据。
  2. 游戏请求用户的出生日期,并指出这是验证年龄所必需的。
  3. 游戏请求家长的电子邮件地址,以便他们提供家长同意。

失败示例

  1. 游戏要求提供除验证年龄或获得家长同意以外的其他目的的数据。
  2. 游戏不说明请求的数据需要什么,例如询问家长的电子邮件地址,但未说明原因。

XR-015:管理玩家通信 *

在用户的隐私设置不允许时,游戏不得传输用户数据或者允许通过 Xbox 进行通信。

游戏通过从 Xbox 服务检索数据来满足此 XR。 如果游戏使用自己的服务,则它必须在会话开始时或者在某一新用户加入该会话时检查该用户的隐私权限。 对于在会话外用户启动的情形,游戏通过在显示用户的数据之前和在执行操作之前通过检查隐私来满足此要求。 下列隐私设置列表可供游戏检查:

权限名称 描述
CommunicateUsingText 检查用户是否可以向目标用户发送一条包含文本内容的消息。
CommunicateUsingVoice 检查用户是否可以使用语音与目标用户通信。

在游戏会话期间,支持 Xbox 和非 Xbox 玩家之间通信的游戏必须能够在会话期间使任何非 Xbox 玩家静音。

015-01 用户通信

配置:

  • 创建一组“其他人可以使用语音、文本或邀请进行通信”设为“所有人”、“好友”和“阻止”的档案。
  • 对于支持 Xbox 外部通信的游戏,请创建一组“你可以在 Xbox 之外进行语音和文本通信”设为“允许”、“游戏内好友”和“阻止”的档案。

注意

“允许”和“游戏内好友”选项之间的区别在于,“允许”表示你可以与网络中的每个人交谈(包括在随机匹配中遇到的玩家)。 “游戏内好友”是你通过将其添加到游戏内好友列表来明确选择与其一起玩游戏的人员。

测试步骤

  1. 在设备 1 上,登录到某一档案,已根据“配置”使用一组特定的权限对该配置文件进行了配置。
  2. 在设备 2 上,登录到一个没有通信限制的配置文件。
  3. 在这两台设备上,启动游戏并且尝试在支持的每个位置中使用文本、语音(通过 Kinect 以及通过耳机)和视频进行通信并尝试发送多人游戏邀请。
  4. 对“配置”步骤中的所有档案重复执行步骤 1-3。

预期结果
游戏必须检查 Xbox 服务中用户对隐私和在线安全相关操作的权限,并且当用户的隐私和在线安全设置不允许时,不得通过 Xbox 传输用户数据或进行通信。

通过示例

  1. 在特定的通信方法配置为阻止时,游戏禁止用户在 Xbox 中通过语音和文本进行通信。
  2. 在特定的通信方法配置为阻止时,游戏禁止用户在 Xbox 外部通过语音和文本进行通信。
  3. 当已被屏蔽时,游戏禁止用户在 Xbox 中接收多人游戏邀请。

失败示例

  1. 在特定的通信方法配置为阻止时,用户能够在 Xbox 中通过语音和文本进行通信。
  2. 在特定的通信方法配置为阻止时,用户能够在 Xbox 外部通过语音和文本进行通信。
  3. 当已被屏蔽时,游戏允许用户在 Xbox 中接收多人游戏邀请。

015-02 静音支持

测试步骤

  1. 让用户 A 将用户 B 静音。
  2. 同时让这两位用户加入某个 Xbox 多人游戏会话。
  3. 尝试从用户 B 向用户 A 发送语音通信。
  4. 确保用户 A 无法接收来自用户 B 的任何语音通信。

预期结果
用户 A 不能收到来自用户 B 的通信。

通过示例

  1. 启用静音功能的用户无法接收已被静音的用户的语音通信。

失败示例

  1. 启用静音功能的用户可以收到已被静音的用户的语音通信。

015-03 被屏蔽的用户

测试步骤

  1. 让用户 A 屏蔽用户 B。
  2. 同时让这两位用户加入某个 Xbox 多人游戏会话。
  3. 尝试从用户 B 向用户 A 发送语音或书面通信。
  4. 尝试将多人游戏邀请从用户 B 发送到用户 A。
  5. 确保用户 A 无法接收来自用户 B 的任何语音通信或多人游戏邀请。

预期结果
用户 A 不得听到或看到来自用户 B 的通信。用户 A 不得收到用户 B 的多人游戏邀请。

通过示例

  1. 启用屏蔽功能的用户无法看到或听到来自被屏蔽用户的通信。
  2. 启用屏蔽功能的用户未收到被屏蔽用户的多人游戏邀请。

失败示例

  1. 启用屏蔽功能的用户可以看到或听到来自被屏蔽用户的通信。
  2. 启用屏蔽功能的用户收到了被屏蔽用户的多人游戏邀请。

XR-017:游戏分级 *

Xbox 的游戏分级

白皮书侧重介绍两个基本概念,因为它们与 Xbox 主机上的内容分类和限制有关:

  • 分级:指定不同地区的分级委员会认为不同类型内容是否适当的年龄级别。
  • 家长控制:Xbox 主机上的档案设置,定义一个用户在某一应用程序内可以玩的或者可以查看的内容的最高分级。

017-01 年龄分级验证

重要

对于仅限数字的游戏或没有绿色光盘的测试,请改为参阅 BVT 000-13 测试用例。

配置:

  1. 游戏必须是光盘提交,测试光盘必须可用于运行测试步骤 #2 和 #3。
    • 最终版本(基础游戏/内容更新)- 所有需要证书的区域设置都需要证书。
    • 超出范围/无需测试 - DLC、游戏内内容、在没有连接到 Xbox Live 服务的情况下无法启动的游戏。
  2. 提交材料(证书)
  3. 在 Microsoft 合作伙伴中心中声明的游戏年龄分级

测试步骤

  1. 将 Microsoft 合作伙伴中心中的分级值与游戏提交材料中提供的分级证书进行比较,反之亦然。 这样做是为了确保每个分级值都具有相应的证书,同时也能确保将合作伙伴中心中的每个证书都考虑在内。
    • “合作伙伴中心”中的所有分级值应具有匹配的证书。 如果任何分级值没有匹配的证书,这可能会导致错误,因此必须要呈报此问题。
  2. 所需的测试光盘 - 将光盘介质插入到专用的离线控制台,并安装游戏,在测试过程中,确保控制台未连接到 Xbox Live 服务。
  3. 对于游戏支持的每个分级正文:将脱机控制台设置为在控制台设置中由该分级主体管理的一个位置/国家/地区,登录到启用了相应年龄限制的 Xbox 配置文件,然后启动游戏以验证:
    • 如果档案的年龄分级值设置为低于游戏的年龄分级证书值,系统则将质询用户。
    • 如果档案的年龄分级值等于游戏的年龄分级证书值,系统则不会质询用户并且游戏在显示初始的法律/许可屏幕后启动。

预期结果
在控制台区域设置匹配游戏所支持的每个年龄分级区域的情况下:

  • 如果使用年龄分级值设置低于游戏的年龄分级证书值的主机启动游戏,游戏则必须质询用户。
  • 如果使用年龄分级值设置等于游戏的年龄分级证书值启动游戏,游戏则必须在不质询用户的情况下启动。

XR-018:用户生成的内容 *

用户生成的内容是用户参与应用或产品的内容,并可通过联机状态由其他用户查看或访问。 如果产品包含 UGC,则必须:

  • 发布并向用户提供产品服务条款和/或“用户生成内容”的内容指南,无论是在游戏中还是在游戏的网站上。
  • 如果违反内容指南并/或实施主动检测不当或有害 UGC 的方法(例如,文本筛选),则为用户提供向开发人员报告产品中不当或有害内容的方式,以便审阅和删除/禁用。
  • 当 Microsoft 请求时,游戏必须删除/禁用 UGC。
  • 轻松处理用户在游戏中无权访问 UGC 的情况。
  • 与第三方模块平台集成的游戏必须与产品的报告/投诉 API(如果可用)集成,并且必须根据相应的第三方合同的要求审查内容。 与第三方模块平台集成的游戏必须向用户提供免责声明、对话框或可视提示(如果内容不是来自开发人员)。

018-01 报告不适当内容和 UGC 文本字符串验证

测试步骤

  1. 确定可以在非 Xbox 好友之间输入文本并之后可由其他设备上的用户查看的任何游戏区域。
  2. 确认游戏提供了一种方法来方便用户将其他用户的不适当内容报告给该游戏或 Microsoft。
  3. 如果没有用于报告不适当内容的方法,则在每个区域中,输入已发布的禁用词列表中的字符串或者子字符串等。
    • 直接输入禁用词(例如“BannedWord”)。
    • 输入一个禁用词,并且用空格将其与另一个非禁用词分隔开来(例如“Good BannedWord”)。
  4. 如果该游戏允许在离线状态下创建 UGC(例如角色名称),则将设备与网络断开、输入禁用词组合,然后重新连接到网络。
  5. 确认不适当的字符串对于其他设备上的任何其他用户而言不可见。
  6. 对该游戏支持的每种语言重复执行步骤 3-5,并且使用来自匹配的区域设置的禁用词。

预期结果
游戏必须提供一种方法以便用户报告其他用户的不适当内容;或者必须通过错误消息阻止不适当语言,或者用非冒犯性的替代词语替代/屏蔽冒犯性词语。

通过示例

  1. 不筛选在游戏中(例如大厅或者游戏文本重叠中)实时共享或者仅在好友之间共享的用户输入的短信。
  2. 游戏提供了一种方法来方便用户将其他用户的不适当内容报告给该游戏或 Microsoft。
  3. 该游戏禁止不适当语言的发布,并将通知用户发布失败的原因。
  4. 该游戏会用替代词语或字符(例如 [BLOCKED] 或 [!$%and£$])替代任何不适当词语。
  5. 本地主机上的用户能够看到冒犯性字符串,但它们不会越过本地主机传输到其他非 Xbox 好友。

失败示例

  1. 游戏未提供一种方法来供用户报告其他用户的不适当内容,并且其他主机上的非 Xbox 好友可看到不恰当字符串。
  2. 游戏允许用户通过在离线状态下创建 UGC 来规避游戏的不适当内容筛选。

内容包和更新

此类别中的要求指定 Xbox One 游戏必须采用何种方式打包以及必须如何与附加内容交互。

XR-034:流式安装初始游戏标记 *

从初始游戏标记启动时,包含初始游戏标记的游戏必须提供游戏体验。

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

034-01 流式安装

测试步骤

  1. 登录到 Xbox 档案。
  2. 安装游戏并在初始游戏标记安装完成后启动游戏。
  3. 在游戏完全安装完成之前尝试进入游戏的所有区域。

预期结果
初始游戏标记安装必须提供游戏体验(例如,教程、第一级游戏或在一个游戏模式下的快速多人游戏)。

通过示例

  1. 当从初始游戏标记启动时,游戏将提供游戏体验(例如,教程、第一级游戏或在一个游戏模式下的快速多人游戏)。

失败示例

  1. 安装初始游戏标记后,游戏未提供游戏体验。 失败体验包括:
    • 只显示进度栏
    • 播放视频和/或一系列图像
    • 仅提供对主菜单的访问权限
    • 任何其他非交互式体验

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

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

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

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 上重复步骤 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. 安装时,标题不允许访问可选内容。

XR-123:在玩游戏期间安装/解锁游戏附加内容或易耗品 *

提供可下载内容 (DLC) 的游戏必须允许用户无需终止并重新启动该游戏即可下载/解锁和使用可下载内容。

有关在游戏中访问和枚举 DLC 的详细信息,请阅读“可下载内容 (DLC) 包”部分

123-01 在玩游戏期间安装/解锁游戏附加内容或易耗品

测试步骤

  1. 启动该游戏并且继续玩活动游戏。
  2. 从 Microsoft Store 开始购买游戏附加内容或易耗品。
  3. 允许在后台完成下载。
  4. 确保用户能够继续玩游戏并且该游戏不会受到后台下载完毕的影响。
  5. 确保无需终止并重新启动该游戏即可使用这些内容。
  6. 当游戏受到约束时在下载完毕的情况下重复步骤 1-5。
  7. 当游戏暂停时在下载完毕的情况下重复步骤 1-5(等待至少 30 秒以便游戏完全暂停以及让暂停中断任何 HTTP 请求)。
  8. 如果游戏支持游戏内商店功能,请使用此功能重复步骤 1-5,以开始附加内容或游戏下载。

预期结果
提供游戏附加内容或易耗品的游戏必须允许用户无需终止并重新启动该游戏即可下载和使用内容。

通过示例

  1. 用户无需终止并重新启动该游戏即可下载和使用这些内容。
  2. 该游戏通过游戏内提示来提示用户返回到某一菜单,以便加载新 DLC。

失败示例

  1. 用户必须终止并重新启动该游戏,才能使用这些内容。

123-02 在流式安装过程中安装/解锁主游戏包中包含的游戏附加内容或易耗品

测试步骤

  1. 验证游戏是否支持游戏附加内容或易耗品。
  2. 在进行完整游戏安装之前安装各类型的游戏附加内容或易耗品。
  3. 开始安装主要游戏软件包并且通过初始游戏标记启动(如果支持某一游戏标记)。
  4. 在游戏完成安装之前尝试使用 DLC。

预期结果
用户应该能够看到他们有权访问游戏附加内容或易耗品,并且如果他们尝试玩游戏,则该游戏必须允许使用,或者通知用户该游戏必须完全安装后才能使用 DLC。

通过示例

  1. 用户可以看到他们有权访问这些内容。
  2. 如果用户尝试使用这些内容,将通知用户游戏仍在安装中。

失败示例

  1. 该内容不可见。
  2. 该内容可见,但在用户尝试使用该内容时未提供原因。

XR037:对内容包的依赖关系 *

不得要求用户必须购买附加内容(耐用型或易耗型)才能使用基础游戏的任何主要功能或内容。 可选内容包对其他可选内容包不得具有依赖关系。 即不得要求用户必须下载额外的内容包才能使用某一内容包。 包含与附加内容绑定的唯一内容的游戏存档仍必须在基础游戏上加载,或者提供明确的消息来解释无法加载的原因。

037-01 基础游戏没有内容包存档-游戏依赖关系

测试步骤

  1. 登录到某一 Xbox 档案并且启动游戏。
  2. 尝试访问基础游戏的所有功能和内容。 确认未要求用户下载任何附加内容。
  3. 下载可以在游戏中使用的可用内容包。
  4. 加载并使用内容包,玩游戏至一定的进度来创建基于内容的游戏存档。
  5. 返回到主页,然后删除此内容包。
  6. 再次启动游戏。
  7. 确保可以成功加载游戏存档并且能够继续玩游戏,或明确告知用户无法继续游戏的原因。
  8. 消息必须清晰易懂,并且必须专门告知用户解决此问题的方法。
  9. 对所有其他受支持的内容包重复步骤 1-8。

预期结果
用户必须能够在无需购买附加内容的情况下使用基础游戏的所有主要功能和/或内容。 在用户删除内容包后,游戏必须可以正常运行,或必须明确告知用户游戏无法正常运行的原因。

通过示例

  1. 用户能够在无需购买附加内容的情况下使用基础游戏中包含的所有主要功能和内容。 用户删除内容包后,可以正常玩游戏的所有方面内容。
  2. 在内容包提供的区域内创建存档并随即将此内容包删除后,游戏会向用户发送明确的消息,说明需要安装内容x 才能加载游戏存档。 游戏还可以查询了解用户是否有权访问该内容,并执行以下操作之一:
    • 提示用户下载特定内容(如果已拥有)。
    • 提示用户可能需要购买该内容(如果未拥有)。

失败示例

  1. 用户被强迫购买附加内容才能使用基础游戏中包含的功能和内容。 当用户在步骤 3 中下载内容包 1 和内容包 2 后,如果随后删除内容包 1,则会丧失在游戏中使用内容包 2 的能力。
  2. 如果存在内容存档游戏依赖项且未安装相应内容,游戏不会向用户发送明确的消息,说明需要安装相应内容才能加载游戏存档。

037-02 对其他内容包不具有任何依赖关系

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 下载此游戏支持的某一单独的附加内容。
  4. 尝试在游戏中使用此内容。
  5. 验证用户是否不需要下载其他内容即可使用步骤 3 中的内容。
  6. 退出游戏并删除步骤 3 中的内容。
  7. 对游戏支持的每个内容重复步骤 2-6。

预期结果
不得要求用户必须下载额外的内容包才能使用某一内容包。 必须使他们能够自行使用内容包。

通过示例

  1. 游戏不要求用户下载额外的内容才能使用单独的内容包。

失败示例

  1. 要求用户必须下载额外的内容才能使用单独的内容包。

037-03 DLC 依赖关系

测试步骤

  1. 登录到 Xbox 档案。
  2. 下载游戏的可下载内容 (DLC)。
  3. 玩一段时间游戏并使用 DLC 保存进度。
  4. 退出游戏。
  5. 从主机删除 DLC。
  6. 启动游戏并且尝试访问已保存的进度。

预期结果
如果已卸载 DLC,游戏仍正常处理使用该 DLC 创建的游戏保存副本。

通过示例

  1. 用户可加载自己保存的进度并与游戏交互而不出问题。
  2. 通知用户需要特定 DLC 才能访问自己保存的游戏。

失败示例

  1. 当 DLC 不存在时,游戏变得不可用。
  2. 用户无法访问保存的进度,也不会收到有关原因的通知。

037-04 多人游戏 DLC

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 主机 A:下载在多人游戏中可用的所有可下载内容。
  4. 主机 A:使用可下载内容(级别、角色、车、赛道等)托管某个 Xbox 游戏会话。
  5. 主机 B:使用所有可能的方法尝试加入主机 A 创建的游戏会话。
  6. 如果无法加入游戏会话,请验证是否清晰地说明无法加入的原因或可轻松推断出该原因。
  7. 对所有游戏模式重复步骤 3-6。
  8. 使用主机 B 作为主机重复步骤 3-6。

预期结果
对于支持玩多人游戏所需的可下载内容的游戏,必须为没有安装可下载内容的用户提供清晰的指示。

通过示例

  1. 对于尝试加入具有 DLC 要求的会话的用户,如果他们没有满足要求,必须为他们显示正确的消息,提供有关如何解决问题的信息(下载、重新下载等)。
  2. 对于尝试加入具有 DLC 要求的会话的用户,如果他们没有满足要求,通过使用图标和/或其他屏幕元素为用户提供清晰的通知,或可以轻松地推断有关如何解决问题的信息(下载、重新下载等)。
  3. 对于满足多人游戏匹配的 DLC 要求的用户,则可以加入会话和玩游戏。

失败示例

  1. 对于不满足多人游戏会话的 DLC 要求的用户,没有为其给出清晰的视觉指示 DLC 要求是什么以及如何解决问题。
  2. 满足 DLC 多人游戏会话要求的用户无法同时加入游戏。

通过游戏内的商店和 Microsoft Store 购买

此类别中的要求指定如何通过游戏内商店和 Microsoft Store 进行购买。 有关定价、元数据和优惠的政策,请参阅游戏发布指南

XR-036:游戏中定价信息 *

在一个游戏中显示的任何现实世界中的货币价格(包括但不限于基于任何促销或订阅的折扣)必须源自 Xbox 目录。

有关 GDK 与游戏商务的详细信息,请参阅商务

036-01 内容价格验证

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 访问此游戏中显示价格的所有区域。
  4. 确认显示的价格与 Xbox 目录中的价格一致。
  5. 终止游戏并为下一个受支持的分发区域重新配置语言、语言区域和位置系统设置。
  6. 对所有支持的分发区域重复步骤 1-4。

预期结果
游戏中内容的显示价格应与此相同的内容在 Xbox 目录中的价格一致。

通过示例

  1. 游戏中内容的显示价格与 Xbox 目录中的价格一致。

失败示例

  1. 游戏中内容的显示价格与 Xbox 目录中的价格不一致。

用户配置文件

此类别中的要求适用于游戏与 Xbox 用户模型、配置文件和保存用户数据之间的交互方式。

XR-112: 在初始激活和恢复期间建立用户和控制器 *

游戏必须建立一个或多个活动用户以充当此游戏中的一个或多个主要用户,并在从挂起和约束模式下恢复时处理用户。 游戏通过 GDK 使用简化或高级用户模型来执行此操作。

GDK 简化用户模型游戏

GDK 中的简化用户模型代表游戏处理默认用户获取。 标题仍然负责确保将控制器分配给用户,并使用该控制器进行游戏输入。 如果未向默认用户分配任何控制器,则标题应该使用 XUserFindContro使用ForUserWithAsync 来参与系统对话框以选择控制器并开始接受播放器输入。

GDK 高级用户模型、ERA、UWP 多用户应用程序

在初始激活时,游戏可以选择根据其游戏设计和首选项(使用启动该游戏的用户或通过明确提示用户)来确定初始用户。

标题必须指示活动用户,才能对该用户的配置文件执行第一个与配置文件相关的操作(例如保存进度或设置)。

使用高级用户模型,ERA、UWP 多用户应用程序 (MUA) 游戏的所有 Microsoft 游戏开发工具包 (GDK) 游戏都必须为帐户选择器提供一个入口点,以更改活动用户。

当某一游戏从挂起或约束模式下恢复时,该游戏必须恢复之前用户的会话或获取新用户,从而确认用户/控制器配对并相应地作出反应。

注意

下表显示了如果使用 GDK 简化用户模型或 GDK 高级用户模型、ERA 和 UWP 多用户应用程序,则 XR-112 的测试用例适用于您的游戏。

测试用例 适用于 GDK 简化用户模型 适用于 GDK 高级用户模型、ERA、UWP MUA
112-02 初始用户和控制器
112-03 未登录用户
112-04 活动用户指示
112-05 对帐户选取器的访问
112 06 处理档案更改
112-07 约束模式期间的用户更改
112-08 挂起期间的用户更改

112-02 初始用户和控制器

测试步骤

  1. 登录到档案 A 并且启动该游戏。
  2. 验证活动用户能否控制标题。
  3. 在未登录档案时重复步骤 1,然后验证游戏是否提示建立活动用户。
  4. 建立活动用户并验证用户是否可控制标题。

预期结果
标题必须将活动用户设置为启动标题的控制器/用户配对,或者显示参与提示以识别控制器和用户,或显示要登录的帐户选取器。

通过示例

  1. 标题将活动用户设置到启动标题的控制器/用户配对。
  2. 该游戏显示一个参与提示以便标识控制器和用户。
  3. 该游戏显示帐户选取器以便登录。

失败示例

  1. 标题不允许用户使用所使用的第一个控制器控制标题。
  2. 在未登录用户启动时,标题不会提示用户建立活动用户。

112-03 未登录用户

测试步骤

  1. 确认没有用户登录。
  2. 启动游戏并且进入支持用户数据保存的每个模式。
  3. 确认每个模式都向用户提供在发生任何数据丢失前登录的机会。
  4. 取消登录机会,并且确认该游戏提供一个警告,指示将不保存进度。

预期结果
如果游戏处于通常将保存用户数据或游戏状态的模式,则游戏必须向用户提供登录机会。 游戏必须通知用户如果其在未登录的情况下继续玩游戏,将不会保存其进度

通过示例

  1. 在访问通常会保存用户数据或游戏状态时将提示未登录的用户登录。
  2. 如果用户继续处于未登录的模式下,则通知用户将不保存进度。

失败示例

  1. 在处于通常保存用户数据或游戏状态的模式中时,如果用户继续处于未登录的模式下,将不通知用户将不保存进度。
  2. 用户会收到通知,指出在发生数据丢失后他们将不能保存其进度。

112-04 活动用户指示

测试步骤

  1. 登录到之前没有见到游戏并且没有关联的存档数据的一个档案。
  2. 启动游戏。
  3. 确认在执行任何档案相关操作之前游戏在 UI 内标识活动用户。 “档案相关操作”的示例包括更改用户的已保存游戏或首选项、将数据保存到用户的档案、奖励成就、撰写用户的统计数据,或者用户数据或状态的任何其他本地或云使用或操作。
  4. 创建一个保存。
  5. 重新启动该游戏并且确认在执行任何档案相关操作之前游戏在 UI 内标识活动用户。
  6. 与 Xbox 网络断开连接。
  7. 重新启动该游戏并且确认在执行任何档案相关操作之前游戏在 UI 内标识活动用户。

预期结果
游戏必须在第一个档案相关操作之前指示当前用户上下文。

通过示例

  1. 该游戏在执行任何档案相关操作之前在游戏内显示用户的玩家代号和/或玩家图片。
  2. 不使用用户档案的游戏不指示活动用户。
  3. 游戏为支持多个用户的游戏模式显示多个活动用户。

失败示例

  1. 该游戏在执行任何档案相关操作之前不指示游戏的活动用户。

112-05 对帐户选取器的访问

测试步骤

  1. 登录到某一档案并且启动游戏。
  2. 确认标题允许活动用户访问标题中的帐户选取器,并选择其他配置文件。

预期结果
标题必须允许用户访问标题中的帐户选取器,以更改活动用户。

通过示例

  1. 标题允许用户访问标题中的帐户选取器。

失败示例

  1. 标题不允许用户访问标题中的帐户选取器。

112 06 处理档案更改

测试步骤

  1. 登录到某一档案并且启动游戏。
  2. 访问帐户选取器并选择不同的档案。
  3. 确认该游戏相应地做出反应并且将活动用户的上下文切换到新档案。
  4. 对游戏中有权访问帐户选取器的每个位置重复步骤 1-4。

预期结果
游戏必须允许用户无缝地更改为另一用户的上下文。

通过示例

  1. 游戏通知用户更改活动用户可能会导致数据丢失,并提示用户在继续使用帐户选取器之前进行确认。
  2. 该游戏会相应地更新到新的活动用户的上下文。

失败示例

  1. 游戏没有相应地更新到新的活动用户的上下文。

112-07 约束模式期间的用户更改

配置:
使用 GDK 中的 xbapp list 返回游戏的应用程序包全名 (PFN)。

测试步骤

  1. 登录到档案 A 并且启动该游戏。
  2. 在该游戏中的不同位置,按 Xbox 按钮并选择“主页”来约束该游戏。
  3. 通过 running xbapp query [PFN] 验证游戏是否已进入约束状态。
  4. 在该游戏受到约束时,注销档案 A,然后登录到档案 B。
  5. 通过从主页中选择相应磁贴恢复该游戏。
  6. 确认该游戏相应地对新的活动用户做出反应。

预期结果
当游戏从约束模式恢复时,游戏必须验证所有以前参与的用户是否仍登录到该主机。

通过示例

  1. 应用程序在恢复时自动将活动用户上下文切换到档案 B。
  2. 游戏自动从游戏中删除档案 A,或者重新建立一个新用户并且使用该新用户的状态来玩游戏。

失败示例

  1. 游戏不会更新以便作为活动用户从上下文中删除档案 A。
  2. 在选择了一个新的档案后,游戏继续使用档案 A 的状态来玩游戏。

112-08 挂起期间的用户更改

配置:
使用 GDK 中的 xbapp list 返回游戏的应用程序包全名 (PFN)。

测试步骤

  1. 登录到档案 A 并且启动该游戏。
  2. 在该游戏内的不同位置,通过使用 xbapp suspend [PFN] 暂停游戏。
  3. 等待至少 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  4. 通过运行 xbapp query [PFN] 确认该游戏已进入暂停状态。
  5. 在该游戏被挂起时,注销档案 A,然后登录到档案 B。
  6. 通过从主页中选择相应磁贴恢复该游戏。
  7. 确认该游戏相应地对新的活动用户做出反应。
  8. 使用新的活动用户进入游戏,然后确认用户能够继续玩。

预期结果
当一个游戏从挂起模式下恢复时,该游戏必须确认所有以前参与的用户仍登录到该主机。

通过示例

  1. 应用程序在恢复时自动将活动用户上下文切换到档案 B。
  2. 游戏自动从游戏中删除档案 A,或者重新建立一个新用户并且使用该新用户的状态来玩游戏。

失败示例

  1. 游戏不会更新以便作为活动用户从上下文中删除档案 A。
  2. 在选择了一个新的档案后,游戏继续使用档案 A 的状态来玩游戏。

XR-115:在玩游戏期间添加和删除用户或手柄 *

支持多个用户的标题必须对用户的添加和删除或活动玩家在游戏过程中未分配控制器或控制器丢失的情况做出响应,如下所示:

控制器添加:
在游戏选择或已提供初始用户和控制器后,游戏可以选择接受来自其他控制器的输入。 支持多人游戏体验的游戏应考虑如何将其他玩家或控制器添加到游戏中,并将其绑定到具有 XUserAddAsync 的用户。 例如,在玩家选择屏幕上“按 A 加入”或阐释控制器剪影。

控制器删除:
如果在玩游戏期间删除了正在驱动游戏的玩家控制器,则游戏必须允许重新建立新的活动控制器(例如,“按 A 继续”或对具有有效控制器的活动用户接收 ERA 中的 ControllerPairingChanged,或者接收 GDK 中的 XUserDeviceAssociationChangedCallback 事件)。 游戏还可以使用 XUserFindControllerForUserWithUiAsync 调用系统 UX,以提示用户将控制器与其用户配对并返回游戏。

用户添加:
当使用 ERA 或 UWP 时,如果新的用户登录,则在游戏支持多用户体验的情况下,可以将该用户添加到游戏中,但游戏不得自动将活动用户切换为新用户,或基于新的已登录用户事件中断活动用户的体验。

使用 GDK(使用简化或高级用户模型)时,仅当游戏调用 XUserAddAsync 时才添加用户。

主要用户删除:
对于使用 ERA 或 GDK 高级用户模型的游戏,如果主要用户已注销 (通过指南,SPOP 或其他方式),则游戏必须将玩家从游戏中删除,或重新建立用户和活动控制器。

对于使用 GDK 简化用户模型的游戏,删除主要玩家将导致游戏在系统级别挂起。

在所有场景中,游戏都会通过将游戏置于良好状态来处理删除/关闭。 这包括写入连接的存储、通知用户已离开的任何相关 MPSD 会话,以及将用户转到适当的位置以便登录(如果还没有添加新用户)。

其他/次要用户删除:
游戏可以根据自己的判断来处理此事件,通常是立即将玩家从游戏中移除,或者在使用多人游戏的情况下提示玩家重新加入游戏。

注意

下表显示了如果使用 GDK 简化用户模型或 GDK 高级用户模型、ERA 和 UWP 多用户应用程序,则 XR-115 的测试用例适用于您的游戏。

测试用例 适用于 GDK 简化用户模型 适用于 GDK 高级用户模型、ERA、UWP MUA
115-01 添加用户
115-02 删除控制器
115-03 删除用户

115-01 添加用户 仅适用于擦除和 UWP 多用户应用程序。 使用 GDK,游戏只能看到他们有意添加的用户。 通过 shell 添加的用户对于游戏来说是未知的。

115-01 添加用户

测试步骤

  1. 登录到档案 A,并确保没有其他档案登录。
  2. 启动游戏并开始玩游戏。
  3. 在该游戏使用期间的不同时间点,连接第二个控制器并且登录到档案 B。
  4. 档案 B 将尝试提供对游戏的控制器输入。

预期结果
ERA 或 UWP MUA 游戏不得自动中断活动用户的体验。

通过示例

  1. 游戏不会自动将活动用户切换到新用户或中断活动用户的体验。
  2. 游戏可以根据当前上下文选择允许档案 B 控制该游戏。

失败示例

  1. 该游戏立即将上下文切换到档案 B 作为活动用户。

115-02 删除控制器

测试步骤

  1. 登录到某一档案并且启动游戏。
  2. 在该游戏使用期间的不同时间点,从控制器中取出电池。
  3. 更换控制器中的电池,并确认用户可以继续使用该游戏。
  4. 重复步骤 1-3,但连接第二个控制器,而不是更换电池。

预期结果
游戏必须正确响应对控制器的删除和添加。

通过示例

  1. 在删除或添加某一控制器后,活动用户应该能够继续使用该游戏。
  2. 系统将提示用户重新建立一个新的活动控制器(例如,"按 A 继续",或调用系统用户体验)。

失败示例

  1. 在删除某一控制器后,用户无法继续使用游戏。

115-03 删除用户

测试步骤

  1. 登录到档案 A,并确保没有其他档案登录。
  2. 启动游戏并开始玩游戏。
  3. 在该游戏使用期间的不同时间点,注销档案 A。
  4. 验证游戏是调用帐户选取器还是将用户返回到前端。
  5. 如果可能,通过以下方式与游戏进行交互:
    • 登录到档案 A,并确保游戏不会进一步中断用户体验。
    • 登录到档案 B,并确保游戏更新为新用户的上下文。

预期结果
该游戏必须从游戏中删除该玩家,或者重新建立一个用户和活动控制器。 如果该玩家已从游戏中删除,则游戏应保持良好状态。 这包括写入连接的存储、通知用户已离开的任何相关 MPSD 会话,以及将用户转到适当的位置以便登录(如果还没有添加新用户)。

通过示例

  1. 该游戏会将玩家从游戏中删除,并返回到前端。
  2. 游戏允许用户重新建立新用户并正确更新相关的用户上下文。

失败示例

  1. 游戏未能对用户状态中的变化作出响应。
  2. 选择新的档案后,游戏继续使用档案 A 的用户状态。

XR-045:Xbox Live 和帐户权限 *

Xbox 网络向用户提供针对其自身和其孩子的期望级别的隐私和在线安全。 为了兑现该承诺,游戏必须检查 Xbox 网络服务的权限,以便在 Xbox 网络服务上或某一游戏体验中完成某些操作。

虽然所有帐户都要检查和遵循特权,但请务必特别注意子女帐户的体验和期望。 对于子女帐户,由于孩子的家庭组织者(家长或监护人)基于年龄的默认设置和/或配置,因此可能会阻止对某些活动的限制。 但是,对于某些活动,子女无法自行进行更改,并且游戏应调用必要的系统 UI,以允许青少年玩家通过该关联活动的审批流程请求例外待遇。 例如,在这种情况下,可能会阻止青少年玩家进行全球多人游戏,但家庭家长或监护人可以通过系统 UI 批准特定游戏的多人游玩;然后,孩子就可以并且应该能够访问该特定游戏的此游戏模式。

活动 ID 特权名称 注意
在一个多人游戏会话中玩游戏 254 XPRIVILEGE_MULTIPLAYER_SESSIONS 允许一个用户在下列等情况下与真实用户(而不是机器人)一起加入在线多人游戏会话:同一会话中的同步玩家对玩家游戏、异步的回合制游戏、基于团队的游戏、用户启动的匹配、发送或接受邀请、正在进行中的加入会话。 请注意,此权限与在同一设备上运行的本地多人游戏无关。
跨网络游戏会话玩游戏 185 AuthPrivileges.CrossNetworkPlay 允许用户在以下情况中与未登录到 Xbox 服务的其他真实玩家一同参与游戏会话:同一会话中的同步玩家对玩家游戏、异步的回合制游戏、基于团队的游戏、用户启动的匹配、发送或接受邀请、加入正在进行的会话。
与任何人通信 252 XPRIVILEGE_COMMUNICATIONS 允许用户通过语音或文本与任何其他 Xbox 网络用户通信。
共享的游戏会话 189 XPRIVILEGE_SESSIONS 允许用户在共享环境中或在游戏是混合免费玩游戏和付费多人游戏的情况下参与连接的单玩家体验,并使用此特权来封闭这些体验 Xbox 主机。 单玩家体验不得具有权限 252 或 254(分别是通信和多人游戏)所涵盖的任何功能。 对此权限的使用是一项要求平台许可的游戏功能。
用户生成的内容 (UGC) 247 XPRIVILEGE_USER_CREATED_CONTENT 允许用户在线查看其他用户的 UGC、下载其他用户的 UGC 或者在线共享其自己的 UGC。 这并不会限制对之前下载的 UGC 的使用。
共享到某一社交网络 220 XPRIVILEGE_SOCIAL_NETWORK_SHARING 仅限 Xbox 主机:允许用户在 Xbox 网络外共享信息,包括游戏进度、Kinect 生成的内容以及游戏剪辑等。

可以配置免费试玩游戏、演示版或 beta 版,以允许非 Xbox Game Pass 订阅者的玩家进行多人游戏(ID 254)。 此操作通过服务端配置完成,可以通过联系 Microsoft 代表启动。 这些游戏必须继续检查多人游戏特权,以确保遵循家长控制和玩家的选择。

045-01 尊重用户权限

测试步骤

  1. 登录到某一 Xbox 档案并启动游戏。
  2. 对于在 XR 备注中确定的每个权限,确定游戏是否支持关联的行为。
  3. 对于步骤 2 中确定的每个适用权限的每个可能设置,请执行以下操作:
    • 退出游戏并更改权限的用户设置。
    • 重新启动主机。
    • 登录到相同的档案并且启动该游戏。
    • 访问该游戏的所有相关区域,使用与权限相关的所有游戏功能,并且确认游戏尊重用户的当前权限设置。
    • 尝试使用 Silver Xbox 档案访问所有离线和联机区域。

预期结果
游戏必须遵守用户的权限设置。

通过示例

  1. 该游戏遵守用户的权限设置。
  2. 该游戏将部分允许的权限设置视为该权限被禁用/拒绝(例如,在用户生成的内容 (UGC) 权限设置为“仅好友”时,该游戏的行为就像该权限设置为“阻止”一样)。
  3. 对于使用 XDK 的游戏,游戏会调用系统 UI 来提醒用户任何权限冲突(游戏必须使用 Store::Product::CheckPrivilegeAsync API)。 无法调用系统 UI(特权 252、189、247),游戏将显示一个提示性消息,让用户知道他们不能参与。
  4. 对于使用 GDK 的游戏,游戏会调用系统 UI 来提醒用户任何权限冲突(游戏必须使用 XUserCheckPrivilegeXUserResolvePrivilegeWithUiAsync API)。 无法调用系统 UI(特权 252、189、247),游戏将显示一个提示性消息,让用户知道他们不能参与。
  5. 对于使用 XSAPI 的游戏,游戏将显示一个提示性消息,让用户知道他们不能参与。

失败示例

  1. 游戏保留用户的权限设置,并且不会在其已更改后反映用户的实际权限。
  2. 该游戏将部分允许的权限设置视为该权限设置为限制性最低的设置(例如,在用户生成的内容 (UGC) 权限设置为“仅好友”时,该游戏的行为就像该权限设置为“允许”一样)。
  3. 对于使用 XDK 或 GDK 的游戏,游戏将使用游戏中消息来警告用户存在任何权限冲突,并且不显示系统 UI。
  4. 对于使用 XSAPI 的游戏,游戏将不显示提示性消息来告知用户知道其不能参与。

045-02 尊重用户特权 - Xbox 家庭

测试设置和配置

  • 包含以下 Microsoft 帐户的 Xbox 家庭
  • 指定为组织者的成人(超过 18 岁)。
  • 具有儿童默认特权设置的儿童(低于 13 岁):
活动 儿童默认特权设置
您可以加入多人游戏 Block
你可以加入跨网络游戏 Block
可以使用语音、文本或邀请进行通信 好友
可以在 Xbox 网络之外进行语音和文本通信 Block
您可查看并上传社区作品 Block
你可在 Xbox 之外进行共享 Block

参考以及链接

测试步骤

  1. 登录成人和儿童 Microsoft 帐户,并使用子女帐户启动游戏。
  2. 对于在 XR 备注中确定的每个权限,确定游戏是否支持关联的行为。
  3. 对于步骤 2 中确定的每个适用权限的每个可能设置,请执行以下操作:
    • 根据帐户特权验证是允许/不允许关联的活动。 例如:游戏支持多人游戏,而子女帐户已阻止多人游戏权限。 验证游戏是否阻止了子女的所有多人游戏活动,并且当孩子尝试参与多人游戏活动时,会显示家长特权提示(系统 TCUI)。
    • 退出游戏并更改游戏支持的特权活动的用户子女的特权设置;从阻止到允许。 例如:将多人游戏或用户生成的内容从“阻止”更改为“允许”。
    • 重新启动主机。
    • 登录到相同的档案并且启动该游戏。
    • 访问该游戏的所有相关区域,使用与权限相关的所有游戏功能,并且确认游戏尊重用户的当前权限设置。 例如:游戏支持多人游戏。 子女已被阻止,但现在已被授权多人游玩。 游戏正确允许孩子访问多人游戏模式。
  4. 使用家长帐户在登录到主机时重复步骤 2-3。

预期结果
游戏必须遵守所有 Xbox 家庭成员的特权设置。

通过示例

  1. 游戏遵守儿童的特权设置。
  2. 当允许该活动的特权时,游戏允许儿童参与活动。
  3. 当阻止该活动的特权时,游戏不允许儿童参与活动。
  4. 在家长(通过家长特权 UI)允许被阻止的活动的特权后,游戏允许儿童参与该活动。
  5. 游戏不允许儿童参与被阻止的活动,并且家长(通过家长特权 UI)不允许该活动的特权。
  6. 该游戏将部分允许的权限设置视为该权限被禁用/拒绝(例如,在用户生成的内容 (UGC) 权限设置为“仅好友”时,该游戏的行为就像该权限设置为“阻止”一样)。
  7. 对于使用 XDK 的游戏,游戏会调用系统 UI 来提醒用户任何权限冲突(游戏必须使用 Store::Product::CheckPrivilegeAsync API)。 无法调用系统 UI(特权 252、189、247),游戏将显示一个提示性消息,让用户知道他们不能参与。
  8. 对于使用 GDK 的游戏,游戏会调用系统 UI 来提醒用户任何权限冲突(游戏必须使用 XUserCheckPrivilege 和 XUserResolvePrivilegeWithUiAsync API)。 无法调用系统 UI(特权 252、189、247),游戏将显示一个提示性消息,让用户知道他们不能参与。
  9. 对于使用 XSAPI 的游戏,游戏将显示一个提示性消息,让用户知道他们不能参与。

失败示例

  1. 游戏不遵守儿童的特权设置。
    • 示例:游戏支持多人游玩,并允许被阻止多人游戏的儿童访问多人游戏模式。
  2. 游戏不会调用适当的 UI 来发出警报并通知儿童存在特权冲突。
    • 示例:游戏支持多人游玩,但是当特权被阻止时,永远不会提示孩子提供家长特权。
  3. 当阻止该活动的特权时,游戏允许儿童参与活动。
  4. 当允许该活动的特权时,游戏不允许儿童参与活动。
  5. 游戏允许儿童参与被阻止的活动,并且家长(通过家长特权 UI)不允许该活动的特权。
  6. 游戏不允许儿童参与被阻止的活动,并且家长(通过家长特权 UI)允许该活动的特权。
  7. 游戏保留用户的权限设置,并且不会在其已更改后反映用户的实际权限。
    • 例如:游戏支持多人游玩。 已阻止儿童帐户进行多人游戏,但由家长通过系统 UI 授予特权。 即使已授予特权,游戏仍会继续阻止多人游戏。
  8. 游戏将部分允许权限设置视为其最不严格的权限设置。 例如:当用户生成的内容 (UGC) 特权设置为“仅好友”时,游戏的行为就像特权设置为“允许”一样。
  9. 对于使用 XDK 的游戏,游戏不会调用系统 UI 来提醒用户任何权限冲突(游戏必须使用 Store::Product::CheckPrivilegeAsync API)。 无法调用系统 UI(特权 252、189、247),游戏不会显示一个提示性消息,让用户知道他们不能参与。
  10. 对于使用 GDK 的游戏,游戏不会调用系统 UI 来提醒用户任何权限冲突(游戏必须使用 XUserCheckPrivilegeXUserResolvePrivilegeWithUiAsync API)。 无法调用系统 UI(特权 252、189、247),游戏不会显示一个提示性消息,让用户知道他们不能参与。
  11. 对于使用 XSAPI 的游戏,游戏将不显示提示性消息来告知用户知道其不能参与。

XR-046:显示名称和玩家图片 *

在 Xbox 主机上,游戏必须使用玩家代号作为主要显示名称。

根据设计选择,游戏可以在玩家现代玩家代号或其经典玩家代号之间进行选择。 GDK 中提供新式玩家代号,经典玩家代号在 ERA 和 GDK 中均可用。

在非主机平台上,虽然不是必需的,但我们建议你在游戏体验内的适当位置使用 Xbox 网络玩家的玩家代号。

玩家代号必须基于使用的玩家代号类型在游戏中正确显示:

现代玩家代号
显示唯一现代玩家代号的全部 16 个字符,包括现代玩家代号的最多 12 个字符,然后是 # 和后缀号(如果存在)。 例如:Major Nelson(没有后缀)或 Major Nelson #881。 如果使用的是现代玩家代号,则必须支持所有适用于现代玩家代号的 Unicode 字符范围。 有关更多新式玩家代号信息和最佳做法,请访问 GDK 开发文档文章“新式玩家代号概述”。

经典玩家代号
正确显示经典玩家代号的全部 15 个字符。 经典玩家代号只能包含 ASCII 字符 a-z、A-Z、0-9、逗号 (,) 和空格(ASCII 字符 0x20)。 例如:Major Nelson

在 GDK 中,使用 XUserGetGamertag API 返回这些项。 在 ERA 中,使用 GetUserProfileAsync API 获取玩家代号。

046-01 显示名称和玩家图片

所需工具

  • GDK 中的 XblTestAccountGui.exe

准备
为以下每个名称创建四个测试帐户,并使用 XblTestAccountGui.exe 将每个测试帐户的玩家代号更改为以下内容:

  • สฐ众нь컴퓨
  • आथाώঙぁヺ
  • øÜêþЯЂў
  • gttest1

测试步骤

  1. 找到并查看游戏中显示玩家代号的区域。
  2. 查看用户玩家代号在步骤 [1] 中标识的所有区域中的显示方式。
  3. 如果游戏显示用户的图片,请确认 Microsoft 帐户图片或每个帐户的玩家图片均显示正确。

预期结果
必须正确显示用户的玩家代号。

通过示例

  1. 使用现代玩家代号时,玩家代号正确显示 Unicode 字符(包括自动生成的后缀)。
  2. 使用经典玩家代号时,会正确显示玩家代号。

失败示例

  1. 玩家代号根本不会呈现,因为 Unicode 字符显示为空白字符。
  2. 使用经典玩家代号时,无法正确显示玩家代号。

XR-047:用户档案访问 *

游戏必须向用户提供选项,以便无论在哪里枚举用户的显示名称,都可以访问其他 Xbox 网络用户的玩家卡片。

047-01 用户档案访问

测试步骤

  1. 设备 1 和 2:启动游戏。
  2. 设备 1 和 2:登录到某一 Xbox 档案。
  3. 设备 1:设置 Xbox 多人游戏会话。
  4. 设备 2:找到并加入主机 1 创建的游戏会话。
  5. 在设备 2 已加入该游戏会话后确认以下方面:
  • 从游戏前大厅,通过选择其他 Xbox 用户的玩家代号访问该用户的玩家卡片。
  • 在玩游戏期间,尝试通过选择其他 Xbox 用户的玩家代号访问该用户的玩家卡片。 (这不一定可行,具体取决于游戏。)
  • 从游戏后统计信息屏幕,通过选择其他 Xbox 用户的玩家代号访问该用户的玩家卡片。
  • 从排行榜区域,通过选择其他 Xbox 用户的玩家代号访问该用户的玩家卡片。
  • 找到列出玩家代号的任何其他区域,然后尝试通过选择其他 Xbox 用户的玩家代号访问该用户的玩家卡片。

预期结果
预期用户将能够查看其他 Xbox 用户的玩家卡片信息。

通过示例

  1. 用户能够在显示玩家代号并启用了 UI 导航的所有位置访问其他 Xbox 用户的玩家卡片。

失败示例

  1. 用户无法在显示玩家代号并启用了 UI 导航的任何位置访问其他 Xbox 用户的玩家卡片。

XR-048:档案设置用法 *

Xbox 网络是 Xbox 用户配置文件信息的真实来源。 为了支持这一点,游戏不得存储来自 Xbox 网络的用户信息,例如配置文件数据、首选项或玩家代号,而不是用于支持网络断开连接方案的本地存储缓存。 必须在与服务建立下一个可用连接时更新任何脱机缓存。

048-01 档案设置用法

配置

  • 2 个 Xbox 设备

测试步骤

  1. 选择某一档案并创建存档。
  2. 更改用户档案数据,包括更新玩家代号或帐户名称。
  3. 启动游戏,并加载步骤 [2] 中创建的存档。
  4. 确认游戏过程中可见的用户档案数据已发生更改,并且未存储在存档游戏中。
  5. 确认对玩家代号的所有引用(由游戏自动创建)已更新。 这包括任何对服务器托管功能的引用以及游戏内的引用。
  6. 在另一台设备上启动游戏,并验证更新的玩家代号是否正确显示。

预期结果
不得存储用户档案数据。 例如,如果游戏使用游戏内 ((如欢迎消息) )或非 Xbox 服务器 ((例如将上传的数据命名为) ),则如果用户更改其玩家代号,则该玩家代号不得保留。 如果用户手动输入了玩家代号,则不适用。

通过示例

  1. 用户档案数据和首选项设置更改后,所有显示内容中都进行了相应的更新。

失败示例

  1. 针对本地存储的存档数据(例如重播、存档、选项、地图和团队数据),游戏在游戏内或 Xbox 主页上均不显示用户更新后的玩家代号或 Microsoft 帐户名称。
  2. 针对游戏剪辑、重播和排行榜等永久性帖子或消息、公告帖、用户挑战、服装、主题、涂装、锦标赛和联赛等其他自定义帖子,游戏未更新用户在其中的玩家代号。 注意:这适用于新创建的帖子和之前创建的帖子。
  3. 游戏存储用户保存数据的玩家代号,例如重播、保存、选项、地图和团队,导致如果用户更改其玩家代号或帐户名,则保存数据变得不可用。

XR-052:用户状态和游戏保存位置、漫游和依赖项 *

游戏必须将进度、存档状态、首选项、成就以及其他奖励与记录了此进度、选择了这些首选项或者赢得了这些奖励的用户相关联。 游戏通过正确处理用户更改通知完成此操作。 游戏必须避免保存不再登录的用户的状态。 游戏存档数据对共享内容或本地存储不得具有任何依赖关系。

对于跨平台、设备和/或主机世代使用相同 TitleID 的游戏,用户登录 Xbox 网络时游戏保存进度必须漫游,如下所示:

  • 在同一平台内(Xbox 主机)。
  • 在同一平台的设备内(例如 Xbox One 和 Xbox One S)。
  • 跨设备平台中的各世代(例如 Xbox One 和 Xbox Series X|S)。
  • 跨 Windows 平台中的电脑(例如,在两个不同的电脑之间)。
  • 在各个 Windows 和 Xbox 主机平台上(例如 Windows 和 Xbox Series X|S),不需要进行游戏保存漫游,但建议进行漫游以支持玩家的体验。
  • 对于非 Microsoft 平台(例如 iOS、Android、Switch、PlayStation®),不需要进行游戏保存漫游,但建议进行漫游以支持玩家的体验。

注意

下表显示了在使用 GDK 简化用户模型或 GDK 高级用户模型、ERA 和 UWP 多用户应用程序时,哪些测试用例适用于你的游戏。 有关使用简化用户模型与高级用户模型的其他详细信息,请参阅 XR-112

测试用例 适用于 GDK 简化用户模型 适用于 GDK 高级用户模型、ERA、UWP MUA
052-01 用户登录和注销
052-02 已挂起或终止状态期间的用户更改
052-05 正确的用户关联
052-06 云存储:漫游

052-01 用户登录和注销

配置:
此测试用例仅适用于主机。 对于 Xbox 设备,可以使用 xbuser 命令行实用工具来随时测试登录或注销的用户。

  • xbuser signin /i:\<user ID> [/p:password]
  • xbuser signin /e:\<email> [/p:password]
  • xbuser signout /i:\<user ID> [/p:password]
  • xbuser signout /e:\<email> [/p:password]

测试步骤

  1. 请确保档案 A 和档案 B 已将主机设置为“常用”。
  2. 确保档案 A 具有包括游戏进度和用户首选项在内的保存数据。
  3. 确保档案 B 没有任何保存数据。
  4. 登录到档案 A 并且启动该游戏。 通过访问游戏的所有区域,包括但不限于以下区域,确保所有保存数据和首选项都已保留:
    • 单人或多人游戏会话。
    • 菜单。
    • 视频或音频播放。
  5. 注销档案 A 并登录到档案 B。
  6. 通过重新访问在步骤 4 中确认的所有游戏区域,确认该游戏正确更新了档案 B 的用户进度、保存的状态、首选项、成就或其他奖励。
  7. 开始玩游戏以便创建保存进度,并且更改档案 B 的用户首选项。
  8. 终止后重新启动该游戏,并且确认准确反映了来自步骤 7 的保存数据。
  9. 注销档案 B。
  10. 从档案 A 中删除保存数据“Everywhere”,然后重复步骤 4-8。

预期结果
对主要用户的更改应该由游戏相应处置。

通过示例

  1. 在某一用户更改后,用户进度、保存的状态、首选项、成就或其他奖励将与正确的用户相关联。

失败示例

  1. 在某一用户更改后,该游戏错误地将用户进度、保存的状态、首选项、成就或其他奖励与某一用户相关联。
  2. 该游戏继续将保存数据奖励给第一个用户。
  3. 一个新用户可以在之前用户已注销后更改其保存数据、状态或档案。

052-02 已挂起或终止状态期间的用户更改

配置:
此测试用例仅适用于主机。 要测试进程周期管理 (PLM) 状态转换,可在 GDK 中使用以下命令:

  • xbapp suspend [package full name]
  • xbapp resume [package full name]

注意:如果你更愿意使用 GUI 而不是命令提示符,请考虑使用 Xbox One 管理器。 它是一种桌面应用程序,可用于管理用户和测试您的主机上的 PLM 事件以及其他常见任务。

测试步骤

  1. 登录到某一档案并且启动该游戏。
  2. 访问该游戏的所有方面,包括但不限于:
    • 单人或多人游戏会话
    • 菜单
    • 视频或音频播放
  3. 运行 xbapp suspend [程序包全名] 以挂起游戏。
  4. 等待至少 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  5. 注销主要用户并以不同的用户身份登录。
  6. 使用新用户启动该游戏,并尝试从以前的用户位置继续。
  7. 对于该游戏的所有区域重复步骤 1-6。
  8. 重复步骤 1–7,但终止游戏而不是让它暂停。

预期结果
对主要用户的更改应该由游戏相应处置。

通过示例

  1. 通过不同用户启动时的游戏状态根据环境适合游戏的类型。
  2. 在某一用户更改后,用户进度、保存的状态、首选项、成就或其他奖励将与正确的用户相关联。

失败示例

  1. 在某一用户更改后,该游戏错误地将用户进度、保存的状态、首选项、成就或其他奖励与某一用户相关联。
  2. 该游戏继续将保存数据奖励给第一个用户。
  3. 一个新用户可以在之前用户已注销后更改其保存数据、状态或档案。

052-05 正确的用户关联

测试步骤

  1. 登录到某一档案并且启动该游戏。
  2. 玩一段时间游戏并保存游戏进度。
  3. 终止游戏。
  4. 从步骤 1 注销该档案并且登录到一个新档案。
  5. 启动游戏并且尝试访问已保存的进度。

预期结果
为原始用户保存的进度不能对新档案可见/可访问。

通过示例

  1. 步骤 5 中仅显示与步骤 4 中的新档案关联的已保存进度。

失败示例

  1. 游戏允许新档案加载不同档案的保存进度。

052-06 云存储:漫游

所需设备:

  • Xbox One
  • Xbox One S
  • Xbox One X
  • Xbox Series X 开发工具包(使用 Xbox Series X|S 零售主机模式)
  • 2 台电脑

测试步骤

  1. 登录到设备 A 上的某一 Xbox 档案并启动游戏。
  2. 开始玩游戏并且生成保存进度(如果可能,通过更改或添加新的设置配置创建一个设置存档)。
  3. 退出游戏。
  4. 使用步骤 1 中使用的相同档案从步骤 1 中使用的相同平台/世代(例如,Xbox Series S 和 Xbox Series X、Xbox One 和 Xbox One S 以及第二台电脑)登录到另一个设备。
    • 启动与步骤 1 相同的游戏,并且确认所有已保存游戏以及任何设置和/或配置文件可以正确访问和加载,并且它们没有任何针对共享内容的依赖关系。
  5. 对于跨世代在同一平台(例如 Xbox One 和 Xbox Series X|S)上使用同一 TitleID 的游戏,重复步骤 4。
  6. 对于在 Windows 平台上使用相同 TitleID 的电脑游戏,请重复步骤 4。
  7. 如果支持,对于跨平台(例如 Windows 和 Xbox Series X|S)使用相同 TitleID 的游戏:
    • 在其他支持的平台上启动与步骤 1 相同的游戏,并且确认所有已保存游戏以及任何设置和/或配置文件可以正确访问和加载,并且它们没有任何针对共享内容的依赖关系。

预期结果
游戏存档进度必须与某一用户档案相关联,并且在用户登录到 Xbox 服务时必须在设备/平台之间漫游。 对于跨代在同一平台上使用相同 TitleID 的游戏,游戏保存数据必须在这些平台之间漫游。 对于在 Windows 平台上使用相同 TitleID 的电脑游戏,游戏存档数据必须在不同的电脑之间漫游。 游戏存档数据对共享内容不得具有任何依赖关系。

通过示例

  1. 可以在同一主机平台/代上的第二台主机(例如,Xbox Series S 和 Xbox Series X 或 Xbox One 和 Xbox One S)上成功下载游戏保存和关联的设置文件。
  2. 可以在 Windows 平台的第二台电脑上成功下载游戏保存和关联的设置文件。
  3. 对于跨代在同一平台(例如 Xbox One 和 Xbox Series X|S)上共享同一 TitleID 的主机游戏,保存和关联的设置文件可以在这些设备之间漫游。
  4. 游戏存档数据对共享内容不具有任何依赖关系。

失败示例

  1. 不能在同一平台/代的第二台主机(例如,Xbox Series S 和 Xbox Series X 或 Xbox One 和 Xbox One S)上成功下载游戏保存和关联的设置文件。
  2. 不能在 Windows 平台的第二台电脑上成功下载游戏保存和关联的设置文件。
  3. 对于跨代在同一平台(例如 Xbox One 和 Xbox Series X|S)上共享同一 TitleID 的主机游戏,保存和关联的设置文件不能在这些设备之间漫游。
  4. 云中的存档在游戏首次启动时未被游戏识别,并且随后在未通过用户交互的情况下在第二台设备上被覆盖。
  5. 游戏存档数据对共享内容具有依赖关系。

成就和奖励

以下要求适用于在 Xbox 网络中提供成就的游戏。 面向 Xbox 主机的所有游戏都必须具备“成就”并满足以下要求。 演示不允许具有成就;但它们可以选择支持英雄数据。

XR-055:成就和玩家分数 *

游戏在发布时必须提供所需的成就数(最小和最大)及其关联的玩家分数。 允许游戏在发布后的任何时间添加成就或玩家分数(无论有无相应的新内容),但它们不能超过基于游戏或基于日历的限制。

单个成就不能超过 200 点玩家分数,游戏中的所有成就必须是可以达成的。

解锁基础游戏或内容更新中的成就必须代表对游戏内容的全部探索或参与。

项目 发布 半年新增内容 生存期限制
最小成就数 10 0 10
最大成就数 100 100 500
玩家分数 1000 1000 5000

注意

“半年”指一月到六月或七月到十二月。 基本游戏成就和玩家分数不计入半年限制。

055-01 成就

测试步骤

  1. 查看游戏支持的玩家分数和成就总数。
  2. 从头到尾玩一遍游戏并尝试获得尽可能多的成就。
  3. 从连接待机状态恢复后重复步骤 2。
  4. 在与 Xbox 服务断开连接的情况下重复步骤 2。

预期结果
所有成就均按照各自的条件解锁,基础游戏发布版本的玩家分数最多可为 1000 分,分布在 10-100 个成就中。 所有成就都代表对游戏内容的深入探索或参与。

通过示例

  1. 所有成就均可获得。
  2. 成就会按照各自的条件解锁。
  3. 所有成就都代表对游戏内容的深入探索或参与。
  4. 游戏发布版本拥有 1000 点玩家分数,分布在 10-100 个成就中。

失败示例

  1. 满足条件时,成就未解锁。
  2. 在未满足条件之前,成就便已解锁。
  3. 成就并不表示对游戏内容的彻底探索或参与。
  4. 所有成就都可以在启动游戏后的几分钟内解锁。
  5. 除非作为核心游戏循环的一部分需要,否则可以在没有任何(或最小)用户输入的情况下解锁成就。
  6. 游戏发布版本没有 1000 点玩家分数。
  7. 游戏的发布版本不满足 10-100 个成就数要求。
  8. 从连接待机状态恢复后,成就不能解锁。
  9. 单个成就超过了 200 点玩家分数。
  10. 重新连接到 Xbox 服务后,成就没有解除锁定。

XR-057: 解锁成就 *

游戏必须提供一种方式,使用户无需购买附加的游戏内内容即可获得基础游戏定义的所有成就。

必须通过游戏内操作、玩游戏和/或体验来解锁成就。

游戏不得为玩家提供无需相应的游戏活动即可直接解锁成就的其他选项。 不允许选项的非详尽列表:

  • 实际货币购买
  • 游戏内的作弊代码、主机或菜单选项

这些选项可用于降低解锁成就所需的游戏难度。

057-01 达成基础成就无需购买其他内容

测试步骤

  1. 查看基础游戏中的成就说明。
  2. 确认无需购买额外的内容即可达成这些成就。
  3. 获得所有成就。

预期结果
无需购买额外的游戏中内容即可获得所有成就。

通过示例

  1. 无需购买额外的游戏中内容即可获得所有成就。
  2. 无需任何额外的游戏中内容即可达成所有成就。

失败示例

  1. 要求用户购买额外的游戏中内容才能解锁基础游戏定义的成就。

多人游戏会话

此类别中的要求适用于在 Xbox 上提供多人游戏会话的游戏。 Xbox 提供一致且简单方法来查找多人游戏会话并优化用来查找这些会话的参数。

XR-064:可加入的游戏会话和在线游戏 *

在 Xbox 主机上,提供可加入的游戏会话的游戏必须通过 Xbox shell 界面实现可加入性。

使用 Xbox 登录从电脑设备通过 Xbox 主机提供跨平台多人游戏的游戏还必须通过 Game Bar 体验启用加入。

064-01 从游戏外部加入游戏会话

配置:

  • 2 个 Xbox 档案
  • 设备 1 档案 A – 具有档案 B 的好友
  • 设备 2 档案 B – 具有档案 A 的好友

测试步骤

  1. 使用档案 A,创建一个可加入的游戏会话。
  2. 使用未在该游戏上运行的档案 B 通过 Xbox shell 接口访问好友列表,并且确认档案 A 作为可加入列出。
    • 一些游戏可能只支持私人多人游戏会话,因此对于档案 B 不会显示为可加入,在这种情况下请跳转到步骤 6。
  3. 档案 B 加入档案 A 的游戏。
  4. 确认这两个档案一起放置于游戏体验中。
  5. 在游戏处于暂停状态时,使用档案 B 重复步骤 1-4。
    • 等待至少 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  6. 重复步骤 1-5,但这次档案 B 不是通过好友列表加入,而是让档案 A 通过系统 shell 向档案 B 发送游戏邀请,并确保档案 B 可以收到、接受并加入档案 A。

预期结果
用户 B 必须能够加入用户 A 的游戏并且一起进入游戏体验之中。 对于仅支持私人多人游戏会话、因此对档案 B 不显示为可加入的游戏,允许加入档案 A 的唯一机制是邀请。对于只支持通过匹配(例如排名匹配)加入会话的多人游戏会话,可以不支持通过 Xbox shell 接口加入。 对于支持跨平台多人游戏的游戏,用户必须能够在 Xbox One 主机和电脑之间加入。

通过示例

  1. 这两个档案一起放置于游戏体验中。
  2. 用户 B 能够加入用户 A 的游戏并且一起进入游戏体验之中。
  3. 用户 A 在好友列表中不显示为可通过 Xbox shell 接口加入,因为游戏仅支持私人多人游戏会话,但用户 A 可以通过系统 shell 向用户 B 发送游戏邀请。
  4. 用户 A 在参与仅支持通过匹配(例如排名匹配)加入的会话时,不显示为可加入并且无法通过 Xbox shell 接口发送游戏邀请。

失败示例

  1. 用户 B 无法成功加入用户 A 的游戏并且未处于游戏体验之中。
  2. 用户 A 在好友列表中不显示为可通过 Xbox shell 接口加入,因为游戏仅支持私人多人游戏会话,且用户 A 无法通过系统 shell 向用户 B 发送游戏邀请。

064-02 从相同游戏加入游戏会话

配置

  • 2 个 Xbox 档案
  • 设备 1 档案 A – 具有档案 B 的好友
  • 设备 2 档案 B – 具有档案 A 的好友

测试步骤

  1. 使用档案 A,启动游戏并在该游戏内创建一个可加入游戏会话。
  2. 使用档案 B,启动相同的游戏,然后在该游戏内进入一些某些体验。
  3. 使用档案 B,通过 Xbox shell 接口访问好友列表并选择加入档案 A 的游戏。
    • 一些游戏可能只支持私人多人游戏会话,因此对于档案 B 不会显示为可加入,在这种情况下请跳转到步骤 5。
  4. 确认这两个档案一起放置于游戏体验中。
  5. 重复步骤 1-4,但这次不是让档案 B 借助 Xbox shell 界面通过好友列表加入,而是让档案 A 通过系统 shell 向档案 B 发送游戏邀请,并确保档案 B 可以收到、接受并加入档案 A。

预期结果
用户 B 必须能够加入用户 A 的游戏并且一起进入游戏体验之中。 对于仅支持私人多人游戏会话、因此对档案 B 不显示为可加入的游戏,允许加入档案 A 的唯一机制是邀请。对于只支持通过匹配(例如排名匹配)加入会话的多人游戏会话,可以不支持通过 Xbox shell 接口加入。 对于支持跨平台多人游戏的游戏,用户必须能够在 Xbox One 主机和电脑之间加入。

通过示例

  1. 这两个档案一起放置于游戏体验中。
  2. 用户 B 能够加入用户 A 的游戏并且一起进入游戏体验之中。
  3. 用户 A 在好友列表中不显示为可通过 Xbox shell 接口加入,因为游戏仅支持私人多人游戏会话,但用户 A 可以通过系统 shell 向用户 B 发送游戏邀请。
  4. 用户 A 在参与仅支持通过匹配(例如排名匹配)加入的会话时,不显示为可加入并且无法通过 Xbox shell 接口发送游戏邀请。

失败示例

  1. 用户 B 无法成功加入用户 A 的游戏并且未处于游戏体验之中。
  2. 用户 A 在好友列表中不显示为可通过 Xbox shell 接口加入,因为游戏仅支持私人多人游戏会话,且用户 A 无法通过系统 shell 向用户 B 发送游戏邀请。

064-05 不可加入的游戏

配置

  • 3 个 Xbox 档案,每个档案登录到不同的设备
  • 设备 1 档案 A – 具有档案 B 和 C 的好友
  • 设备 2 档案 B – 具有档案 A 的好友
  • 设备 3 档案 C – 具有档案 A 的好友

测试步骤

  1. 使用档案 A,启动游戏并创建一个可加入游戏会话。
  2. 使用档案 A,邀请档案 B 和 C 加入到游戏中。
  3. 使用档案 A,进入一个游戏会话,以便在 A 加入后仅有一个剩余时隙。
  4. 使用档案 B,接受邀请。
  5. 确认档案 A 和 B 正在一起玩游戏。
  6. 使用档案 C,接受邀请并尝试加入该游戏会话。

预期结果
要求档案 C 在下一次加入机会前等待,或者向档案 C 提供一条消息,指出未能加入游戏会话的原因。

通过示例

  1. 要求档案 C 等待,直到有下一次加入的机会。
  2. 向档案 C 提供一条消息,指出未能加入游戏会话的原因。

失败示例

  1. 未要求档案 C 在下一次加入机会前等待,并且未向档案 C 提供指出未能加入的原因的消息。

XR-067:维护多人游戏会话状态 *

在 Xbox 主机上,具有在线多人游戏功能的游戏都必须在 Xbox 网络中维护会话状态信息。 游戏通过 Xbox 多人游戏会话目录 (MPSD) 执行此操作;如果游戏具有自己的多人游戏会话状态功能,则可以选择改为使用多人游戏活动最近互动玩家功能记录玩家互动。

在 Xbox 主机以外的设备上,通过 Xbox 主机提供跨平台多人游戏服务的游戏必须在 Xbox 多人游戏会话目录 (MPSD) 中维护会话状态信息。 如果它们有自己的会话状态功能,则可以改为使用多人游戏活动最近互动玩家功能记录玩家互动。

067-01 维护会话状态

测试步骤

  1. 登录到某一 Xbox 档案并在多台设备上启动游戏。
  2. 完成具有所有玩家的一个 Xbox 游戏会话。
  3. 返回主页并且查看最近玩家列表,以便确认来自该游戏会话的所有玩家都已包括在内。
  4. 再重复执行步骤 1–3 几次,但在重复时每次都使用新帐户。
  5. 重复步骤 1-4,但这次在游戏期间让一个或多个玩家离开,并且确保其档案仍在步骤 2 期间出现在最近玩家列表中。

预期结果
用户必须能够查看每个最近所玩游戏会话中的所有玩家。

通过示例

  1. 所有档案都包括在设备的最近玩家列表中。

失败示例

  1. 不是所有档案都包括在设备的最近玩家列表中。
  2. 在玩多人游戏期间退出的用户不出现在最近玩家列表中。

XR-070:好友列表 *

游戏必须使用 Xbox Live 好友列表作为主要好友列表。 游戏必须从 Xbox API 获取好友列表,并且不得将好友列表永久存储在游戏服务器上。

对于不在 Xbox 网络上或不在用户的 Xbox 网络好友列表上的玩家,游戏可以显示来自其中心游戏帐户的次要好友列表。 根据设计,游戏可能会在中心位置创建包含 Xbox 网络和发布者帐户好友的混合好友列表体验。图标或其他阐明标记必须用于消除 Xbox 好友与其他网络上好友之间的歧义。

有关使用 GDK 使用好友列表的信息,请阅读人员系统(好友列表)概述

070-01 Xbox 好友列表

测试步骤

  1. 找到游戏中显示的任何人员列表,并确认他们包含 Xbox 网络好友列表中的好友。
  2. 如果游戏支持包含 Xbox 网络和发布者帐户好友的混合好友列表,请验证它们是否用图标或其他阐明标记消除歧义。

预期结果
游戏必须使用 Xbox 网络好友列表作为使用 Xbox API 的好友的主要列表,并且不得将其永久存储在游戏服务器上。 当显示包含 Xbox 网络和发布者帐户好友的混合好友列表时,游戏必须消除好友的歧义。

通过示例

  1. 游戏使用 Xbox 网络好友列表作为使用 Xbox API 的好友的主要列表。
  2. 游戏具有替代的人员列表,例如最近联系的玩家或公会成员,这些玩家未被定位为用户的核心人员列表。
  3. 游戏显示一个好友列表,此列表已经过筛选仅显示玩过此游戏的好友,并且在某些情况下,此列表仅显示当前在线或当前在线并且在游戏中处于活跃状态的好友。
  4. 游戏显示包含 Xbox 网络和发布者帐户好友的混合好友列表,并使用图标或其他阐明标记来消除这些好友的歧义。

失败示例

  1. 游戏未使用 Xbox API 来显示好友列表。
  2. 游戏将好友列表永久存储在游戏服务器上。
  3. 游戏显示包含 Xbox 网络和发布者帐户好友的混合好友列表,并且不会消除这些好友的歧义。

XR-124:游戏邀请 *

支持可加入多人游戏体验的游戏必须允许玩家使用 Xbox 网络平台从游戏中向其他 Xbox 网络用户发送游戏邀请,包括存在跨网络玩家的情况。

有关使用 GDK 进行游戏邀请的信息,请参阅邀请概述

124-01 游戏邀请

配置

  • 2 个 Xbox 档案,每个档案登录到不同的设备
  • 设备 1 档案 A – 具有档案 B 的好友
  • 设备 2 档案 B – 具有档案 A 的好友

测试步骤

  1. 将用户 A 和 B 登录到其各自的设备。
  2. 让这两位用户启动游戏。
  3. 用户 A 创建一个游戏会话,找到游戏中用于发送邀请的选项,然后确认此选项与所需的术语一致。
  4. 用户 A 向用户 B 发送游戏邀请。
  5. 档案 B 接受来自以下各个区域的邀请以加入档案 A 的游戏会话。
    • 从初始启动序列到初始交互状态的任何区域
    • 主菜单(如有)
    • 单人游戏期间(如有)
    • 多人游戏期间(如有)
    • 当游戏在主菜单上处于挂起状态时(如有,请等待至少 30 秒的时间让游戏完全挂起,从而使挂起能够中断任何 HTTP 请求)。
    • 当游戏在单人游戏期间处于挂起状态时(如有,请等待至少 30 秒的时间让游戏完全挂起,从而使挂起能够中断任何 HTTP 请求)。
    • 当游戏在主菜单上处于约束状态时(如有)
    • 当游戏在任意游戏模式下处于约束状态时(如有)
  6. 确认这两个档案在每次邀请后均一同处于游戏体验中。

预期结果
支持可加入多人游戏体验的游戏必须使玩家能够从游戏中将游戏邀请发送给其他 Xbox 用户。

游戏必须对“邀请”按钮使用所需的术语。

档案 B 应该能够通过邀请加入档案 A 主持的会话。

注意,游戏可以限制谁可以向会话发送邀请(仅限于团队游戏中的队长)。

游戏不需要针对这种情况对破坏性操作进行确认。 因为游戏不能阻止正在执行的邀请或加入操作,因此游戏不需要请求确认,即使此操作将对游戏产生破坏性影响。

对于支持跨平台多人游戏的游戏,用户必须能够在 Xbox One 主机和电脑之间通过邀请加入会话。

通过示例

  1. 游戏包含适用于可加入会话并使用了正确术语的“邀请”按钮。
  2. 在游戏中接受游戏邀请时,玩家未收到针对破坏性操作的确认消息。
  3. 邀请成功完成,但主机上不存在所需的 DLC 时会话将无法开始/启动。 已将原因明确告知玩家。
  4. 在明确主持人是谁的情况下,只有游戏会话的主持人才能发送邀请。

失败示例

  1. 游戏在可加入的会话中没有包含邀请按钮,或者没有为此选项使用正确的术语。
  2. 游戏在 Xbox 上提供多人游戏会话,但不包含任何支持游戏邀请功能的游戏模式。
  3. 在接受游戏邀请后,活跃玩家未能进入他们受邀的游戏会话中。
  4. 当主机上没有所需的 DLC 时,无法完成邀请。 未将原因告知玩家。

Beta 版和游戏预览版

此类别中的要求仅适用于被划分为 Beta 版或游戏预览版的游戏。 有关其他 Microsoft Store 政策以及公开和内部 beta 版、大小限制、持续时间、定价、元数据和优惠方面的程序特定定义,请联系你的 Microsoft 联系人

Beta 版和游戏预览版游戏需要遵循本文档中提供的一部分 XR。 Games 预览版和 beta 版 Xbox 要求页面中详细介绍了这部分要求的范围。

XR-117:Beta 版/Games 预览版通知 *

处于 beta 版阶段的游戏必须具有在体验内(在游戏启动之后但在玩游戏或使用应用程序之前)显示的初始屏幕或消息,用于告知以下事项:

  • 此游戏是 beta 版/预发布软件。
  • 某些平台功能可能无法正常工作。
  • 游戏的某些功能可能无法正常工作并且可能会崩溃。

通知还必须阐明对游戏的支持范围。

117-01 向用户发送 beta 版/游戏预览版通知

测试步骤

  1. 登录到某一 Xbox 档案并且启动游戏。
  2. 确认在用户能够参与游戏或使用应用程序之前将显示一条消息,此消息至少应通知以下事项:
    • 此游戏是 beta 版/预发布软件。
    • 某些平台功能可能无法正常工作。
    • 游戏的某些功能可能无法正常工作并且可能会崩溃。
    • 通知还必须阐明对游戏的支持范围。

预期结果
游戏必须告知用户此游戏是 beta 版/预发布版,并且可能无法完全按预期正常运行。

通过示例

  1. 在用户使用游戏中的功能之前,通知了用户此游戏处于 beta 版/预发布状态。

失败示例

  1. 游戏未显示告知用户此游戏处于 beta 版/预发布状态的消息。
  2. 用户在访问游戏功能之后才在游戏中看到有关 beta 版/预发布状态的通知。

BVT:生成的预认证测试

以下测试用于检查游戏是否准备好了进行 Xbox 认证测试。

BVT-01 生成稳定性

测试步骤

  1. 启动游戏,导航所有菜单,然后进入游戏。
  2. 尝试重现执行其他 BVT 时发现的稳定性问题

预期结果
游戏不得出现将阻碍对游戏进行完整的 XR 测试的稳定性问题或加载时间过长问题。

BVT-02 匹配

测试步骤

  1. 主机 1:选择最基本的 Xbox 游戏模式并主持一个 Xbox 游戏会话。
  2. 主机 2:使用快速匹配加入主机 1 的 Xbox 游戏会话。 (重复此步骤,直到加入的主机数达到了启动此游戏会话的最低数量。)
  3. 主机 1 和主机 2:启动并完成 Xbox 游戏会话。
  4. 确认匹配功能可以正常运作,并且用户可以在所有其他受支持的游戏模式下进入游戏。

预期结果
主机 2 应始终可以找到并加入主机 1 的游戏会话。 这两台主机都应该能够在没有出现断开连接或者遇到稳定性问题的情况下完成 Xbox 游戏会话。

BVT-03 DLC

测试步骤

  1. 确认随游戏提交的可下载内容是可以使用 Microsoft Store 或游戏中的机制下载的。
  2. 下载完成后,确认此内容可以在游戏中被轻易识别。 (随提交材料提供的可下载内容的详细说明有助于认证团队找到可下载内容。)

预期结果
随游戏提交的可下载内容必须能够使用 Microsoft Store 或游戏中的 UI 下载,并且下载完成后,在游戏中应该可被轻易识别。

BVT-05 语言

测试步骤

  1. 通过 Xbox 设备设置应用程序,将语言设置为英语。
  2. 进入游戏。
  3. 验证此游戏:
    • 未崩溃或进入无响应状态。
    • 未在屏幕上输出任何调试。
    • 在所有目标区域中实现了本地化。
  4. 对游戏支持的所有语言重复步骤 1-4。

预期结果
游戏包含所有受支持的语言。 游戏也不应包含特定于语言的稳定性问题或调试。

BVT-07 基本配置

测试步骤

  1. 启动游戏,并确保所有 BVT 功能检查在无需对时间/日期等主机设置进行更改的情况下即可正常工作。
  2. 确认无需变通方法即可直接访问游戏的主菜单。

预期结果
游戏进入认证阶段时,基本功能按预期正常运作。

BVT-08 Microsoft Store 可用性

所需工具:

  • 发布到开发人员沙盒的游戏。
  • 发布到 CERT 和 CERT.DEBUG 沙盒的游戏。

测试步骤

  1. 将游戏发布到开发人员沙盒。
  2. 从 Microsoft Store 安装游戏。
  3. 启动并进入游戏。

重要

提交到认证时,将游戏发布到 CERT 和 CERT.DEBUG 沙盒。

预期结果
游戏必须能够通过 CERT 和 CERT.DEBUG 进行安装。

BVT-09 重新提交的条件

测试步骤

  1. 重现在游戏的最新认证报告中记录为 CPR 的所有问题。
  2. 验证记录为 CPR 的所有问题是否已修复。 重现的任何问题都必须具有批准的异常。

预期结果
除非已授予异常,否则必须修复以前的报告中标记为 CFR 的问题。

请联系你的 Microsoft 联系人,了解提交异常的步骤。

BVT-10 版本检查

测试步骤

  1. 安装游戏。
  2. 输入“我的游戏和应用”,突出显示标题,按“菜单”按钮,然后选择“管理游戏和附加内容”。
  3. 选择“文件信息”。
  4. 将已安装产品的全名与提交文档/启动邮件中列出的程序包名称进行比较。

预期结果
已安装的 XVC 的全名与启动邮件/提交文档中记录的内容完全匹配。

BVT-12 合作伙伴托管的服务

测试步骤

  1. 登录到某一 Xbox 档案并且启动游戏。
  2. 确认可以访问所有合作伙伴托管的服务。

预期结果
所有合作伙伴托管的服务均以配置为可以进行测试,并且依赖于这些服务的所有功能均可访问。

BVT-13 年龄分级验证

配置:

  1. 游戏必须为最终版本(基础游戏或内容更新)。
    • 最终版本(基础游戏/内容更新)- 所有需要证书的区域设置都需要证书。
    • 不在范围内 - DLC,游戏中内容 - 无需任何测试。
  2. 提交材料可供审核。
  3. 对 Microsoft 合作伙伴中心中的产品年龄分级的访问权限。

测试步骤

  1. 验证以下文档/信息是否可用:
    • 提交的 XVC 的提交验证程序日志。
    • 合作伙伴中心中的年龄分级声明。
    • 年龄分级证书。
  2. 打开提交验证器日志文件,并确保不会显示<component>Manifest-Ratings</component>测试中的任何警告或故障。
    • 对于 2020 年 5 月 11 日之后获得认证的所有游戏:AppxManifest 中不得存在评级元素。
    • 对于 2020 年 5 月 11日之前认证的游戏,可在 AppxManifest 中使用分级元素。
  3. 打开“合作伙伴中心”以查看产品的年龄分级信息
    • 对于显示的每个值,请确认已提供了与年龄分级完全匹配的相应的分级证书。

预期结果

  1. 必须提供所有的这些文件,并且这些文件必须与此提交类型相关。
  2. 所有分级都必须提供有相应的证书。
  3. 2020 年 5 月 11 日之后认证的基本最终提交不得在 AppxManifest 中定义年龄分级元素。
  4. 2020 年 5 月 11 日之前认证的游戏的内容更新不得添加或删除 AppxManifest 中的分级,除非完全删除分级元素。

BVT-14 UWP 服务配置验证

配置

游戏必须为 UWP 提交。

测试步骤

  1. 登录到之前未访问过游戏的一个 Xbox 档案。
  2. 启动此游戏。
  3. 确保提示用户接受 Xbox 帐户权限。
  4. 在主菜单或前端菜单中,运行以下命令 xbdir "XS:\Program Files\WindowsApps\{XVC}\" 并搜索“xboxservices.config”文件。

预期结果
必须将游戏的服务配置配置为进行测试。

通过示例

  1. 游戏包含服务配置文件,并会提示新用户接受 Xbox 帐户权限。

失败示例

  1. 服务配置文件不存在。
  2. 存在服务配置文件,但为 0 字节。
  3. 未提示新用户接受 Xbox 帐户权限。

BVT-15 智能交付

测试步骤

  1. 获取游戏的 XVC,并使用 packageutil chunkinfo [XVC] > chunkinfo.xml 命令生成 Chunkinfo.xml 文件。
  2. 使用生成的 chunkinfo.xml 确定游戏是否支持智能交付。
  3. 如果支持智能交付,请使用 xbapp install /[Chunk Parameter] [XVC] 命令开始为以下各项之一进行全新安装:
    • 语言包,使用参数 /Languages=(切换到另一个受支持的语言区块,然后使用系统设置或游戏中的语言选项下载额外的语言包)
    • 设备特定内容,使用参数 /Devices=
    • 内容类型,使用参数 /ContentTypes=
    • 按需内容,使用参数 /Tags=

预期结果
游戏可以正确安装目标智能交付区块,并且不会出现任何负面影响。

此版本中的更改

日期 文档版本 更改说明
2024 年 10 月 1 日 13.1 XR-001 游戏稳定性:更新了Microsoft应用商店策略 10.1.2 的要求。 这符合游戏稳定性的 Microsoft 应用商店策略。

更新为 XR-046 显示名称和玩家图片。 用于验证玩家代号正确显示的四个测试字符串已更新。 新字符串包括:
  • สฐ众нь컴퓨
  • आथाώঙぁヺ
  • øÜêþЯЂў
  • gttest1

测试用例 048-01 配置文件设置用法:添加了测试步骤 6 以验证第二台设备上更新的玩家代号。 已将“Xbox Live”更新为“Xbox 网络”。