> ## 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" />

本主題說明多人遊戲工作階段範本，並提供可供您為多人遊戲工作階段複製與修改的範本範例。

多人遊戲工作階段範本是建立多人遊戲工作階段的藍圖。
所有工作階段都必須根據預先定義的範本建立。

範本定義的常數，對於從該範本建立的任何工作階段都相同。
從範本建立工作階段時，您可以在工作階段中新增及修改其他資料。不過，您無法修改範本中定義的常數。

如需詳細資訊，請參閱[多人遊戲工作階段進階主題](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-overview)中的「工作階段概觀」一節。

您可以從多人遊戲工作階段目錄 (MPSD) 取得適用於服務設定識別碼 (SCID) 的工作階段範本清單，以及特定工作階段範本的內容。

## 關於工作階段範本

用來建立或修改工作階段的工作階段範本，使用與 HTTP `PUT` 要求相同的格式。
差異在於範本只定義常數，不定義成員、伺服器與屬性。

可以定義任何工作階段常數，包括 custom 區段以及所有系統常數。

### 工作階段範本版本

本主題中定義的工作階段範本，是使用範本合約版本 107 建構的。
使用這些範本建立新範本時，請確定將合約版本指定為 107。

如果您使用 XBOX Services 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-TW/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [多人遊戲工作階段進階主題](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details.md)
- [設定多人遊戲服務](/zh-TW/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [工作階段範本常數](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/live-session-template-constants.md)
- [多人遊戲常見問題集與疑難排解](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
