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

# 多人游戏概念概述

> 关键的 XBOX 多人游戏术语和概念，包括多人游戏会话、MPSD、会话模板、SmartMatch 匹配以及服务质量 (QoS)。

多人游戏系统包括多人游戏会话、多人游戏会话目录 (MPSD)、SmartMatch 匹配和服务质量 (QoS)。

本主题介绍在 XBOX 服务文档中经常使用的一些重要多人游戏术语和概念。
充分掌握这些内容有助于你了解 XBOX 服务多人游戏的工作原理。

## 多人游戏会话

*多人游戏会话*表示一组 XBOX 服务玩家以及与它们相关联的属性。
会话由游戏创建和维护。它以驻留在 XBOX 服务云中的安全 JSON 文档形式表示。

会话文档本身包含有关连接到该会话的 XBOX 服务玩家的信息、可用位置的数量、自定义元数据（对于会话以及每个会话成员）以及其他与游戏会话相关的信息。

每个会话都基于*会话模板*。会话模板由游戏开发者定义，并在游戏实例的 XBOX 服务配置中进行配置。

游戏可以创建和更新会话，但不能直接删除会话。
相反，在从会话中移除所有玩家之后，XBOX 服务多人游戏服务会在指定的超时时间后自动删除该会话。

游戏可以选择使用多个会话，但典型的多人游戏实现使用以下两种会话。

* **大厅会话：** 表示一组希望在整个游戏过程中保持在一起的朋友；例如，跨多个回合、级别和地图。

* **游戏会话：** 表示在特定游戏会话实例中玩游戏的人员，例如一个回合、比赛或关卡。此会话可以包含来自多个大厅会话的成员，这些成员通常通过匹配服务一起加入该会话实例。

有关多人游戏会话的详细信息，请参阅[多人游戏会话高级主题](/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details)。

### 示例场景

在此示例场景中，Tereza 想要与她的朋友 Sergio 和 Alejandra 一起玩多人游戏。

1. Tereza 启动一个游戏，然后邀请 Sergio 和 Alejandra 加入她的游戏。
2. 加入后，Tereza、Sergio 和 Alejandra 都进入了一个大厅会话。
3. 在该会话中，他们决定与其他人进行在线对战。
   1. 游戏创建一个游戏会话。它使用 XBOX 服务匹配服务，用其他 XBOX 服务玩家填充剩余的玩家位置。
   2. 假设 Ermal 和 Miguel 与他们匹配，五人一起进行了一轮游戏。
4. 该轮结束后，Tereza、Sergio 和 Alejandra 离开游戏会话，但仍一起停留在大厅会话中（没有 Ermal 和 Miguel）。这三位朋友可以选择再玩一轮，或切换到不同的游戏模式。

### 会话成员

*会话成员*是作为会话一部分的 XBOX 服务玩家。

### 仲裁者

*仲裁者*是管理游戏会话状态的控制台或设备。
例如，仲裁者将负责向匹配服务通告游戏会话以寻找更多玩家。

仲裁者由游戏设置。
仲裁者和游戏主机可以是同一个，但这不是必需的。

### 会话主机

*会话主机*是运行基于主机的对等网络架构中游戏模拟的控制台或设备。
此控制台或设备通常与仲裁者相同，但这不是必需的。

## 多人游戏会话目录 (MPSD)

XBOX 服务多人游戏服务在 XBOX 服务云中运行。该服务集中管理跨多个客户端的游戏多人游戏系统元数据。
跟踪此元数据的系统称为*多人游戏会话目录 (MPSD)*。

你可以将 MPSD 视为活动游戏会话的库。
你的游戏可以添加、搜索、修改或删除与你的游戏相关的活动会话。
MPSD 还管理会话状态，并在必要时更新会话。

MPSD 允许游戏共享连接一组玩家所需的基本信息。
它确保会话功能保持同步和一致。
MPSD 与 XBOX One（或更高版本）控制台的外壳和操作系统协调，以发送/接受邀请并通过玩家卡加入。

<a id="session-handles" />

### 会话句柄

*会话*在 MPSD 中通过组合以下数据片段进行唯一标识：

* 游戏的服务配置标识符 (SCID)
* 用于创建会话的会话模板的名称
* 会话的名称

*会话句柄*是一个 JSON 对象，其中包含对 MPSD 中存在的特定会话的引用。
会话句柄允许 XBOX 服务成员加入现有会话。

每个会话句柄包括一个唯一标识该句柄的 GUID，这允许游戏使用单个 GUID 引用会话。

会话句柄如下所示。

#### 邀请句柄

当邀请成员加入游戏时，*邀请句柄*将传递给该成员。
邀请句柄包含允许受邀成员的游戏加入正确会话的信息。

#### 搜索句柄

*搜索句柄*包含有关会话的附加元数据，并允许游戏搜索满足所选条件的会话。

#### 活动句柄

*活动句柄*允许成员查看其社交网络上其他成员正在玩什么。此句柄可用于加入朋友的游戏。

#### 关联句柄

*关联句柄*实际上用作会话的别名，允许游戏仅通过关联句柄的 ID 引用会话。

#### 传输句柄

*传输句柄*用于将玩家从一个会话移动到另一个会话。

<a id="invites" />

### 邀请

XBOX 服务提供由多人游戏服务支持的邀请系统。
此服务使玩家能够邀请其他玩家加入他们的游戏会话。
被邀请的玩家会收到游戏邀请。游戏使用此信息加入现有会话和多人游戏体验。

