Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie PlayFab Matchmaking Tickets auswertet, Regeln anwendet und Übereinstimmungen formt. Wenn Sie den Abgleichsprozess verstehen, können Sie Warteschlangenkonfigurationen entwerfen, die effizient qualitativ hochwertige Übereinstimmungen erzeugen.
Übersicht über die Match-Formation
Wenn Sie ein Ticket an eine Warteschlange übermitteln, platziert der Matchmaking-Dienst es zusammen mit anderen wartenden Tickets. Der Dienst führt kontinuierlich eine Übereinstimmungsschleife aus, die versucht, kompatible Tickets in Übereinstimmungen zu gruppieren. Dies geschieht bei jedem Schritt:
- Abgelaufene Tickets werden entfernt. Tickets, die ihr
GiveUpAfterSecondsTimeout überschreiten, werden storniert. - Tickets werden nach Wartezeit sortiert: Das am längsten wartende Ticket wird zum Ausgangswert oder Ausgangspunkt für eine potenzielle Übereinstimmung.
- Kandidaten werden nach Kompatibilität sortiert: Jedes verbleibende Ticket erhält eine Entfernungsbewertung basierend darauf, wie gut seine Attribute gemäß den Regeln der Warteschlange mit dem Startticket übereinstimmen.
-
Eine Gruppe wird gierig aufgebaut: Beginnend mit den nächstgelegenen Kandidaten werden Tickets nacheinander der Gruppe hinzugefügt, bis zu
MaxMatchSize. - Jede Addition wird überprüft: Wenn ein Ticket hinzugefügt wird, überprüft jede Regel, ob der Kandidat bisher noch mit der Gruppe kompatibel ist. Wenn eine Regel sie ablehnt, wird der Kandidat übersprungen.
-
Die vollständige Gruppe wird überprüft: Sobald eine Gruppe mindestens
MinMatchSizeerreicht hat, bestätigt ein abschließender Überprüfungsdurchlauf, dass die Gruppe alle Regeln erfüllt. Wenn es erfolgreich ist, wird eine Übereinstimmung erstellt. - Backtracking: Wenn keine gültige Gruppe gebildet werden kann, entfernt der Dienst das zuletzt hinzugefügte Ticket und versucht den nächsten Kandidaten. Dieser Prozess untersucht alternative Gruppierungen, bevor der aktuelle Seed aufgegeben wird.
Der Dienst wechselt dann zum nächstbesten Ticket als neuen Seed und wiederholt den Vorgang.
Notiz
Der Algorithmus priorisiert die am längsten wartenden Tickets. Diese Priorität stellt sicher, dass Spieler, die am längsten warten, die ersten Sind, die Spiele erhalten.
Wie Regeln den Abgleich beeinflussen
Regeln dienen bei der Übereinstimmungsbildung zwei Zwecken: Filtern und Sortieren.
Filtern
Eine Regel kann verhindern, dass ein Ticket einer Gruppe beitritt. Beispielsweise lehnt eine StringEqualityRule In-Game-Buildversion jedes Ticket ab, dessen Build nicht mit dem Build der Gruppe übereinstimmt. Der Matchmaking-Dienst überprüft die Filterung jedes Mal, wenn er einen Kandidaten in Betracht zieht. Es ist nicht nur eine einmalige Überprüfung am Anfang.
Sortierung (Entfernung)
Regeln tragen auch zu einer Entfernungsbewertung bei, die bestimmt, welche Kandidaten zuerst getestet werden. Geringerer Abstand bedeutet eine höhere Kompatibilität.
- Ein Ticket mit einem identischen Attributwert bewertet in der Regel Entfernung 0.
- Ein Ticket am Rand des zulässigen Bereichs einer Regel bewertet entfernung nahe 1.
- Ein Ticket außerhalb des zulässigen Bereichs wird herausgefiltert (praktisch unendliche Entfernung).
Wenn eine Warteschlange über mehrere Regeln verfügt, wird der Abstand jeder Regel mit ihrer Gewichtung multipliziert und summiert. Tickets werden in der Reihenfolge von der niedrigsten bis zur höchsten Gesamtdistanz ausprobiert, sodass die kompatibelsten Kandidaten zuerst ausprobiert werden.
Tipp
Verwenden Sie Regelgewichtungen, um die relative Wichtigkeit auszudrücken. Wenn z. B. die Ähnlichkeit von Fähigkeiten wichtiger als die Regionspräferenz ist, weisen Sie der Qualifikationsregel eine höhere Gewichtung zu.
Überprüfung
Einige Einschränkungen können erst überprüft werden, nachdem eine vollständige Gruppe gebildet wurde. Beispielsweise müssen Teambalanceregeln (TeamDifferenceRule, TeamSizeBalanceRule) die gesamte Gruppe anzeigen, bevor sie bewerten können, ob die Teams ausgeglichen sind. Diese Regeln werden als letzter Validierungsschritt ausgeführt.
Erweiterung und Entspannung
Wenn ein Ticket wartet, lockern Regeln ihre Einschränkungen, um die Suche zu erweitern. Zwei Mechanismen steuern diesen Prozess:
-
Erweiterung: Eine Regel passt ihren Schwellenwert im Laufe der Zeit schrittweise an. Beispielsweise kann ein
DifferenceRulemit einem Qualifikationsschwellenwert von 0,2 alle 5 Sekunden um 0,1 erweitert werden, was schließlich eine Differenz von 0,5 zulässt. - Sekunden bis optional: Nach einer konfigurierten Zeit wird die Filterung der Regel vollständig beendet. Die Regel trägt weiterhin zur Sortierung (Entfernung) bei, aber sie blockiert keine Übereinstimmungen mehr.
Die Erweiterung erfolgt immer zeitbasiert. Sie gilt einheitlich für alle Tickets, je nachdem, wie lange sie gewartet haben. Tickets, die länger warten, erreichen natürlich breitere Erweiterungsphasen und können mit einem größeren Pool von Kandidaten übereinstimmen.
Notiz
Entspannung bedeutet nicht, dass die Übereinstimmungsqualität ignoriert wird. Auch wenn eine Regel optional wird, trägt sie immer noch zum Abstand zum Sortierschritt bei. Kandidaten, die die Regel erfüllen, werden vor denen getestet, die dies nicht getan haben.
Weitere Informationen zum Konfigurieren von Erweiterungen finden Sie unter Konfigurieren von Matchmaking-Warteschlangen.
Skalieren und Partitionieren
Wenn eine Warteschlange eine große Anzahl von Tickets empfängt, partitioniert der Dienst Tickets in Gruppen, die er unabhängig auswertet. Bei der Partitionierung werden Regelattribute verwendet, die die Population auf natürliche Weise dividieren. Ein On-Spielmodus StringEqualityRule erstellt beispielsweise sauber Partitionsgrenzen.
Wenn die Last abnimmt, werden Partitionen wieder zusammengeführt. Dieser Prozess bietet dem Dienst einen größeren Pool von Kandidaten und verbessert die Übereinstimmungsqualität.
Weitere Informationen zum Entwerfen von Warteschlangen, die gut skaliert werden, finden Sie unter Matchmaking-Skalierung.
Entwerfen für asymmetrische Einstellungen
Einige Matchmaking-Szenarien beinhalten asymmetrische Einstellungen, bei denen Spieler A bereit ist, mit Spieler B zu übereinstimmen, Spieler B jedoch nicht bereit ist, mit Spieler A abzugleichen. Crossplay-Einstellungen sind das häufigste Beispiel. Ein empfohlenes Konfigurationsmuster und ein arbeitsfähiges Beispiel finden Sie unter Behandeln von asymmetrischen Crossplay-Einstellungen.