> ## 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.

# 多人游戏会话模板

> 了解 MPSD 会话模板如何作为创建多人游戏会话的蓝图,包括模板版本以及可复制和修改的示例。

<a id="top" />

本主题介绍多人游戏会话模板,并提供可复制和修改用于您的多人游戏会话的模板示例。

多人游戏会话模板是创建多人游戏会话的蓝图。
所有会话都必须基于预定义的模板创建。

模板定义了从该模板创建的任何会话都相同的常量。
从模板创建会话时,可以向会话添加和修改其他数据。但是,您不能修改模板中定义的常量。

有关详细信息,请参阅[多人游戏会话高级主题](/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-overview)中的“会话概述”部分。

您可以从多人游戏会话目录 (MPSD) 获取应用于服务配置标识符 (SCID) 的会话模板列表以及特定会话模板的内容。

## 关于会话模板

创建或修改会话的会话模板使用与 HTTP `PUT` 请求相同的格式。
不同之处在于该模板仅定义常量。未定义成员、服务器和属性。

可以定义任何会话常量,包括自定义部分和完整范围的系统常量。

### 会话模板版本

本主题中定义的会话模板是使用模板协定版本 107 构建的。
在使用它们创建新模板时,请确保将协定版本指定为 107。

如果您使用 XBOX 服务 API (XSAPI) 并在调试器中查看生成的请求,您可能会注意到请求使用模板协定版本 105。
MPSD 会在运行时有效地将这些请求“升级”到版本 107。

<Note>您可以在请求中使用与会话模板中不同的协定版本。</Note>

如有必要,您可以将会话模板从版本 104 或 105 更改为版本 107。

[返回本主题顶部。](#top)

## 会话模板默认值

从会话模板创建的每个会话都以模板副本的形式开始。
在模板中未指定的值可以在创建会话时指定。
在某些情况下,如果未设置其他值,则会提供默认值。

以下示例展示了协定版本 107 的默认超时集。

```json theme={null}
    {
      "constants": {
        "system": {
          "reservedRemovalTimeout": 30000,
          "inactiveRemovalTimeout": 0,
          "readyRemovalTimeout": 180000,
          "sessionEmptyTimeout": 0
        }
      }
    }
```

您可以通过指定 `null` 强制值保持未设置状态。
这将覆盖任何默认设置,并防止在创建会话时设置该值。

例如,要移除 `sessionEmptyTimeout`,使得即使是空会话也无限期继续,请将以下内容添加到会话模板中。

```json theme={null}
    {
      "constants": {
        "system": {
          "sessionEmptyTimeout": null
        }
      }
    }
```

<Info>通过模板设置的常量无法通过写入 MPSD 进行更改。要更改值,必须创建并提交具有所需更改的新模板。</Info>

[返回本主题顶部。](#top)

## 会话模板示例

本节提供用于各种目的和网络拓扑的会话模板示例。
您可以对适当的模板进行任何必要的更改,并将其粘贴到您的服务配置中。

### 标准大厅会话

使用此模板为您的游戏创建大厅会话。

* 将 `maxMembersCount` 值更改为您想在大厅会话中支持的最大玩家数。
* 如果您的标题不支持来自不同平台(例如 XBOX 主机和 Windows PC)的玩家一起游玩,您可以删除 `crossPlay` 元素。
* 您也可以更改其他值。如果您不确定需要什么,以下值是不错的起点。

```json theme={null}
{
   "constants": {
        "system": {
            "version": 1,
            "maxMembersCount": 8,
            "visibility": "open",
            "capabilities": {
                "connectivity": true,
                "connectionRequiredForActiveMembers": true,
                "crossPlay": true,
                "userAuthorizationStyle": true
            },
        },
        "custom": {}
    }
}
```

### 不带匹配的标准游戏会话

如果您的游戏不包含匿名匹配且不需要超过 100 个成员,请使用此模板为您的游戏创建游戏会话。

此模板仅在标准大厅会话模板中指定的值之上添加两个新值。

* `constants.system.inviteProtocol : "game"`
* `constants.system.capabilities.gameplay : true`

```json theme={null}
{
   "constants": {
        "system": {
            "version": 1,
            "maxMembersCount": 8,
            "visibility": "open",
            "inviteProtocol": "game",
            "capabilities": {
                "connectivity": true,
                "connectionRequiredForActiveMembers": true,
                "gameplay" : true,
                "crossPlay": true,
                "userAuthorizationStyle": true
            }
        },
        "custom": {}
    }
}
```

### 向游戏会话模板添加匹配,其中服务质量 (QoS) 检查由多人游戏服务处理

若要在游戏中启用匹配,请在游戏会话模板中为 `memberInitialization` 指定值。

创建 SmartMatch hopper 时,使用以下模板作为您的 hopper 的目标会话模板。

```json theme={null}
{
   "constants": {
        "system": {
            "memberInitialization": {
               "joinTimeout": 20000,
               "measurementTimeout": 15000,
               "membersNeededToStart": 2
            }
        }
    }
}
```

### 向游戏会话添加匹配,其中 QoS 检查由标题管理的数据中心处理

```json theme={null}
{
   "constants": {
        "system": {
            "peerToHostRequirements": {  
                "latencyMaximum": 250,
                "bandwidthDownMinimum": 256,
                "bandwidthUpMinimum": 256,
                "hostSelectionMetric": "latency"
            },
            "memberInitialization": {
               "joinTimeout": 15000,
               "measurementTimeout": 15000,
               "membersNeededToStart": 2
            }
        },
        "custom": {}
    }
}
```

### 客户端/服务器游戏会话的基本会话模板

对于让客户端连接到第三方托管的服务器而非对等通信的标题,请使用以下模板。

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 12,
          "visibility": "open",
          "inviteProtocol": "game",
          "capabilities": {
            "connectionRequiredForActiveMembers": true,
            "gameplay": true,
          },
        },
        "custom": {}
      }
    }