游戏控制邀请流程以及何时可以发送邀请。
可以由玩家通过外壳发送邀请，也可以直接从游戏发送邀请。

游戏可以动态设置邀请的通知文本，以向被邀请玩家提供更多信息。
邀请还可以包含游戏的附加数据，这些数据对玩家不可见，可以用于承载附加信息。

### 加入进行中的游戏

除了邀请之外，XBOX 服务还提供了一个外壳选项，供玩家加入朋友或其他已知玩家的正在进行的游戏会话。
这为进入活动游戏会话提供了另一种途径，同样由 MPSD 驱动。

游戏控制会话何时可加入以及公开哪个会话以供加入进行中的游戏。

### 协议激活

如果 Tereza 向 Alejandra 发送邀请以加入她的游戏，Alejandra 会在其设备上收到通知，她可以选择接受或拒绝。

如果 Alejandra 接受邀请，则操作系统会尝试启动游戏（如果游戏尚未运行）。操作系统触发一个激活事件，其中包含有关为什么激活游戏的信息以及任何其他详细信息。（例如，就邀请而言，详细信息包括邀请该成员的玩家 ID 以及该成员被邀请加入的会话。）

处理此事件的过程称为*协议激活*。它指示游戏应自动进入激活事件参数中详述的特定状态。
如果该成员正在加入多人游戏，则会将会话句柄 ID 指定为参数之一。

就 Alejandra 而言，接受邀请应自动启动游戏（如果需要）并将她加入与 Tereza 相同的游戏会话中。这样做时无需 Alejandra 采取任何进一步操作。

协议激活可以通过接受邀请、通过配置文件卡加入其他成员的游戏或选择深层链接的成就来触发。

## SmartMatch 匹配

*SmartMatch* 是 XBOX 服务用于匿名匹配的服务名称。
此服务根据可配置的匹配规则集匹配同一游戏的玩家。

匹配服务与 MPSD 紧密协作，并使用会话作为匹配输入和输出。
匹配是在服务上执行的，这允许游戏在匹配流程中轻松提供其他体验；例如，游戏内的单人游戏。

想要进入匹配的个人或团体会创建一个匹配票证会话，然后请求匹配服务查找可与其组建比赛的其他玩家。
这将导致创建一个临时"匹配票证"，该票证在匹配服务中（在匹配漏斗上）驻留一段时间。

匹配服务根据规则配置、为每个玩家存储的统计信息以及在匹配请求时提供的任何附加信息，选择一起玩的会话。
然后，该服务创建一个包含所有已匹配玩家的匹配目标会话，并通知玩家的游戏该匹配。

当目标会话准备就绪时，游戏可以执行 QoS 检查以确认该组可以一起玩，或将玩家加入到会话中以开始游戏。
在 QoS 过程和匹配后的游戏过程中，游戏会在 MPSD 中保持会话状态最新，并从 MPSD 接收有关会话更改的通知。
此类更改包括玩家加入或离开以及会话仲裁者的更改。

### 匹配票证会话

匹配票证会话表示要进行匹配的玩家的客户端。
它通常基于一起在大厅中的一组玩家或其他特定于游戏的玩家分组来创建。
在某些情况下，票证会话可能是已在进行中的游戏会话，正在寻找更多玩家。

### 匹配票证

将票证会话提交给匹配服务会导致创建匹配票证，该票证跟踪匹配尝试。
可以将属性添加到票证；例如，游戏地图或玩家级别。
这些属性以及票证会话中玩家的属性用于确定匹配。

### 匹配漏斗

*匹配漏斗*是收集匹配票证的逻辑位置，在匹配开始时指定。
只有同一漏斗中的票证才能被匹配。

一个游戏可以有多个漏斗。但是，它一次只能在一个漏斗上开始匹配。
例如，一个游戏可能会创建一个漏斗，其中玩家技能是匹配最重要的项目。
该游戏可能使用另一个漏斗，其中只有购买了相同可下载内容的玩家才能匹配。

你可以在服务配置中配置匹配漏斗。

## 服务质量 (QoS)

当玩家在线玩多人游戏时，游戏的质量会受到托管游戏的设备之间网络通信质量的影响。
糟糕的网络可能会因延迟或带宽不足而导致不理想的游戏体验，如卡顿或掉线。

QoS 是指测量玩家之间在线连接的强度（延迟和带宽），以确保所有玩家都具有足够的网络连接质量。
这对于在匹配期间匹配的玩家尤其重要，以保证因网络连接带来的良好体验。
QoS 不太适用于朋友一起玩的邀请，他们通常愿意接受连接较差的后果。

你可以将会话配置为根据特定条件自动处理 QoS。你的游戏也可以在任何人加入会话时处理 QoS 测量。


## Related topics

- [多人游戏概念](/zh-CN/services/xbox-services/multiplayer/concepts/live-multiplayer-concepts-nav.md)
- [跨平台多人游戏设计指南](/zh-CN/services/xbox-services/multiplayer/overviews/multiplayer-design-guidance-cross-platform.md)
- [XBOX 与 PC 多人游戏设计指南](/zh-CN/services/xbox-services/multiplayer/overviews/multiplayer-design-guidance-xbox-pc-gdk.md)
- [服务到服务多人游戏会话管理](/zh-CN/services/xbox-services/fundamentals/s2s-auth-calls/s2s-calls/s2s-call-patterns/live-mpsd-service-to-service.md)
- [XblMultiplayerManagerLobbySessionCorrelationId](/zh-CN/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioncorrelationid.md)
