- 此页面定义了在 XBOX 认证中测试的 XBOX 控制台游戏的 XR。有关所有 XR(包括未在 XBOX 认证中测试的 XR)的列表,请转到 XBOX 要求。
- 有关此版本中更改的摘要,请参阅此页面底部的此版本中的更改。
- 要查看 XR 和测试用例的历史更改日志,请参阅 XBOX 要求和测试用例的更改历史。
- 查看控制台上的最常见的十个失败测试用例。
测试挂起和恢复
有关构成游戏生命周期的概念和事件的详细介绍,请参阅 XBOX 游戏生命周期。它演示了如何在游戏中实现游戏状态和状态变化事件。 在零售控制台上,游戏在以下情况下将被挂起:- 当控制台通过将电源模式设置为即时启用并关闭而进入连接待机时。
- 当游戏失去焦点十分钟时。例如,启动应用程序(如”设置”)并将其保持焦点十分钟。
基本要求
此类别中的要求适用于代码编写标准、游戏行为和游戏提交的一般规则。XR-001:游戏稳定性 *
游戏必须符合 Microsoft Store 关于游戏稳定性的政策。以下政策适用于此要求: 10.4.2 — 产品必须迅速启动、持续运行并保持对用户输入的响应。产品必须优雅地关闭,不得意外关闭。产品必须处理由任何托管或本机系统 API 引发的异常,并在处理异常后保持对用户输入的响应。001-01 游戏稳定性
测试步骤- 登录 XBOX 配置文件。
- 启动游戏。
- 浏览游戏的所有区域,包括但不限于游戏过程、菜单和功能,以及可下载内容 (DLC)。
- 使用没有先前存档数据的新 XBOX 配置文件,在与 XBOX 服务断开连接时重复步骤 1-3。
- 游戏稳定。
- 游戏不会导致用户数据的意外丢失。
- 游戏崩溃、变得无响应或导致控制台重启。
- 游戏导致用户数据丢失。
- 出现持续超过二十秒的非交互式暂停或静态屏幕。
- 游戏包含超过两分钟且没有进度指示的加载屏幕。
- 游戏包含超过三分钟带有进度指示的加载屏幕。
001-02 挂起后游戏稳定性
在零售控制台上,游戏在控制台进入连接待机(使用即时启用关闭)或游戏失去焦点十分钟时被挂起。对于此测试用例,应在步骤 3 中验证两种方法。
- 在控制台电源模式设置为即时启用的情况下登录 XBOX 配置文件。
- 启动游戏并进入游戏过程。
- 在游戏过程中的不同时刻,挂起游戏。
- 恢复游戏并验证用户可以从最后的游戏位置继续。
- 继续到下一个存档点,保存游戏,并返回主菜单。
- 重新加载步骤 5 中的存档,并确保所有进度仍然存在。
- 在整个游戏过程中重复步骤 3-6。
- 游戏稳定,不会导致用户数据的意外丢失。
- 游戏从挂起状态恢复,用户可以立即从最后的游戏位置继续。
- 游戏从挂起状态恢复,系统提示用户是否要从最后的游戏位置恢复。
- 游戏从挂起状态恢复并返回到之前的菜单或初始交互状态,但用户可以加载他们最后的存档位置。
- 在需要在线服务连接的在线游戏过程中挂起后,游戏恢复并将用户返回到之前的菜单或初始交互状态。
- 由于连接存储不同步,游戏被系统终止。
- 游戏由于挂起失败而被终止。
- 游戏从挂起状态恢复并意外终止。
- 游戏从挂起状态恢复,但用户无法加载他们最后的存档位置。
- 用户无法重新建立与合作伙伴托管服务的连接。
XR-003:提交游戏质量 *
XBOX 游戏必须符合 XBOX 质量标准,并且完全可用和可测试。功能完整且可测试
游戏在提交认证时必须完全可用和可测试。这包括所有客户端代码、提交产物和可下载内容。游戏必须使用当前版本的提交验证器进行干净打包,无失败。提交验证器日志必须与提交一起包含。XBOX 质量标准
XBOX 游戏必须在所有游戏模式和场景下正确运行,以满足玩家期望。游戏完整性
游戏必须无严重问题,例如崩溃、冻结、无法游玩的帧率、导致主要进度阻碍的错误或图形损坏。游戏设置、选项和控件必须正确应用,并在适当的情况下尊重默认设置。导航和内容可用性应无缝,没有死胡同或无法访问的菜单。多人游戏功能必须稳定且可用,无论玩家数量如何。存档游戏兼容性
游戏存档和玩家进度必须在内容更新后继续可用。此外,在使用基本光盘版本加载更新后的存档时不得发生永久性数据丢失。 下表显示了哪些 XR-003 测试用例适用于您的游戏在控制台或 PC 上。003-02 游戏完整性
配置 — 请参阅本页底部的控制台测试台指南以设置您的控制台。 测试步骤- 登录 XBOX 配置文件并启动游戏。
- 浏览所有菜单、子菜单,查看所有功能,并完成所有游戏模式。
- 交互并完成所有菜单 UI、额外内容、单人和多人游戏模式,包括所有支持语言中的任何附加功能。
- 测试离线、在线,以及分屏(如适用)。
- 使用最大玩家数量测试多人游戏模式。
- 将统计数据发布到所有支持的排行榜。
- 游戏可以在所有游戏模式下完成。
- 在游戏过程中设置的选项在终止和重新启动游戏后保存。
- 游戏的所有区域都可以按预期导航。
- 本地化文本在支持的所有区域中正确显示。
- 用户能够按预期发布到排行榜。
- 游戏在关卡结束时崩溃,或用户在游戏的任何区域被阻止推进。
- 游戏的区域无法按预期导航。
- 如果用户使用暂停菜单反转水平或垂直摄像机控制,游戏内的摄像机控制不会改变。
- 用户无法按预期发布到排行榜。
- 如果用户已完成不同的模式,则无法完成特定的游戏模式。
- 在游戏过程中设置的选项在终止和重新启动游戏后重置为默认值。
- 由于帧率问题,游戏无法游玩。
003-16 存档游戏兼容性
测试步骤- 登录 XBOX 配置文件,并在不连接到 XBOX 的情况下启动游戏。
- 玩游戏并保存您的进度和设置。
- 重启游戏并验证您可以从步骤 2 加载和恢复已保存的进度。
- 连接到 XBOX 并安装基础游戏的内容更新。
- 验证更新后您仍然可以加载并继续已保存的进度。
- 重启游戏,开始新游戏,再次保存您的进度。
- 退出并卸载游戏。
- 在没有连接到 XBOX 网络的情况下,重新安装并启动基础游戏。
- 验证以下情况之一:
- 您可以加载并继续已保存的进度
- 游戏显示消息,指示存档需要安装内容更新
- 游戏不显示步骤 6 中所做的存档
- 重启游戏并安装内容更新。
- 验证更新后您仍然可以加载并继续已保存的进度。
- 内容更新版本的游戏可以成功加载所有存档。
- 启动基础版本以加载更新的存档时,用户被通知缺少内容,并被告知存档文件无法加载的原因,或者在基础版本中不可见在内容更新版本中所做的存档。
- 内容更新版本的游戏无法加载使用先前版本的游戏创建的游戏存档。
- 基础版本的游戏在加载使用内容更新版本的游戏所做的存档时崩溃。
003-17 耳机状态更改
测试步骤- 在 XBOX 音频设置下,将 Windows Sonic for Headphones 作为您的耳机格式启用。
- 将一对耳机连接到控制器,或将一对耳机无线连接到 XBOX。
- 启动游戏并进入游戏过程。
- 验证通过电视和耳机听到音频。
- 拔下耳机,验证短时间后音频返回。
- 重新插入耳机,验证通过电视和耳机听到音频。
- 在整个游戏过程中重复步骤 5-6。
- 每次移除耳机时,音频都无问题返回。
- 连接耳机时,音频无问题返回。
- 耳机状态更改后,不再听到音频。
- 耳机状态更改后,音频失真或损坏。
003-18 挂起后耳机状态更改
在零售控制台上,游戏在控制台进入连接待机(使用即时启用关闭)或游戏失去焦点十分钟时被挂起。对于此测试用例,应在步骤 6 中验证两种方法。
- 在控制台电源模式设置为即时启用的情况下登录 XBOX 配置文件。
- 在 XBOX 音频设置下,将 Windows Sonic for Headphones 作为您的耳机格式启用。
- 将一对耳机连接到控制器,或将一对耳机无线连接到 XBOX。
- 启动游戏并进入游戏过程。
- 验证通过电视和耳机听到音频。
- 在整个游戏过程中的不同时刻,挂起游戏。
- 恢复游戏并验证通过电视听到音频。
- 重新连接耳机,验证通过电视和耳机听到音频。
- 在整个游戏过程中重复步骤 6-8。
- 每次移除耳机时,音频都无问题返回。
- 连接耳机时,音频无问题返回。
- 耳机状态更改后,不再听到音频。
- 耳机状态更改后,音频失真或损坏。
XR-130:XBOX 控制台系列和世代 *
所有针对某一控制台世代的游戏必须支持该世代的整个设备系列。 未使用 Smart Delivery 的 XBOX One 游戏默认在 XBOX Series X|S 兼容模式下运行。使用 Smart Delivery 的游戏在 XBOX Series X|S 上以兼容模式运行时必须正常工作。 为了在控制台世代之间保持一致性,游戏必须:- 支持通过游戏手柄输入进行导航。游戏可能在事先获得批准的情况下要求使用其他外围设备。
- 确保已保存的游戏在世代内的控制台类型之间可用。
- 确保在线玩家不基于世代内的控制台类型分段。
- 确保在世代内的控制台类型之间提供相同的游戏模式。
- 在世代之间(XBOX One 和 XBOX Series X|S),共享相同 TitleID 的游戏必须:
- 支持两代都可用内容的游戏存档漫游 (XR-052)。
- 虽然不是必需的,但建议在支持多人游戏(合作或竞争)体验的场景中提供至少一个共享匹配队列,并允许共享内容体验的跨世代邀请/加入。
130-01 控制器输入
所需工具- 1 台 XBOX One
- 1 台 XBOX One S
- 1 台 XBOX One X
- 1 台 XBOX Series X 开发工具包(使用 XBOX Series X|S 零售控制台模式)
- 登录 XBOX 配置文件。
- 启动游戏。
- 浏览游戏的所有区域,并验证游戏在每个区域都接受通过控制器输入的导航。
- 在所有世代的设备上重复所有上述步骤。
- 游戏在游戏的所有区域接受来自控制器的输入。
- 在游戏的某些区域,游戏仅接受来自键盘和/或鼠标的输入。
130-02 存档游戏漫游
所需工具- 1 台 XBOX One
- 1 台 XBOX One S
- 1 台 XBOX One X
- 1 台 XBOX Series X 开发工具包(使用 XBOX Series X|S 零售控制台模式)
- 在设备 A 上登录 XBOX 配置文件并启动游戏。
- 开始游戏并制作存档进度(如果可能,通过更改或添加新的设置配置来创建设置存档)。
- 退出游戏。
- 使用步骤 1 中使用的相同配置文件在同一世代的不同设备上登录。
- 从步骤 1 启动同一游戏,并验证所有已保存的游戏及任何设置和/或配置文件可以正确访问和加载,并且它们对特定同代设备没有任何依赖。
- 在同一世代的设备上重复所有步骤。
- 对于跨世代共享相同 TitleID 的游戏(XBOX One 和 XBOX Series X),对于两个世代都可用的内容,重复步骤 1-4。
- 在 XBOX One S 上创建的游戏存档在 XBOX One 和 XBOX One X 上工作,反之亦然,跨整个 XBOX One 设备系列。
- 对于跨世代共享相同 TitleID 的游戏(XBOX One 和 XBOX Series X),游戏存档必须为两代都可用的内容工作。
- 在某一世代(XBOX One 或 XBOX Series X)中创建的游戏存档未在该世代的所有设备类型中完全加载。
- 对于跨世代共享相同 TitleID 的游戏(XBOX One 和 XBOX Series X),两代都可用内容的游戏存档未完全加载。
130-03 在线分段
所需工具- 1 台 XBOX One
- 1 台 XBOX One S
- 1 台 XBOX One X
- 1 台 XBOX Series X 开发工具包(使用 XBOX Series X|S 零售控制台模式)
- 在同一世代的所有设备类型上登录 XBOX 配置文件并启动游戏。
- 完成一个包含所有设备的 XBOX 网络多人游戏会话。
- 在游戏支持的所有 XBOX 网络多人游戏模式中重复步骤 2。
- 来自同一世代设备的所有控制台都能够在多人游戏中彼此对战。
- XBOX 网络玩家基于其 XBOX One 控制台类型在同一世代内被分段。
130-04 精选游戏模式
所需工具- 1 台 XBOX One
- 1 台 XBOX One S
- 1 台 XBOX One X
- 1 台 XBOX Series X 开发工具包(使用 XBOX Series X|S 零售控制台模式)
- 登录 XBOX 配置文件并启动游戏。
- 定位并访问所有精选游戏模式。
- 在同一世代的设备上重复所有上述步骤,并确保所有游戏模式在每台设备上都相同。
- 来自同一世代设备的所有控制台都提供相同的相同游戏模式集。
- 同一世代设备中的一个或多个控制台根据其同代控制台类型提供了不同的游戏模式。
130-05 兼容模式
配置 — 一个 XBOX Series X 开发工具包(使用 XBOX Series X|S 零售控制台模式)在零售控制台上,游戏在控制台进入连接待机(使用即时启用关闭)或游戏失去焦点十分钟时被挂起。对于此测试用例,应在步骤 6 验证两种方法。
- 对于 XBOX One 游戏,在控制台电源模式设置为即时启用的情况下登录 XBOX 配置文件。
- 通关游戏,并确保游戏在兼容模式下按预期执行。
- 查找任何区域,以确定游戏性能、视觉效果或音频在 XBOX Series X 到 XBOX One X 之间明显较差的区域。
- 检查所有不同分辨率输出的性能问题。
- 使用兼容 HDR 的屏幕检查 Auto HDR。
- 重复步骤 3,但这次查找 XBOX Series S 到 XBOX One S 之间游戏性能、视觉效果或音频明显较差的任何区域。
- 确保 XBOX Series X|S 设备之间以及 XBOX One 和 XBOX Series X|S 设备之间(在支持的情况下)的多人游戏保真度。
- 检查匹配。
- 双向检查邀请。
- 双向检查通过 shell 加入。
- 确保挂起和恢复按预期工作。
- 确保所有游戏存档在控制台重启后保留。
- 确保漫游存档在 XBOX One(系列的任何部分)到 XBOX Series X|S(系列的任何部分)之间双向工作。
- 游戏在 XBOX Series X|S 上运行时没有性能问题。
- 游戏在 XBOX Series X|S 上运行时没有功能问题。
- 游戏在 XBOX Series 控制台之间运行时可以正确进入、玩和完成所有多人游戏模式,包括在 XBOX One 和 XBOX Series 之间玩多人游戏时。
- 游戏在 XBOX Series X|S 控制台上运行时正确支持挂起和恢复。
- 用户在 XBOX Series X|S 控制台上的游戏存档在完整游戏重启后保留。
- 在 XBOX One 上创建的用户游戏存档可以漫游到 XBOX Series X|S,所有进度仍然存在。将相同的游戏存档漫游回 XBOX One 也保留所有进度。
- 游戏在 XBOX Series X|S 上运行时有性能问题。
- 游戏在 XBOX Series X|S 上运行时有功能问题。
- 用户无法在 XBOX Series 控制台之间运行时或在 XBOX One 和 XBOX Series 之间玩多人游戏时进入、玩或完成多人游戏的所有模式。
- 游戏在 XBOX Series X|S 控制台上运行时没有正确挂起和恢复。
- 用户在 XBOX Series X|S 控制台上的游戏存档或部分游戏存档在完整游戏重启后没有保留。
- 在 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 显示器
- 登录 XBOX One S 和 XBOX Series S 控制台,设置为 1080p,连接 HDR 显示器,并在控制台设置中配置 HDR 输出。
- 启动游戏。
- 在游戏仍在运行时,在控制台设置中禁用 HDR。
- 返回游戏并验证显示的图形没有缺陷。
- 在 XBOX One X 和 XBOX Series X 上以 4K 重复步骤 1-4。
- 没有黑屏、没有黑条,也没有明显的视觉缺陷。
- SDR 图像明显比 HDR 图像更亮或更暗。
- SDR 图像比 HDR 图像更小。
- SDR 图像上显示了显著的黑条或边框。
XR-022:官方命名标准 *
游戏必须使用术语列表最新发布版中定义的命名标准来引用 XBOX 控制台和/或 XBOX 网络功能。 在 XBOX 控制台上,游戏不得使用未明确包含在术语列表中的术语来显示图像或引用控制台系统组件或外围设备组件。022-01 官方命名标准
测试步骤- 启动游戏。
- 访问游戏的所有区域。
- 浏览所有菜单和子菜单。
- 更改所有可用的设置和选项。
- 如果游戏支持存档,保存并加载所有可能的游戏类型。
- 观看所有过场动画。
- 记录显示的所有文本和图像。
- 游戏使用了竞争平台的专有术语或图像。
- 游戏使用了术语列表中未收录的任何术语来引用控制台系统组件或外围设备的组件。
XR-074:与 XBOX 和合作伙伴服务的连接丢失 *
游戏必须优雅地处理与 XBOX 和合作伙伴服务的连接错误。在失败发生后尝试重试对 XBOX 服务的请求时,游戏必须遵守 XBOX 设置的重试政策。游戏必须在服务不可用时适当地管理向用户传达消息。如果合作伙伴服务不可用,游戏不得指示 XBOX 网络存在问题。当网络服务变慢或间歇性可用时,游戏不得崩溃或挂起。074-01 与 XBOX 服务的 WAN 断开连接
测试步骤- 登录 XBOX 配置文件。
- 在执行以下操作时,断开 WAN 网络。如果使用以太网交换机/集线器,请从网络设备断开上行电缆。如果设备通过 Wi-Fi 连接,请从无线接入点连接断开上行电缆:
- 创建新的存档点
- 加载存档点
- 到达自动存档点
- 枚举已保存游戏列表
- 搜索并加入在线会话
- 尝试创建在线会话
- 查看排行榜(如适用)
- 离线游戏
- 游戏显示错误消息,指示与 XBOX 服务的网络连接丢失。
- 玩不需要 XBOX 服务的本地游戏模式时,游戏不显示错误消息。
- 在 AppX 清单中带有
RequireXboxLive的游戏在连接丢失时挂起并随后终止。
- 用户无法完成非在线 XBOX 游戏会话。
- 游戏进入无响应或不稳定状态。
074-02 直接断开连接
测试步骤- 启动游戏并登录 XBOX 配置文件。
- 在游戏中执行以下操作时,拔掉设备的网络电缆,或关闭 WAP 或无线路由器:
- 创建新的存档点。
- 加载存档点。
- 到达自动存档点。
- 枚举已保存游戏列表。
- 搜索并加入在线会话。
- 尝试创建在线会话。
- 查看排行榜(如适用)。
- 离线游戏。
- 处于在线游戏模式时,游戏显示用户友好的消息。
- 离线游戏模式期间,游戏不中断游戏。
- 在 AppX 清单中带有
RequireXboxLive的游戏在连接丢失时挂起并随后终止。
- 离线游戏模式期间显示错误消息。
- 游戏进入无响应或不稳定状态。
- 网络离线后,用户仍能查看在线菜单或查看缓冲的媒体。
074-03 挂起时与 XBOX 服务的断开连接
在零售控制台上,游戏在控制台进入连接待机(使用即时启用关闭)或游戏失去焦点十分钟时被挂起。对于此测试用例,应在步骤 3 中验证两种方法。
- 在控制台电源模式设置为即时启用的情况下登录 XBOX 配置文件。
- 启动游戏并进入游戏过程。
- 在整个游戏过程中的不同时刻,挂起游戏。
- 恢复游戏并验证游戏优雅地处理断开连接。
- 在整个游戏过程中重复步骤 3-4。
- 在在线 XBOX 多人游戏会话期间,游戏显示错误消息,指示与 XBOX 服务的网络连接丢失。
- 玩不需要 XBOX 服务的本地游戏模式时,游戏不显示错误消息。
- 用户无法完成非在线 XBOX 游戏会话。
- 游戏进入无响应或不稳定状态。
- 恢复后游戏显示误导性或错误的错误消息。
074-04 挂起期间的 XBOX 服务重新连接
在零售控制台上,游戏在控制台进入连接待机(使用即时启用关闭)或游戏失去焦点十分钟时被挂起。对于此测试用例,应在步骤 3 中验证两种方法。
- 在控制台电源模式设置为即时启用的情况下登录 XBOX 配置文件,并确保控制台设置为主机。
- 在没有连接到 XBOX 但保持本地网络连接的情况下,启动游戏。
- 如果使用以太网交换机/集线器,请从网络设备断开上行电缆。
- 如果设备通过 Wifi 连接,请从无线接入点断开上行电缆。
- 在整个游戏过程中的不同时刻,挂起游戏。
- 重新连接上行电缆,并等待控制台重新连接到 XBOX 服务。
- 恢复游戏并验证游戏优雅地处理重新连接。
- 在整个游戏过程中重复步骤 2-5。
- 用户能够恢复游戏并无中断地完成离线 XBOX 游戏会话。
- 游戏保持稳定,不会崩溃。
- 用户无法完成非在线 XBOX 游戏会话。
- 游戏进入无响应或不稳定状态。
- 恢复后游戏显示误导性或错误的错误消息。
074-05 持续低带宽
所需工具 — 来自 GDK/XDK 的 xbstress.exe。 配置 — 网络模拟由命令行压力工具 xbstress.exe 控制。此工具配置各种控制台压力测试,包括网络模拟。出于网络目的,xbstress.exe 控制 XBOX 设备上的专用驱动程序,该驱动程序丢弃数据包、注入延迟并限制吞吐量。xbstress.exe 具有三个预配置的模拟配置文件,可让您轻松模拟重要的网络场景:最小、平均和优秀。最小配置文件对应此 XR。 测试步骤- 使用最小配置文件,将连接限制到 XBOX 设备的最低操作要求。
- 执行与游戏相关的在线操作,包括但不限于浏览所有菜单和玩在线游戏会话。
- 显示用户友好的消息,指示由于低带宽可能对在线游戏产生影响。
- 游戏不崩溃,也不导致用户数据丢失。
- 游戏崩溃或导致用户数据丢失。
074-06 可变低带宽
所需工具 — 来自 GDK/XDK 的 xbstress.exe。 配置 — 与 074-05 相同。最小配置文件对应此 XR。 测试步骤- 在 xbstress.exe 中禁用所有网络限制。
- 执行与游戏相关的在线操作,包括但不限于浏览所有菜单和玩在线游戏会话。
- 执行步骤 2 时,启用 xbstress 最小配置文件。
- 显示用户友好的消息,指示由于低带宽可能对在线游戏产生影响。
- 游戏不崩溃,也不导致用户数据丢失。
- 游戏崩溃或导致用户数据丢失。
074-07 动态连接丢失
所需工具 — 带有内容阻止插件的 Fiddler Classic。 使用内容阻止插件配置 Fiddler Classic 以阻止合作伙伴服务- 在控制台上,设置 Fiddler 以调试 Web 服务调用。
- 在 PC 上,设置 Fiddler 以调试 Web 服务调用。
- 为 Fiddler 安装内容阻止插件。
- 在 Fiddler 中,选择菜单 ContentBlock 和”Enabled”。
- 登录 XBOX 配置文件并启动游戏。
- 完成多人游戏会话,加载到每个游戏模式,并浏览游戏的所有区域,包括菜单、排行榜、服务器(创建一个并加入他人的)、好友列表、游戏内商店和限时活动。
- 验证游戏不显示指示 XBOX 网络问题的错误消息。
- 与合作伙伴托管服务的连接丢失时,游戏不挂起或崩溃。
- 显示的消息暗示 Microsoft 服务存在问题。
- 显示非描述性错误消息。
- 游戏崩溃、变得不稳定或导致控制台重启。
074-08 启动前停机时间
所需工具- 来自 GDK/XDK 的 xbstress.exe
- 对于 Windows 10,使用 Fiddler Classic
- 在控制台上,使用命令为非 Microsoft 流量在 xbstress.exe 中创建断开的网络通道:
xbstress set channel=0 network=broken addresses=[分号分隔的地址列表]。 - 使用命令启动网络模拟:
xbstress simulate network=channels。 - 如果在 Windows 10 上测试,请使用 Fiddler 模拟停机时间。
- 登录 XBOX 配置文件。
- 启动游戏。
- 访问非 Microsoft 在线功能。
- 与合作伙伴托管服务的连接丢失时,游戏不挂起或崩溃。
- 显示的错误暗示 Microsoft 服务存在问题。
- 显示非描述性错误消息。
- 游戏崩溃、变得不稳定或导致控制台重启。
XR-132:服务访问限制 *
在调用 XBOX 网络服务时超出游戏和用户基础限制或不遵守 XBOX 网络服务重试政策的游戏可能会受到速率限制,这可能会导致服务中断或废弃。不遵守指定限制可能会阻止游戏发布,而已发布游戏的生产问题可能会导致 XBOX 网络服务暂停,包括游戏删除。132-01 服务访问限制
所需工具- 控制台上的 Fiddler 或 PC 上的 Fiddler。
- 来自 GDK 开发工具下载包的 XBOX 服务跟踪分析器。它用于查看游戏进行的服务调用,并查找调用模式中的任何违规行为。
- 在启动游戏之前,启动 Fiddler Classic,并确保它已配置为从控制台或 Windows 10 PC(无论所讨论的游戏从哪里运行)捕获网络流量。
- 在 Fiddler Classic 运行并捕获网络流量时,启动游戏并继续浏览所有区域,包括但不限于:创建游戏存档、重启控制台并加载游戏存档;快速连续更改富存在状态(如果可能);解锁并查看成就;发布到所有排行榜并使用所有过滤器查看所有排行榜;查看游戏内好友列表(包括在线状态被阻止的好友)并在页面之间快速移动;获得并查看 Hero Stat;匹配到所有在线模式,包括无法找到可用会话的情况(如果可能),并生成语音流量;创建、保存并分享游戏片段;访问游戏内商店(如适用)。
- 测试结束后,将 Fiddler 捕获保存到本地目录。
- 在 GDK 命令提示符中,运行
xbltraceAnalyzer -data filepath -outputdir filepath。 - 打开步骤 4 的输出目录,然后打开”index”文件(如果提示,请选择”允许阻止的内容”)。
- 在游戏运行时,运行
xbtrace start xboxliveservices并继续浏览游戏的所有区域(与上面的 Fiddler 步骤相同的覆盖范围)。 - 测试结束后,运行
xbtrace stop两次。 - 浏览控制台的文件,在 SystemScratch > xbtrace 中,您会找到 csv。检查时间戳以确保它注册您停止记录的时间。将其复制到本地。
- 在 XDK 命令提示符中,运行
Xbltraceanalyzer -data filepath -outputdir filepath。 - 打开步骤 4 的输出目录,然后打开”index”文件。
- 游戏在调用 XBOX 服务时不超过持续限制。
- XBOX 服务跟踪分析器报告只包含黄色和/或绿色结果。
- 游戏超过持续限制(速率限制生效的限制)达 10 倍。例如,如果精细速率限制生效的持续限制设置为 300 秒内 300 次调用,则 300 秒内 3000 次调用或以上的游戏将失败。
- XBOX 服务跟踪分析器报告包含一个或多个红色结果。
132-02 游戏事件限制
测试步骤- 安装游戏,并在游戏运行时,继续浏览游戏的所有区域(与 132-01 相同的覆盖范围)。
- 测试期间,观察游戏以查看是否出现游戏事件限制系统 toast。
- 游戏不触发游戏事件限制系统 toast。
- 游戏触发游戏事件限制系统 toast。
XR-133:本地存储写入限制 *
使用本地存储的游戏在 5 分钟增量时间内,持久本地存储或临时存储的总写入不得超过 1 GiB。133-01 本地存储写入限制
测试步骤- 安装游戏,并在游戏运行时,继续浏览游戏的所有区域,包括但不限于创建游戏存档、重启控制台并加载游戏存档,以及玩所有游戏模式并解锁/查看成就。
- 测试期间,观察游戏以查看是否出现本地存储写入限制系统 toast。
- 游戏不触发本地存储写入限制系统 toast。
- 游戏触发本地存储写入限制系统 toast。
在线安全和隐私
此类别中的要求涉及保护用户的安全和隐私。XR-013:将 Microsoft 账户与发行商账户关联 *
在 XBOX 上,使用合作伙伴托管服务或需要凭据的账户的游戏必须支持所有 XBOX 用户,并提供将该账户与用户的 Microsoft 账户关联的选项。在 XBOX 控制台之外,游戏可以选择允许账户关联以支持游戏体验。 如果在游戏内启用了发行商账户登录,则适用以下规则: 发行商账户登录- 接纳所有用户 — 如果游戏功能(单人、多人、跨网络游戏、排行榜)需要发行商账户登录,登录和注册必须支持提供游戏的所有用户类型、年龄和区域,以及本地/区域法律允许的功能,而不管年龄分级如何。游戏发行商可以选择不支持特定区域、年龄等发行商账户。如果某个区域、年龄组或其他玩家组无法创建或登录账户,游戏就不能要求这些用户使用账户登录以获取游戏功能。如果基于游戏的注册体验中不支持特定账户设置(例如,年龄或区域),则游戏必须优雅处理,通过提供在支持该用户的外部站点或移动优化体验上注册的消息。
- 获得同意并提供账户信息使用条款 — 游戏必须请求使用并获得使用玩家 Microsoft 账户信息以自动填充注册/账户创建体验的同意。在发行商账户创建过程中,必须在游戏内向用户提供所有适用的使用条款、隐私和其他政策(或带有此类信息链接的通知)。
- 披露要求 — 如果游戏或附加功能需要发行商账户,则必须在游戏的产品描述和任何物理包装中披露此信息,包括任何限制(如年龄)。在游戏中,必须定义发行商账户的原因和用途。如果发行商账户限制或制约儿童账户的体验,建议将此文本添加到商店详细信息页面以引起买家注意:
游戏的某些功能,包括在线多人游戏、通信和其他在线功能,XBOX 儿童账户可能无法访问。在 XBOX 上,儿童指年龄小于 13 岁的玩家,除非当地法律另有规定。发行商账户/Microsoft 账户关联
- 使用 XBOX 安全令牌服务 (XSTS) 进行身份验证 — 当将用户的发行商账户与用户的 Microsoft 账户关联时,必须使用 XSTS 令牌为身份验证提供身份信息。
- 获得同意并提供选择 — 必须通知用户将其发行商账户与 Microsoft 账户关联。用户必须有选择退出关联其账户的选项。用户必须有能力解除账户关联。
- 接纳所有用户 — 如果游戏功能需要发行商账户登录,登录和注册必须支持提供游戏的所有用户类型、年龄和区域,以及本地/区域法律允许的功能,而不管年龄分级如何。
发行商可以实现额外的欺诈预防机制,例如当已关联账户首次从新设备登录时进行双因素身份验证中断。此行为不违反此 XR。
013-01 将 Microsoft 账户与发行商账户关联
测试步骤- 验证游戏是否支持或要求非 XBOX 账户或登录来使用服务或功能。
- 使用新创建的 XBOX 配置文件,使用发行商提供的服务账户或登录以在初始设置期间输入非 XBOX 账户凭据。
- 验证游戏允许用户在应用中查看使用条款,或在完成账户关联过程之前告知用户如何查看使用条款。
- 验证在任何位置都没有提示用户重新输入其非 XBOX 账户凭据。
- 在游戏运行时注销并重新登录。
- 重复步骤 4。
- 使用相同的配置文件终止并重新激活游戏。
- 重复步骤 4。
- 终止游戏。
- 通过删除游戏可能创建的任何已保存文件,验证游戏未在本地存储非 XBOX 账户凭据。
- 重新激活游戏并重复步骤 4。
- 在不同的控制台上,使用相同的配置文件启动游戏并重复步骤 4。
- 验证用户可以从非 XBOX 账户解除其 XBOX 配置文件的关联。
- 使用符合游戏年龄分级的 XBOX 儿童账户(13 岁以下)重复步骤 1-13。
- 游戏在用户最初输入非 XBOX 账户或登录凭据后,任何时候都不会要求用户重新输入它们,并且游戏在关联过程中以及在账户保持关联期间提供使用条款的通知。
- 游戏允许为所有属于游戏年龄分级的用户创建发行商账户。
- 游戏要求用户在每次启动游戏时输入其非 XBOX 账户或登录凭据。
- 游戏在从另一台控制台运行时要求用户输入其非 XBOX 账户或登录凭据。
- 游戏未在账户关联过程中提供查看使用条款的方法。
- 游戏未提供从非 XBOX 账户解除其 XBOX 配置文件关联的方法。
- 游戏不允许为所有属于游戏年龄分级的用户创建发行商账户。
XR-014:玩家数据和个人信息 *
游戏发行商全权负责根据适用法律收集和处理最终用户数据,特别是当用户是儿童时。 此外,当游戏具有从 XBOX 获取或通过与玩家的直接关系(如网站或移动应用)获取的关于玩家的信息时,游戏不得向其他玩家显示:- 可能用于对用户造成经济损失的信息(如社会保障号或信用卡号码)。
- 泄露用户地址(除国家/地区外)的信息。
- 允许用户在线冒充另一用户的信息,例如账户凭据。
处理儿童数据
从儿童或青少年年龄组的账户收集数据时,游戏只能请求验证年龄、获得父母同意或完成发行商账户关联所必需的个人数据。定义
地址是可以将用户位置识别到城市或城镇级别的任何信息。这包括但不限于以下内容:- 实际地址
- 邮寄地址
- 账单地址
- 邮政编码
- IP 地址或相关信息
- 地理位置信息
014-01 个人信息
测试步骤- 访问游戏的所有区域,包括所有可能的 XBOX 多人游戏会话。
- 访问可能保存内容或以其他方式通过 XBOX 网络或发送到游戏服务器的所有区域。
- 游戏与另一台控制台上的用户显示和共享居住国家信息。
- 游戏使用用户的 IP 地址来定义用户的一般位置(不比州或国家/地区更具体),并将该位置显示给排行榜上的其他用户。
- 游戏将用户的个人信息传输并共享给其他控制台上的用户。示例:电子邮件地址、位置(比州/国家/地区更具体的任何内容)、姓名、出生日期、配置文件密码、密保问题、密码、信用卡详细信息。
014-02 数据收集
测试步骤- 使用儿童或青少年账户启动游戏。
- 访问游戏的所有区域,包括所有可能的单人和 XBOX 多人游戏模式。
- 检查向用户请求的数据。
- 年龄验证
- 获得父母同意(如父母的电子邮件地址)
- 发行商账户关联(如父母、儿童或青少年用户的电子邮件地址)
- 游戏不向儿童或青少年用户请求任何数据。
- 游戏请求用户的出生日期并说明数据将用于什么。
- 游戏请求父母的电子邮件地址并说明数据将用于什么。
- 游戏请求用于账户关联的电子邮件地址并说明数据将用于什么。
- 游戏询问可能用于验证年龄、获取父母同意或发行商账户关联以外目的的数据。
- 游戏请求用户的出生日期,但未说明数据将用于什么。
- 游戏请求父母的电子邮件地址,但未说明数据将用于什么。
- 游戏请求用于账户关联的电子邮件地址,但未说明数据将用于什么。
XR-015:管理玩家通信 *
当用户的隐私设置不允许时,游戏不得允许通过 XBOX 网络进行通信。 游戏通过从 XBOX 网络服务检索数据来满足此 XR。如果游戏使用自己的服务,则必须在会话开始时或当新用户加入会话时检查用户的隐私权限。对于会话之外用户发起的场景,游戏通过在显示用户数据之前和执行操作之前检查隐私来满足此要求。以下权限可供游戏检查:
在游戏会话期间,提供 XBOX 网络和非 XBOX 网络玩家之间通信的游戏必须提供在会话期间将任何非 XBOX 网络玩家静音的功能。
015-01 用户通信
配置- 创建一组配置文件,将”其他人可以通过语音、文本或邀请进行通信”设置为所有人、好友和已阻止。
- 对于支持在 XBOX 之外通信的游戏,创建一组将”您可以通过语音和文本在 XBOX 之外进行通信”设置为允许、游戏内好友和已阻止的配置文件。
“允许”和”游戏内好友”选项之间的区别在于,“允许”意味着您可以与所有跨网络玩家(包括您在随机匹配中遇到的玩家)交谈。“游戏内好友”是您通过将其添加到游戏内好友列表明确选择一起玩的人员。
- 在设备 1 上,登录已根据配置配置了特定权限集的配置文件。
- 在设备 2 上,登录没有通信限制的配置文件。
- 在两台设备上,启动游戏并尝试在所有支持的位置使用文字、语音(通过 Kinect 和通过耳机)和视频进行通信,并尝试发送多人游戏邀请。
- 对配置步骤中的所有配置文件重复步骤 1-3。
- 当特定通信方法配置为阻止时,游戏阻止用户通过 XBOX 通过语音和文字进行通信。
- 当特定通信方法配置为阻止时,游戏阻止用户在 XBOX 之外通过语音和文字进行通信。
- 当被阻止时,游戏阻止用户在 XBOX 上接收多人游戏邀请。
- 当特定通信方法配置为阻止时,用户能够通过 XBOX 通过语音和文字进行通信。
- 当特定通信方法配置为阻止时,用户能够在 XBOX 之外通过语音和文字进行通信。
- 当被阻止时,游戏允许用户在 XBOX 上接收多人游戏邀请。
015-02 静音支持
测试步骤- 作为用户 A,将用户 B 静音。
- 让两个用户加入 XBOX 多人游戏会话。
- 尝试从用户 B 向用户 A 发送语音通信。
- 确保用户 A 无法从用户 B 接收任何语音通信。
- 发起静音的用户听不到来自被静音用户的语音通信。
- 发起静音的用户可以听到来自被静音用户的语音通信。
015-03 被阻止的用户
测试步骤- 作为用户 A,阻止用户 B。
- 让两个用户加入 XBOX 多人游戏会话。
- 尝试从用户 B 向用户 A 发送语音和书面通信。
- 尝试从用户 B 向用户 A 发送多人游戏邀请。
- 确保用户 A 无法从用户 B 接收任何通信或多人游戏邀请。
- 发起阻止的用户看不到或听不到来自被阻止用户的通信。
- 发起阻止的用户不会接收来自被阻止用户的多人游戏邀请。
- 发起阻止的用户可以看到或听到来自被阻止用户的通信。
- 发起阻止的用户会接收来自被阻止用户的多人游戏邀请。
XR-017:游戏分级 *
XBOX 的游戏分级 XR-017 白皮书重点介绍与 XBOX 控制台上的内容分类和限制相关的两个基本概念:- 分级 — 指定不同地区分级机构认为不同类型内容适合的年龄水平。
- 家长控制 — XBOX 控制台上的配置文件设置,定义用户可以在应用中玩或查看的最高分级级别的内容。
017-01 年龄分级验证
配置- 游戏必须是光盘提交,并且必须提供测试光盘以运行测试步骤 #2 和 #3。
- Final(基础/内容更新)— 需要证书的所有区域设置都需要证书。
- 超出范围/无需测试 — DLC、游戏内内容、无法在没有连接到 XBOX Live 服务的情况下启动的游戏。
- 提交材料(证书)
- Microsoft 合作伙伴中心中声明的游戏年龄分级
- 将合作伙伴中心中的分级值与游戏提交材料中提供的分级证书进行比较,反之亦然。这是为了确保每个分级值都有相应的证书,以及每个证书在合作伙伴中心中都有相应的说明。合作伙伴中心中的所有分级值都应有匹配的证书。如果没有,这可能表明有错误,因此必须升级。
- 需要测试光盘 — 将光盘介质插入设置为零售的专用离线控制台,并安装游戏,确保控制台在整个测试期间从未连接到 XBOX Live 服务。
- 对于游戏支持的每个分级机构:在控制台设置中将离线控制台设置为该分级机构管辖的一个位置/国家,登录启用了相应年龄限制的 XBOX 配置文件,并启动游戏以验证:
- 如果配置文件的年龄分级值设置低于游戏的年龄分级证书,则系统挑战用户。
- 如果配置文件的年龄分级值等于游戏的年龄分级证书,则系统不挑战用户,并且游戏启动超过第一个法律/许可证屏幕。
- 当使用设置低于游戏年龄分级证书值的控制台年龄分级值启动时,游戏必须挑战用户。
- 当使用设置等于游戏年龄分级证书值的年龄分级值启动时,游戏必须不挑战用户即可启动。
XR-018:用户生成的内容 *
用户生成的内容 (UGC) 是指玩家在游戏内制作的任何数字内容,并且以在线状态对一个或多个其他人可见或可访问。 如果您的产品包含 UGC,您必须:- 提供产品内方式,让用户可以向开发者举报不当或有害的 UGC 以供审查和删除/禁用(如果违反内容准则),和/或实现主动检测不当或有害 UGC 的方法(例如,文本过滤)。
- 发布用户生成内容的内容准则(例如使用条款或行为准则),用户可以在产品内或游戏网站上获取。
- 准备在 Microsoft 请求的情况下删除/禁用高风险违法内容,以防 Microsoft 察觉到 XBOX 网络上未通过标准操作机制或流程处理的违法材料。
- 尊重玩家 UGC 设置,并优雅地处理由于受限权限导致用户无法在游戏中访问 UGC 的场景。
- 与平台的举报/投诉 API(如果可用)集成,并在与第三方的合同协议要求时审核内容。
- 当内容不是来自开发者时,向用户显示免责声明、对话框或视觉指示。
018-01 举报不当内容和 UGC 文本字符串验证
测试步骤- 识别游戏中可以在非好友之间输入文本的任何区域,然后其他设备上的用户可以查看。
- 验证游戏提供产品内方式来向开发者举报其他用户的不当或有害 UGC。
- 如果没有方法举报不当内容,请在每个区域输入禁用术语列表中的字符串、子字符串等。
- 直接输入禁用术语(即”ForbiddenTerm”)。
- 输入禁用术语,以空格分隔另一个非禁用术语(例如”Good ForbiddenTerm”)。
- 如果游戏允许在离线状态下创建 UGC,例如角色名称,请断开设备与网络的连接,输入禁用术语组合,并重新连接到网络。
- 验证禁用术语对另一台设备上的任何其他用户不可见。
- 使用来自匹配区域设置的禁用术语,针对游戏支持的每种语言重复步骤 3-5。
- XBOX 玩家代号不被过滤、模糊化或受游戏内举报的影响。
- 跨网络用户名、发行商管理的用户名、自定义角色名称或氏族/小队/公会名称不被模糊化。
- 游戏提供产品内方式,让用户可以向开发者举报不当或有害的 UGC。
- 游戏阻止发布不当或有害的 UGC,并通知用户发布失败的原因。
- 游戏用词或字符替换不当或有害的文本,例如_内容已阻止_或_$!*#&_。
- 用户输入的、在游戏中实时共享的文本(例如大厅或游戏内的文本覆盖),或仅在好友之间共享的文本不被过滤。
- 不当或有害的文本字符串在本地控制台上对用户可见,但不会传输到本地控制台之外的其他非好友。
- UGC 准则(例如使用条款或行为准则)对用户在产品内或游戏网站上可用。
- 游戏不为具有受限 UGC 权限的用户阻止整个游戏模式或体验。
- XBOX 玩家代号被过滤或模糊化。
- 游戏未提供用户向开发者举报不当或有害 UGC 的方式,或者允许不当或有害的 UGC 对其他设备上的非好友可见。
- 游戏允许用户通过在离线状态下创建 UGC 并随后在线共享来规避不当或有害的 UGC 过滤。
- UGC 准则(例如使用条款或行为准则)对用户在产品内或游戏网站上不可用。
- 游戏为具有受限 UGC 权限的用户阻止整个游戏模式或体验。
内容包和更新
此类别中的要求指定了 XBOX One 游戏必须如何打包以及必须如何与附加内容包交互。XR-034:流式安装的初始游玩标记 *
包含初始游玩标记的游戏在从初始游玩标记启动时必须提供游戏体验。034-01 流式安装
测试步骤- 登录 XBOX 配置文件。
- 安装游戏,并在初始游玩标记完成安装后启动它。
- 尝试在完整安装完成之前进入游戏的所有区域。
- 游戏在从初始游玩标记启动时提供游戏体验。
- 在安装初始游玩标记后,游戏不提供游戏体验。失败的体验包括:仅显示进度条;播放视频和/或图像序列;仅提供对主菜单的访问;任何其他非交互式体验。
XR-129:智能分发内容管理 *
支持智能分发的游戏必须在需要当前未安装的内容时优雅地处理场景。游戏可以在需要从光盘或 XBOX 网络安装其他内容时通过在 GDK 中调用PackageInstallChunksAsync 或在 XDK 中调用 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 设备特定内容的智能分发
所需工具 — 与 129-01 相同。 测试步骤- 将 XBOX One 控制台设置为支持的语言。
- 安装游戏。
- 启动游戏。
- 浏览游戏并确保仅安装了 XBOX One 特定内容。
- 在所有世代的设备上重复步骤 1-4,并确保安装了所有世代特定内容。
- 对所有支持的语言重复步骤 1-5。
- 游戏安装预期的设备特定内容。
- 游戏保持稳定,不会崩溃或变得无响应。
- 游戏未安装预期的设备特定内容。
- 游戏崩溃或变得无响应。
129-03 设备特定内容的迁移
所需工具 — 与 129-01 相同。 测试步骤- 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 控制台。
- XBOX One 控制台:浏览游戏,并确保游戏优雅地处理两个平台的内容已安装。
- 在 XBOX Series X 上重复步骤 5-9。
- 游戏安装预期的设备特定内容。
- 游戏保持稳定,不会崩溃或变得无响应。
- 游戏崩溃或变得无响应。
129-04 按需内容的智能分发
所需工具 — 与 129-01 相同。 测试步骤- 将 XBOX One 控制台设置为支持的语言。
- 安装游戏。
- 启动游戏。
- 安装所有按需内容。
- 对所有支持的语言重复步骤 1-4。
- 在所有世代的设备上重复步骤 1-5。
- 游戏按预期安装按需内容。
- 游戏保持稳定,不会崩溃或变得无响应。
- 游戏未按预期安装按需内容。
- 游戏崩溃或变得无响应。
129-05 功能和配方
所需工具 — 与 129-01 相同。 测试步骤- 安装基础游戏,不包含与功能和配方相关的任何可选内容。
- 浏览游戏的所有区域,尝试访问未安装的内容,并确保游戏保持稳定。
- 对于在系统 UI 中公开的每个功能,安装该功能并尝试在游戏中访问它,并确保游戏保持稳定。
- 对于未在系统 UI 中公开的每个功能,通过游戏内 UI 选项安装功能视图,并确保游戏保持稳定。
- 对于每个配方,确保用户拥有任何相关的商店权益并执行全新安装。
- 确保配方中包含的任何功能都已安装并可在游戏中访问。
- 未安装可选内容时,游戏保持稳定。
- 已安装可选内容时,游戏允许访问该内容。
- 未安装可选内容时,游戏崩溃或变得无响应。
- 已安装可选内容时,游戏不允许访问该内容。
XR-123:游戏过程中安装/解锁游戏附加内容或消耗品 *
提供可下载内容 (DLC) 的游戏必须允许用户下载/解锁并使用内容,而无需终止和重新启动游戏。123-01 游戏过程中安装/解锁游戏附加内容或消耗品
在零售控制台上,游戏在控制台进入连接待机(使用即时启用关闭)或游戏失去焦点十分钟时被挂起。对于此测试用例,通过启动”设置”应用并将其保持焦点十分钟,在步骤 7 挂起游戏。
- 启动游戏并进入活动游戏过程。
- 从 XBOX 商店发起游戏附加内容或消耗品购买。
- 允许后台下载完成。
- 确保用户能够继续玩游戏,并且游戏不受后台下载完成的影响。
- 确保内容可以在不需要终止和重新启动游戏的情况下使用。
- 在游戏受约束时下载完成的情况下重复步骤 1-5。
- 在游戏挂起时下载完成的情况下重复步骤 1-5。
- 如果游戏支持游戏内商店功能,请使用此功能重复步骤 1-5 以启动附加内容或游戏下载。
- 用户能够下载并使用内容,而无需终止和重新启动游戏。
- 游戏通过游戏内提示提示用户返回菜单以加载新的 DLC。
- 用户必须终止并重新启动游戏才能使用该内容。
123-02 在流式安装期间安装/解锁作为主游戏包一部分的游戏附加内容或消耗品
测试步骤- 验证游戏支持游戏附加内容或消耗品。
- 在完整游戏安装之前安装每种类型的游戏附加内容或消耗品。
- 开始安装主游戏包,并从初始游玩标记启动(如果支持游玩标记)。
- 尝试在游戏完成安装之前使用 DLC。
- 用户可以看到他们可以访问该内容。
- 如果用户尝试玩该内容,他们被通知游戏仍在安装。
- 内容不可见。
- 内容可见,但当用户尝试玩该内容时未给出原因。
XR-037:内容包的依赖关系 *
用户完成基础游戏的任何主要功能或内容时,不得要求购买附加内容(耐用或消耗品)。可选内容包不得依赖其他可选内容包。也就是说,用户不得为了使用某个内容包而下载额外的内容包。具有与附加内容相关联的独特内容的游戏存档必须仍然可以在基础游戏上加载,或者提供清晰的消息说明为何无法加载。037-01 基础游戏没有内容包存档游戏依赖
测试步骤- 登录 XBOX 配置文件并启动游戏。
- 尝试访问基础游戏的所有功能和内容。验证用户不需要下载任何附加内容。
- 下载可以在游戏中使用的可用内容包。
- 加载并使用该内容包,推进足够远以创建基于内容的游戏存档。
- 返回主页并删除该内容包。
- 再次启动游戏。
- 确保存档可以成功加载,并且游戏可以继续,或者用户被清楚地告知为何无法继续。
- 消息必须清晰,并具体告知用户如何排除故障。
- 对所有其他支持的内容包重复步骤 1-8。
- 用户能够完成基础游戏包含的所有功能和内容,而无需购买附加内容。用户删除内容包后,游戏的所有方面都可以无问题地进行。
- 在由内容包提供的区域内创建存档,然后随后删除该内容包后,游戏清楚地向用户传达需要安装内容_x_才能加载游戏存档。游戏还可以查询以查看用户是否有该内容的权益,并且提示用户下载特定内容(如果已拥有),或者如果未拥有则提示用户潜在购买该内容。
- 用户被迫购买附加内容才能完成基础游戏中包含的功能或内容。在步骤 3 期间用户下载了内容包 1 和内容包 2 后,如果随后删除内容包 1,则会丢失在游戏中使用内容包 2 的能力。
- 如果存在内容存档游戏依赖且未安装内容,游戏未清楚地向用户传达需要安装内容才能加载游戏存档。
037-02 没有对其他内容包的依赖
测试步骤- 登录 XBOX 配置文件。
- 启动游戏。
- 下载游戏支持的单个附加内容。
- 尝试在游戏中使用该内容。
- 验证用户不需要下载其他内容才能使用步骤 3 中的内容。
- 退出游戏并删除步骤 3 中的内容。
- 对游戏支持的每个内容重复步骤 2-6。
- 游戏不需要用户下载额外内容才能使用单独的内容包。
- 要求用户下载额外的内容才能使用单独的内容包。
037-03 DLC 依赖
测试步骤- 登录 XBOX 配置文件。
- 下载游戏的可下载内容 (DLC)。
- 进入游戏并使用 DLC 保存进度。
- 退出游戏。
- 从控制台移除 DLC。
- 启动游戏并尝试访问已保存的进度。
- 用户能够加载其已保存的进度并无问题地与游戏进行交互。
- 用户被通知访问其已保存游戏需要特定 DLC。
- DLC 不存在时,游戏变得无法使用。
- 用户无法访问已保存的进度,并且没有收到关于原因的通知。
037-04 多人游戏 DLC
测试步骤- 登录 XBOX 配置文件。
- 启动游戏。
- 控制台 A:下载所有可用于多人游戏的可下载内容。
- 控制台 A:使用可下载内容(关卡、角色、汽车、赛道等)托管 XBOX 游戏会话。
- 控制台 B:使用所有可能的方法尝试加入控制台 A 创建的游戏会话。
- 如果无法加入游戏会话,请验证给出了清晰的指示,说明或容易推断出为何无法加入。
- 对所有游戏模式重复步骤 3-6。
- 以控制台 B 作为主机重复步骤 3-6。
- 用户在尝试加入有 DLC 要求的会话时,如果不满足要求,则会收到适当的消息,并获得如何解决问题的信息(下载、重新下载等)。
- 通过使用图标和/或其他屏幕元素,用户在尝试加入有 DLC 要求的会话时,如果不满足要求,则收到清晰的通知,并获得或可以轻易推断出如何解决问题的信息。
- 满足多人游戏比赛 DLC 要求的用户能够加入会话并游戏。
- 不满足多人游戏会话 DLC 要求的用户未获得关于 DLC 要求及如何解决它的清晰视觉指示。
- 满足多人游戏会话 DLC 要求的用户无法一起加入。
从游戏内商店和 Microsoft Store 购买
此类别中的要求指定如何从游戏内商店和 Microsoft Store 购买。XR-036:游戏内定价信息 *
游戏内显示的任何现实货币价格,包括但不限于任何促销或基于订阅的折扣,必须来自 XBOX 目录。036-01 内容价格验证
测试步骤- 登录 XBOX 配置文件。
- 启动游戏。
- 访问游戏中显示价格的所有区域。
- 验证显示的价格与 XBOX 目录中的价格相符。
- 终止游戏,并为下一个支持的分发区域重新配置语言、语言区域和位置系统设置。
- 对所有支持的分发区域重复步骤 1-4。
- 游戏内显示的价格与 XBOX 目录中的价格一致。
- 游戏内显示的价格与 XBOX 目录中的价格不同。
用户配置文件
此类别中的要求适用于游戏如何与 XBOX 用户模型、配置文件以及保存用户数据进行交互。XR-112:在初始激活和恢复期间建立用户和控制器 *
游戏必须建立一个或多个活动用户以在游戏中充当主要用户,并处理从挂起和受约束模式恢复时的用户。使用 GDK 的游戏通过使用简化或高级用户模型来实现这一点。 GDK 简化用户模型游戏 — GDK 中的简化用户模型代表游戏处理默认用户获取。游戏仍然负责确保控制器分配给用户并使用该控制器进行游戏输入。如果没有控制器分配给默认用户,游戏应使用XUserFindControllerForUserWithUiAsync 来调用系统对话框以选择控制器并开始接受来自玩家的输入。
GDK 高级用户模型、ERA 和 UWP 多用户应用程序 — 在初始激活时,游戏可以根据其游戏设计和偏好选择使用启动游戏的用户或显式提示用户来确定初始用户。游戏必须在对该用户配置文件采取第一个配置文件相关操作(例如保存进度或设置)之前指示活动用户。所有使用高级用户模型的 Microsoft 游戏开发工具包 (GDK) 游戏、ERA 和 UWP 多用户应用程序 (MUA) 游戏必须为账户选择器提供入口点以更改活动用户。当游戏从挂起或受约束模式恢复时,游戏必须验证用户/控制器配对,并通过恢复先前用户的会话或获取一个或多个新用户来相应地作出反应。
112-02 初始用户和控制器
测试步骤- 登录配置文件 A 并启动游戏。
- 验证活动用户可以控制游戏。
- 在没有已登录配置文件的情况下重复步骤 1,并验证游戏提示建立活动用户。
- 建立活动用户,并验证用户可以控制游戏。
- 游戏将活动用户设置为启动游戏的控制器/用户配对。
- 游戏显示参与提示以标识控制器和用户。
- 游戏显示账户选择器以登录。
- 游戏不允许用户使用第一个使用的控制器控制游戏。
- 在没有用户登录时启动时,游戏未提示用户建立活动用户。
112-03 无已登录用户
测试步骤- 验证没有用户已登录。
- 启动游戏并进入每种支持保存用户数据的模式。
- 验证每种模式在发生任何数据丢失之前都为用户提供了登录的机会。
- 取消登录的机会,并验证游戏提供警告,指示进度不会被保存。
- 当访问通常保存用户数据或游戏状态的游戏模式时,未登录的用户被提示登录。
- 用户被通知,如果他/她在未登录的情况下继续该模式,则进度将不会被保存。
- 在通常保存用户数据或游戏状态的模式下,未通知用户,如果他们在未登录的情况下继续该模式,则进度不会被保存。
- 在数据丢失已发生之后,才通知用户他们无法保存进度。
112-04 活动用户指示
测试步骤- 登录以前未见过游戏且没有相关存档数据的配置文件。
- 启动游戏。
- 验证游戏在执行任何配置文件相关操作之前在 UI 中标识活动用户。
- 创建存档。
- 重新启动游戏,并验证游戏在执行任何配置文件相关操作之前在 UI 中标识活动用户。
- 从 XBOX Live 断开连接。
- 重新启动游戏,并验证游戏在执行任何配置文件相关操作之前在 UI 中标识活动用户。
- 游戏在执行任何配置文件相关操作之前在游戏中显示用户的玩家代号和/或游戏图片。
- 不使用用户配置文件的游戏不指示活动用户。
- 游戏为支持多用户的游戏模式显示多个活动用户。
- 游戏在执行配置文件相关操作之前未指示游戏的活动用户。
112-05 访问账户选择器
测试步骤- 登录配置文件并启动游戏。
- 确认游戏允许活动用户在游戏中访问账户选择器并选择不同的配置文件。
- 游戏允许用户在游戏中访问账户选择器。
- 游戏不允许用户访问游戏中的账户选择器。
112-06 处理配置文件切换
测试步骤- 登录配置文件并启动游戏。
- 访问账户选择器并选择不同的配置文件。
- 验证游戏做出适当反应,并将活动用户的上下文切换到新配置文件。
- 对游戏中可访问账户选择器的每个位置重复步骤 1-4。
- 游戏通知用户更改活动用户可能导致数据丢失,并在继续进入账户选择器之前提示用户确认。
- 游戏适当地更新到新活动用户的上下文。
- 游戏未适当地更新到新活动用户的上下文。
112-07 受约束模式期间的用户切换
测试步骤- 登录配置文件 A 并启动游戏。
- 在游戏中的不同位置,按 XBOX 按钮以约束游戏。
- 在游戏受约束时,注销配置文件 A 并登录配置文件 B。
- 恢复游戏。
- 验证游戏适当地对新活动用户作出反应。
- 应用在恢复时自动将活动用户上下文切换到配置文件 B。
- 游戏自动从游戏中删除配置文件 A,或重新建立新用户,并使用该新用户的状态进行游戏。
- 游戏未更新以将配置文件 A 从活动用户的上下文中删除。
- 选择新配置文件后,游戏继续使用配置文件 A 的状态进行游戏。
112-08 挂起期间的用户切换
对于此测试用例,通过启动”设置”应用并将其保持焦点十分钟,在步骤 2 挂起游戏。
- 登录 XBOX 配置文件并启动游戏。
- 在整个游戏的不同位置,挂起游戏。
- 在游戏挂起时,注销配置文件 A 并登录配置文件 B。
- 恢复游戏,并验证游戏适当地对新活动用户作出反应。
- 使用新活动用户进入游戏,并验证用户能够取得进步。
- 游戏在恢复时自动将活动用户上下文切换到配置文件 B。
- 游戏自动从游戏中删除配置文件 A,或重新建立新用户,并使用该新用户的状态进行游戏。
- 游戏未更新以将配置文件 A 从活动用户的上下文中删除。
- 选择新配置文件后,游戏继续使用配置文件 A 的状态进行游戏。
XR-115:游戏过程中用户或控制器的添加和移除 *
支持多用户的游戏必须按以下方式响应用户的添加和移除,或活动玩家没有分配控制器或游戏期间控制器丢失的场景: 控制器添加 — 在游戏选择或接收初始用户和控制器后,它可以选择接受来自其他控制器的输入。支持多人游戏体验的游戏应考虑如何将额外的玩家或控制器添加到游戏中,并使用XUserAddAsync 绑定到用户。
控制器移除 — 如果驱动游戏的玩家控制器在游戏中被移除,游戏必须允许重新建立新的活动控制器(例如,“按 A 继续”或接收 ERA 中的 ControllerPairingChanged 或 GDK 中的 XUserDeviceAssociationChangedCallback 事件,以便活动用户获得有效控制器)。游戏也可以使用 XUserFindControllerForUserWithUiAsync 调用系统 UX,以提示用户将控制器配对到其用户并返回游戏。
用户添加 — 使用 ERA 或 UWP 时,如果新用户登录,游戏可以在游戏支持多用户体验的情况下将用户添加到游戏中,但游戏不得根据新的已登录用户事件自动将活动用户切换到新用户或中断活动用户的体验。使用 GDK 时(使用简化或高级用户模型),仅在游戏调用 XUserAddAsync 时添加用户。
主要用户移除 — 对于使用 ERA 或 GDK 高级用户模型的游戏,如果主要用户注销,游戏必须从游戏中删除玩家或重新建立用户和活动控制器。对于使用 GDK 简化用户模型的游戏,主要玩家被移除会导致游戏在系统级别被挂起。在所有场景中,游戏通过将其游戏置于良好状态来处理移除/关闭。
附加/次要用户移除 — 游戏可以自行决定处理此事件,通常通过立即将玩家从游戏中删除或提示玩家在正在使用的多人游戏体验的上下文中重新加入。
115-01 添加用户
测试步骤- 登录配置文件 A,并确保没有其他配置文件已登录。
- 启动游戏并进入游戏过程。
- 在游戏使用的不同时刻,连接第二个控制器并登录配置文件 B。
- 配置文件 B 尝试向游戏提供控制器输入。
- 游戏不自动将活动用户切换到新用户或中断活动用户的体验。
- 游戏可以选择根据当前上下文允许配置文件 B 控制游戏。
- 游戏立即将上下文切换到配置文件 B 作为活动用户。
115-02 移除控制器
测试步骤- 登录配置文件并启动游戏。
- 在游戏使用的不同时刻,从控制器上取出电池。
- 更换控制器中的电池,并验证用户可以继续使用游戏。
- 重复步骤 1-3,但连接第二个控制器而不是更换电池。
- 在移除或添加控制器后,活动用户应能够继续使用游戏。
- 用户被提示重新建立新的活动控制器。
- 用户在移除控制器后无法继续使用游戏。
115-03 移除用户
测试步骤- 登录配置文件 A,并确保没有其他配置文件已登录。
- 启动游戏并进入游戏过程。
- 在游戏使用的不同时刻,注销配置文件 A。
- 验证游戏调用账户选择器或将用户返回到前端界面。
- 在可能的情况下,以以下方式与游戏进行交互:
- 登录配置文件 A,并确保游戏不进一步中断用户的体验。
- 登录配置文件 B,并确保游戏更新到新用户的上下文。
- 游戏将玩家从游戏中删除并返回到前端界面。
- 游戏允许用户重新建立新用户,并正确更新到相关用户上下文。
- 游戏无法对用户状态的变化作出反应。
- 选择新配置文件后,游戏继续使用配置文件 A 的用户状态。
XR-045:XBOX 网络和账户权限 *
XBOX 网络为用户及其孩子提供预期的隐私和在线安全水平。为了兑现这一承诺,游戏必须检查 XBOX 网络服务的权限,以便在 XBOX 网络服务或游戏体验中完成某些操作。 尽管权限检查和遵守适用于所有账户,但请特别注意儿童账户的体验和期望。对于儿童账户,某些活动的限制可能会由于基于年龄的默认设置和/或儿童家庭组织者的配置而被阻止。
免费游戏、演示或 beta 可以配置为允许非 Game Pass 订阅者的玩家进行多人游戏 (ID 254)。这是通过服务端配置完成的,可以通过联系您的 Microsoft 代表来发起。这些游戏必须继续检查多人游戏权限,以确保尊重家长控制和玩家选择。
045-01 尊重用户权限
测试步骤- 登录 XBOX 配置文件并启动游戏。
- 对于 XR 备注中确定的每个权限,识别游戏是否支持相关活动。
- 对于步骤 2 中确定的每个适用权限的每个可能设置,执行以下操作:
- 退出游戏并更改用户的权限设置。
- 重启控制台。
- 登录同一配置文件并启动游戏。
- 访问游戏的所有相关区域,使用与权限相关的所有游戏功能,并验证游戏尊重用户当前的权限设置。
- 尝试使用 Silver XBOX 配置文件访问所有离线和在线区域。
- 游戏尊重用户的权限设置。
- 游戏将部分允许的权限设置视为权限已被禁用/不允许。
- 对于使用 XDK 的游戏,游戏调用系统 UI 提醒用户任何权限冲突。
- 对于使用 GDK 的游戏,游戏调用系统 UI 提醒用户任何权限冲突。
- 对于使用 XSAPI 的游戏,游戏显示信息性消息以让用户知道他们无法参与。
- 游戏保留了用户的权限设置,在权限更改后未反映用户的实际权限。
- 游戏将部分允许的权限设置视为其最不严格的设置。
- 对于使用 XDK 或 GDK 的游戏,游戏使用游戏内消息提醒用户任何权限冲突,并且不显示系统 UI。
- 对于使用 XSAPI 的游戏,游戏未显示信息性消息。
045-02 尊重用户权限 - XBOX 家庭
测试设置和配置 XBOX 家庭,包括以下 Microsoft 账户:- 指定为组织者的成人(大于 18 岁)。
- 具有_儿童默认_权限设置的儿童(小于 13 岁):
测试步骤
- 登录成人和儿童 Microsoft 账户,并使用儿童账户启动游戏。
- 对于 XR 备注中确定的每个权限,识别游戏是否支持相关活动。
- 对于步骤 2 中确定的每个适用权限的每个可能设置,执行以下操作:
- 验证根据账户权限允许/不允许相关活动。
- 退出游戏并更改儿童的权限活动的权限设置,即游戏支持的活动;从阻止变为允许。
- 重启控制台。
- 登录同一配置文件并启动游戏。
- 访问游戏的所有相关区域,使用与权限相关的所有游戏功能,并验证游戏尊重用户当前的权限设置。
- 使用未登录控制台的父母账户重复步骤 2-3。
- 游戏尊重儿童的权限设置。
- 当该活动的权限被允许时,游戏允许儿童参与该活动。
- 当该活动的权限被阻止时,游戏不允许儿童参与该活动。
- 游戏允许儿童参与被阻止但父母允许该活动权限的活动。
- 游戏不允许儿童参与被阻止且父母不允许该活动权限的活动。
- 游戏不尊重儿童的权限设置。
- 游戏未调用适当的 UI 来提醒和通知儿童权限冲突。
- 当该活动的权限被阻止时,游戏允许儿童参与该活动。
- 当该活动的权限被允许时,游戏不允许儿童参与该活动。
XR-046:显示名称和游戏图片 *
在 XBOX 控制台上,游戏必须使用玩家代号作为其主要显示名称。 根据设计选择,游戏可以在玩家的现代玩家代号或经典玩家代号之间进行选择。现代玩家代号在 GDK 中可用,经典玩家代号在 ERA 和 GDK 中均可用。 现代玩家代号 — 显示唯一现代玩家代号的所有 16 个字符,其中包括最多 12 个字符的现代玩家代号,后跟 # 和后缀号(如果存在)。例如:Major Nelson(不存在后缀)或 Major Nelson#881。如果使用现代玩家代号,必须支持所有现代玩家代号可用的 Unicode 字符范围。 经典玩家代号 — 正确显示经典玩家代号的所有 15 个字符。经典玩家代号仅包括 ASCII 字符 a-z、A-Z、0-9、逗号 (,) 和空格。例如:Major Nelson。 在 GDK 中,这些项使用XUserGetGamertag API 返回。在 ERA 中,玩家代号是通过 GetUserProfileAsync API 获取的。
046-01 显示名称和游戏图片
所需工具 — 来自 GDK 的 XblTestAccountGui.exe。 准备工作 — 为以下每个名称创建四个测试账户,并使用 XblTestAccountGui.exe 将每个测试账户的玩家代号更改为以下内容:- สฐ众нь컴퓨퓨
- आथाώঙぁヺ
- øÜêþЯЂў
- gttest1
- 找到并查看游戏中显示玩家代号的位置。
- 检查步骤 1 中确定的所有区域中用户的玩家代号如何显示。
- 如果游戏显示用户的图片,请验证是否为每个账户显示了正确的 Microsoft 账户图片或游戏图片。
- 使用现代玩家代号时,玩家代号正确显示 Unicode 字符(包括自动生成的后缀)。
- 使用经典玩家代号时,玩家代号显示正确。
- 由于 Unicode 字符显示为空白字符,玩家代号根本没有呈现。
- 使用经典玩家代号时,玩家代号未正确显示。
XR-047:用户配置文件访问 *
游戏必须在枚举用户显示名称的任何地方,为用户提供访问其他 XBOX 网络用户的玩家卡(用户配置文件)的选项。047-01 用户配置文件访问
测试步骤- 设备 1 和 2:启动游戏。
- 设备 1 和 2:登录 XBOX 配置文件。
- 设备 1:设置一个 XBOX 多人游戏会话。
- 设备 2:查找并加入设备 1 创建的游戏会话。
- 设备 2 加入游戏会话后,验证以下内容:
- 从游戏前大厅,通过选择玩家代号或用户名访问另一个 XBOX 用户的玩家卡。
- 在游戏过程中,尝试通过选择用户的用户名或玩家代号访问另一个 XBOX 用户的玩家卡。
- 从游戏后统计屏幕,通过选择用户的用户名或玩家代号访问另一个 XBOX 用户的玩家卡。
- 从排行榜区域,访问另一个 XBOX 用户的玩家卡。
- 查找列出玩家代号的其他任何区域,并尝试访问另一个 XBOX 用户的玩家卡。
- 在显示玩家代号且启用了界面导航的所有位置,用户能够访问另一个 XBOX 用户的玩家卡。
- 无论是否启用了界面导航,用户都能够在排行榜、会话大厅、游戏后统计以及其他游戏内菜单中访问另一个 XBOX 用户的玩家卡。
- 在显示玩家代号且可以进行界面导航的任何位置,用户无法访问另一个 XBOX 用户的玩家卡。
- 无论是否启用了界面导航,用户都无法在排行榜、会话大厅、游戏后统计以及其他游戏内菜单中访问另一个 XBOX 用户的玩家卡。
XR-048:配置文件设置使用 *
XBOX 网络是 XBOX 用户配置文件信息的事实来源。为支持这一点,游戏不得将从 XBOX 网络获取的用户信息(如配置文件数据、偏好或玩家代号)存储在超出旨在支持网络断开场景的本地存储缓存的范围之外。任何离线缓存必须在下一次可用的服务连接时更新。048-01 配置文件设置使用
配置 — 2 台 XBOX 设备。 测试步骤- 选择一个配置文件并创建存档。
- 更改用户配置文件数据,包括更新玩家代号或账户名称。
- 启动游戏并加载步骤 2 中创建的存档。
- 验证游戏中可见的用户配置文件数据已发生变更,并且没有存储在存档中。
- 验证对玩家代号的任何引用(由游戏自动创建)都已更新。这包括服务器托管功能上的任何引用以及游戏内的任何引用。
- 在第二台设备上启动游戏,并验证更新后的玩家代号正确显示。
- 用户配置文件数据和偏好设置在更改后在所有显示中都得到更新。
- 对于本地存储的存档数据(如回放、存档、选项、地图和队伍),游戏未在游戏内或 XBOX Home 上显示用户更新后的玩家代号或 Microsoft 账户名称。
- 游戏未在持久性发布内容(如游戏片段、回放、排行榜或其他自定义发布)中更新用户的玩家代号。这适用于新的和先前创建的发布内容。
- 游戏为用户的存档数据存储用户的玩家代号,导致如果用户更改玩家代号或账户名称,存档数据变得无法使用。
XR-052:用户状态和游戏存档位置、漫游和依赖项 *
游戏必须将进度、已保存的状态、偏好、成就和其他奖励与记录该进度、选择偏好或获得奖励的用户关联。游戏通过正确处理用户切换通知来实现这一点。游戏必须避免为不再登录的用户保存状态。游戏存档数据不得对共享内容或本地存储有任何依赖。 对于跨平台、设备和/或控制台世代使用相同 TitleID 的游戏,当用户登录到 XBOX 网络时,游戏存档进度必须按以下方式漫游:- 在同一平台内(XBOX 控制台)。
- 在同一平台上的设备之间(例如,XBOX One 和 XBOX One S)。
- 跨设备平台世代(例如,XBOX One 和 XBOX Series X|S)。
- 在 Windows 平台上跨 PC。
- 在 Windows 平台上的 PC 与 XBOX 控制台平台之间,不要求游戏存档漫游,但建议支持。
- 对于非 Microsoft 平台(iOS、Android、Switch、PlayStation®),不要求游戏存档漫游,但建议支持。
052-01 用户登录和注销
测试步骤- 确保配置文件 A 和配置文件 B 已将控制台设置为主机。
- 确保配置文件 A 具有包括游戏进度和用户偏好在内的存档数据。
- 确保配置文件 B 没有任何存档数据。
- 登录配置文件 A 并启动游戏。通过访问游戏的所有区域,确保所有存档数据和偏好都已保留,包括单人或多人游戏会话、菜单以及视频或音频播放。
- 从配置文件 A 注销并登录配置文件 B。
- 通过再次访问步骤 4 中验证的游戏所有区域,验证游戏正确更新了配置文件 B 的用户进度、已保存的状态、偏好、成就或其他奖励。
- 开始游戏以创建存档进度,并更改配置文件 B 的用户偏好。
- 终止并重新启动游戏,并验证步骤 7 的存档数据准确反映。
- 从配置文件 B 注销。
- 从配置文件 A 中删除”所有位置”的存档数据,并重复步骤 4-8。
- 用户切换后,用户进度、已保存的状态、偏好、成就或其他奖励与正确的用户关联。
- 用户切换后,游戏错误地将用户进度、已保存的状态、偏好、成就或其他奖励与用户关联。
- 游戏继续将存档数据授予第一个用户。
- 新用户在注销后可以更改先前用户的存档数据、状态或配置文件。
052-02 挂起期间的用户切换
对于此测试用例,通过启动”设置”应用并将其保持焦点十分钟,在步骤 2 挂起游戏。
- 登录 XBOX 配置文件并启动游戏。
- 在整个游戏的不同位置,挂起游戏。
- 注销主要用户并作为其他用户登录。
- 使用新用户启动游戏,并尝试从上一个用户的位置继续。
- 对游戏的所有区域重复步骤 1-4。
- 使用其他用户启动游戏时的游戏状态在上下文上适合游戏类型。
- 用户切换后,用户进度、已保存的状态、偏好、成就或其他奖励与正确的用户关联。
- 用户切换后,游戏错误地将用户进度、已保存的状态、偏好、成就或其他奖励与用户关联。
- 游戏继续将存档数据授予第一个用户。
- 新用户在注销后可以更改先前用户的存档数据、状态或配置文件。
052-05 正确的用户关联
测试步骤- 登录配置文件并启动游戏。
- 进入游戏并保存游戏进度。
- 终止游戏。
- 从步骤 1 的配置文件注销,并登录新配置文件。
- 启动游戏并尝试访问已保存的进度。
- 步骤 5 中仅显示与步骤 4 中的新配置文件关联的已保存进度。
- 游戏允许新配置文件加载不同配置文件的已保存进度。
052-06 云存储:漫游
所需设备 — XBOX One、XBOX One S、XBOX One X、XBOX Series X 开发工具包(使用 XBOX Series X|S 零售控制台模式)以及 2 台 PC。 测试步骤- 在设备 A 上登录 XBOX 配置文件并启动游戏。
- 开始游戏并制作存档进度(如果可能,通过更改或添加新的设置配置来创建设置存档)。
- 退出游戏。
- 在与步骤 1 中使用的相同平台/世代的第二台设备上使用步骤 1 中使用的相同配置文件登录。从步骤 1 启动同一游戏,并验证所有已保存的游戏及任何设置和/或配置文件可以正确访问和加载,并且它们对共享内容没有任何依赖。
- 对于跨世代在同一平台上使用相同 TitleID 的游戏(XBOX One 和 XBOX Series X|S),重复步骤 4。
- 对于在 Windows 平台上使用相同 TitleID 的 PC 游戏,重复步骤 4。
- 如果支持,对于跨平台使用相同 TitleID 的游戏,在其他支持的平台上启动步骤 1 中的相同游戏并验证。
- 游戏存档和相关设置文件可以在同一控制台平台/世代的第二台控制台上成功下载。
- 游戏存档和相关设置文件可以在 Windows 平台的第二台 PC 上成功下载。
- 对于跨世代在同一平台上共享相同 TitleID 的控制台游戏,存档和相关设置文件可以在这些设备之间漫游。
- 游戏存档数据对共享内容没有任何依赖。
- 游戏存档和相关设置文件无法在同一平台/世代的第二台控制台上成功下载。
- 游戏存档和相关设置文件无法在 Windows 平台的第二台 PC 上成功下载。
- 对于跨世代在同一平台上共享相同 TitleID 的控制台游戏,存档和相关设置文件无法在这些设备之间漫游。
- 云中的存档在首次启动时未被游戏识别,并且在没有任何用户交互的情况下,随后在第二台设备上被覆盖。
- 游戏存档数据对共享内容有依赖。
成就和奖励
以下要求适用于在 XBOX 网络上提供成就的游戏。所有针对 XBOX 控制台的游戏都必须具有成就,并满足以下要求。演示版不允许具有成就;但是,可以选择支持 Hero Stats。XR-055:成就和玩家分数 *
游戏必须在发布时提供所需数量(最小和最大)的成就及其相关的玩家分数。允许游戏在发布后随时添加成就或玩家分数,无论是否有相应的新内容,但不能超过基于游戏或基于日历的限制。 单项成就不能超过 200 玩家分数,游戏中的所有成就都必须可实现。 在基础游戏或内容更新中解锁成就必须代表对游戏内容的深入探索或参与。“半年度”是指 1 月至 6 月、7 月至 12 月。基础游戏的成就和玩家分数不计入半年度限制。
055-01 成就
测试步骤- 查看游戏支持的玩家分数量和成就总数。
- 通关游戏并尝试获得尽可能多的成就。
- 从连接待机恢复后重复步骤 2。
- 在与 XBOX 服务断开连接时重复步骤 2。
- 可以获得所有成就。
- 成就按其条件解锁。
- 所有成就代表对游戏内容的深入探索或参与。
- 游戏的发布版本具有 1000 玩家分数,分布在 10-100 个成就中。
- 满足条件时成就未解锁。
- 成就在满足条件之前解锁。
- 成就不代表对游戏内容的深入探索或参与。
- 所有成就都可以在游戏开始几分钟内解锁。
- 除非作为核心游戏循环的一部分需要,否则可以在几乎没有用户输入的情况下解锁成就。
- 游戏的发布版本没有 1000G。
- 游戏的发布版本有超过或少于 10-100 个成就。
- 从连接待机恢复后成就未解锁。
- 单项成就超过 200 玩家分数。
- 重新连接到 XBOX 服务后成就未解锁。
XR-057:解锁成就 *
游戏必须提供一种方式,让用户可以获得基础游戏定义的所有成就,而无需购买额外的游戏内内容。 成就必须通过游戏内操作、游戏过程和/或体验解锁。 游戏不得为玩家提供直接解锁成就的替代选项,而不需要相应的游戏活动。不允许的选项的非详尽列表:- 真实货币购买
- 游戏内作弊代码、控制台或菜单选项
057-01 基础成就无需额外购买
测试步骤- 查看基础游戏的成就描述。
- 验证它们不需要额外的购买或内容。
- 获得所有成就。
- 所有成就都可以在不需要购买额外游戏内内容的情况下获得。
- 没有成就需要额外的游戏内内容。
- 要求用户购买额外的游戏内内容才能解锁基础游戏定义的成就。
多人游戏会话
此类别中的要求涉及在 XBOX 上提供多人游戏会话的游戏。XBOX 提供了一种一致且简单的方式来查找多人游戏会话并微调用于查找这些会话的参数。XR-064:可加入的游戏会话和在线游戏 *
在 XBOX 控制台上,提供可加入游戏会话的游戏必须通过 XBOX shell 界面启用可加入性。 从使用 XBOX 登录的 PC 设备提供与 XBOX 控制台的跨平台多人游戏的游戏,也必须通过 Game Bar 体验启用加入。064-01 从游戏外部加入游戏会话
配置- 两个 XBOX 配置文件
- 设备 1 配置文件 A — 与配置文件 B 是好友
- 设备 2 配置文件 B — 与配置文件 A 是好友
对于此测试用例,通过启动”设置”应用并将其保持焦点十分钟,在步骤 5 挂起游戏。
- 使用配置文件 A 创建一个可加入的游戏会话。
- 使用未运行游戏的配置文件 B,通过 XBOX shell 界面访问好友列表,并验证配置文件 A 列为可加入。某些游戏可能仅支持私人多人游戏会话,因此不会对配置文件 B 显示为可加入,在这种情况下,请跳到步骤 6。
- 配置文件 B 加入配置文件 A 的游戏。
- 确认两个配置文件一起被放入游戏体验。
- 在游戏处于挂起状态时,使用配置文件 B 重复步骤 1-4。
- 重复步骤 1-5,但这次不是配置文件 B 通过好友列表加入,而是让配置文件 A 通过系统 shell 向配置文件 B 发送游戏邀请,并确保配置文件 B 能够接收、接受和加入配置文件 A。
- 两个配置文件一起被放入游戏体验。
- 用户 B 能够加入用户 A 的游戏,并一起进入游戏体验。
- 由于游戏仅支持私人多人游戏会话,用户 A 未在 XBOX shell 界面的好友列表中显示为可加入,但用户 A 可以通过系统 shell 向用户 B 发送游戏邀请。
- 用户 A 在参与仅支持通过匹配加入的会话时,不显示为可加入,并且无法通过 XBOX shell 界面发送游戏邀请。
- 用户 B 无法成功加入用户 A 的游戏,也未被放入游戏体验。
- 由于游戏仅支持私人多人游戏会话,用户 A 未在 XBOX shell 界面的好友列表中显示为可加入,并且用户 A 无法通过系统 shell 向用户 B 发送游戏邀请。
064-02 从同一游戏内加入游戏会话
配置 — 与 064-01 相同。 测试步骤- 使用配置文件 A 启动游戏,并在游戏内创建一个可加入的游戏会话。
- 使用配置文件 B 启动同一游戏,并进入游戏内的某些体验。
- 使用配置文件 B,通过 XBOX shell 界面访问好友列表,并选择加入配置文件 A 的游戏。某些游戏可能仅支持私人多人游戏会话,在这种情况下,请跳到步骤 5。
- 确认两个配置文件一起被放入游戏体验。
- 重复步骤 1-4,但这次不是配置文件 B 通过好友列表加入,而是让配置文件 A 通过系统 shell 向配置文件 B 发送游戏邀请,并确保配置文件 B 能够接收、接受和加入配置文件 A。
064-05 不可加入的游戏
配置- 3 个 XBOX 配置文件,每个登录到不同的设备
- 设备 1 配置文件 A — 与配置文件 B 和 C 是好友
- 设备 2 配置文件 B — 与配置文件 A 是好友
- 设备 3 配置文件 C — 与配置文件 A 是好友
- 使用配置文件 A 启动游戏,并创建一个可加入的游戏会话。
- 使用配置文件 A,邀请配置文件 B 和 C 参加游戏。
- 使用配置文件 A,进入一个游戏会话,以便在 A 加入后仅剩一个可用位置。
- 使用配置文件 B,接受邀请。
- 确认配置文件 A 和 B 一起玩。
- 使用配置文件 C,接受邀请并尝试加入游戏会话。
- 配置文件 C 被要求等待到下一次加入的机会。
- 配置文件 C 收到关于无法加入游戏会话的原因的消息。
- 配置文件 C 未被要求等待到下一次加入的机会,并且未收到关于无法加入的消息。
XR-067:维护多人游戏会话状态 *
在 XBOX 控制台上,具有在线多人游戏功能的游戏必须在 XBOX 网络上维护会话状态信息。游戏通过 XBOX 多人游戏会话目录 (MPSD) 执行此操作,或者如果游戏有自己的多人游戏会话状态功能,它们可以选择使用多人游戏活动最近玩家功能记录玩家交互。 在 XBOX 控制台以外的设备上,提供与 XBOX 控制台跨平台多人游戏的游戏必须在 XBOX 多人游戏会话目录 (MPSD) 中维护会话状态信息。067-01 维护会话状态
测试步骤- 登录 XBOX 配置文件,并在多台设备上启动游戏。
- 与所有玩家完成 XBOX 游戏会话。
- 返回主页并查看”最近玩家”列表,以验证游戏会话中的所有玩家都已包含。
- 重复步骤 1-3 数次,但这次每次使用新账户。
- 重复步骤 1-4,但这次让一个或多个玩家在游戏过程中离开,并确保他们的配置文件仍出现在步骤 2 期间的”最近玩家”列表中。
- 所有配置文件都包含在设备的”最近玩家”列表中。
- 并非所有配置文件都包含在设备的”最近玩家”列表中。
- 在多人游戏中退出的用户不会出现在”最近玩家”列表中。
XR-070:好友列表 *
游戏必须使用 XBOX 网络好友列表作为主要好友列表。游戏必须从 XBOX API 获取好友列表,且不得在游戏服务器上永久存储好友列表。 游戏可以显示来自中央游戏账户的辅助好友列表,以便显示不在 XBOX 网络上或不在用户 XBOX 网络好友列表中的玩家。根据设计,游戏可以创建一个包含 XBOX 网络和发行商账户好友的中心位置的混合好友列表体验;必须使用图标或其他澄清标记来区分 XBOX 好友和其他网络上的好友。070-01 XBOX 好友列表
测试步骤- 找到游戏中显示的任何人员列表,并验证它们包含 XBOX 网络好友列表。
- 如果游戏支持包含 XBOX 网络和发行商账户好友的混合好友列表,请验证它们使用图标或其他澄清标记加以区分。
- 游戏使用 XBOX API 使用 XBOX 网络好友列表作为主要好友列表。
- 游戏有另一个人员列表,例如最近玩家或公会成员,他们不作为用户的核心列表定位。
- 游戏显示筛选为仅显示玩过该游戏的好友的好友列表。
- 游戏显示包含 XBOX 网络和发行商账户好友的混合好友列表,并使用图标或其他澄清标记加以区分。
- 游戏未使用 XBOX API 显示好友列表。
- 游戏在游戏服务器上永久存储好友列表。
- 游戏显示包含 XBOX 网络和发行商账户好友的混合好友列表,但未加以区分。
XR-124:游戏邀请 *
支持可加入多人游戏体验的游戏必须允许玩家使用 XBOX 网络平台从游戏内向其他 XBOX 网络用户发送游戏邀请,包括存在跨网络玩家的场景。124-01 游戏邀请
配置- 两个 XBOX 配置文件,每个登录到不同的设备
- 设备 1 配置文件 A — 与配置文件 B 是好友
- 设备 2 配置文件 B — 与配置文件 A 是好友
对于此测试用例,应在步骤 5 中验证两种方法。
- 将用户 A 和 B 登录到各自的设备。
- 两个用户启动游戏。
- 用户 A 创建一个游戏会话,并找到游戏内发送邀请的选项。
- 用户 A 向用户 B 发送游戏邀请。
- 配置文件 B 从以下每个区域接受邀请以加入配置文件 A 的游戏会话:
- 从初始启动序列到初始交互状态的任何位置
- 主菜单(如有)
- 单人游戏过程中(如有)
- 多人游戏过程中(如有)
- 在主菜单上处于挂起状态时(如有)
- 在单人游戏中处于挂起状态时(如有)
- 在主菜单上处于受约束状态时(如有)
- 在任何游戏过程中处于受约束状态时(如有)
- 确认每次邀请后两个配置文件一起被放入游戏体验。
- 游戏具有游戏内选项,允许玩家为可加入的会话发送游戏邀请。
- 玩家在游戏中接受游戏邀请时不会收到破坏性操作的确认消息。
- 邀请完成,但当控制台上不存在所需的 DLC 时,无法启动/发起会话。这会清楚地告知玩家。
- 只有游戏会话的主机可以发送邀请,如果主机是谁明确的。
- 游戏没有允许玩家为可加入的会话发送游戏邀请的游戏内选项。
- 游戏在 XBOX 上提供多人游戏会话,但不包含支持游戏邀请的任何游戏模式。
- 在接受游戏邀请后,活动玩家未被带入其被邀请的游戏会话。
- 当控制台上不存在所需的 DLC 时,邀请未完成。这未告知玩家。
Beta 和游戏预览
此类别中的要求仅适用于归类为 beta 或游戏预览的游戏。 Beta 和游戏预览游戏受本文档中提供的 XR 子集的约束。此子集的范围详见 XBOX 游戏预览和 Beta 要求页面。XR-117:Beta/游戏预览通知 *
处于 beta 阶段的游戏必须具有启动画面或消息,在启动后但在游戏或应用程序使用之前显示,并在体验中传达:- 该游戏是 beta/预发布软件。
- 某些平台功能可能无法正常工作。
- 某些游戏功能可能无法正常工作,可能会崩溃。
117-01 向用户提供 Beta/游戏预览通知
测试步骤- 登录 XBOX 配置文件并启动游戏。
- 验证在用户能够参与游戏或应用程序使用之前,至少显示以下消息:
- 该游戏是 beta/预发布软件。
- 某些平台功能可能无法正常工作。
- 某些游戏功能可能无法正常工作,可能会崩溃。
- 通知还必须概述游戏的支持范围。
- 用户在能够与游戏中的功能进行交互之前被通知游戏的 beta/预发布状态。
- 游戏未显示通知用户游戏 beta/预发布状态的消息。
- 用户能够在看到有关 beta/预发布状态的游戏通知之前访问游戏功能。
BVT:构建的预认证测试
以下测试用于检查游戏是否已准备好进行 XBOX 认证测试。BVT-01 构建稳定性
测试步骤- 启动游戏,浏览所有菜单并进入游戏。
- 尝试重现执行其他 BVT 时发现的稳定性问题。
BVT-02 匹配
测试步骤- 控制台 1:选择最基本的 XBOX 游戏模式并托管 XBOX 游戏会话。
- 控制台 2:使用快速匹配加入控制台 1 的 XBOX 游戏会话。(重复此步骤,直到最小数量的控制台加入以开始游戏会话。)
- 控制台 1 和 2:启动并完成 XBOX 游戏会话。
- 验证匹配是否有效,以及用户可以在所有其他支持的游戏模式中进入游戏。
BVT-03 DLC
测试步骤- 验证与游戏一起提交的可下载内容可以使用 XBOX 商店或游戏内机制下载。
- 下载后,验证可以在游戏中轻松识别内容。
BVT-05 语言
测试步骤- 通过 XBOX 设备”设置”应用,将语言设置为英语。
- 进入游戏。
- 验证游戏不崩溃或进入无响应状态,在屏幕上不输出任何调试,并在所有预期区域实现本地化。
- 对游戏支持的所有语言重复步骤 1-3。
BVT-07 基本配置
测试步骤- 启动游戏并确保所有 BVT 功能检查不需要更改控制台设置(如时间/日期)才能工作。
- 验证无需变通方法即可到达游戏的主菜单。
BVT-08 XBOX 商店可用性
所需工具 — 游戏已发布到您的开发者沙盒以及 CERT 和 CERT.DEBUG 沙盒。 测试步骤- 将游戏发布到您的开发者沙盒。
- 从商店安装游戏。
- 启动游戏并进入游戏。
BVT-09 重新提交的条件
测试步骤- 重现游戏最新认证报告中记录为 CFR 的所有问题。
- 验证所有记录为 CFR 的问题都已修复。任何可以重现的问题都必须有已批准的例外。
BVT-10 版本检查
测试步骤- 安装游戏。
- 进入”我的游戏与应用”,突出显示游戏,按”菜单”按钮并选择”管理游戏和附加内容”。
- 选择”文件信息”。
- 将已安装产品的 FullName 与提交文档/启动邮件中列出的包名称进行比较。
BVT-12 合作伙伴托管的服务
测试步骤- 登录 XBOX 配置文件并启动游戏。
- 验证所有合作伙伴托管的服务都可以访问。
BVT-13 年龄分级验证
配置- 游戏必须是 Final(基础或内容更新)。Final(基础/内容更新)— 需要证书的所有区域设置都需要证书。超出范围 — DLC、游戏内内容 — 无需测试。
- 可供审查的提交材料。
- 访问 Microsoft 合作伙伴中心中的产品年龄分级。
- 验证以下文件/信息可用:提交的 XVC 的提交验证器日志;合作伙伴中心的年龄分级声明;年龄分级证书。
- 打开提交验证器日志文件,并确保不显示
<component>Manifest-Ratings</component>测试的警告或失败。对于 2020 年 5 月 11 日之后认证的所有游戏:AppxManifest 中不得存在分级元素。对于 2020 年 5 月 11 日之前认证的游戏:AppxManifest 中允许存在分级元素。 - 打开合作伙伴中心以查看产品的年龄分级信息。对于显示的每个值,验证已提供与年龄分级完全匹配的相应分级证书。
- 必须提供所有文件,并与此提交类型相关。
- 所有分级必须提供相应的证书。
- 2020 年 5 月 11 日之后认证的基础最终提交不得在 AppxManifest 中定义年龄分级元素。
- 在 2020 年 5 月 11 日之前认证的游戏的内容更新不得在 AppxManifest 中添加或删除分级,除了完全删除分级元素。
BVT-14 UWP 服务配置验证
配置 — 游戏必须是 UWP 提交。 测试步骤- 登录以前未访问过游戏的 XBOX 配置文件。
- 启动游戏。
- 确保用户被提示接受 XBOX 账户权限。
- 在主菜单或前端菜单上,运行以下命令
xbdir "XS:\Program Files\WindowsApps\{XVC}\"并搜索”xboxservices.config”文件。
- 游戏包含服务配置文件,新用户被提示接受 XBOX 账户权限。
- 服务配置文件不存在。
- 服务配置文件存在,但为 0 字节。
- 新用户未被提示接受 XBOX 账户权限。
BVT-15 智能分发
测试步骤- 获取游戏的 XVC,并使用
packageutil chunkinfo [XVC] > chunkinfo.xml命令生成 Chunkinfo.xml 文件。 - 使用生成的 chunkinfo.xml 确定游戏是否支持智能分发。
- 如果支持智能分发,使用
xbapp install /[Chunk Parameter] [XVC]命令为以下每种情况开始全新安装:- 使用参数
/Languages=的语言包(切换到另一个支持的语言块,并使用系统设置或游戏内语言选项下载其他语言包) - 使用参数
/Devices=的设备特定内容 - 使用参数
/ContentTypes=的内容类型 - 使用参数
/Tags=的按需内容
- 使用参数
