Integrieren der Ermittlung in PlayFab Party
Die Ermittlung ist der Prozess, bei dem Benutzer zueinander finden, um miteinander zu spielen. PlayFab Party bietet keinen Ermittlungsmechanismus, kann aber mit jedem vorhandenen Mechanismus verwendet werden, der die Kommunikation zwischen Benutzern ermöglicht.
Einfacher Erstellungs- und Joinflow
Ein PlayFab Party-Netzwerk wird von einem Benutzer auf einem einzelnen Client erstellt , angekündigt und dann von anderen Benutzern auf verschiedenen Clients hinzugefügt .
Erstellen eines Netzwerks
Die erste Überlegung bei der Verwendung eines PlayFab Party-Netzwerks mit einer Spielsitzung ist die Auswahl, welcher Client und Benutzer das Netzwerk erstellen (PartyManager::CreateNewNetwork()
). Aus sicht der PlayFab Party spielt es keine Rolle, welcher Benutzer dies tut; jeder Benutzer kann ein Netzwerk erstellen. Der Ersteller erhält keine besonderen Berechtigungen innerhalb des Netzwerks. Der Client, der das Netzwerk erstellt, ist jedoch für Folgendes verantwortlich:
- Festlegen der unveränderlichen Netzwerkkonfiguration (
PartyNetworkConfiguration
) - Bestimmen der anfänglichen Einladung (
PartyInvitationConfiguration
) - Werbung für das Netzwerk für andere Benutzer
Die erste Einladung enthält einen Bezeichner und eine Liste der Benutzer, die dem Netzwerk beitreten dürfen. Die Benutzer werden als Liste von Entitäts-IDstitle_player_account
angegeben. Alternativ kann die Liste leer sein, sodass jeder Benutzer mit Netzwerkdeskriptor und Einladungsbezeichner beitreten kann.
Werbung für ein Netzwerk
Um einem vorhandenen PlayFab Party Network beitreten zu können, benötigt ein Client zwei Informationen:
- Netzwerkdeskriptor
- Einladungsbezeichner
Ein PlayFab Party-Netzwerk wird durch einen Netzwerkdeskriptor (PartyNetworkDescriptor
) identifiziert. Dies ist eine größtenteils undurchsichtige Struktur, die Informationen codiert, die zum Herstellen einer Verbindung mit dem Netzwerk erforderlich sind. Der Netzwerkdeskriptor wird dem erstellenden Client bereitgestellt, nachdem die Netzwerkerstellung abgeschlossen ist (PartyCreateNewNetworkCompletedStateChange
, PartyNetwork::GetNetworkDescriptor()
). Um die Entwicklung zu vereinfachen, bietet PlayFab Party Methoden zum Serialisieren und Deserialisieren des Netzwerkdeskriptors in und aus einer webfreundlichen Zeichenfolge (PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor()
).
Ein Einladungsbezeichner ist eine Zeichenfolge, die eine Einladung eindeutig identifiziert. Sie wird von einem Client bereitgestellt, wenn eine Einladung explizit oder beim Erstellen der ersten Einladung beim Erstellen des Netzwerks erstellt wird. Wenn der Client keinen Einladungsbezeichner angibt, wird eine eindeutig generiert.
Um das neue Netzwerk für andere Benutzer zu bewerben, senden Sie diese beiden Informationen über ein geeignetes Kommunikationsmedium.
Beitreten zu einem Netzwerk
Der Beitritt zu einem Netzwerk ist ein zweistufiger Prozess. Ein Client, der einem Netzwerk beitreten möchte, muss zunächst eine Verbindung mit dem Netzwerk herstellen, indem er den deserialisierten Netzwerkdeskriptor für PartyManager::ConnectToNetwork()
bereitstellt, und dann einen Benutzer authentifizieren, indem er die Einladungs-ID für PartyNetwork::AuthenticateLocalUser()
bereitstellt.
Szenariobeispiele
Einladungen zu sozialen Netzwerken
Das einfachste Szenario ist ein Szenario, in dem ein einzelner Benutzer eine Spielsitzung erstellt und andere bekannte Benutzer über seine gemeinsame soziale Plattform einladen möchte. Der Flow könnte in etwa wie folgt aussehen:
- Der einladende Benutzer erstellt das Netzwerk mit einer offenen Einladung oder einer Einladung, die alle Benutzer enthält, mit denen der einladende Benutzer spielen möchte.
- Nachdem das Netzwerk erstellt wurde, sendet der einladende Benutzer den Netzwerkdeskriptor und die Einladungs-ID über den Einladungsmechanismus der sozialen Plattform an die anderen Benutzer.
- Jeder eingeladene Benutzer verwendet den Netzwerkdeskriptor und die Einladungs-ID, um eine Verbindung mit dem Netzwerk herzustellen.
Notiz
Beim Angeben von Benutzern in einer Einladung werden die Entitäts-IDs der title_player_account
Benutzer verwendet. Diese Entitäts-IDs müssen out-of-band von PlayFab Party abgerufen werden.
Wartebereich
Wenn Ihr Spiel einen Wartebereich bereitstellt, in dem Daten zwischen Clients gesendet werden können, kann es als Kommunikationsmedium für den Austausch von Netzwerkverbindungsinformationen verwendet werden. Der Flow könnte in etwa wie folgt aussehen:
- Eine Gruppe von Benutzern wird ausgewählt, um ein Spiel zusammen zu spielen.
- Einer dieser Benutzer wird als Ersteller ausgewählt.
- Jeder Benutzer in der Gruppe sendet seine
title_player_account
Entitäts-ID an den Ersteller. - Der Ersteller erstellt das Netzwerk und gibt die Entitäts-IDs der Benutzer in der anfänglichen Einladungskonfiguration an.
- Nach Abschluss der Netzwerkerstellung sendet der Ersteller den Netzwerkdeskriptor und die anfängliche Einladungs-ID an die Benutzer, die beitreten sollen.
- Jeder Benutzer verwendet den Netzwerkdeskriptor und den Einladungsbezeichner, um eine Verbindung mit dem Netzwerk herzustellen.
Spielersuche
Ein Matchmaking-Dienst, z. B. PlayFab Matchmaking, kann verwendet werden, um eine Liste von Benutzern zu finden, mit denen Sie spielen können. Der Flow könnte in etwa wie folgt aussehen:
- Benutzer initiieren eine Übereinstimmungsanforderung mit dem Dienst. Die
title_player_account
Entitäts-ID muss Teil der Anforderung sein, da das Übereinstimmungsergebnis die Entitäts-ID jedes Benutzers enthalten muss. - Benutzer erhalten ein Übereinstimmungsergebnis mit der Gruppe von Benutzern, die Teil des Netzwerks sein sollen.
- Ein vordefinierter Algorithmus wird verwendet, um auszuwählen, welcher Benutzer der Ersteller sein soll.
- Der Ersteller erstellt das Netzwerk und gibt die Entitäts-IDs der anderen übereinstimmenden Benutzer in der anfänglichen Einladungskonfiguration an.
- Nach Abschluss der Netzwerkerstellung verwendet der Ersteller ein Out-of-Band-Kommunikationsmedium, um den Netzwerkdeskriptor und die anfängliche Einladungs-ID an andere übereinstimmende Benutzer zu senden.
- Jeder übereinstimmende Benutzer verwendet den Netzwerkdeskriptor und den Einladungsbezeichner, um eine Verbindung mit dem Netzwerk herzustellen.
Notiz
Ein Out-of-Band-Kommunikationsmedium ist erforderlich, um die Verbindungsinformationen vom Ersteller an die anderen übereinstimmenden Benutzer zu senden.