跳轉到主要內容
裝載在伺服器上的遊戲有時會發現需要搜尋額外的玩家。最常見的情況是在遊戲進行期間有一或多位玩家中斷連線。伺服器回填票證可讓遊戲伺服器搜尋適合目前進行中遊戲的額外玩家。 伺服器回填票證與一般配對票證在多個方面有所不同:
  1. 配對
    • 回填票證無法彼此配對。
    • 回填票證在搜尋期間會獲得優先權,以減少玩家群的分散。
  2. 合約
    • 建立回填票證時可以包含 ServerDetails 欄位。這可讓伺服器指出配對成功的玩家應如何連線到伺服器。
    • 建立回填票證時可以包含隊伍指派。這可讓有隊伍的遊戲保留其隊伍資訊。
  3. 佇列屬性
  4. 擁有權
    • 回填票證由遊戲伺服器擁有,而非使用者。使用者無法以任何方式檢視回填票證或與之互動。

先決條件

  • 基本熟悉 PlayFab Multiplayer SDK。如需詳細資訊,請參閱 Matchmaking SDK 快速入門。
  • 在包含配對標頭之前,先定義 PFMULTIPLAYER_INCLUDE_SERVER_APIS。例如:

設定伺服器回填票證

建立 PFMatchmakingServerBackfillTicketConfiguration 結構,並填入必要的詳細資料:
  • timeoutInSeconds:嘗試填滿票證的時間長度 (以秒為單位)。
  • queueName:比賽佇列的名稱。
  • memberCount:目前在比賽中的成員數目。
  • members:目前在比賽中的 PFMatchmakingMatchMember 成員。
  • serverDetails (選用):在 PFMultiplayerServerDetails 中填入要提供給用戶端的伺服器資訊 (FQDN、IP 位址、連接埠、區域)。
PFMultiplayerServerDetails::ipv4Address 欄位不會經過驗證,可用來將任意連線字串資訊提供給用戶端。

建立伺服器回填票證

使用 PFMultiplayerCreateServerBackfillTicket 建立伺服器回填票證時,需要傳遞遊戲伺服器的實體 (作為 PFEntityKey),以及在上一個步驟中建立的回填設定。

檢查配對票證的狀態

您必須呼叫 PFMultiplayerStartProcessingMatchmakingStateChanges 來接收狀態變更,以檢查票證的更新,並在處理完這些狀態變更後呼叫 PFMultiplayerFinishProcessingMatchmakingStateChanges。 每當票證狀態變更時,SDK 都會傳回 TicketStatusChanged 狀態變更;配對完成時,則會傳回 TicketCompleted 狀態變更。

取得比賽

收到 PFMatchmakingStateChangeType::TicketCompleted 狀態變更之後,呼叫 PFMatchmakingTicketGetMatch 以取得比賽的詳細資料。這些詳細資料包含比賽識別碼、已配對在一起的使用者、比賽的偏好區域,以及與比賽相關聯之大廳的安排字串。 從 PFMatchmakingMatchDetails 結構中擷取所需的任何資訊之後,應使用 PFMultiplayerDestroyMatchmakingTicket 終結票證。

取消票證

如果您想要在 PFMatchmakingServerBackfillTicketConfiguration 中設定的逾時之前取消配對程序,請使用票證控制代碼呼叫 PFMatchmakingTicketCancel。 呼叫此 API 不保證票證會被取消。票證仍可能在取消作業處理之前完成,或取消要求可能因網路或服務錯誤而失敗。如果您想要在繼續之前確認票證取消已完成,仍可處理配對狀態變更以取得票證的結果。否則,您可以立即呼叫 PFMultiplayerDestroyMatchmakingTicket。
最後修改於 2026年10月8日