> ## 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 工作階段範本常數 (system、capabilities、metrics、memberInitialization、QoS) 的參考，這些常數用於設定 XBOX 多人遊戲工作階段。

本主題根據工作階段範本版本 107，說明多人遊戲工作階段範本的預先定義元素。這些元素定義了多人遊戲工作階段的設定。

**內容**

* [system](#system)
* [capabilities](#capabilities)
* [metrics](#metrics)
* [memberInitialization](#memberinitialization)
* [peerToPeerRequirements](#peertopeerrequirements)
* [peerToHostRequirements](#peertohostrequirements)
* [measurementServerAddresses](#measurementserveraddresses)
* [cloudComputePackage (已淘汰)](#cloudcomputepackage)
* [arbitration (已淘汰)](#arbitration)
* [broadcastViewerTitleIds](#broadcastviewertitleids)
* [ownershipPolicies](#ownershippolicies)

## system

| 系統常數 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `version` | 工作階段範本的版本。 | 1 - n | 無 |
| `maxMembersCount` | 多人遊戲活動所支援的工作階段成員位置總數。 | 一般工作階段為 1 - 100，大型工作階段為 101+ | 100 |
| `visibility` | 工作階段的可見度狀態，表示其他使用者是否可以看見或加入工作階段。 | "private"、"visible"、"open" | "open" |
| `inviteProtocol` | 將此常數設為 "game"，可讓受邀者在受邀加入工作階段時收到通知。 | "game"、"tournamentgame"、"chat"、"gameparty" | 無 |
| `reservedRemovalTimeout` | 成員保留的逾時，以毫秒為單位。值為 0 表示立即逾時。值為 `null` 則視為無限。 | 0 - n、`null` | 30000 |
| `inactiveRemovalTimeout` | 成員被視為非作用中的逾時，以毫秒為單位。值為 0 表示立即逾時。值為 `null` 則視為無限。 | 0 - n、`null` | 0 |
| `readyRemovalTimeout` | 成員被視為就緒的逾時，以毫秒為單位。值為 0 表示立即逾時。值為 `null` 則視為無限。 | 0 - n、`null` | 180000 |
| `sessionEmptyTimeout` | 空工作階段的逾時，以毫秒為單位。值為 0 表示立即逾時。值為 `null` 則視為無限。 | 0 - n、`null` | 0 |
| `capabilities` | 指定工作階段的功能。如需詳細資訊，請參閱本主題稍後的 [capabilities](#capabilities) 一節。 | 不適用 | 不適用 |
| `metrics` | 指定一組由遊戲定義的服務品質 (QoS) 需求 (例如延遲與頻寬速度)，工作階段中的成員必須滿足這些需求。如需詳細資訊，請參閱本主題稍後的 [metrics](#metrics) 一節。 | 不適用 | 不適用 |
| `memberInitialization` | 指定新成員加入工作階段時強制執行的逾時與初始化需求。如需詳細資訊，請參閱本主題稍後的 [`memberInitialization`](#memberinitialization) 一節。 | 不適用 | 不適用 |
| `peerToPeerRequirements` | 指定點對點網格連線的網路 QoS 需求。如需詳細資訊，請參閱本主題稍後的 [peerToPeerRequirements](#peertopeerrequirements) 一節。 | 不適用 | 不適用 |
| `peerToHostRequirements` | 指定對等對主機連線的網路 QoS 需求。如需詳細資訊，請參閱本主題稍後的 [peerToHostRequirements](#peertohostrequirements) 一節。 | 不適用 | 不適用 |
| `measurementServerAddresses` | 指定用來判斷 QoS 測量的可能資料中心集合。如需詳細資訊，請參閱本主題稍後的 [measurementServerAddresses](#measurementserveraddresses) 一節。 | 不適用 | 不適用 |
| `cloudComputePackage` (已淘汰) | 指定要配置之 XBOX Live Compute 雲端套件的屬性。如需詳細資訊，請參閱本主題稍後的 [cloudComputePackage](#cloudcomputepackage) 一節。 | 不適用 | 不適用 |
| `arbitration` (已淘汰) | 指定成員在錦標賽中提交仲裁結果的逾時。如需詳細資訊，請參閱本主題稍後的 [arbitration (已淘汰)](#arbitration) 一節。 | 不適用 | 不適用 |
| `broadcastViewerTitleIds` | 指定應一律具有工作階段讀取權限的遊戲識別碼清單。如需詳細資訊，請參閱本主題稍後的 [broadcastViewerTitleIds](#broadcastviewertitleids) 一節。 | 不適用 | 不適用 |
| `ownershipPolicies` | 指定與工作階段擁有權相關的原則。如需詳細資訊，請參閱本主題稍後的 [ownershipPolicies](#ownershippolicies) 一節。 | 不適用 | 不適用 |

[返回本主題頂端。](#top)

## capabilities

功能是在工作階段範本中選擇性設定的布林值。
如果不需要任何功能，除非遊戲需要動態工作階段功能，否則應在範本中設定空的 `capabilities` 屬性，以防止在建立工作階段時指定功能。

| 功能 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `connectivity` | 表示工作階段是否支援對等連線。如果此值為 `false`，工作階段就無法啟用任何計量，且工作階段成員無法設定 `secureDeviceAddress`。此功能無法在大型工作階段上設定。 | `true`、`false` | `false` |
| `suppressPresenceActivityCheck` | 如果為 `true`，則關閉目前狀態檢查。 | `true`、`false` | `false` |
| `gameplay` | 表示工作階段是否代表實際遊戲進行，而非大廳或配對等設定或選單時間。如果為 `true`，工作階段處於遊戲模式。 | `true`、`false` | `false` |
| `large` | 表示工作階段是否為大型工作階段 (超過 100 位成員)。大型工作階段不支援與多人遊戲管理員搭配使用。 | `true`、`false` | `false` |
| `connectionRequiredForActiveMembers` | 表示成員是否需要連線才能處於作用中狀態。 | `true`、`false` | `false` |
| `cloudCompute` (已淘汰) | 讓用戶端可以要求代表工作階段配置雲端運算執行個體。由於 XBOX Live Compute 已不再以服務形式提供，因此已淘汰。 | `true`、`false` | `false` |
| `autoPopulateServerCandidates` | 自動從 `serverMeasurements` 計算並設定 `serverConnectionStringCandidates`。此功能無法在大型工作階段上設定。 | `true`、`false` | `false` |
| `userAuthorizationStyle` | 表示工作階段是否支援來自不具強式遊戲身分識別之平台的呼叫。此功能無法在大型工作階段上設定。 | | |

將 `userAuthorizationStyle` 功能設為 `true`，會讓工作階段的 `readRestriction` 與 `joinRestriction` 預設為 `local`，而非 `none`。這表示遊戲必須使用搜尋控制代碼或轉移控制代碼來加入遊戲工作階段。 | `true`、`false` | `false`
`crossPlay` | 表示工作階段支援 Windows PC、XBOX One 或 XBOX Series 裝置之間的跨平台遊玩。 | `true`、`false` | `true`
`broadcast` | 表示工作階段代表廣播。工作階段的名稱必須是廣播者的 xuid。需要 `large` 功能。 | `true`、`false` | `false`
`team` | 表示工作階段代表錦標賽隊伍。此功能無法在 `large` 或 `gameplay` 工作階段上設定。 | `true`、`false` | `false`
`arbitration` | 表示工作階段必須由新增 `arbitration` 伺服器項目的服務主體建立。需要 `gameplay`，但無法在 `large` 工作階段上設定。 | `true`、`false` | `false`
`hasOwners` | 表示工作階段具有以特定成員作為擁有者為基礎的安全性原則。 | `true`、`false` | `false`
`searchable` | 表示工作階段可以是搜尋控制代碼的目標工作階段。如果設定了 `userAuthorizationStyle` 與 `searchable` 功能，也必須設定 `hasOwners`。 | `true`、`false` | `false`

#### 範例：capabilities

```json theme={null}
"capabilities": {
    "connectivity": true,  
    "suppressPresenceActivityCheck": true,
    "gameplay": true,
    "large": true,
    "connectionRequiredForActiveMembers": true,
    "cloudCompute": true,
    "autoPopulateServerCandidates": true,
    "userAuthorizationStyle": true,
    "crossPlay": true,  
    "broadcast": true,  
    "team": true,
    "arbitration": true,
    "hasOwners": true,
    "searchable": true  
},
```

[返回本主題頂端。](#top)

## metrics

如果未指定 `metrics` 屬性，預設會使用滿足 QoS 需求所需的值。

如果有指定 `metrics` 屬性，其值必須足以滿足 QoS 需求。

只有在工作階段設定了 `connectivity` 功能時，此元素才有效。

| 計量 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `latency` | 表示工作階段範本中是否指定了 `latencyMaximum` | `true`、`false` | 請參閱此說明。 |
| `bandwidthDown` | 表示工作階段範本中是否指定了 `bandwidthDownMinimum` | `true`、`false` | 請參閱此說明。 |
| `bandwidthUp` | 表示工作階段範本中是否指定了 `bandwidthUpMinimum` | `true`、`false` | 請參閱此說明。 |
| `custom` | 表示工作階段範本中是否指定了自訂計量 | `true`、`false` | 請參閱此說明。 |

#### 範例：metrics

```json theme={null}
"metrics": {
    "latency": true,
    "bandwidthDown": true,
    "bandwidthUp": true,
    "custom": true
},
```

[返回本主題頂端。](#top)

## memberInitialization

如果設定了 `memberInitialization` 屬性，工作階段會預期用戶端系統或遊戲在工作階段建立後或新成員加入工作階段時執行初始化。

工作階段會自動追蹤逾時與初始化階段，如果設定了任何計量，也包括 QoS 測量。
對於設定了 `initializationEpisode` 的成員，這些逾時會覆寫工作階段的保留與就緒逾時。

無法在大型工作階段上指定 `memberInitialization`。

| 元素 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `joinTimeout` | 表示成員加入工作階段的毫秒數。未能加入之使用者的保留會被移除。 | | |

**注意：** 預設的持續時間足以應付一般的遊戲執行，但如果在多人遊戲工作階段目錄 (MPSD) 流程期間對遊戲進行偵錯，可能會導致加入逾時。偵錯時，請覆寫並增加工作階段的此預設值。| 0 - n | 10000
`measurementTimeout` | 表示工作階段成員上傳測量結果的毫秒數。未能上傳測量結果的成員會被標記為失敗原因「timeout」。  | 0 - n | 30000
`evaluationTimeout` | 表示外部評估上傳測量結果的毫秒數。 | 0 - n | 5000
`externalEvaluation` | 如果為 `true`，表示由遊戲程式碼根據 QoS 測量結果評估誰可以加入。多人遊戲服務不會執行任何 QoS 邏輯，由遊戲負責推進初始化階段。遊戲通常不需要此設定。 | `true`、`false` | `false`
`membersNeededToStart` | 僅限初始化回合零時，啟動工作階段所需的成員數目。 | 1 - `maxMembersCount` | 1

#### 範例：memberInitialization

```json theme={null}
"memberInitialization": {
    "joinTimeout": 10000,
    "measurementTimeout": 30000,
    "evaluationTimeout": 5000,
    "externalEvaluation": false,
    "membersNeededToStart": 1
},
```

[返回本主題頂端。](#top)

## peerToPeerRequirements

| 點對點網路需求 | 說明 | 預設值 |
| - | - | - |
| `latencyMaximum` | 任意兩個用戶端之間的最大延遲，以毫秒為單位 | 250 |
| `bandwidthMinimum` | 任意兩個用戶端之間的最小頻寬，以每秒千位元為單位 | 10000 |

#### 範例：peerToPeerRequirements

```json theme={null}
"peerToPeerRequirements": {
    "latencyMaximum": 250,
    "bandwidthMinimum": 10000
},
```

[返回本主題頂端。](#top)

## peerToHostRequirements

| 對等對主機網路需求 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `latencyMaximum` | 對等對主機連線的最大延遲，以毫秒為單位 | | 250 |
| `bandwidthDownMinimum` | 從主機傳送至對等節點之資訊的最小頻寬，以每秒千位元為單位 | | 100000 |
| `bandwidthUpMinimum` | 從對等節點傳送至主機之資訊的最小頻寬，以每秒千位元為單位 | | 1000 |
| `hostSelectionMetric` | 表示用來選取主機的計量 | "bandwidthup"、"bandwidthdown"、"bandwidth" 與 "latency" | "latency" |

#### 範例：peerToHostRequirements

```json theme={null}
"peerToHostRequirements": {
    "latencyMaximum": 250,
    "bandwidthDownMinimum": 100000,
    "bandwidthUpMinimum": 1000,
    "hostSelectionMetric": "bandwidthup"
},
```

[返回本主題頂端。](#top)

## measurementServerAddresses

應評估的可能伺服器連接字串集合。
連接字串必須為小寫。
無法在大型工作階段上指定 `measurementServerAddresses`。

連接字串以下列格式定義。

`"<server name>": { "secureDeviceAddress": <device address> }`

其中裝置位址是伺服器以 base-64 編碼的安全裝置位址。

#### 範例：measurementServerAddresses

```json theme={null}
"measurementServerAddresses": {
    "server farm a": {
        "secureDeviceAddress": "r5Y="
    },
    "datacenter b": {
        "secureDeviceAddress": "rwY="
    }
},
```

[返回本主題頂端。](#top)

## cloudComputePackage (已淘汰)

由於 XBOX Live Compute 服務已不再提供並已停止，因此此屬性已淘汰。
指定要配置之雲端運算套件的屬性。

需要設定 `cloudCompute` 功能。

| 屬性 | 說明 |
| - | - |
| `titleId` | 表示要配置之雲端運算套件的遊戲識別碼 |
| `gsiSet` | 表示要配置之雲端運算套件的全域安全性基礎結構 (GSI) 集合 |
| `variant` | 表示要配置之雲端運算套件的變體 |

#### 範例：cloudComputePackage

```json theme={null}
"cloudComputePackage": {
    "titleId": "4567",
    "gsiSet": "128ce92a-45d0-4319-8a7e-bd8e940114ec",
    "variant": "30ebca60-d96e-4629-930b-6957aa6bfbfa"
},
```

[返回本主題頂端。](#top)

## arbitration (已淘汰)

由於 XBOX Live Compute 服務已不再提供並已停止，因此此屬性已淘汰。
指定仲裁程序的逾時。

需要設定 `arbitration` 功能。

仲裁開始時間是在工作階段的 */servers/arbitration/constants/system/startTime* 元素中定義。

| 逾時 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `forfeitTimeout` | 表示從仲裁開始時間起算的時間，以毫秒為單位。 | 0 - n | 60000 |
| `arbitrationTimeout` | 表示從仲裁開始時間起算、仲裁結果逾時的時間，以毫秒為單位。此值不能小於 `forfeitTimeout` 值。 | 0 - n | 300000 |

#### 範例：arbitration

```json theme={null}
"arbitration": {
    "forfeitTimeout": 60000,
    "arbitrationTimeout": 300000
},
```

[返回本主題頂端。](#top)

## broadcastViewerTitleIds

指定應一律具有廣播工作階段讀取權限之遊戲的遊戲識別碼陣列。

#### 範例：broadcastViewerTitleIds

```json theme={null}
"broadcastViewerTitleIds" : ["34567", "8910"],
```

[返回本主題頂端。](#top)

## ownershipPolicies

指定當最後一位擁有者離開工作階段時，如何處理工作階段。
需要設定 `hasOwners` 功能。

| 擁有權原則 | 說明 | 有效值 | 預設值 |
| - | - | - | - |
| `migration` | 表示最後一位擁有者離開工作階段時會發生什麼情況。如果移轉原則設為 "endsession"，工作階段就會到期。如果移轉原則設為 "oldest"，則會選取加入時間最早的成員，成為工作階段的新擁有者。 | "oldest"、"endsession" | "endsession" |
| `allowNonOwnerInviteHandles` | 表示非擁有者之工作階段成員的邀請行為。根據預設，非擁有者無法傳送工作階段的邀請。 | `true`、`false` | `false` |
| `nonOwnerModifiableSystemProperties` | 在 `hasOwners` 功能設為 `true` 的工作階段上，非擁有者可以修改的系統屬性名稱清單。 | 系統屬性名稱清單 | 不適用 |

#### 範例：ownershipPolicies

```json theme={null}
"ownershipPolicies": {
     "migration": "oldest",
     "allowNonOwnerInviteHandles": true,
     "nonOwnerModifiableSystemProperties": ["joinRestriction", "closed"] 
}
```

[返回本主題頂端。](#top)


## Related topics

- [多人遊戲工作階段目錄 (MPSD) 概念 (內容)](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [設定多人遊戲服務](/zh-TW/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [跨 Xbox One 軟體開發套件/GDK 遊戲版本的邀請](/zh-TW/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [概念](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/index.md)
- [多人遊戲工作階段範本](/zh-TW/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)
