設計概觀
若要將 MPA 與 PlayFab Lobby 和 Match 或類似服務整合,遊戲或遊戲服務必須從大廳狀態查詢相關資訊,然後將此資訊移轉至 MPA 服務。MPA 服務不適用於大廳或工作階段狀態資訊。活動
對於 MPA 活動,來源資訊應該是基礎的大廳資訊。遊戲或服務需要依照下列最佳做法,在 MPA 活動內容欄位中設定相關資訊:-
更新頻率
從大廳資料進行狀態移轉時,應以合理的頻率反映變更,例如
CurrentPlayers資訊的更新。更新呼叫不應超過精細速率限制中所述的呼叫限制。也不應刪除/重新建立 MPA 活動來更新資訊。 -
XBOX 使用者身分識別 (XUID)
在 XBOX 服務以外的服務中,玩家的 XUID 通常是未經驗證的資訊,也不是跨網路服務的主要識別碼。PlayFab Lobby 對玩家使用跨網路的 PlayFab 使用者實體識別碼,可透過 API 或服務呼叫將其轉換為作用中使用者的 XUID。如需詳細資料,請參閱 PlayFab 教學課程:取得玩家個人檔案。只有此解析的 XUID 才應被視為安全的。
無法以這種方式擷取其他玩家的 XUID。解決方法是將 XUID 以大廳中玩家的自訂字串屬性提供。這些字串不應被視為安全的,且應一律透過 PlayFab 服務使用
PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResult進行驗證,以比較 XUID 的預期和實際 PlayFab 使用者實體識別碼。不相符表示 XUID 不正確。 對於所有服務,以不安全字串提供的 XUID 都不安全,若未經驗證可能會導致模擬攻擊。 -
連線字串
若要與 PlayFab Lobby 服務整合,MPA 活動的連線字串應設定為可透過
PFLobbyGetConnectionString擷取的大廳連線字串。其他服務應使用對等的加入字串。 -
反映大廳的可加入性
活動的目的是讓玩家加入遊戲體驗,因此需要與基礎大廳狀態的可加入性相符。當活動已滿 (
CurrentPlayers達到MaxPlayers值) 時,活動會自動變成無法加入。想要讓活動暫時無法加入的遊戲也可以使用此行為。只有在未來不可能再加入時,才應刪除活動。請注意,改變活動的隱私權設定只會限制加入,但無法封鎖所有加入。 由於活動加入的延遲,遊戲應一律考慮對已滿或無法加入的工作階段執行加入的流程,並向玩家提供適當的錯誤。 - 反映隱私權變更 透過加入限制所表示的活動隱私權狀態和變更,應反映為基礎 PlayFab Lobby 定義的存取原則。這同樣適用於類似的服務,且可能需要對應隱私權值。
邀請
對於 MPA 邀請,建議的來源也應該是基礎的大廳資訊。此最佳做法方法比邀請加入 PlayFab Party 之類的網路網格更可靠,且可透過大廳資料立即提供狀態資訊。 若要與 PlayFab Lobby 服務整合,MPA 邀請的連線字串應設定為大廳連線字串。此字串可透過PFLobbyGetConnectionString 擷取。此外,應為邀請設定適當的跨平台加入值。
