建議的採用順序
- 登入與身分識別:XUser 和 PlayFab 登入。
- 成就與統計資料:XSAPI 成就 和 玩家統計資料。
- 雲端存檔:XGameSave。
- 社交:朋友和最近的玩家 和 Rich Presence。
- 多人遊戲:大廳、配對、多人遊戲、邀請 和 聊天。
- 商務:XStore、遊戲內購買 和 DLC。
- 伺服器端整合:S2S 驗證、使用者產生的內容 和 即時營運。
選用服務主題
下方每一列都對應到來源 PC E2E 指南中涵蓋的主題。詳細的整合指引位於連結的功能文件中。聊天
使用 PlayFab Party 在 PC 和 XBOX 上進行同步語音和文字聊天。主要步驟:- 設定 PlayFab Party SDK。
- 透過 XBOX 服務和 PlayFab 驗證玩家。
- 使用
PartyManager::CreateNewNetwork()建立或加入 Party 網路。 - 為每位本機使用者建立
PartyLocalChatControl,並使用PartyNetwork::ConnectChatControl()將其連線。 - 透過
PartyLocalChatControl::SetAudioInput/Output和PartyAudioDeviceSelectionType選擇音訊輸入/輸出裝置。 - 設定聊天控制項配對之間的聊天權限和靜音狀態。
- 透過
SendText新增文字聊天,並可選擇透過SetTextChatOptions進行翻譯。 - 新增協助工具功能:透過 Azure Speech Services 進行語音轉文字轉錄和文字轉語音合成。
- 對擷取的麥克風音訊啟用噪音抑制。
遊戲內購買
使用 XStore (透過XGameRuntime.h) 在 Microsoft Store 上實作遊戲內購買流程:
- 查詢市集目錄、相關產品 (附加元件、消耗性產品、耐久性產品) 以及使用者的權利集合。
- 透過
XStoreShowPurchaseUIAsync顯示購買 UI。 - 透過
XStoreReportConsumableFulfillmentAsync消耗消耗性產品。 - 權利變更後,使用
XStoreQueryProductForCurrentSkuAsync重新整理授權。
邀請
使用 PlayFab Lobby 處理跨 PC/XBOX 的邀請和加入:- 整合 PlayFab Lobby 與 Matchmaking SDK。
- 透過 XBOX 服務和 PlayFab 進行驗證。
- 選擇大廳擁有權:玩家擁有 (
PFMultiplayerCreateAndJoinLobby)、伺服器擁有 (PFMultiplayerCreateAndClaimServerLobby) 或由配對建立。 - 透過
PFMultiplayerStartListeningForLobbyInvites接聽邀請。 - 透過平台的邀請 UI 傳送邀請,讓目標對象看到原生的 XBOX/市集通知。
排行榜
使用 XSAPI 遊戲管理的排行榜,在 XBOX 服務上提供社交和全球排行榜:- 在 Partner Center 的 XBOX services → Player data 下定義排行榜。
- 使用 Stats Manager 發出與排行榜相關的統計資料事件。
- 透過
XblLeaderboardGetLeaderboardAsync(全球) 或XblLeaderboardGetLeaderboardForSocialGroupAsync(朋友) 查詢排行榜。
大廳
使用 PlayFab Lobby 處理共用的工作階段狀態 (成員清單、任意屬性、擁有權):- 使用 PlayFab Multiplayer C SDK 建立、加入、尋找和離開大廳。
- 將遊戲中繼資料儲存為大廳屬性 (遊戲模式、地圖、就緒狀態)。
- 與 PlayFab Matchmaking 結合,從配對成功的群組組成大廳。
- 與 PlayFab Party 結合,在大廳成員資格之上加入網路和語音功能。
配對
使用 PlayFab Matchmaking 進行以技術/屬性為基礎的配對,並產生共用大廳:- 在 PlayFab Game Manager 中定義配對佇列,並設定針對玩家屬性的規則。
- 透過
PFMatchmakingCreateMatchmakingTicket提交票證。 - 找到配對時,玩家會被放入您擁有的共用大廳。
多人遊戲
PC/XBOX 上支援兩種多人遊戲堆疊:- PlayFab Multiplayer:跨平台,使用 PlayFab Lobby 處理工作階段,並使用 PlayFab Party 進行傳輸。建議用於新遊戲。
- XBOX 服務多人遊戲:MPSD 工作階段 + Multiplayer Manager (MPM)。仍支援僅限 XBOX 的遊戲。
網路
使用 PlayFab Party 作為即時遊戲流量的網路傳輸:- 在已連線的端點之間傳送可靠/不可靠的訊息。
- 在同一個 Party 網路上傳輸語音、文字和遊戲資料。
- 在 XBOX 上,Party 會自動與平台的網路路徑整合;在 PC 上,則使用 UDP 並提供後援。
玩家統計資料
使用 XSAPI Stats Manager 處理遊戲管理的玩家統計資料:- 在 Partner Center 的 XBOX services → Player data 下定義統計資料。
- 使用
XblStatsManagerSetStatAsNumber/SetStatAsString將統計資料新增至玩家。 - 根據遊戲進行情況遞增或覆寫統計資料。
- 每個畫面格使用
XblStatsManagerDoWork排清待處理的更新。
Rich Presence
使用 XSAPI Presence 廣播玩家正在進行的活動:- 在 Partner Center 中定義狀態列舉和字串集。
- 當玩家轉換到新狀態 (功能表、關卡、對戰) 時,使用
XblPresenceSetPresenceAsync更新狀態。 - 使用
XblPresenceGetPresenceAsync或XblPresenceGetPresenceForMultipleUsersAsync查詢其他玩家。
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 目錄:- 透過 PlayFab 驗證玩家。
- 使用
CreateUploadUrls產生已簽署的上傳 URL。 - 使用
CreateDraftItem(Type:ugc) 建立草稿項目。 - 透過
GetEntityDraftItems列舉草稿項目。 - 使用
PublishDraftItem發佈:已發佈的項目會出現在公開目錄中。 - 使用
GetItemPublishStatus檢查狀態。 - 使用
SearchItems(ODataFilter、OrderBy、Select) 查詢目錄。
相關內容
相關 API 文件
- XSAPI 概觀:身分識別、狀態、社交、成就、排行榜
- XStore API 參考:Microsoft Store 商務
- PlayFab 概觀:PlayFab REST + SDK 介面
