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

# 選用服務

> 在您的 PC GDK 遊戲中加入選用的 XBOX 和 PlayFab 服務：XUser 登入、成就、XGameSave、社交、多人遊戲和 XStore 商務。

當您的 PC GDK 遊戲開始執行後，請依照設計需求加入選用的 XBOX 服務和 Microsoft Azure PlayFab 功能。這些都不是發佈到 Microsoft Store 的必要條件，請選擇適合您遊戲的項目。

## 建議的採用順序

1. **登入與身分識別**：[XUser](https://docs.xbox.com/zh-TW/build/core-features/common/user/gamecore-user-models.md) 和 [PlayFab 登入](https://docs.xbox.com/zh-TW/services/playfab/identity/player-identity/login.md)。
2. **成就與統計資料**：[XSAPI 成就](https://docs.xbox.com/zh-TW/services/xbox-services/player-data/achievements/index.md) 和 [玩家統計資料](#player-stats)。
3. **雲端存檔**：[XGameSave](https://docs.xbox.com/zh-TW/build/core-features/common/game-save/game-saves-overview.md)。
4. **社交**：[朋友和最近的玩家](https://docs.xbox.com/zh-TW/services/xbox-services/community/social-manager/live-social-manager-overview.md) 和 [Rich Presence](#rich-presence)。
5. **多人遊戲**：[大廳](#lobbies)、[配對](#matchmaking)、[多人遊戲](#multiplayer)、[邀請](#invites) 和 [聊天](#chat)。
6. **商務**：[XStore](https://docs.xbox.com/zh-TW/publishing/xstore-commerce/xstore-overview.md)、[遊戲內購買](#in-game-purchases) 和 [DLC](https://docs.xbox.com/zh-TW/publishing/game-publishing/concepts/add-ons.md)。
7. **伺服器端整合**：[S2S 驗證](#s2s-authentication)、[使用者產生的內容](#user-generated-content) 和 [即時營運](https://docs.xbox.com/zh-TW/services/playfab/live-service-management.md)。

## 選用服務主題

下方每一列都對應到來源 PC E2E 指南中涵蓋的主題。詳細的整合指引位於連結的功能文件中。

| 主題 | 建議的 SDK | 所在位置 |
| - | - | - |
| [聊天](#chat) | PlayFab Party | [PlayFab Party 聊天](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/networking.md) |
| [遊戲內購買](#in-game-purchases) | XStore (GDK) | [XStore 深入探討](https://docs.xbox.com/zh-TW/publishing/xstore-commerce/xstore-overview.md) |
| [邀請](#invites) | PlayFab Lobby + XBOX 邀請 | [PlayFab Lobby](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/lobby.md) |
| [排行榜](#leaderboards) | XSAPI 遊戲管理的排行榜 | [排行榜](https://docs.xbox.com/zh-TW/services/xbox-services/player-data/stats-leaderboards/index.md) |
| [大廳](#lobbies) | PlayFab Lobby | [PlayFab Lobby](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/lobby.md) |
| [配對](#matchmaking) | PlayFab Matchmaking / SmartMatch | [PlayFab Matchmaking](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/lobby.md) |
| [多人遊戲](#multiplayer) | MPSD + MPM、PlayFab Multiplayer | [多人遊戲](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/index.md) |
| [網路](#networking) | PlayFab Party 網路 | [PlayFab 網路](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/networking.md) |
| [玩家統計資料](#player-stats) | XSAPI Stats Manager | [統計資料](https://docs.xbox.com/zh-TW/services/xbox-services/player-data/stats-leaderboards/index.md) |
| [Rich Presence](#rich-presence) | XSAPI Presence | [Rich Presence](https://docs.xbox.com/zh-TW/services/xbox-services/community/presence/live-presence-overview.md) |
| [S2S 驗證](#s2s-authentication) | Entra ID + User Store ID | [服務對服務驗證](https://learn.microsoft.com/en-us/store/commerce/service-to-service) |
| [使用者產生的內容](#user-generated-content) | PlayFab Economy v2 | [PlayFab UGC](https://docs.xbox.com/zh-TW/services/playfab/economy-monetization/index.md) |

## 聊天

使用 **PlayFab Party** 在 PC 和 XBOX 上進行同步語音和文字聊天。主要步驟：

1. 設定 [PlayFab Party SDK](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/networking.md)。
2. 透過 XBOX 服務和 PlayFab 驗證玩家。
3. 使用 `PartyManager::CreateNewNetwork()` 建立或加入 Party 網路。
4. 為每位本機使用者建立 `PartyLocalChatControl`，並使用 `PartyNetwork::ConnectChatControl()` 將其連線。
5. 透過 `PartyLocalChatControl::SetAudioInput/Output` 和 `PartyAudioDeviceSelectionType` 選擇音訊輸入/輸出裝置。
6. 設定聊天控制項配對之間的聊天權限和靜音狀態。
7. 透過 `SendText` 新增文字聊天，並可選擇透過 `SetTextChatOptions` 進行翻譯。
8. 新增協助工具功能：透過 Azure Speech Services 進行語音轉文字轉錄和文字轉語音合成。
9. 對擷取的麥克風音訊啟用噪音抑制。

如果您也在 XBOX 上發行，請使用 [Party XBOX Live Helper Library](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/networking.md) 以符合 XBOX 服務需求。

## 遊戲內購買

使用 **XStore** (透過 `XGameRuntime.h`) 在 Microsoft Store 上實作遊戲內購買流程：

* 查詢市集目錄、相關產品 (附加元件、消耗性產品、耐久性產品) 以及使用者的權利集合。
* 透過 `XStoreShowPurchaseUIAsync` 顯示購買 UI。
* 透過 `XStoreReportConsumableFulfillmentAsync` 消耗消耗性產品。
* 權利變更後，使用 `XStoreQueryProductForCurrentSkuAsync` 重新整理授權。

對於由 PlayFab 驅動的虛擬經濟 (貨幣、物品欄、組合)，請將 XStore 購買與 PlayFab Economy v2 搭配使用。

## 邀請

使用 **PlayFab Lobby** 處理跨 PC/XBOX 的邀請和加入：

1. 整合 [PlayFab Lobby 與 Matchmaking SDK](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/lobby.md)。
2. 透過 XBOX 服務和 PlayFab 進行驗證。
3. 選擇大廳擁有權：玩家擁有 (`PFMultiplayerCreateAndJoinLobby`)、伺服器擁有 (`PFMultiplayerCreateAndClaimServerLobby`) 或由配對建立。
4. 透過 `PFMultiplayerStartListeningForLobbyInvites` 接聽邀請。
5. 透過平台的邀請 UI 傳送邀請，讓目標對象看到原生的 XBOX/市集通知。

大廳同時也是玩家接受邀請後加入的遊戲工作階段。

## 排行榜

使用 **XSAPI 遊戲管理的排行榜**，在 XBOX 服務上提供社交和全球排行榜：

1. 在 Partner Center 的 **XBOX services → Player data** 下定義排行榜。
2. 使用 Stats Manager 發出與排行榜相關的統計資料事件。
3. 透過 `XblLeaderboardGetLeaderboardAsync` (全球) 或 `XblLeaderboardGetLeaderboardForSocialGroupAsync` (朋友) 查詢排行榜。

請參閱 [排行榜](https://docs.xbox.com/zh-TW/services/xbox-services/player-data/stats-leaderboards/index.md)。

## 大廳

使用 **PlayFab Lobby** 處理共用的工作階段狀態 (成員清單、任意屬性、擁有權)：

* 使用 PlayFab Multiplayer C SDK 建立、加入、尋找和離開大廳。
* 將遊戲中繼資料儲存為大廳屬性 (遊戲模式、地圖、就緒狀態)。
* 與 PlayFab Matchmaking 結合，從配對成功的群組組成大廳。
* 與 PlayFab Party 結合，在大廳成員資格之上加入網路和語音功能。

## 配對

使用 **PlayFab Matchmaking** 進行以技術/屬性為基礎的配對，並產生共用大廳：

* 在 PlayFab Game Manager 中定義配對佇列，並設定針對玩家屬性的規則。
* 透過 `PFMatchmakingCreateMatchmakingTicket` 提交票證。
* 找到配對時，玩家會被放入您擁有的共用大廳。

對於僅使用 XBOX Live 的遊戲，也支援透過 MPSD 使用 SmartMatch，但對於新遊戲，建議的途徑是 PlayFab Matchmaking。

## 多人遊戲

PC/XBOX 上支援兩種多人遊戲堆疊：

* **PlayFab Multiplayer**：跨平台，使用 PlayFab Lobby 處理工作階段，並使用 PlayFab Party 進行傳輸。建議用於新遊戲。
* **XBOX 服務多人遊戲**：MPSD 工作階段 + Multiplayer Manager (MPM)。仍支援僅限 XBOX 的遊戲。

這兩種途徑都在 [多人遊戲概觀](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/index.md) 中說明。

## 網路

使用 **PlayFab Party** 作為即時遊戲流量的網路傳輸：

* 在已連線的端點之間傳送可靠/不可靠的訊息。
* 在同一個 Party 網路上傳輸語音、文字和遊戲資料。
* 在 XBOX 上，Party 會自動與平台的網路路徑整合；在 PC 上，則使用 UDP 並提供後援。

## 玩家統計資料

使用 **XSAPI Stats Manager** 處理遊戲管理的玩家統計資料：

1. 在 Partner Center 的 **XBOX services → Player data** 下定義統計資料。
2. 使用 `XblStatsManagerSetStatAsNumber` / `SetStatAsString` 將統計資料新增至玩家。
3. 根據遊戲進行情況遞增或覆寫統計資料。
4. 每個畫面格使用 `XblStatsManagerDoWork` 排清待處理的更新。

統計資料為排行榜提供資料，並會顯示在玩家的個人檔案上。

## Rich Presence

使用 **XSAPI Presence** 廣播玩家正在進行的活動：

1. 在 Partner Center 中定義狀態列舉和字串集。
2. 當玩家轉換到新狀態 (功能表、關卡、對戰) 時，使用 `XblPresenceSetPresenceAsync` 更新狀態。
3. 使用 `XblPresenceGetPresenceAsync` 或 `XblPresenceGetPresenceForMultipleUsersAsync` 查詢其他玩家。

請參閱 [Rich Presence](https://docs.xbox.com/zh-TW/services/xbox-services/community/presence/live-presence-overview.md)。

## S2S 驗證

當您的後端需要代表玩家呼叫 Microsoft Store API 時，請使用 **Microsoft Entra ID + User Store ID** 進行服務對服務驗證：

* 兩種 User Store ID 類型：
  * `UserCollectionsID`：向 Microsoft Store **Collections** 服務 (權利清單) 進行驗證。
  * `UserPurchaseID`：向 Microsoft Store **Purchase** 服務 (交易驗證) 進行驗證。
* 您的服務會取得 Entra ID 存取權杖，並將其與來自遊戲用戶端的 User Store ID 一起用來呼叫 Store REST API。
* 建議用於新遊戲；以 X-token 為基礎的驗證屬於舊版方式。

## 使用者產生的內容

在第一方或第三方資產管線之上，使用 **PlayFab Economy v2** 建立 UGC 目錄：

1. 透過 PlayFab 驗證玩家。
2. 使用 `CreateUploadUrls` 產生已簽署的上傳 URL。
3. 使用 `CreateDraftItem` (`Type:ugc`) 建立草稿項目。
4. 透過 `GetEntityDraftItems` 列舉草稿項目。
5. 使用 `PublishDraftItem` 發佈：已發佈的項目會出現在公開目錄中。
6. 使用 `GetItemPublishStatus` 檢查狀態。
7. 使用 `SearchItems` (OData `Filter`、`OrderBy`、`Select`) 查詢目錄。

選用的審查/仲裁由 PlayFab Game Manager 中的目錄審查者處理。

## 相關內容

* [PC 端對端概觀](https://docs.xbox.com/zh-TW/build/gdk-and-engines/overview.md)
* [XBOX 服務概觀](https://docs.xbox.com/zh-TW/services/xbox-services/index.md)
* [PlayFab 概觀](https://docs.xbox.com/zh-TW/services/playfab/get-started.md)

## 相關 API 文件

* [XSAPI 概觀](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/atoc-xsapi-c.md)：身分識別、狀態、社交、成就、排行榜
* [XStore API 參考](https://docs.xbox.com/zh-TW/reference/system/xstore/xstore_members.md)：Microsoft Store 商務
* [PlayFab 概觀](https://docs.xbox.com/zh-TW/services/playfab/get-started/index.md)：PlayFab REST + SDK 介面


## Related topics

- [搭配 Unity、Unreal 和其他引擎使用 GDK](https://docs.xbox.com/zh-TW/build/gdk-and-engines/gdk-and-engines.md)
- [啟用或停用服務產生的事件](https://docs.xbox.com/zh-TW/services/playfab/data-analytics/ingest-data/opt-in-events.md)
- [伺服器](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/servers/index.md)
- [使用 QoS 信標測量玩家到 Azure 的延遲](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/servers/using-qos-beacons-to-measure-player-latency-to-azure.md)
- [使用 2025 年 10 月 GDK 實作 Game Saves](https://docs.xbox.com/zh-TW/services/playfab/player-progression/game-saves/october-2025-gdk-changes.md)
