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®),不需要进行游戏保存漫游,但建议进行漫游以支持玩家的体验。

详细信息

共享内容是在加载某一游戏存档时在漫游的主机上可能不存在的内容,例如游戏加载项。 该内容可能不可用,因为当前已登录用户尚未下载或者还未拥有该内容。

用于保存玩家数据的 API 和服务因 SDK 而异:

GDK/SDK 需要保存漫游? 支持 API
GDK 必需 XGameSave xgamesave.h 中的 API
使用 XDK 的 ERA 必需 命名空间中的 Windows.Xbox.Storage ConnectedStorage API
Windows SDK - UWP 必需 命名空间中的 Windows.Gaming.XboxLive.Storage GameSaveProvider API

此要求的一个关键方面涉及处理此类状况:在游戏处于活动、挂起或终止状态时游戏的主要用户将变化。 当游戏从某一用户的主屏幕而非上次激活了该游戏的用户激活时,游戏的“主要用户”将变化,并且主机上的其他用户在游戏的生命周期中的任何时间点都可以登录或注销。 游戏需要提供适合于主机上的主要用户和其他用户的体验,并且保存各用户的游戏状态信息。 由于用户可能会在任何给定游戏的环境之外登录到(和注销)Xbox 网络,因此在用户发生变化时游戏必须可靠。 例如,游戏应避免使用不再登录的用户的令牌或标识符。

游戏不得导致意外的用户数据丢失。

下表显示了使用 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 中删除保存数据“无处不在”,并重复步骤 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. 从同一平台/代 ((例如,Xbox Series S和 Xbox Series X、Xbox One 和 Xbox One S)中的第二台设备,以及步骤 1 中使用的第二台电脑) 与步骤 1 中使用的相同配置文件。
    • 从步骤 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. 游戏存档数据对共享内容具有依赖关系。