將探索與 PlayFab Party 整合
探索是使用者找到彼此以一起遊玩的程序。PlayFab Party 不提供探索機制,但可以與任何在使用者之間提供通訊的現有機制搭配使用。基本建立和加入流程
PlayFab Party 網路由使用者在單一用戶端上建立、公告,然後由其他使用者在不同的用戶端上加入。建立網路
將 PlayFab Party 網路用於遊戲工作階段時,首先要考量的是選擇由哪個用戶端和使用者建立網路 (PartyManager::CreateNewNetwork())。從 PlayFab Party 的角度來看,由哪位使用者執行此動作並不重要;任何使用者都可以建立網路。建立者在網路中不會獲得任何特殊權限。不過,建立網路的用戶端負責:
- 設定不可變的網路設定 (
PartyNetworkConfiguration) - 決定初始邀請 (
PartyInvitationConfiguration) - 向其他使用者公告網路
title_player_account 實體識別碼清單的形式指定。或者,清單也可以是空的,讓任何擁有網路描述元和邀請識別碼的使用者都能加入。
公告網路
若要加入現有的 PlayFab Party 網路,用戶端需要兩項資訊:- 網路描述元
- 邀請識別碼
PartyNetworkDescriptor) 識別。這是一個大部分不透明的結構,會編碼建立網路連線所需的資訊。網路建立完成後,建立網路的用戶端會收到網路描述元 (PartyCreateNewNetworkCompletedStateChange、PartyNetwork::GetNetworkDescriptor())。為了方便開發,PlayFab Party 提供方法,可將網路描述元序列化為適合網頁的字串,以及從該字串還原序列化 (PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor())。
邀請識別碼是唯一識別邀請的字串。用戶端在明確建立邀請時,或在建立網路時建立初始邀請時,會提供此識別碼。如果用戶端未提供邀請識別碼,系統會產生一個唯一的識別碼。
若要向其他使用者公告新網路,請透過任何適當的通訊媒介傳送這兩項資訊。
加入網路
加入網路是兩個步驟的程序。想要加入網路的用戶端必須先將還原序列化的網路描述元提供給PartyManager::ConnectToNetwork() 以連線到網路,然後將邀請識別碼提供給 PartyNetwork::AuthenticateLocalUser() 以驗證使用者。
案例範例
社交邀請
最簡單的案例是單一使用者建立遊戲工作階段,並希望透過共用的社交平台邀請其他已知的使用者。流程可能如下所示:- 邀請者使用開放邀請建立網路,或使用包含邀請者想要一起遊玩之所有使用者的邀請建立網路。
- 建立網路後,邀請者透過社交平台的邀請機制,將網路描述元和邀請識別碼傳送給其他使用者。
- 每位受邀使用者都使用網路描述元和邀請識別碼連線到網路。
在邀請中指定使用者時,會使用使用者的
title_player_account 實體識別碼。這些實體識別碼需要在 PlayFab Party 之外另行取得。大廳
如果您的遊戲提供允許在用戶端之間傳送資料的大廳,就可以將其用作交換網路連線資訊的通訊媒介。流程可能如下所示:- 選取一組使用者一起玩遊戲。
- 選取其中一位使用者作為建立者。
- 該組中的每位使用者都將其
title_player_account實體識別碼傳送給建立者。 - 建立者建立網路,並在初始邀請設定中指定使用者的實體識別碼。
- 網路建立完成後,建立者將網路描述元和初始邀請識別碼傳送給應加入的使用者。
- 每位使用者都使用網路描述元和邀請識別碼連線到網路。
配對
配對服務 (例如 PlayFab Matchmaking) 可用來尋找要一起遊玩的使用者清單。流程可能如下所示:- 使用者向服務發起比賽要求。要求中必須包含
title_player_account實體識別碼,因為比賽結果必須包含每位使用者的實體識別碼。 - 使用者收到比賽結果,其中包含應加入網路的使用者集合。
- 使用預先決定的演算法選取由哪位使用者擔任建立者。
- 建立者建立網路,並在初始邀請設定中指定其他已配對使用者的實體識別碼。
- 網路建立完成後,建立者使用頻外通訊媒介,將網路描述元和初始邀請識別碼傳送給其他已配對的使用者。
- 每位已配對的使用者都使用網路描述元和邀請識別碼連線到網路。
需要頻外通訊媒介,才能將連線資訊從建立者傳送給其他已配對的使用者。
