Het beste Mario Kart-personage volgens de datawetenschap

Mario Kart was een belangrijk onderdeel van mijn jeugd – mijn vrienden en ik brachten na school uren door als Mario, Luigi en andere personages uit het Nintendo-universum om over cartooneske circuits te racen en pixelachtige bananen naar elkaar te gooien. Eén ding dat ons groepje snelheidsduivels altijd dwarszat, was de vraag welk personage het beste was. Sommigen zwoeren bij de snelle Yoshi, anderen beweerden dat de grote, zware Bowser de beste optie was. Destijds waren er slechts acht opties om uit te kiezen; spoel door naar de huidige versie van de Mario Kart-franchise en de vraag is nog ingewikkelder omdat je verschillende karts en banden kunt kiezen die bij je personage passen. Mijn Mario Kart-reflexen zijn niet meer wat ze geweest zijn, maar ik ben beter in data science dan ik als vierde klasser was, dus in deze post zal ik data gebruiken om eindelijk antwoord te geven op de vraag “Wie is het beste personage in Mario Kart?”

Dit is een lastige vraag omdat er nu tonnen mogelijke personage/kart/band-configuraties zijn en ze hebben allemaal sterk uiteenlopende stats over een aantal attributen. In het algemeen is het niet mogelijk om in meerdere dimensies tegelijk te optimaliseren, maar sommige setups zijn ontegenzeggelijk slechter dan andere. De vraag voor een Mario Kart-kampioen in spe is tegenwoordig: “Hoe kan ik een combinatie van personage, kart en band kiezen die in zekere zin optimaal is, zelfs als er niet één ‘beste’ optie is?” Om deze vraag te beantwoorden wenden we ons tot een van Mario’s landgenoten, de negentiende-eeuwse Italiaanse econoom Vilfredo Pareto die het concept van Pareto-efficiëntie en de daarmee samenhangende Pareto-grens introduceerde.

Het concept van Pareto-efficiëntie is van toepassing op situaties waarin er sprake is van een eindige pool van middelen en meerdere concurrerende uitkomsten die afhangen van hoe die middelen worden toegewezen. De “Pareto-efficiënte” toewijzingen zijn die waarbij het onmogelijk is het ene resultaat te verbeteren zonder een ander resultaat te verslechteren. Dit is eenvoudiger uit te leggen met een plaatje (met dank aan Wikipedia).

Elke cirkel is een potentiële toewijzing van middelen, wat in ons geval neerkomt op een verdeling van statische punten over de verschillende attributen, zoals gewicht, wegligging en tractie (personages in Mario Kart hebben ongeveer hetzelfde aantal statische punten, en verschillen alleen in de verdeling ervan). De positie van elke cirkel vertegenwoordigt het resultaat van die verdeling op twee concurrerende dimensies, bijvoorbeeld snelheid en versnelling. De toewijzingen in het rood liggen op de Pareto-grens: voor elk van deze toewijzingen vereist een verbetering van het ene resultaat een vermindering van het andere. De toewijzingen in het grijs zijn niet Pareto-efficiënt, omdat je beide uitkomsten kunt verbeteren met een andere toewijzing van middelen. Snelheid en acceleratie zijn over het algemeen de twee belangrijkste attributen in Mario Kart, dus het doel van deze analyse is om de karakter/kart/band-configuraties te identificeren die op de Pareto-grens voor snelheid en acceleratie liggen.

Exploratieve data-analyse

We beginnen met het onderzoeken van de statistieken van elk karakter, kart en band onafhankelijk van elkaar met behulp van door fans verzamelde gegevens. Een bijzonder kenmerk van Mario Kart is dat er een paar dozijn personages zijn, maar dat veel van hen identieke stats hebben. Van nu af aan zal ik naar de klasse van de personages (of karts, of banden) verwijzen met de naam van een van de leden. Bijvoorbeeld, in de heatmap hieronder beschrijft de rij met het label ‘Peach’ ook de stats voor Daisy en Yoshi. De volledige klassen staan aan het eind van dit bericht voor het geval je wilt zien waar je favoriete personage terechtkomt.

