Как распределять урон по врагам
Этот пост написан пользователем Sports.ru, начать писать может каждый болельщик (сделать это можно здесь).
Эта история началась ещё несколько месяцев назад, когда я ещё почти ничего не понимала в Доте. Зато парочка моих знакомых занималась исследованиями игр. Заглядывая в мониторы их ноутбуков, я видела очень подробные таблицы с данными, которых я никогда не встречала в мире офлайн-спорта. И через некоторое время Дота стала казаться мне чем-то вроде футбола, который можно раскусить, понять, просчитать. И я отправилась раскусывать.
Естественно, создать аналог теории всего для этой игры и найти стратегию, приносящую победу с вероятностью 100% невозможно. Если бы всё было так просто, никаких турниров с призовым фондом почти 20 миллионов не существовало. Однако немного приблизиться к пониманию того, как лучше играть, вполне возможно.
Три месяца назад Dotabuff начал добавлять на страницы матчей раздел Combat. Я решила, что это хорошая отправная точка для моих псевдонаучных изысканий и выгрузила данные по всем матчам, где хотя бы с одной стороны играла команда, прошедшая на Main Event TI6. С 15 апреля по 15 июля набралось 1106 игр.
В краткой форме вопрос, стоящий перед работой, звучал как: «Кого фокусить?» Игроки, перемещаясь по карте с союзниками, встречают противников. Запас маны не бесконечен, да и с руки всех сразу бить не получится. Нужно иметь приоритеты и план, и я попыталась найти наиболее полезный.
Предварительно я приписала всем игрокам в выгруженных матчах позицию от 1 до 5, где, как все, наверное, знают, единица обозначает главного фармилу-дамагера, а пятёрка – фулл-саппорта. В дальнейшем всё было преобразовано в табличку в одну табличку, где было описано, сколько урона игрок каждой позиции нанёс каждому члену команды противника в течение всей игры (потом для построения модели все переменные были логарифмированы). От каждой игры получилось две строчки – описывающие победившую и побеждённую команды.
После этого я запустила бинарную логистическую регрессию, которая является очень простым методом предсказания вероятности события, у которого может быть два исхода. В нашем случае, поражение или победа. По запросу я могу прислать полную таблицу с описанием модели, она довольна объёмная, чтобы вставлять её в текст.
Стоит сказать, что на новых данных модель правильно предсказывает результат игры в 65% случаев. Казалось бы, очень близко к 50%, что в случае бинарного исхода обозначает «пальцем в небо». Однако если почитать другие работы, станет понятно, 65% – это довольно много. Например, в работе 'How Does He Saw Me? A Recommendation Engine for Picking Heroes in Dota 2' по пикам исследователи смогли предсказать исход 70% матчей, что является одним из лучших результатов.
Итак, шансы победы растут, если
- игрок 1-ой позиции много бьёт вражеские позиции 3-5,
- игрок 2-ой позиции делает это с вражескими 4-5,
- игрок 3-ей позиции активно дамажит аналогичного игрока противника,
- а игрок 5-ой позиции вкладывает меньше урона во вражескую позицию 1.
Слишком много информации в одном предложении? Да, пожалуй. Разберём по частям.
Когда регрессия досчиталась, но результаты ещё не были выведены на экран, мне показалось, что сейчас эта модель откроет мне такие тайны мироздания, как, например: если любой игрок наносит больше урона противнику, вероятность победы возрастает. Разваливайте своего оппонента – и вы победите! Такого, к счастью, не произошло. Возможно, причина этому в выборке матчей. Там оказались очень сильные команды, которые даже если и терпят, то всё равно немного огрызаются в ответ. Поэтому найденных статистически значимых закономерностей немного, и парочка из них может оказаться незначимыми на большем объёме данных. А одна из них даже о том, что при большем уроне, вероятность победить падает.
Первая закономерность состоит в том, что игра скорее всего закончится положительно, если керри и семи-керри активно дамажат вражеских саппортов. Казалось бы, если сильным героям позволительно вливать много урона в аналогичных оппонентов, то у команды всё отлично. Но нет. Данные говорят, что растрата ресурсов на сильных противников не увеличивает вероятность победы. Они могут попытаться выжить, а потраченные скиллы и время уже никто не вернёт. К тому же подфиживание на саппортах статистически значимо приносит проигрыш. Если приходится выбирать, лучше бейте их.
Здесь возникает желание дополнить модель данными о дизейблах , чтобы узнать, насколько стратегия игнорирования вражеского керри, передавая его по цепочке станов, к примеру, и нанесения урона оставшейся части команды лучше, чем попытки быстрого убийства главного дамагера врага. А так же неплохо бы понять, какой из этих подходов проще законтрить. Сейчас я оставляю пустые рассуждения и в будущем попытаюсь это посчитать.
Вторая закономерность связана с игроком 3-ей позиции, который обычно является хардлейнером. Шансы на победу больше, когда этот игрок вкладывает много урона в такого же героя вражеской команды. Более благодатной почвы для спекуляций придумать сложно. Может быть, дело в том, что хардлейнеры , в силу своей нелёгкой жизни, часто имеют способности, увеличивающие выживаемость. И неплохим способом уничтожить вражеского долгоживущего героя является использование своего собственного. Но в этом вопросе я бы, конечно, с большей радостью послушала мысли других, чем свои собственные.
В-третьих, было обнаружено, что с увеличением урона, который фулл-саппорт наносит вражескому керри, вероятность победы уменьшается. За эти может стоять две причины. Первое, команда фокусит не того, растрачивая слишком много ресурсов, на оппонента, которого очень сложно уничтожить. Второе, что-то пошло не так, и больше некому наносить урон, например, по причине смерти.
В целом стоит сказать, что если вы пришли на лайн с большим желанием кого-то убить, то лучше делайте это с тем, с кем проще, игнорируя порывы приостановить фарм опасного в будущем вражеского керри. Также и в процессе командных сражений в начале нужно лишать противника саппортов.
Звучит очевидно? Если честно, мне временами тоже так кажется. Но ещё я знаю, что человек подвержен ретроспективным искажениям. Когда что-то известно, оно кажется гораздо более предсказуемым, чем есть на самом деле. Если бы оказалось, что дамажить вражеского керри положительно влияет на вероятность победы, наш разум легко бы нашёл этому объяснение, не так ли? Однако такой закономерности нет.
Обладая небольшим объёмом знаний по Доте, я не всегда могу объяснить, что нахожу. Но исследовательский азарт от этого не исчезает. Хотя естественно мне хотелось бы обсудить это и ещё парочку идей, которые я вскоре собираюсь реализовать, со знающими людьми.
Stay tuned!
Я открою
У меня встречная теория. Значительная часть урона по сапортам наносится в случае, когда драка уже выиграна и ты просто добиваешь команду противника (так как сапорты обычно в задней линии). Совершенно естественным образом в статистике это может выглядеть так, будто ты фокусил сапортов, а твой противник нет, хотя на самом деле вы делали одно и то же, просто я дожил до "добивания сапортов", а противник умер в ранней стадии драки.
То есть посыл что фокусить саопртов это хорошо может быть неверен, в то время как становится верным другое утверждение: "если ты за драку успел побить всех вражеских героев, то вероятно драка удалась" (ценность этого утверждения не велика). Можно продлить эту идеи и дальше: "Если ты выигрываешь игру, то тебе чаще перепадают халявные килы на вражеских сапортах из-за лучшего контроля карты". Учитает-ли твой анализ этот аспект каким-то образом?
В целом логично предположить, что если ты победил в матче, то ты победил в большинстве драк, а значит наносил урон по всем вражеским героям (конечно это не всегда так, но в усреднённых значениях это должно быть так).
Подозреваю, что данных о том кто кого бил в начале драке нет, так что проверить это сложно. Можно попробовать взять несколько матчей и оценить соотношение урона по сапортам в реальной драке и в остальных случаях (сапорт загулял или его бьют, когда результат драки уже полностью определён).