> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

> 游戏如何使用多人游戏活动 (MPA) 公布可加入的多人游戏会话、处理加入失败，并支持 XBOX 外壳和游戏内邀请。

版本 3.0，2026/7/27

提供可加入的多人游戏或合作体验的游戏，必须使用 Multiplayer Activity (MPA) 功能，通过 XBOX 外壳界面公布可加入性。公布可加入的活动后，玩家能够通过 XBOX 外壳（例如好友列表、玩家卡和 Game Bar）加入游戏以及发送和接收邀请，包括存在跨网络玩家的场景。

## 更多信息

可加入的多人游戏体验是指玩家可以有意一起玩的体验。示例包括但不限于直接加入其他玩家、发送和接收邀请、私人大厅以及受密码保护的体验。如果用户已不再处于支持加入的体验中，则该用户不得显示为可加入，因此当玩家不再可加入时，游戏必须清除所公布的活动。

当用户加入游戏会话，但由于任何原因该体验已无法再由该用户加入时，游戏必须执行以下操作之一：

* 请用户等待下一次加入机会。
* 向用户提供明确的消息，说明加入失败的原因。

对于使用 Multiplayer Activity 功能公布可加入性的游戏，请在整个可加入活动期间使玩家数量、限制和 groupId 保持最新。XBOX 外壳不会强制执行会话容量限制，因此游戏负责管理玩家数量，并在会话已满时拒绝加入请求或将其排队。仅支持通过匹配加入的游戏（例如排位赛）无需通过 XBOX 外壳公布可加入性；游戏还可以要求加入前满足先决条件（例如所需的可下载内容），前提是已向玩家明确说明。

