Freigeben über


Gemeinsame Nutzung von Lobby und Matchmaking

Beim Entwerfen von Multiplayer-Spielen werden Matchmaking und Lobbies häufig gemeinsam verwendet, um Personen dabei zu helfen, Gruppen zu bilden, um zusammen zu spielen.

PlayFab Lobby und PlayFab Matchmaking helfen Ihnen bei der Implementierung einer Vielzahl von Multiplayer-Szenarien.

In diesem Artikel wird die Beziehung zwischen diesen beiden Diensten beschrieben und veranschaulicht, wie sie zusammen verwendet werden können, um ein unten angegebenes Spielszenario zu implementieren.

Verstehen der Beziehung zwischen Lobby und Matchmaking

Lobby und Matchmaking arbeiten nahtlos zusammen, um eine einheitliche Multiplayer-Matchmaking-Erfahrung für Ihren Titel zu schaffen.

  • Beim Matchmaking werden eine Gruppe von Spielern zusammen gestellt, die an einer Spielsitzung teilnehmen möchten.
  • Nachdem die Spielersuche eine Gruppe von Spielern identifiziert hat, stellt Lobby ihnen ein Kommunikationsmedium zur Verfügung, um den Beitritt zu einer Spielsitzung zu koordinieren.
    • Zu den gängigen Szenarien für den Wartebereich gehören die Freigabe von Verbindungsinformationen für spieleserver, das Freigeben von Client-IP-Adressen für Peer-to-Peer-Spiele und das Freigeben von Spielerkonfigurationen.

Sortierte Lobbies

Titel können "Arranged Lobbies" verwenden, um die erstellung von Lobbies für Ihre Spieler zu unterstützen, die über Matchmaking gruppiert wurden.

Nachdem das Matchmaking-Ticket erfolgreich mit einer Gruppe von Spielern abgeglichen wurde, enthält das Matchmaking-Ticket einen lobbyArrangementString. Jeder Spieler kann dann die Anordnungszeichenfolge an PFMultiplayerJoinArrangedLobby übergeben, um demselben Wartebereich beizutreten.

Beispielszenario

Ein Spieler möchte mit anderen Menschen spielen. Der Spieler startet ein Multiplayer-Spiel, lädt Freunde ein und wartet darauf, dass andere teilnehmen.

Entwurfsspezifikationen

  • Das Spiel ist für jeden offen.
  • Die anfängliche Gruppe von Spielern wird über matchmaking aufgefüllt.
  • Der Besitzer der Lobby kann Freunde einladen.
  • Wenn die erforderliche Anzahl von Spielern erfüllt ist, erhalten alle Spieler im Wartebereich eine Nachricht, in der sie gefragt werden, ob sie bereit sind, das Spiel zu starten. Sie haben eine Minute Zeit, um zu antworten. Das Spiel beginnt, nachdem alle Spieler bestätigt haben, dass sie bereit sind, das Spiel zu starten.
  • Wenn Spieler in der Lobby ihre bereite status nicht bestätigt haben, kann der Lobbybesitzer sie als inaktive Spieler entfernen und matchmaking verwenden, um neue Spieler zu finden, um sie schnell zu ersetzen.
  • Wenn ein Spieler während des Spiels unerwartet getrennt wird, sollte der Titel einen neuen Ersatz für den verworfenen Spieler durch Matchmaking mithilfe von Serverbackfill finden.
  • Wenn das Spiel endet, kehren alle Spieler in den Wartebereich zurück. Spieler werden zu gleichen Teilen mit Teamleistungen ausgezeichnet. Sie haben die Möglichkeit, entweder zu bleiben, um ein anderes Spiel zusammen zu starten oder die Lobby zu verlassen.

Implementierung

In diesem Abschnitt wird beschrieben, wie Sie matchmaking und Lobby verwenden, um die oben genannten Entwurfsspezifikationen zu implementieren.

Erstellen einer Matchmade-Lobby

