Mario Kart fue un elemento básico de mi infancia: mis amigos y yo nos pasábamos horas después del colegio como Mario, Luigi y otros personajes del universo de Nintendo corriendo por pistas de dibujos animados y lanzándose plátanos pixelados. Una cosa que siempre molestó a nuestro pequeño grupo de aspirantes a velocistas fue la cuestión de qué personaje era el mejor. Algunos juraban que el veloz Yoshi, otros sostenían que el grande y pesado Bowser era la mejor opción. Por aquel entonces, sólo había ocho opciones para elegir; si avanzamos hasta la versión actual de la franquicia Mario Kart, la cuestión es aún más complicada, ya que puedes elegir diferentes karts y neumáticos para tu personaje. Mis reflejos de Mario Kart ya no son lo que eran, pero se me da mejor la ciencia de los datos de lo que era cuando estaba en cuarto grado, así que en este post utilizaré los datos para responder finalmente a la pregunta «¿Quién es el mejor personaje de Mario Kart?»
Esta es una pregunta complicada porque ahora hay montones de configuraciones potenciales de personaje/kart/neumático y todas ellas tienen estadísticas muy variadas en una serie de atributos. En general, no es posible optimizar a través de múltiples dimensiones simultáneamente, sin embargo algunas configuraciones son innegablemente peores que otras. La pregunta que se hace un aspirante a campeón de Mario Kart hoy en día es: «¿Cómo puedo elegir una combinación de personaje/kart/neumático que sea en cierto modo óptima, aunque no haya una opción «mejor»?». Para responder a esta pregunta recurrimos a uno de los compatriotas de Mario, el economista italiano del siglo XIX Vilfredo Pareto, que introdujo el concepto de eficiencia de Pareto y la correspondiente frontera de Pareto.
El concepto de eficiencia de Pareto se aplica a situaciones en las que hay un conjunto finito de recursos y múltiples resultados que compiten entre sí y que dependen de cómo se asignan esos recursos. Las asignaciones «eficientes de Pareto» son aquellas en las que es imposible mejorar un resultado sin empeorar otro. Esto se explica más fácilmente con una imagen (cortesía de Wikipedia).
Cada círculo es una asignación potencial de recursos, que en nuestro caso significa una distribución de puntos de estadísticas entre los diferentes atributos como el peso, el manejo y la tracción (los personajes de Mario Kart tienen aproximadamente el mismo número de puntos de estadísticas totales, y sólo se diferencian en su distribución). La posición de cada círculo representa el resultado de esa asignación en dos dimensiones competitivas, por ejemplo, la velocidad y la aceleración. Las asignaciones en rojo se encuentran en la frontera de Pareto: para cada una de estas asignaciones, una mejora en un resultado requiere una disminución en el otro. Las asignaciones en gris no son eficientes desde el punto de vista de Pareto porque se pueden mejorar ambos resultados con una asignación diferente de recursos. La velocidad y la aceleración suelen ser los dos atributos más importantes en Mario Kart, así que el objetivo de este análisis es identificar las configuraciones de personaje/kart/neumático que se encuentran en la frontera de Pareto para la velocidad y la aceleración.
Análisis de datos exploratorios
Empezaremos por examinar las estadísticas de cada personaje, kart y neumático de forma independiente utilizando algunos datos recopilados por los fans. Una peculiaridad de Mario Kart es que, aunque hay un par de docenas de personajes, muchos de ellos tienen estadísticas idénticas. A partir de ahora, me referiré a la clase de personaje (o kart, o neumático) por el nombre de uno de sus miembros. Por ejemplo, en el mapa térmico de abajo, la fila etiquetada como «Peach» también describe las estadísticas de Daisy y Yoshi. La lista completa de miembros de las clases aparece al final del post por si quieres ver en qué lugar queda tu personaje favorito.
Hay siete clases de personajes. Echemos un vistazo a cómo se comparan sus estadísticas.
La tendencia más evidente es el intercambioentre velocidad y aceleración: Los personajes pesados tienen buena velocidad pero poca aceleración, mientras que los ligeros tienen una aceleración rápida pero una velocidad máxima baja. También hay variaciones en las demás estadísticas, pero en gran medida, la velocidad y la aceleración dominan el rendimiento de una configuración concreta, así que ignoraremos el resto de las estadísticas.
Los karts y los neumáticos modifican las estadísticas base de los personajes: los atributos de la configuración final son una suma de las estadísticas del personaje y los modificadores del kart/neumático. Al igual que con los personajes, hay docenas de karts y neumáticos, pero sólo unas pocas categorías con diferentes estadísticas.
Las tendencias aquí son menos obvias, pero en general coinciden con lo que vimos en las estadísticas de los personajes: las mejoras en la velocidad vienen a expensas de la aceleración, y viceversa.
Nuestro objetivo es encontrar todas las configuraciones que tengan una combinación óptima de velocidad y aceleración, así que el siguiente paso es calcular las estadísticas para cada combinación única (personaje, kart, neumático).
Encontrar las configuraciones óptimas
Con un poco de Python podemos enumerar todas las combinaciones de personaje / kart / neumático y calcular sus atributos sumando los valores de las figuras anteriores. Equipados con las estadísticas de cada combinación posible, podemos trazar la velocidad frente a la aceleración de cada configuración posible, e identificar las que se encuentran en la frontera de Pareto.
Según el gráfico anterior, las configuraciones óptimas constituyen un subconjunto bastante pequeño del total de configuraciones posibles. Podemos cuantificar esto contando todas las combinaciones diferentes (nótese que algunas combinaciones se solapan en la figura). Solo por diversión, contemos también las combinaciones posibles incluyendo todos los personajes, karts y neumáticos con estadísticas idénticas.
Combinaciones posibles: 149760
Combinaciones de estadísticas únicas: 294
Combinaciones óptimas: 15
¡Las configuraciones óptimas suponen sólo el 5% de las posibles configuraciones de estadísticas únicas! Echemos un vistazo a cómo son estas configuraciones óptimas.
A menos que vayas a apostar por la aceleración, parece que un personaje pesado es el camino a seguir; las dos clases de personajes más pesados (Wario y Donkey Kong) representan 11/15 de las configuraciones óptimas de Pareto.
También podemos mirar las otras estadísticas principales de cada una de estas configuraciones.
Así que ahí está, si la velocidad y la aceleración son tus principales preocupaciones, entonces una de estas 15 configuraciones es tu mejor opción.
Explorando todas las configuraciones
Sin embargo, a veces una configuración óptima no es lo que buscas (digamos, porque tu compañero de piso te amenazó con dejar de jugar si no había algún tipo de hándicap, por elegir un ejemplo al azar). En ese caso, podemos explorar todas las configuraciones posibles con un rápido gráfico interactivo de bokeh.
Algunas observaciones:
- Los personajes pesados son más versátiles que los ligeros. Mientras que las posibles configuraciones de Wario pueden alcanzar alrededor del 77% de la aceleración máxima, Baby Mario sólo puede llegar hasta el 50% de la velocidad máxima.
- Mario metálico / Peach oro rosa son los únicos personajes que no tienen configuraciones en la frontera de Pareto.
- El Badwagon es realmente malo. Casi todas las configuraciones en la «frontera anti-Pareto» (es decir, las peores combinaciones posibles) implican a los karts de la clase Badwagon.
Si quieres ver el código que hay detrás de este análisis puedes encontrarlo aquí. Y por último, en caso de que tengas un apego particular a uno de los personajes (o karts / neumáticos) puedes buscar a qué clase pertenece a continuación.