有关使用 GDK 公布可加入活动和发送邀请的信息，请阅读 [Multiplayer Activity 概述](https://docs.xbox.com/zh-CN/services/xbox-services/multiplayer/mpa/live-mpa-overview.md)。

## 邀请

对于可加入的会话，从 XBOX 外壳发送的平台邀请必须始终可用。建议提供游戏内邀请，但这并非硬性要求；游戏无需先提供游戏内邀请机制，玩家即可通过外壳邀请他人。

如果游戏确实提供了游戏内邀请机制，该机制必须通过 XBOX 平台发送邀请，以便接收者通过 XBOX 外壳通知收到邀请。游戏可以限制谁可以发送邀请（例如，仅限主持人或队长），并且可以仅显示玩家 XBOX 好友中的一部分。仅可在某个系列、俱乐部或战队内加入的游戏可以相应地限定邀请范围。

## 实施指南和最佳做法

使用 Multiplayer Activity (MPA) 功能公布可加入的活动以及发送和接受邀请，并使活动的玩家数量、可加入状态和限制保持最新。不要为同一目的将 MPA 与旧版 Multiplayer Session Directory (MPSD) 混合使用，因为同时维护两者可能会产生重复记录和加入冲突。每当会话变为不可加入时都应清除活动，并使用 XBOX 平台邀请 API，以使平台邀请和游戏内邀请的行为保持一致。

## 认证测试用例

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

**配置**

* 两个 XBOX 个人资料
* 设备 1 个人资料 A - 与个人资料 B 是好友
* 设备 2 个人资料 B - 与个人资料 A 是好友

在零售版主机上，游戏会在以下情况下被挂起：

* 在电源模式设置为“即时启动”时关闭主机，使主机进入联网待机状态。
* 游戏保持非焦点状态十分钟。例如，启动“设置”等应用程序并使其保持焦点状态十分钟。

在本测试用例中，在 XBOX 主机上，请在步骤 5 中通过启动“设置”应用并使其保持焦点状态十分钟来挂起游戏。在 PC 上，请在步骤 5 中使系统进入睡眠或休眠状态。

**测试步骤**

1. 使用个人资料 A 创建可加入的游戏会话。
2. 使用未运行该游戏的个人资料 B，通过 XBOX 外壳界面访问好友列表，并验证个人资料 A 显示为可加入。
   * 某些游戏可能仅支持私人多人游戏会话，因此不会对个人资料 B 显示为可加入，在这种情况下，请跳到步骤 6。
3. 个人资料 B 加入个人资料 A 的游戏。
4. 确认两个个人资料一起进入游戏体验。
5. 在主机上游戏处于挂起状态时，以及在 PC 上系统处于睡眠或休眠状态时，使用个人资料 B 重复步骤 1-4。
6. 重复步骤 1-5，但这次不是由个人资料 B 通过好友列表加入，而是由个人资料 A 通过系统外壳向个人资料 B 发送游戏邀请，并确保个人资料 B 可以接收、接受并加入个人资料 A。

**预期结果**\
用户 B 必须能够加入用户 A 的游戏，并一起进入游戏体验。对于仅支持私人多人游戏会话、因此不会对个人资料 B 显示为可加入的游戏，可以将邀请作为加入个人资料 A 的唯一机制。对于仅支持通过匹配加入会话的多人游戏会话（例如排位赛），可以不支持通过 XBOX 外壳界面加入。对于支持跨平台多人游戏的游戏，用户必须能够在 XBOX One 主机和 PC 之间加入。

**通过示例**

1. 两个个人资料一起进入游戏体验。
2. 用户 B 能够加入用户 A 的游戏，并一起进入游戏体验。
3. 由于游戏仅支持私人多人游戏会话，用户 A 在 XBOX 外壳界面的好友列表中未显示为可加入，但用户 A 可以通过系统外壳向用户 B 发送游戏邀请。
4. 用户 A 在参与仅支持通过匹配加入的会话（例如排位赛）时，未显示为可加入，并且无法通过 XBOX 外壳界面发送游戏邀请。

**失败示例**

1. 用户 B 无法成功加入用户 A 的游戏，并且未进入游戏体验。
2. 由于游戏仅支持私人多人游戏会话，用户 A 在 XBOX 外壳界面的好友列表中未显示为可加入，并且用户 A 无法通过系统外壳向用户 B 发送游戏邀请。

### 064-02 从同一游戏中加入游戏会话

**配置**

* 2 个 XBOX 个人资料
* 设备 1 个人资料 A - 与个人资料 B 是好友
* 设备 2 个人资料 B - 与个人资料 A 是好友

**测试步骤**

1. 使用个人资料 A 启动游戏，并在游戏内创建可加入的游戏会话。
2. 使用个人资料 B 启动同一游戏，并进入游戏内的某个体验。
3. 使用个人资料 B，通过 XBOX 外壳界面访问好友列表，并选择加入个人资料 A 的游戏。
   * 某些游戏可能仅支持私人多人游戏会话，因此不会对个人资料 B 显示为可加入，在这种情况下，请跳到步骤 5。
4. 确认两个个人资料一起进入游戏体验。
5. 重复步骤 1-4，但这次不是由个人资料 B 通过 XBOX 外壳界面的好友列表加入，而是由个人资料 A 通过系统外壳向个人资料 B 发送游戏邀请，并确保个人资料 B 可以接收、接受并加入个人资料 A。

**预期结果**\
用户 B 必须能够加入用户 A 的游戏，并一起进入游戏体验。对于仅支持私人多人游戏会话、因此不会对个人资料 B 显示为可加入的游戏，可以将邀请作为加入个人资料 A 的唯一机制。对于仅支持通过匹配加入会话的多人游戏会话（例如排位赛），可以不支持通过 XBOX 外壳界面加入。对于支持跨平台多人游戏的游戏，用户必须能够在 XBOX One 主机和 PC 之间加入。

**通过示例**

1. 两个个人资料一起进入游戏体验。
2. 用户 B 能够加入用户 A 的游戏，并一起进入游戏体验。
3. 由于游戏仅支持私人多人游戏会话，用户 A 在 XBOX 外壳界面的好友列表中未显示为可加入，但用户 A 可以通过系统外壳向用户 B 发送游戏邀请。
4. 用户 A 在参与仅支持通过匹配加入的会话（例如排位赛）时，未显示为可加入，并且无法通过 XBOX 外壳界面发送游戏邀请。

**失败示例**

1. 用户 B 无法成功加入用户 A 的游戏，并且未进入游戏体验。
2. 由于游戏仅支持私人多人游戏会话，用户 A 在 XBOX 外壳界面的好友列表中未显示为可加入，并且用户 A 无法通过系统外壳向用户 B 发送游戏邀请。

### 064-03 游戏内邀请

*此测试用例仅适用于提供游戏内邀请机制的游戏。*

**配置**

* 两个 XBOX 个人资料，分别登录到不同的设备
* 设备 1 个人资料 A - 与个人资料 B 是好友
* 设备 2 个人资料 B - 与个人资料 A 是好友

有关如何在 XBOX 主机上挂起游戏，以及如何使 PC 进入睡眠和休眠状态，请参阅[主机 XR 和测试用例](https://docs.xbox.com/zh-CN/publishing/certification/console-cert-tested-requirements.md#testing-suspend-sleep-and-hibernate)页面。

**测试步骤**

1. 将用户 A 和 B 登录到各自的设备。
2. 两个用户都启动游戏。
3. 用户 A 创建游戏会话，并找到用于发送邀请的游戏内选项。
4. 用户 A 向用户 B 发送游戏邀请。
5. 个人资料 B 在以下每个区域中接受邀请，以加入个人资料 A 的游戏会话。
   * 从初始启动序列到初始交互状态之间的任意位置
   * 主菜单（如果有）
   * 单人游戏过程中（如果有）
   * 多人游戏过程中（如果有）
   * 游戏在主机上处于挂起状态，或者在 PC 上处于睡眠或休眠状态时，在主菜单上（如果有）
   * 游戏在主机上处于挂起状态，或者在 PC 上处于睡眠或休眠状态时，在单人游戏过程中（如果有）
   * 游戏在主菜单上处于受限状态时（如果有）
   * 游戏在任何游戏过程中处于受限状态时（如果有）
6. 确认每次邀请后，两个个人资料都一起进入游戏体验。

**预期结果**\
如果游戏提供游戏内邀请机制，该机制必须通过 XBOX 平台发送邀请，以便个人资料 B 通过 XBOX 外壳通知收到邀请，并可以加入个人资料 A 主持的会话。游戏可以限制谁可以发送会话邀请（例如，在团队游戏中仅限队长）。由于游戏无法阻止邀请或加入操作，因此无需对破坏性操作请求确认。对于支持跨平台多人游戏的游戏，用户必须能够在 XBOX One 主机和 PC 之间通过邀请加入会话。

**通过示例**

1. 游戏内邀请选项通过 XBOX 平台发送邀请，个人资料 B 通过 XBOX 外壳接收并接受邀请。
2. 玩家在游戏中接受游戏邀请时，不会收到破坏性操作确认消息。
3. 邀请已完成，但由于设备上没有所需的 DLC，无法启动会话。已向玩家明确说明这一点。
4. 如果主持人身份明确，则只有游戏会话的主持人可以发送邀请。

**失败示例**

1. 游戏内邀请机制未通过 XBOX 平台发送邀请，因此个人资料 B 未通过 XBOX 外壳收到邀请。
2. 接受游戏邀请后，活动玩家未被带入其受邀加入的游戏会话。
3. 设备上没有所需的 DLC 时，邀请未完成，并且未向玩家说明这一点。

### 064-04 不可加入的游戏

**配置**

* 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 发送加入失败的消息。


## Related topics

- [XBOX 游戏的 XBOX 要求](https://docs.xbox.com/zh-CN/publishing/certification/xbox-requirements.md)
- [经测试的 XBOX 要求](https://docs.xbox.com/zh-CN/publishing/certification/console-cert-tested-requirements.md)
- [最常失败的测试用例](https://docs.xbox.com/zh-CN/publishing/certification/xr-top-failing.md)
- [Beta 版和 XBOX 游戏预览版游戏的要求](https://docs.xbox.com/zh-CN/publishing/certification/cert-beta-game-preview.md)
- [XR064 可加入的游戏会话与在线游戏](https://docs.xbox.com/zh-CN/publishing/certification/fma/xr-064.md)
