Kак стать победителем в Mario Kart с помощью Data Science

Mario Kart был важной частью моего детства – после школы мы с друзьями часами гоняли Марио, Луиджи и других персонажей из мира Nintendo по мультяшным трекам и швыряли друг в друга пиксельными бананами. И все это время нашу группу любителей гонок волновал один вопрос: кто из персонажей лучше всех? Одни считали, что это шустрый Йоши, другие спорили, что большой и тяжелый Баузер – это оптимальный вариант. В то время в Mario Kart было всего восемь вариантов персонажей на выбор, в современной франшизе этот вопрос стал еще сложнее: теперь в придачу к персонажу можно дополнительно выбрать тип карта и шин. С тех давних пор я растерял свое мастерство в Mario Kart, но, по крайней мере, теперь я разбираюсь в Data Science лучше, чем в четвертом классе. Так что в этой статье я использую свои взрослые навыки, чтобы наконец ответить на вопрос «Какой персонаж в Mario Kart самый лучший?»

DS
Специализация Data Science
Идет набор в группу 12 500₽ в месяц

Оптимальность по Парето

Это непростой вопрос — сейчас существует множество возможных конфигураций персонажей, картов, шин, и все они имеют различные показатели по ряду характеристик. В целом, невозможно оптимизировать показатели в нескольких измерениях одновременно, но некоторые варианты настроек однозначно хуже, чем другие. Вопрос для начинающего чемпиона Mario Kart сейчас звучит так: «Как я могу выбрать комбинацию персонажа, карта и шин, которая, в некотором смысле, является оптимальной, даже если нет одного «идеального»варианта?» Чтобы ответить на этот вопрос, нам придется обратиться к одному из соотечественников Марио, итальянскому экономисту девятнадцатого века Вильфредо Парето, который представил концепцию оптимальности по Парето и связанной с ней кривой Парето.

Идея оптимальности по Парето применима к ситуациям, где есть конечный набор ресурсов и несколько конкурирующих исходов, которые зависят от того как эти ресурсы распределены. «Оптимальные по Парето» варианты распределения ресурсов – это те, в которых невозможно улучшить один параметр исхода не ухудшив другой. Это проще объяснить на картинке, которую нам любезно предоставила Википедия.

Каждый круг – это вариант потенциального распределения ресурсов, что в нашем случае значит распределение очков между такими характеристиками как вес, управляемость и тяга (персонажи в Mario Kart имеют примерно одинаковое общее количество очков и отличаются только их распределением). Расположение каждого круга представляет собой исход такого распределения между двумя конкурирующими измерениями: например, скорости и ускорения. Распределения обозначенные красным лежат на кривой Парето: для каждого из этих распределений улучшение одного параметра требует ухудшения другого. Круги серого цвета не эффективны по Парето, потому что можно улучшить оба результата с различным распределением ресурсов. Скорость и ускорение, как правило, являются двумя наиболее важными параметрами в Mario Kart, поэтому целью этого анализа является выявление конфигураций персонажей, картов и шин, которые лежат на границе Парето для скорости и ускорения.

Анализ данных

Мы начнем с изучения характеристик каждого персонажа, карта и шин независимо, используя данные собранные фанатами франшизы. Особенностью Mario Kart является то, что, несмотря на то, что существует пара десятков персонажей, многие из них имеют одинаковые характеристики. С этого момента я буду ссылаться на класс персонажа по имени одного из его членов (аналогично для картов и шин). Например, в тепловой карте под строкой обозначенной как «Peach», описывается статистика не только для Принцессы Пич, но и для Дейзи и Йоши. Полный список персонажей в каждом классе можно найти в конце статьи на тот случай, если вы захотите увидеть, в какую группу попадает ваш любимый персонаж.

Всего есть семь классов персонажей. Давайте сравним их характеристики.

 Наиболее очевидной тенденцией является компромисс между скоростью и ускорением: тяжелые персонажи имеют хорошую скорость, но плохое ускорение, в то время как легкие персонажи имеют быстрое ускорение, но низкую максимальную скорость. Существуют различия и в других характеристиках, но в значительной степени значения скорости и ускорения оказываются решающими в вопросе “успешности” персонажа на треке, поэтому мы будем игнорировать остальные характеристики.

Карты и шины меняют базовые характеристики персонажей: атрибуты окончательной конфигурации представляют собой сумму характеристик персонажа и модификаторов карта и шин. Как и в случае с персонажами, есть десятки картов и шин, но только несколько категорий имеют действительно разные характеристики.