Erstellen Sie eine öffentliche Lobby für eine Gruppe von Matchmade-Spielern.

  • Jeder Spieler erstellt ein Matchmaking-Ticket mit seinen angegebenen Matchmaking-Attributen.
  • Alle erstellten Tickets werden einer Matchmaking-Warteschlange hinzugefügt und miteinander abgeglichen.
  • Nach dem Matchmaking tritt jeder Spieler über den lobbyArrangementString des Matchmaking-Tickets in die Matchmade-Lobby ein.
    • Wenn Sie dem angeordneten Wartebereich beitreten, geben Sie an, dass accessPolicy der Lobby öffentlich ist, um den Wartebereich zu öffnen.
    • Weitere Informationen finden Sie unter Angeordnete Lobbies .
  • Der erste Spieler, der der arrangierten Lobby beitritt, wird der Besitzer für die Lobby.
  • Die Wartebereichseigenschaften können verwendet werden, um anzugeben, welche Spielkarte eine Spielsitzung verwenden soll.
  • Verwenden Sie Sucheigenschaften, um es Spielern zu ermöglichen, diese Lobby und Spielsitzung unter allen aktiven Lobbies in Ihrem Titel zu finden.

Senden von Einladungen an Freunde

Erlauben Sie dem Besitzer der Lobby, Freunde auszuwählen und Einladungen zu senden.

  • Abrufen der Freundesliste des Lobbybesitzers
  • Anzeigen der Spieloberfläche, damit der Lobbybesitzer Freunde auswählen kann, die eingeladen werden sollen
  • Senden von Einladungen im Spiel an ausgewählte Freunde.

Personen das Suchen und Teilnehmen am Spiel erlauben

Richten Sie die Sucheigenschaften der Lobby ein, damit andere Spieler sie finden können.

  • Zeigen Sie alle Lobbies auf der Benutzeroberfläche Ihres Spiels an. Ihr Titel sollte auch eine Möglichkeit bieten, die Suchbegriffe des Spielers zu akzeptieren.
  • Verwenden Sie PFMultiplayerFindLobbies mithilfe der Suchparameter des Spielers, um eine Liste von Lobbies zurückzugeben, die den Kriterien entsprechen.
  • Nachdem ein Spieler ausgewählt hat, an einem Spiel teilzunehmen, verwenden Sie PFMultiplayerJoinLobby , um den Spieler zum Spiel hinzuzufügen.

Benachrichtigen der Spieler zum Starten des Spiels

Informieren Sie alle Spieler im Wartebereich, dass das Spiel zum Starten bereit ist.

  • Wenn sich die erforderliche Anzahl von Spielern im Wartebereich befindet, zeigen Sie die Spielbenutzeroberfläche an, damit die Spieler bestätigen können, dass sie zum Starten des Spiels bereit sind.
  • Erlauben Sie dem Wartebereichsbesitzer, diese Bestätigungsantworten anzuzeigen.

Entfernen und Ersetzen inaktiver Spieler

Der Lobbybesitzer hat die Möglichkeit, inaktive oder getrennte Spieler zu entfernen und das Matchmaking zu initiieren, um die verbleibenden Plätze zu füllen.

  • Wenn ein Spieler innerhalb der angegebenen festgelegten Dauer (eine Minute) nicht reagiert hat oder nicht reagiert hat, verwenden Sie PFLobbyForceRemoveMember , um den Spieler zu entfernen.
  • Der Wartebereichsbesitzer verwendet CreateServerBackfillTicket , um ein Matchmaking-Ticket zu erstellen. Tickets, die mit dieser API erstellt wurden, erhalten während der Suche Priorität. Dies dient dazu, Unterbrechungen des Spiels zu minimieren. Weitere Informationen finden Sie unter Verwenden von Serverbackfill-Tickets.
  • Nach dem Beitritt in die Backfill-Lobby kann der Lobbybesitzer des Spiels die Verbindungszeichenfolge der ursprünglichen Lobby mit den neuen Abfüllspielern teilen und sie können der ursprünglichen Lobby beitreten.
  • Verlängern Sie ggf. die Startzeit des Spiels.

Behandeln eines fertigen Spiels

Nachdem das Spiel abgeschlossen ist, kehren alle Spieler zum Wartebereichsbildschirm zurück, um die Spielsitzung abzuschließen.

  • Lobbies sind vorübergehend, sodass alle Daten aus dem Wartebereich, die beibehalten werden sollten, von jedem Spieler an diesem Punkt beibehalten werden sollten.
    • Einige Spielszenarien können z. B. von der Verarbeitung von Daten profitieren, die in den Membereigenschaften gespeichert sind und diese Daten in Spielererfolge umwandeln.
  • Spieler, die weiterhin mit derselben Gruppe spielen möchten, bleiben in der Lobby.
  • Spieler, die aufhören möchten, mit derselben Gruppe zu spielen, verlassen den Wartebereich mit PFLobbyLeave und starten den Prozess mit einer neuen Matchmaking-Gruppe neu.

Weitere Informationen