Matchmaking ist die Hauptkomponente der meisten modernen Multiplayer-Spiele. Sobald ein Entwickler ihn ernst nimmt, stellt sich heraus, dass Neulinge regelmäßig mit Profis im Kampf zusammentreffen und einige Spieler ewig warten müssen, um ins Spiel zu kommen. Darüber hinaus ist es schwierig, vor dem Start zu testen und zu analysieren, da Sie viele Faktoren berücksichtigen müssen. Wie sind die Spieler geografisch verteilt? Wie lange können sie in der Schlange warten? Welcher Ping ist optimal für ein angenehmes Spiel? Diese und andere Faktoren beeinflussen die Qualität des Matchmaking.

Im Folgenden wird zunächst die allgemeine Vorgehensweise bei der Auswahl von Schlachten in Multiplayer-Spielen erörtert und anschließend unsere eigenen Erfahrungen bei der Organisation von Matchmaking für Kriegsroboter ausgetauscht.
Welche Kriterien sind zu wählen?
Was ist also ausschlaggebend für ein gutes Matchmaking? Dies hängt natürlich von der Plattform und den Genre-Eigenschaften des Spiels ab, aber in der Regel lassen sich Entwickler von den folgenden Kriterien leiten:
- kurze Wartezeit;
- niedriger Ping;
- der minimale Unterschied in der Erfahrung, den Fähigkeiten und dem Fortschritt der Spieler: Hier kann die Erfahrung des Spiels sowohl allgemein als auch für eine bestimmte Klasse berücksichtigt werden, wenn das Spiel in sie unterteilt ist;
- Opposition gegeneinander - vormontierte Spielergruppen, die auf koordinierte Arbeit abzielen;
- Gleichzeitiger Spielbeginn für alle Spieler.
Andere Anforderungen sind möglich, zum Beispiel:
- nimm Spieler auf, die dieselbe Sprache sprechen;
- Berücksichtigen Sie die Ergebnisse der letzten Spiele des Spielers sowie den Übereinstimmungskoeffizienten mit der Wertung: Wenn ein Spieler die letzten Spiele verloren hat, ist er möglicherweise gerade nicht mehr in Form und sollte den Gegnern für einige Zeit eine Erleichterung bieten.
- Matchmaking unter Berücksichtigung der Zusammensetzung der Teams: Wenn einem Team beispielsweise ein Panzer oder ein Heiler fehlt, suchen Sie nach Gegnern mit der gleichen Zusammensetzung.
- Bringe Trolle, Bemalungen und Greifer zusammen, damit sie andere Spieler nicht stören.
- die Zusammensetzung der Spieler abwechslungsreich gestalten, damit sich die gleichen Personen nicht zu oft in verschiedenen Spielen treffen;
- Bringen Sie Spieler per Voice-Chat zusammen.
Es ist bei weitem nicht immer möglich, alle diese Anforderungen gleichzeitig zu erfüllen. Eine Vielzahl von Anforderungen steht zudem immer dem Wunsch entgegen, eine kurze Wartezeit zu erreichen. Auch wenn das Spiel sehr erfolgreich ist und jede Minute Hunderte von Spielern auf das Spiel warten, bleibt möglicherweise nicht genügend Zeit, um einige Anforderungen zu erfüllen. Wenn Sie zum Beispiel für ein Team von Australiern ein anderes zufriedenstellendes australisches Team als Rivalen suchen, kann sich die Wartezeit drastisch verlängern.
In dieser Hinsicht ist es notwendig, aus allen gewünschten Anforderungen die für ein bestimmtes Projekt wichtigsten auszuwählen. Eine Verkürzung dieser Liste führt zu einer besseren Einhaltung der verbleibenden Anforderungen und zu kürzeren Wartezeiten.
Bei der Entwicklung von Multiplayer-Spielen sollte beachtet werden, dass das Hinzufügen verschiedener Spielmodi die Spielerbasis in mehrere Warteschlangen aufteilt und dadurch zu einer Verlängerung der Wartezeit und damit zu einer Verschlechterung der Qualität des Matchmaking führt. Überlegen Sie sich daher noch einmal, bevor Sie diesen oder jenen Modus zum Spiel hinzufügen und ob es sich lohnt, dem Spieler die Möglichkeit zu geben, zwischen ihnen zu wählen.
Die Reduzierung der Anforderungen für das Matchmaking ist nicht die einzige Möglichkeit, die Wartezeit zu verkürzen. Sie können beispielsweise Multiplayer auf dem Drop-In-Drop-Out-System implementieren, sodass Benutzer dem Spiel jederzeit beitreten und es jederzeit beenden können. Wenn dies nicht möglich ist, können Sie dem Spieler bei einer kurzen Spieldauer erlauben, während des Wartens mit Bots zu spielen. Natürlich wird dies das Problem der Erwartung nicht lösen, aber es wird uns zumindest erlauben, die Zeit zu vertreiben.
Wie beurteilen Sie die Einhaltung der ausgewählten Kriterien?
Wir haben also eine bestimmte Anzahl von Spielern, die wir den Spielen zuordnen müssen. Wie kann man es besser machen? Was ist vorzuziehen: die gleichen Fähigkeiten oder wenig Ping? Wie können wir diese Anforderungen ausgleichen, damit die Parteien gegeneinander spielen?
Zum Vergleich benötigen wir eine bestimmte Metrik. Irgendwie müssen alle diese Kriterien in einem Parameter zusammenlaufen, um dessen höchsten Wert das System eine Suche durchführen kann. Als nächstes nennen wir es die Punktzahl des Spiels.
Um den Wert dieser Bewertung zu erhalten, müssen Sie zunächst die einzelnen Indikatoren berechnen. Betrachten Sie eine Kombination von Faktoren:
- Teams mit dem gleichen Können. Dies ist das offensichtlichste Kriterium beim Matchmaking. Die Methode zur Berechnung dieses Parameters ist für jedes Spiel individuell. Eines der einfachsten: Nehmen Sie das durchschnittliche Erfahrungsniveau pro Team und vergleichen Sie es mit dem gleichen Wert für ein anderes Team. Je größer der Unterschied ist, desto schlechter ist die Übereinstimmung und desto niedriger ist der gewünschte Indikator.
- Spieler mit der gleichen Fähigkeitsstufe. Selbst wenn die beiden Teams perfekt ausbalanciert sind, aber beispielsweise aus zwei Profis und einem Anfänger bestehen, ist der durchschnittliche Indikator für die Fähigkeiten der Teams derselbe, aber ein gutes Spiel wird immer noch nicht funktionieren. Daher führen wir einen weiteren Parameter ein, der nicht für das gesamte Team, sondern für jeden Spieler einzeln gilt, oder die Varianz des Kompetenzniveaus innerhalb des Teams.
- Party. Idealerweise sollte eine Gruppe, die über einen längeren Zeitraum zusammen spielt, gegen eine andere Gruppe derselben Gruppe und nicht gegen drei separate Spieler antreten. Es ist einfach zu berechnen: Wenn eine Mannschaft schon lange miteinander spielt, haben wir einen Indikator von 100%. Wenn ein Dreierteam gegen zwei Freunde und einen zufälligen Spieler spielt, erhalten wir 60%. Wenn keiner der Spieler zuvor miteinander gespielt hätte, wäre der Wert 0%.
- Ping Gegner. Für jeden Benutzer überprüfen wir den Ping mit allen drei Spielern der gegnerischen Mannschaft. Je höher der Ping, desto niedriger die Punktzahl.
- Variabilität der Gegner. Um die Anforderungen mit höherer Priorität zu erfüllen, kann das Matchmaking-System häufig dieselben Teams mit den höchsten Matchraten gegeneinander antreten. Damit es den Spielern nicht langweilig wird, ständig mit vertrauten Gesichtern zu spielen, ist es empfehlenswert zu verfolgen, wie oft sie sich in Spielen treffen.
Ein Beispiel für ein Spiel, in dem Teams einen 100% -Indikator für eine Gruppe haben, einen guten Indikator für die durchschnittlichen Fähigkeiten im Team, aber eine schwache Korrelation in den Fähigkeiten der einzelnen Spieler: Im blauen Team unterscheiden sie sich erheblichWie kann die Mehrdeutigkeit der Kriterien berücksichtigt werden?
Für jedes der Kriterien haben wir eine Punktzahl von 0% (sehr schlechter Zufall) bis 100% (am besten), aber am Ende brauchen wir nur eine Zahl. Hierfür verwenden wir den gewichteten Mittelwert. Dann können wir die Priorität der Wichtigkeit für jedes Kriterium festlegen.
Bei der Berechnung der Schätzung ist zu überlegen, ob eine lineare Abhängigkeit der Parameter erhalten werden soll. Zum Beispiel lohnt es sich, den Ping von 210 ms auf 200 ms zu verbessern, genauso wie von 110 ms auf 100 ms? Beide Optionen werden um 10 ms verbessert, aber der Ping-Wert selbst ist doppelt so unterschiedlich.
Interessanterweise ist es bei einigen Kriterien einfacher, einen signifikanten Leistungsunterschied zu erzielen als bei anderen. Um also 0% in Bezug auf das Können zu erreichen, müssen drei Profispieler und drei Anfänger im Spiel sein, was äußerst selten vorkommt. Es ist jedoch viel einfacher, 0% nach dem Kriterium der Partei zu erhalten, da Sie dafür ein lang zusammengesetztes Team gegen drei Einzelspieler haben müssen. Dieser Aspekt ist ebenfalls erwägenswert.
Ein Beispiel dafür, wie Teams je nach Qualifikationsniveau zusammengestellt werden können. Grün und Gelb zeigen Ping zwischen den SpielernNun können wir basierend auf den Werten der Indikatoren für jede der Anforderungen die endgültige Punktzahl berechnen.
Da diese Zahl das dominierende Kriterium ist, erzeugt der Algorithmus bestimmte Präferenzen. Wenn der Austausch von zwei Spielern den Bewertungsparameter eines Spiels um 5% erhöht, ihn aber in einem anderen Spiel um 10% verringert, wird das System dies nicht tun, da das Ergebnis im Allgemeinen schlechter wird. In einigen Fällen kann dies jedoch vernachlässigt werden. Daher kann es angebracht sein, einen Indikator von 50% (was sehr schlecht ist) auf 55% zu verbessern, indem der andere von 90% auf 80% (was immer noch ziemlich gut ist) reduziert wird. Dies kann zum Beispiel durch Berechnung der Quadratwurzel aller Indikatoren der Bewertung bis zur Mittelungsstufe erreicht werden. Daher wird die Verbesserung schlechter Übereinstimmungen relativ wichtiger als gute.
Wie passiert das bei Kriegsrobotern?
Da es sich um ein Handyspiel handelt, bei dem alles schnell gehen soll, ist die Wartezeit vor dem Kampf von höchster Wichtigkeit. Dafür sollte das Matchmaking-System so einfach wie möglich sein. Gegenwärtig berücksichtigt der Matchmaker von War Robots nur die Player Selection Rating (MMR) und versucht, sich auf die Gruppen zu konzentrieren. Da diese jedoch im Spiel nicht weit verbreitet sind, ist dieses Kriterium zweitrangig: Wenn Sie keine Gruppen mit derselben Stärke aufeinander abstimmen können, versucht das System, sie miteinander zu kombinieren ein paar Parteien oder überhaupt nicht auf dieses Kriterium konzentriert. Und wenn ein Spieler die Schlacht verlässt, nimmt er an seiner Stelle einen anderen, der die Kriterien erfüllt, jedoch erst zu Beginn des Spiels.
Die Bewertung der Auswahl der Spieler hängt von der Anzahl der Siege / Verluste und dem Platz in der Mannschaft ab und kann je nach Ergebnis des Spiels entweder steigen oder fallen. Nach dieser Wertung werden die Spieler in Ligen und Divisionen eingeteilt. Innerhalb der Division sucht der Matchmaker nach Spielern mit der bestmöglichen Bewertung, erweitert den Suchbereich schrittweise und deckt auch die nächsten Divisionen ab. Es ist erwähnenswert, dass der Matchmaker versucht, Spieler in den unteren Ligen, die ihre Wertung absichtlich unterschätzen, daran zu hindern, sie anhand charakteristischer Verhaltensmuster zu verfolgen: In der Regel ist die Anzahl der Niederlagen höher als die durchschnittliche Anzahl der Ligakämpfe pro Tag.
Vereinfachte Kriegsroboter Match Matching FlowchartDas System hat früher falsch funktioniert. Das Hauptkriterium war die Stärke von Robotern und Waffen, und von den Ergebnissen der Spiele wurden nur die letzten fünf berücksichtigt. Das System war anfälliger für Manipulationen. Erfahrene Spieler könnten sich im gleichen Kampf mit den Neulingen befinden, wenn sie nur ihre Waffen gegen schwächere austauschen, oder umgekehrt, wenn ein Neuling des Roboters der ersten Stufe die 12. Waffe installiert und in einen Kampf mit Profis gerät, ohne Zeit zu haben, die Geschicklichkeit des Spiels zu entwickeln. In dieser Hinsicht erwies sich das Bewertungssystem, das auf der realen Erfahrung von Siegen und Niederlagen basierte, als viel ehrlicher, obwohl es nicht sofort möglich war, darauf zu reagieren: Eine vollständige Neuorganisation des Matchmaking-Prozesses ist ein radikaler Schritt, weshalb zunächst versucht wurde, dem System einfach zusätzliche Bedingungen zu setzen.
An der Optimierung und Verbesserung des Matchmaking in War Robots wird derzeit gearbeitet. Vielleicht wird es in Zukunft möglich sein, den alten und den neuen Ansatz zu kombinieren, um Übereinstimmungen zu finden, aber vergessen Sie nicht, dass jede Verbesserung der Qualität der Matchmaking-Methode zu einer Verlängerung der Wartezeit führt. Daher ist die Entwicklung einer solchen Lösung nur dann sinnvoll, wenn sie die Systemleistung nicht wesentlich beeinträchtigt.