Mario Kart war ein fester Bestandteil meiner Kindheit – meine Freunde und ich verbrachten Stunden nach der Schule damit, als Mario, Luigi und andere Charaktere aus dem Nintendo-Universum über Cartoon-Strecken zu rasen und uns gegenseitig mit pixeligen Bananen zu bewerfen. Eine Sache, die unsere kleine Gruppe von Möchtegern-Flitzern immer beschäftigte, war die Frage, welcher Charakter der beste war. Einige schworen auf den flinken Yoshi, andere argumentierten, dass der große, schwere Bowser die beste Wahl sei. Damals gab es nur acht Optionen, aus denen man wählen konnte. In der aktuellen Version der Mario Kart-Franchise ist die Frage noch komplizierter, weil man verschiedene Karts und Reifen passend zu seinem Charakter auswählen kann. Meine Mario Kart-Reflexe sind nicht mehr das, was sie einmal waren, aber ich bin besser in Datenwissenschaft als ich es als Viertklässler war, also werde ich in diesem Beitrag Daten verwenden, um endlich die Frage zu beantworten: „Wer ist der beste Charakter in Mario Kart?“
Das ist eine knifflige Frage, weil es jetzt tonnenweise potenzielle Charakter/Kart/Reifen-Konfigurationen gibt und sie alle sehr unterschiedliche Werte in einer Reihe von Attributen haben. Im Allgemeinen ist es nicht möglich, über mehrere Dimensionen gleichzeitig zu optimieren, aber einige Setups sind unbestreitbar schlechter als andere. Die Frage für einen angehenden Mario Kart-Champion lautet heutzutage: „Wie kann ich eine Charakter/Kart/Reifen-Kombination auswählen, die in gewisser Weise optimal ist, selbst wenn es nicht die eine ‚beste‘ Option gibt?“ Um diese Frage zu beantworten, wenden wir uns an einen von Marios Landsleuten, den italienischen Ökonomen Vilfredo Pareto aus dem 19. Jahrhundert, der das Konzept der Pareto-Effizienz und der damit verbundenen Pareto-Grenze einführte.
Das Konzept der Pareto-Effizienz bezieht sich auf Situationen, in denen es einen endlichen Pool von Ressourcen und mehrere konkurrierende Ergebnisse gibt, die davon abhängen, wie diese Ressourcen verteilt werden. „Pareto-effiziente“ Allokationen sind solche, bei denen es unmöglich ist, ein Ergebnis zu verbessern, ohne ein anderes Ergebnis zu verschlechtern. Dies lässt sich am besten mit einem Bild erklären (mit freundlicher Genehmigung von Wikipedia).
Jeder Kreis ist eine mögliche Ressourcenverteilung, was in unserem Fall eine Verteilung der Stat-Punkte auf die verschiedenen Attribute wie Gewicht, Handling und Traktion bedeutet (Charaktere in Mario Kart haben ungefähr die gleiche Anzahl an Gesamt-Stat-Punkten und unterscheiden sich nur in ihrer Verteilung). Die Position jedes Kreises repräsentiert das Ergebnis dieser Verteilung auf zwei konkurrierende Dimensionen, zum Beispiel Geschwindigkeit und Beschleunigung. Die Zuordnungen in Rot liegen auf der Pareto-Grenze: Für jede dieser Zuordnungen erfordert eine Verbesserung des einen Ergebnisses eine Verringerung des anderen. Die grauen Zuordnungen sind nicht Pareto-effizient, weil Sie beide Ergebnisse mit einer anderen Zuordnung von Ressourcen verbessern können. Geschwindigkeit und Beschleunigung sind im Allgemeinen die beiden wichtigsten Attribute in Mario Kart, also ist das Ziel dieser Analyse, die Charakter/Kart/Reifen-Konfigurationen zu identifizieren, die auf der Pareto-Grenze für Geschwindigkeit und Beschleunigung liegen.
Explorative Datenanalyse
Wir beginnen damit, die Statistiken jedes Charakters, Karts und Reifens unabhängig voneinander zu untersuchen, indem wir einige von Fans zusammengestellte Daten verwenden. Eine besondere Eigenart von Mario Kart ist, dass es zwar ein paar Dutzend Charaktere gibt, aber viele von ihnen identische Werte haben. Von nun an werde ich mich auf die Charakter- (oder Kart- oder Reifen-) Klasse durch den Namen eines ihrer Mitglieder beziehen. Zum Beispiel beschreibt die Zeile mit der Bezeichnung „Peach“ in der Heatmap unten auch die Werte von Daisy und Yoshi. Die kompletten Klassenzugehörigkeiten sind am Ende des Beitrags aufgelistet, falls Sie sehen wollen, wo Ihr Lieblingscharakter landet.
Es gibt sieben Charakterklassen. Schauen wir uns an, wie ihre Statistiken im Vergleich aussehen.
Der offensichtlichste Trend ist der Tradeoff zwischen Geschwindigkeit und Beschleunigung: Schwere Charaktere haben eine gute Geschwindigkeit, aber eine schlechte Beschleunigung, während leichte Charaktere eine gute Beschleunigung, aber eine niedrige Höchstgeschwindigkeit haben. Auch bei den anderen Werten gibt es Variationen, aber zum größten Teil dominieren Geschwindigkeit und Beschleunigung die Leistung eines bestimmten Setups, so dass wir den Rest der Werte ignorieren werden.
Karts und Reifen modifizieren die Basiswerte der Charaktere: Die Attribute der endgültigen Konfiguration sind eine Summe aus den Werten des Charakters und den Kart-/Reifen-Modifikatoren. Wie bei den Charakteren gibt es Dutzende von Karts und Reifen, aber nur ein paar Kategorien mit unterschiedlichen Stats.
Die Trends hier sind weniger offensichtlich, aber sie stimmen im Allgemeinen mit dem überein, was wir bei den Charakter-Statistiken gesehen haben: Verbesserungen bei der Geschwindigkeit gehen auf Kosten der Beschleunigung und umgekehrt.
Unser Ziel ist es, alle Konfigurationen zu finden, die eine optimale Kombination aus Geschwindigkeit und Beschleunigung aufweisen. Der nächste Schritt besteht also darin, die Statistiken für jede einzigartige Kombination (Charakter, Kart, Reifen) zu berechnen.
Finden der optimalen Konfigurationen
Mit ein wenig Python können wir alle Charakter/Kart/Reifen-Kombinationen aufzählen und ihre Attribute berechnen, indem wir die Werte in den obigen Abbildungen addieren. Ausgestattet mit den Statistiken für jede mögliche Kombination, können wir die Geschwindigkeit vs. die Beschleunigung jeder möglichen Einstellung aufzeichnen und diejenigen identifizieren, die auf der Pareto-Grenze liegen.
Nach dem obigen Diagramm, machen die optimalen Konfigurationen eine ziemlich kleine Teilmenge der insgesamt möglichen Setups aus. Wir können dies quantifizieren, indem wir alle verschiedenen Kombinationen zählen (beachten Sie, dass sich einige Kombinationen in der Abbildung überschneiden). Zählen wir spaßeshalber auch die möglichen Kombinationen mit allen Charakteren, Karts und Reifen mit identischen Werten.
Mögliche Kombinationen: 149760
Einzigartige Stat-Kombinationen: 294
Optimale Kombinationen: 15
Die optimalen Konfigurationen machen nur 5% der möglichen einzigartigen Stat-Konfigurationen aus! Schauen wir uns einmal an, wie diese optimalen Konfigurationen aussehen.
Es sei denn, Sie setzen voll auf Beschleunigung, sieht es so aus, als ob ein schwerer Charakter der richtige Weg ist; die beiden schwersten Charakterklassen (Wario und Donkey Kong) machen 11/15 der Pareto-optimalen Konfigurationen aus.
Wir können auch einen Blick auf die anderen Hauptstatistiken für jede dieser Konfigurationen werfen.
So sieht es aus, wenn Geschwindigkeit und Beschleunigung Ihre Hauptanliegen sind, dann ist eine dieser 15 Konfigurationen Ihre beste Wahl.
Alle Konfigurationen untersuchen
Manchmal ist eine optimale Konfiguration allerdings nicht das, wonach Sie suchen (sagen wir, weil Ihr Mitbewohner gedroht hat, mit dem Spielen aufzuhören, wenn es nicht irgendeine Art von Handicap gibt, um ein willkürliches Beispiel zu wählen). In diesem Fall können wir alle möglichen Konfigurationen mit einer schnellen interaktiven Bokeh-Grafik erkunden.
Ein paar Beobachtungen:
- Schwere Charaktere sind vielseitiger als leichte Charaktere. Während Warios mögliche Konfigurationen etwa 77% der maximalen Beschleunigung erreichen können, kann Baby Mario nur bis zu 50% der maximalen Geschwindigkeit erreichen.
- Metal Mario / Pink Gold Peach sind die einzigen Charaktere, die keine Konfigurationen auf der Pareto-Grenze haben.
- Der Badwagon ist wirklich schlecht. Fast jede Konfiguration auf der „Anti-Pareto-Grenze“ (d.h. die schlechtesten möglichen Kombinationen) beinhaltet Karts der Badwagon-Klasse.
Wenn Sie den Code hinter dieser Analyse sehen möchten, finden Sie ihn hier. Und schließlich, falls Sie eine besondere Beziehung zu einem der Charaktere (oder Karts / Reifen) haben, können Sie unten nachsehen, zu welcher Klasse er / sie / es gehört.