```

### 用于对等网络的大厅或 SmartMatch 票证会话模板

使用以下模板创建大厅会话或 SmartMatch 票证会话,将一组玩家发送到匹配中。

此模板供使用点对点或对等到主机网络拓扑的客户端使用。它不配置游戏会话。

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 10,
          "visibility": "open",
          "capabilities": {
            "connectionRequiredForActiveMembers": true,
          },
          "memberInitialization": {
            "membersNeededToStart": 1
          },
        },
        "custom": {}
      }
    }
```

[返回本主题顶部。](#top)

### QoS 模板

如果您的游戏使用匹配并评估 QoS,您必须向会话模板添加一些常量,以通知 MPSD 与客户端协作,管理正在加入会话的用户。
此协作在通知用户游戏已准备好开始之前,验证连接状态的质量。

对于客户端/服务器游戏,协作在一组玩家进入匹配之前验证连接质量。

#### 带 QoS 的对等到主机游戏会话模板

使用以下模板创建带 QoS 的对等到主机游戏会话。

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 12,
          "visibility": "open",
          "inviteProtocol": "game",
          "capabilities": {
            "connectivity": true,
            "connectionRequiredForActiveMembers": true,
            "gameplay" : true
          },
          "memberInitialization": {
            "membersNeededToStart": 2
          },
          "peerToHostRequirements": {
            "latencyMaximum": 350,
            "bandwidthDownMinimum": 1000,
            "bandwidthUpMinimum": 1000,
            "hostSelectionMetric": "latency"
          }
        },
        "custom": { }
      }
    }
```

#### 带 QoS 的点对点游戏会话模板

使用以下模板创建带 QoS 的点对点游戏会话。

```json theme={null}
    {
    "constants": {
      "system": {
        "version": 1,
        "maxMembersCount": 12,
        "visibility": "open",
        "inviteProtocol": "game",
        "capabilities": {
          "connectivity": true,
          "connectionRequiredForActiveMembers": true,
          "gameplay" : true
        },
        "memberInitialization": {
          "membersNeededToStart": 2
        },
        "peerToPeerRequirements": {
          "latencyMaximum": 250,
          "bandwidthMinimum": 10000
        }
      },
      "custom": { }
     }
    }
```

#### 带 QoS 的客户端/服务器大厅或匹配会话模板

使用以下模板通过 QoS 创建大厅会话或匹配会话。
此模板不应用于配置游戏会话。

```json theme={null}
    {
      "constants": {
        "system": {
          "version": 1,
          "maxMembersCount": 12,
          "visibility": "open",
          "memberInitialization": {
            "membersNeededToStart": 1
          }
        },
        "custom": {}
      }
    }
```

#### 用于 XBOX One 和 Windows 10 之间跨平台游玩的会话模板

使用以下模板启用 XBOX One(或更高版本)与 Windows 10 之间的跨平台多人游戏。

* 可选的 `crossPlay` 功能支持跨平台的邀请和进行中加入等交互。

* `userAuthorizationStyle` 功能启用对 Windows 10 的访问。

```json theme={null}
    {
      "constants": {
        "system": {
          "capabilities": {
            "crossPlay": true,
            "userAuthorizationStyle": true
          },
        },
        "custom": {}
      }
    }
```


## Related topics

- [多人游戏会话目录 (MPSD) 概念](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [多人游戏会话高级主题](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details.md)
- [会话模板常量](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-session-template-constants.md)
- [多人游戏常见问题和故障排除](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
- [多人游戏角色](/zh-CN/services/xbox-services/multiplayer/concepts/live-multiplayer-roles.md)
