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

# 選用服務

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

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

## 建議的採用順序

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

## 選用服務主題

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

| 主題 | 建議的 SDK | 所在位置 |
| - | - | - |
| [聊天](#chat) | PlayFab Party | [PlayFab Party 聊天](/zh-TW/services/playfab/multiplayer/networking) |
| [遊戲內購買](#in-game-purchases) | XStore (GDK) | [XStore 深入探討](/zh-TW/publishing/xstore-commerce/xstore-overview) |
| [邀請](#invites) | PlayFab Lobby + XBOX 邀請 | [PlayFab Lobby](/zh-TW/services/playfab/multiplayer/lobby) |
| [排行榜](#leaderboards) | XSAPI 遊戲管理的排行榜 | [排行榜](/zh-TW/services/xbox-services/player-data/stats-leaderboards/index) |
| [大廳](#lobbies) | PlayFab Lobby | [PlayFab Lobby](/zh-TW/services/playfab/multiplayer/lobby) |
| [配對](#matchmaking) | PlayFab Matchmaking / SmartMatch | [PlayFab Matchmaking](/zh-TW/services/playfab/multiplayer/lobby) |
| [多人遊戲](#multiplayer) | MPSD + MPM、PlayFab Multiplayer | [多人遊戲](/zh-TW/services/xbox-services/multiplayer/index) |
| [網路](#networking) | PlayFab Party 網路 | [PlayFab 網路](/zh-TW/services/playfab/multiplayer/networking) |
| [玩家統計資料](#player-stats) | XSAPI Stats Manager | [統計資料](/zh-TW/services/xbox-services/player-data/stats-leaderboards/index) |
| [Rich Presence](#rich-presence) | XSAPI Presence | [Rich Presence](/zh-TW/services/xbox-services/community/presence/live-presence-overview) |
| [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](/zh-TW/services/playfab/economy-monetization/index) |

## 聊天

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

1. 設定 [PlayFab Party SDK](/zh-TW/services/playfab/multiplayer/networking)。
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](/zh-TW/services/playfab/multiplayer/networking) 以符合 XBOX 服務需求。

## 遊戲內購買

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

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

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

## 邀請

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

1. 整合 [PlayFab Lobby 與 Matchmaking SDK](/zh-TW/services/playfab/multiplayer/lobby)。
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` (朋友) 查詢排行榜。

請參閱 [排行榜](/zh-TW/services/xbox-services/player-data/stats-leaderboards/index)。

## 大廳

使用 **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 的遊戲。

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

## 網路

使用 **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](/zh-TW/services/xbox-services/community/presence/live-presence-overview)。

## 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 端對端概觀](/zh-TW/build/gdk-and-engines/overview)
* [XBOX 服務概觀](/zh-TW/services/xbox-services/index)
* [PlayFab 概觀](/zh-TW/services/playfab/get-started)

## 相關 API 文件

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


## Related topics

- [使用 PlayFab 加入後端服務](/zh-TW/home/build-first-title/add-backend-services.md)
- [安裝 GDK 工具鏈](/zh-TW/home/setup-install/download-install.md)
- [服務 C API 概觀 - PFLocalization.h](/zh-TW/services/playfab/api-references/c/pflocalization/pflocalization_members.md)
- [服務 C API 概觀 - PFStatistics.h](/zh-TW/services/playfab/api-references/c/pfstatistics/pfstatistics_members.md)
- [服務 C API 概觀 - PFLeaderboards.h](/zh-TW/services/playfab/api-references/c/pfleaderboards/pfleaderboards_members.md)
