跳轉到主要內容

簡介

本文件適用於目前使用 MPSD,並想要改用 PlayFab Multiplayer 與 MPA 來開發多人遊戲的遊戲開發人員。本文件將涵蓋最常見的多人遊戲情境,並提供示範如何搭配 MPA 使用 PlayFab Multiplayer 的程式碼片段。

多人遊戲工作階段目錄 (MPSD) 概觀

  • 功能完整的工作階段服務,用於分享連接一群使用者所需的資訊
  • 與 XBOX UI 整合,提供邀請與加入功能
  • 與 SmartMatch 配對完全整合
  • 工作階段衍生自預先定義的工作階段範本
  • 整合了連線偵測與工作階段流程功能
  • 可作為服務對服務使用

多人遊戲活動服務 (MPA) 概觀

  • 輕量服務,可簡化玩家活動、邀請與最近一起玩的玩家的 XBOX Live 整合
  • 在傳送/接受邀請以及被加入時,與殼層和主機作業系統協調
  • 不提供工作階段管理或配對
  • 可作為服務對服務使用

PlayFab Multiplayer 概觀

  • 完整的多人遊戲大廳服務,包含大廳搜尋與瀏覽功能
  • 跨平台的即時服務通知,具有透明的 API 整合
  • 支援即時通知的完整配對服務

初始化

下表列出 MPSD 與 PlayFab Multiplayer 用於初始化的可比較函式。

初始化 - 範例程式碼

使用您的 PlayFab titleID 初始化程式庫,並設定在登入 PlayFab 服務期間收到的實體權杖。

大廳狀態變更

下表列出 MPSD 與 PlayFab Multiplayer 用於處理工作階段/大廳相關事件的可比較函式。

大廳狀態變更 - 範例程式碼

通知程式庫您即將開始處理狀態變更。處理每個已排入佇列的狀態變更,然後通知您已完成處理狀態變更。

建立大廳

下表列出 MPSD 與 PlayFab Multiplayer 用於建立與加入工作階段/大廳的可比較函式。
建立大廳不需要在 PlayFab Game Manager 中進行任何額外的設定。所有設定都可以在程式碼中完成。

建立大廳 - 範例程式碼

設定大廳,並設定任何初始大廳屬性或成員屬性,然後建立並加入大廳。

尋找大廳

下表列出 MPSD 與 PlayFab Multiplayer 用於搜尋工作階段/大廳的可比較函式。

尋找大廳 - 範例程式碼

設定搜尋設定,然後搜尋大廳。
接著,傳回該事件的狀態變更後,處理任何搜尋結果。

大廳搜尋索引鍵

定義自訂搜尋屬性時,只允許使用一組受限的索引鍵。
  • 字串屬性支援下列索引鍵:string_key1、string_key2、[…] string_key30
  • 數值屬性支援下列索引鍵:number_key1、number_key2、[…] number_key30

大廳搜尋運算子

FindLobbies API 的查詢字串採用類似 OData 的語法結構。篩選字串的大小上限為 600 個字元。 這些 OData 運算子可用來組成查詢字串。運算子區分大小寫。
比較字串屬性時,請務必以單引號括住比較值。例如,“string_key1 eq ‘SOME STRING VALUE’“。數值屬性不需要括住。
另外也有可使用的預先定義運算子。指定時必須加上「lobby/」首碼。

排序搜尋結果

OData 樣式的字串,包含此查詢的遞增 (“asc”) 或遞減 (“desc”) 排序。OrderBy 子句可用於任何搜尋數字索引鍵,或數值型的預先定義搜尋索引鍵。若要依最接近某個數字排序,可以使用 distance 名稱,依與指定數字搜尋索引鍵的距離排序。distance 排序不能搭配遞增或遞減使用。此欄位只支援一個排序子句或一個 distance 子句。如果未提供排序,或指定的排序需要決勝條件,預設排序會依建立時間遞減排序。

排序與篩選搜尋結果 - 範例程式碼

加入大廳

下表列出 MPSD 與 PlayFab Multiplayer 用於加入工作階段/大廳的可比較函式。
加入大廳需要連接字串。通常,大廳的主機會在其活動上設定此連接字串,或透過邀請傳送。若要取得連接字串,您必須呼叫 PFLobbyGetConnectionString。

加入大廳 - 範例程式碼

設定初始加入設定,然後加入大廳。

更新大廳

下表列出 MPSD 與 PlayFab Multiplayer 用於更新工作階段/大廳的可比較函式。
PFLobbyPostUpdate 可用來同時更新大廳屬性與成員屬性。您可以透過單次呼叫該函式,更新其中一種或兩種類型的屬性。

更新大廳 - 範例程式碼 (大廳屬性)

更新大廳 - 範例程式碼 (成員屬性)

配對

PlayFab Multiplayer 的配對 API 與 MPSD 的配對 API 相當類似。
配對佇列必須透過 PlayFab Game Manager 設定。

配對狀態變更

下表列出 MPSD 與 PlayFab Multiplayer 用於處理配對相關事件的可比較函式。

配對狀態變更 - 範例程式碼

通知程式庫您即將開始處理狀態變更。處理每個已排入佇列的狀態變更,然後通知您已完成處理狀態變更。

開始配對

開始配對 - 範例程式碼

在 membersToMatchWith 欄位中指定的所有成員都加入之前,配對不會開始。
接著,找到對戰並傳回狀態變更後,加入已安排的大廳。

清除

下表列出 MPSD 與 PlayFab Multiplayer 用於清除與關閉的可比較函式。
呼叫 PFMultiplayerUninitialize 之前,請務必離開所有作用中的大廳,並終結所有進行中的配對票證。

清除 - 範例程式碼

活動

下表列出 MPSD 與 MPA 用於管理活動的可比較函式。
設定活動或傳送邀請時,請務必使用從 PFLobbyGetConnectionString 傳回的連接字串。

活動 - 範例程式碼

邀請

下表列出 MPSD 與 MPA 用於傳送與接收邀請的可比較函式。

邀請 - 範例程式碼 (遊戲 UI)

邀請 - 範例程式碼 (XBOX UI)

XGameUiShowMultiplayerActivityGameInviteResult 會使用目前設定的活動。使用此函式之前,您必須先使用 XblMultiplayerActivitySetActivityAsync 設定活動。

最近一起玩的玩家

下表顯示使用 MPSD 與 MPA 時,如何管理最近一起玩的玩家清單。
為了避免節流,最佳做法是批次處理對 XblMultiplayerActivityUpdateRecentPlayers 的呼叫。

RecentPlayers - 範例程式碼

最後修改於 2026年10月8日