Здесь тенденции немного менее очевидны, но в целом они следуют тому же правилу, которое мы увидели для персонажей: для лучшей скорости придется пожертвовать ускорением и наоборот.

Мы хотим найти все конфигурации с оптимальным сочетанием значений скорости и ускорения, так что следующий шаг — это посчитать значения характеристик для каждой уникальной комбинации.

partfolio_ds
Специализация Аналитик Данных
Идет набор в группу 6 900₽ в месяц

Поиск оптимальных конфигураций

Немного поколдовав с Python мы можем перечислить все комбинации персонажей, картов и шин, а также вычислить их атрибуты, сложив значения из графиков, которые приведены выше. Имея значения характеристик для каждой возможной комбинации, мы можем построить график зависимости скорости от ускорения для каждой возможной конфигурации и определить те, которые лежат на границе Парето.

Если посмотреть на график выше, то становится понятно, что оптимальных конфигураций достаточно мало по сравнению с общим числом возможных вариантов. Мы можем определить их количественно, посчитав все различные комбинации (обратите внимание, что расположение некоторых комбинаций совпадает на графике). Ради интереса давайте посчитаем число возможных комбинаций, включая персонажей, карты и шины с одинаковыми характеристиками.

Общее число возможных комбинаций: 149760

Число комбинаций с уникальными значениями характеристик: 294

Число оптимальных конфигураций: 15

Число оптимальных комбинаций составляет всего 5% от возможных уникальных сочетаний! Давайте посмотрим что же эти оптимальные конфигурации из себя представляют.

Похоже, что если только вы не хотите поставить все на ускорение, то успех за тяжелыми персонажами; персонажи из двух наиболее тяжелых классов (Варио и Донки Конг) входят в 11 из 15 оптимальных по Парето конфигураций.

Мы можем посмотреть и на другие основные характеристики для каждой комбинации.

Ну вот и ответ, если скорость и ускорение — это ваши главные проблемы в Mario Kart, то одна из этих 15 конфигураций — это лучший выбор.

А что насчет других вариантов?

Иногда оптимальная конфигурация — это не совсем то, что вам нужно. Например, когда сосед по общежитию грозится перестать играть, если выбор персонажа и карта не будет ограничиваться какими-то правилами. В таком случае мы можем рассмотреть все возможные комбинации с помощью интерактивного графика bokeh.

Несколько наблюдений:

  • Тяжелые персонажи более универсальны, чем легкие. Если некоторые сочетания для Варио могут достигать до 77% от максимального возможного ускорения, то Бэби Марио сможет набрать только 50% от максимальной возможной скорости.
  • Металлический Марио и rose gold версия принцессы Пич — это единственные персонажи, которые не имеют конфигураций на границе Парето.
  • Бэдвэгон и на самом деле bad. Почти каждая конфигурация «анти-границы Парето» (составленная из наихудших возможных комбинаций) включает в себя карты из этого класса.

Если вам захочется увидеть код, использованный в этом исследовании, то вы можете найти его здесь. Ну и если вы особенно привязаны к какому-то персонажу (или шинам), то в списках ниже можно найти к какому классу он или она (или они) принадлежат.

Классификация персонажей:

  • Baby Mario, Baby Luigi, Baby Peach, Baby Daisy, Baby Rosalina, Lemmy Koopa, Mii Light
  • Toad, Shy Guy, Koopa Troopa, Lakitu, Wendy Koopa, Larry Koopa, Toadette
  • Peach, Daisy, Yoshi
  • Mario, Luigi, Iggy Koopa, Ludwig Koopa, Mii Medium
  • Donkey Kong, Waluigi, Rosalina, Roy Koopa
  • Metal Mario, Pink Gold Peach
  • Wario, Bowser, Morton Koopa, Mii Heavy

Классификация картов:

  • Standard Kart, Prancer, Cat Cruiser, Sneeker, The Duke, Teddy Buggy
  • Gold Standard, Mach 8, Circuit Special, Sports Coupe
  • Badwagon, TriSpeeder, Steel Driver, Standard ATV
  • Biddybuggy, Landship, Mr. Scooty
  • Pipe Frame, Standard Bike, Flame Ride, Varmit, Wild Wiggler
  • Sports Bike, Jet Bike, Comet, Yoshi Bike

Классификация шин:

  • Standard, Blue Standard, Offroad, Retro Offroad
  • Monster, Hot Monster
  • Slick, Cyber Slick
  • Roller, Azure Roller, Button
  • Slim, Crimson Slim
  • Metal, Gold
  • Wood, Sponge, Cushion

Оригинал статьи: The best Mario Kart character according to data science

Перевод: Ухарова Елена

Поделиться: