本快速入門指南涵蓋 C++ Party SDK 的使用方式 * Unity 使用者請參閱 Unity 快速入門 * 想要使用 Unreal Engine 的 PlayFab Online Subsystem 的 Unreal Engine 使用者,請參閱 Unreal 快速入門。
先決條件
您需要 PlayFab 帳戶,而且必須啟用 Party 功能才能開始使用 Party。- 建立或登入您的 PlayFab 帳戶。如需指示,請參閱快速入門:Game Manager。
- 從您的 PlayFab 帳戶透過 Game Manager 啟用 Party 功能。
平台先決條件
開始本快速入門之前,請依照下列主題中的指定執行任何必要的平台專屬設定: <!—3. Nintendo Switch prerequisites—> 完成平台專屬步驟後,請繼續進行本主題中的其餘步驟以設定 PlayFab Party。下載並設定 Party SDK
Party SDK 適用於不同的平台和遊戲引擎。請選取並下載您需要的 SDK。如需下載連結,請參閱 Party SDK。 安裝 SDK 之後,您可能會想要在開始撰寫程式碼之前執行範例,以了解 Party 的運作方式。若要下載範例,請前往 Party 範例。 如果您在 XBOX 和 PC 遊戲中使用 Party,建議使用 Party XBOX Live 協助程式庫,以確保一致的功能和行為。此程式庫可協助您的遊戲符合 XBOX Live 需求。若要深入了解,請參閱 XBOX 需求。登入您的 PlayFab 遊戲並取得實體權杖和實體識別碼
若要初始化及使用 Party,您必須登入 PlayFab。您可以使用 PlayFabClientAPI::LoginWithCustomID 或平台專屬的登入方法。 執行登入之後,PlayFab 會在 LoginResult 中傳回實體識別碼和實體權杖。這兩項關鍵資訊用於初始化 PlayFab Party 的本機使用者執行個體。 此程式碼片段顯示PlayFabManager.cpp 中實作的自訂識別碼登入範例:
如果您使用 XBOX Live,也可以使用 Party XBOX Live 協助程式庫登入。
初始化 PlayFab Party
概括來說,初始化 Party 包含下列步驟:- 取得
PartyManager的單一參考並加以初始化。
這是與 Party 程式庫互動的主要管理類別。
- 建立本機使用者物件。
執行網路和聊天作業時,此本機使用者物件用來代表裝置 (PC、主機、手機等) 上的本機使用者。本機使用者物件會以 PlayFab 實體識別碼初始化。
- 建立聊天控制項,並設定 Party 接收或轉送資料的音訊輸入和輸出通道。
聊天控制項物件會管理特定裝置上使用者的聊天作業。
- 設定轉譯和翻譯選項。
轉譯和翻譯是選用的聊天功能,可大幅提高遊戲的無障礙程度。您可以在聊天概觀中找到這些功能的詳細資訊。
NetworkManager::Initialize() 程式碼。
下一個步驟是建立 Party 網路並連線到該網路。
建立 Party 網路
Party 網路是遊戲為交換聊天或資料通訊而建立的安全集合,包含一或多個裝置及其授權的使用者。Party 網路通常對應遊戲的多人遊戲工作階段或聊天「大廳」概念。您只能傳送訊息給自己網路內的玩家。 下列程式碼片段顯示如何建立 Party 網路。CreateNewNetwork() 函式呼叫成功後,會傳回/填入網路描述元 PartyNetworkDescriptor 物件。描述元包含其他玩家連線到網路所需的資料。
如需其他函式參數的資訊,請參閱 API 參考文件。
建立 Party 網路之後,會使用邀請來控制哪些使用者可以加入網路。可以使用 PlayFab Matchmaking、PlayFab Lobby、平台邀請或自訂遊戲服務,與其他玩家分享連線詳細資料。
最簡單的邀請類型是由網路描述元組成的開放邀請。如需所有邀請類型和安全性模型的詳細資訊,請參閱邀請與安全性模型。
分享 Party 網路描述元
此時,您已擁有 Party 網路描述元,並準備好與其他玩家分享。有許多同步機制可用來分享此資訊,但為了快速測試,您可以手動將 Party 網路描述元從主機 Party 工作階段複製並貼上到來賓 Party 工作階段。建議在多人遊戲中使用 PlayFab Lobby 分享網路描述元,但您也可以根據遊戲需求使用自己的大廳服務、邀請或其他分享機制。手動分享 Party 網路描述元
- 從主機工作階段使用 PartyManager::SerializeNetworkDescriptor() 將網路描述元序列化為字串,並將其輸出到主控台。
- 將網路描述元字串複製並貼上到本機或遠端的另一個遊戲。
- 在來賓工作階段中,使用 PartyManager::DeserializeNetworkDescriptor() 從網路描述元字串還原序列化網路描述元。
- 連線到 Party 網路。
使用 PlayFab Lobby 分享 Party 網路描述元
PlayFab Lobby 可在玩家進出比賽時暫時將玩家分組,並可用來同步網路描述元,讓玩家能加入同一個網路。 PlayFab Lobby 具有高度可自訂性,可支援所有支援平台上和跨平台的各種遊戲玩法需求。如需搭配即時訊息使用 PlayFab Lobby 的詳細資訊,請參閱 Multiplayer SDK 快速入門。 如需同時使用 PlayFab Lobby 與 PlayFab Party 的詳細資料,請參閱使用 PlayFab Multiplayer SDK 建立大廳。啟用可調整規模的網路
PlayFab Party 網路可以調整規模,支援 2 到 128 個裝置。服務會選擇針對您的案例最佳化的轉送設定,因此請務必將PartyNetworkConfiguration 中的 maxDeviceCount 設定為符合網路中預期的裝置數目上限。
如需可調整規模網路的說明,請參閱可調整規模的網路。
連線到 Party 網路
取得 Party 網路描述元之後,請依照下列步驟加入 Party 網路:- 使用 PartyManager::DeserializeNetworkDescriptor() 從網路描述元字串還原序列化網路描述元。
- 連線到 Party 網路。
- 在網路上驗證本機使用者。
- 將本機聊天控制項連線到網路,以便使用 VOIP。
- 為遊戲訊息流量建立 Party 網路端點。
傳送訊息至另一個網路裝置或端點
連線到 Party 網路之後,就可以使用本機端點物件傳送訊息。接收訊息並在本機裝置上轉譯
最後一個步驟是接收遠端 Party 成員傳送的訊息,並在您的裝置上轉譯 (播放) 這些訊息。在先前步驟中建立聊天控制項時,您已設定 Party 用來傳送、接收和轉譯音訊資料的音訊輸入和輸出裝置。若要接收音訊訊息,如果您想要讓音訊流通,還需要在每個聊天控制項之間設定適當的聊天權限。根據預設,聊天權限設定為 NONE。如需詳細資訊,請參閱聊天權限一文。
處理遊戲暫停
某些平台支援暫時暫停遊戲的執行:iOS、Switch 和 GDK。 當您的遊戲暫停時,網路堆疊會失效,且 PlayFab Party 無法維持與 PlayFab Party 網路的連線。 使用 PlayFab Party 時,需要特別考量如何處理遊戲執行的暫停和繼續。iOS
在 iOS 上,您必須離開並重新連線到 PlayFab Party 網路 若要離開 Party 網路,請呼叫 LeaveNetwork()。網路重新啟用後,使用先前的 Party 網路描述元呼叫 ConnectToNetwork()。Switch 和 GDK
在 Nintendo Switch 和 Microsoft GDK 上,您必須清除 PlayFab Party,並等候遊戲恢復執行,再重新初始化 PlayFab Party 並重新連線到網路。 若要關閉 Party,請呼叫 Cleanup()。呼叫 Cleanup() 會回收所有程式庫資源並終結所有程式庫物件。重新初始化 Party 之後,您需要重新建立任何程式庫物件 (例如本機使用者和聊天控制項),並藉由重新驗證本機使用者、重新連線聊天控制項和重新建立端點,重新建立任何先前的網路狀態。
- 使用先前的 Party 網路描述元連線到 Party 網路。
- 重新建立任何本機使用者物件,並將這些本機使用者重新驗證到網路中。
- 重新建立任何本機聊天控制項,並將這些聊天控制項重新連線到網路以啟用 VOIP
- 為遊戲訊息流量重新建立任何 Party 網路端點。
如果重新連線成功完成,Party 現在就能與其他對等端通訊,但如果先前的網路已不存在,重新連線將會失敗。在這種情況下,您應該處理適當的連線錯誤。