Er zijn zeven klassen personages. Laten we eens kijken hoe hun stats zich tot elkaar verhouden.

De meest voor de hand liggende trend is de afruiltussen snelheid en versnelling: Zware personages hebben een goede snelheid maar een slechte acceleratie, terwijl lichte personages een snelle acceleratie hebben maar een lage topsnelheid. Er zijn ook variaties in de andere statistieken, maar snelheid en acceleratie domineren in grote mate de prestaties van een bepaalde set-up, dus we zullen de rest van de statistieken negeren.

Karts en banden wijzigen de basis-statistieken van de personages: de attributen van de uiteindelijke configuratie zijn een optelsom van de statistieken van het personage en de kart/banden-modifiers. Net als bij karakters zijn er tientallen karts en banden, maar slechts een paar categorieën met verschillende stats.

De trends hier zijn minder duidelijk, maar ze komen in het algemeen overeen met wat we zagen in de karakterstatistieken: Verbeteringen in snelheid gaan ten koste van versnelling, en omgekeerd.

Het is ons doel om alle configuraties te vinden met een optimale combinatie van snelheid en acceleratie, dus de volgende stap is het berekenen van de statistieken voor elke unieke combinatie (karakter, kart, band).

De optimale configuraties vinden

Met een beetje Python kunnen we alle karakter/kart/band-combinaties opsommen en hun attributen berekenen door de waarden in de bovenstaande figuren bij elkaar op te tellen. Uitgerust met de statistieken voor elke mogelijke combinatie, kunnen we de snelheid versus de versnelling van elke mogelijke setup plotten, en diegenen identificeren die op de Pareto frontier liggen.

Volgens de bovenstaande grafiek, vormen de optimale configuraties een vrij kleine subset van het totaal aantal mogelijke opstellingen. We kunnen dit kwantificeren door alle verschillende combinaties te tellen (merk op dat sommige combinaties elkaar in de figuur overlappen). Laten we voor de lol ook de mogelijke combinaties tellen, inclusief alle karakters, karts en banden met identieke stats.

Mogelijke combinaties: 149760
Unieke stat combinaties: 294
Optimale combinaties: 15

De optimale configuraties maken slechts 5% uit van de mogelijke unieke stat configuraties! Laten we eens kijken hoe deze optimale configuraties eruit zien.

Tenzij je voluit gaat voor acceleratie, lijkt het erop dat je het beste een zwaar karakter kunt nemen; De twee zwaarste personageklassen (Wario en Donkey Kong) zijn goed voor 11/15 van de Pareto-optimale configuraties.

We kunnen ook kijken naar de andere belangrijkste statistieken voor elk van deze configuraties.

Dat is het dan, als snelheid en acceleratie je grootste zorg zijn, dan is een van deze 15 configuraties je beste keuze.

Alle configuraties bekijken

Soms is een optimale configuratie niet wat je zoekt (bijvoorbeeld omdat je huisgenoot dreigt te stoppen met spelen als er geen handicap is, om maar een willekeurig voorbeeld te noemen). In dat geval kunnen we alle mogelijke configuraties verkennen met een snelle interactieve bokeh-grafiek.

Een paar observaties:

  • Zware personages zijn veelzijdiger dan lichte personages. Terwijl Wario’s mogelijke configuraties ongeveer 77% van de maximale snelheid kunnen halen, kan Baby Mario maar tot 50% van de maximale snelheid komen.
  • Metalen Mario / Roze Goud Peach zijn de enige karakters die geen configuraties op de Pareto-grens hebben.
  • De Badwagon is echt slecht. Bijna elke configuratie op de ‘anti-Pareto frontier’ (d.w.z. de slechtst mogelijke combinaties) heeft betrekking op karts uit de Badwagon klasse.

Als je de code achter deze analyse wilt zien, kun je die hier vinden. En tenslotte, voor het geval je een bepaalde band hebt met een van de karakters (of karts / banden) kun je hieronder opzoeken tot welke klasse hij / zij / het behoort.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *