Создаём игру мечты. Часть 5 Матчмейкинг

Первое, что считаю необходимым разобрать – это систему матчмейкинга. Скажите честно, вас она никогда не смущала?

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

Ту же ситуацию можно вывернуть наизнанку и спросить, будет ли справедливым по вашему мнению повышать рейтинг полнейшего нуба, когда матч по сути выиграла его команда?

Обычно люди отвечают «нет» на оба вопроса. Я могу это объяснить неприемлемостью коллективной ответственности внутри случайных временных команд. Никому из вас не понравилось бы попасть в автозак по причине того, что вы проходили мимо каких-нибудь правонарушителей, и в этот момент всех вместе с вами и повязали.

Создаём игру мечты. Часть 5 Матчмейкинг

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

  • Одинаковые навыки, выраженные в рейтинге. Важен не только суммарный рейтинг обеих команд, важно также, чтобы внутри команды сила её игроков была примерно на одном уровне.

  • Низкое время поиска и низкий пинг в игре. Ситуацию, когда время поиска матча превышает минуту, можно смело расценивать как катастрофу. Равно как и высокий пинг.


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

Гороскоп, он же рейтинг, зачастую представляет собой числовое значение MMR, который уменьшается на определённое значение при проигрыше и повышается при победе.

Значение, на которое этот рейтинг изменяется, часто высчитывается по уравнению Арпада Эло.

В принципе, уравнение это весьма неплохое. Не буду докапываться до коэффициента К и числа 400, скорее всего за столько лет существования, они эмпирически доказали свою значимость.

Гораздо интереснее другое: рейтинг Эло был придуман для шахмат. Это та игра, где «в команде» всего 1 человек. Только в таком случае выполняются пункты А и В из сюрреалистического «кто хочет стать миллионером?»

Но ведь ФИФА применяет уравнение Эло для расчёта рейтинга команд! С одной стороны, да, а с другой стороны нет. Рейтинг Эло применяется конкретно к клубам и к клубным соревнованиям. Во время таких соревнований, когда страны составляют свои национальные сборные согласно правилам министерств спорта, формулой Эло можно только подтереться.

Я думаю, вы прекрасно поняли, откуда такая разница в подходах – национальные сборные – это временные команды со случайным составом людей. Собственно, мы пришли к тому, с чего начинали.

Из всего вышесказанного также следует, что в видеоиграх для каких-нибудь клановых войн MMR подходит как нельзя лучше. Потому что в таких матчах субъектом является команда, а не отдельные её игроки.

Теперь поговорим про баланс команд в быстрой игре. Держим в уме, что помимо равенства в рейтинге у людей должно быть низкое время ожидания и низкий пинг, что может значительно снизить количество «доступных для игры» людей для каждого отдельного человека.

Создаём игру мечты. Часть 5 Матчмейкинг

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

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

Чтобы сегментировать людей по их уровню игры, на динамической шкале присутствуют вертикальные отрезки. Их задача состоит в том, чтобы обеспечивать требование к хорошему матчмейкингу – уравнивать вероятность победы для каждой из сторон. Сколько их устанавливать и где – зависит от потребностей игры и её ДАУ.

Чем больше народу играет, тем больше можно добавлять таких отрезков, что очень сильно увеличит точность системы матчмейкинга. Если онлайн не самый большой, то целесообразно уменьшить количество таких отрезков. Главное – чтобы они располагались на одинаковом расстоянии друг от друга.

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

Создаём игру мечты. Часть 5 Матчмейкинг

Если типичный матч некоего режима носит довольно сумбурный характер, то лучшим вариантом станет установление между каждым вертикальным отрезком динамической шкалы некоего количества «ступеней», по которым «перемещается» рейтинг человека.

Разберём пример Квейкоподобных игр. О какой-либо тактике в матче на 20-40 человек, где все прыгают, мгновенно воскресают и постоянно убивают друг друга, говорить не приходится, поэтому в конце матча по таблице результатов 20% лучших игроков (с наибольшим количеством убийств) переходят на следующую ступень, а 20% худших игроков спускают свой рейтинг на ступень пониже.

У батлроялей «рейтингом» может служить количество уже убитых на момент смерти оцениваемого человека. Я рассматриваю вариант с тем, чтобы добавлять к этому числу хотя бы половину от количества убийств, сделанных этим человеком, потому что в противном случае у тех, кто просто прячется и вылазит из укрытия, чтобы сделать последнее убийство будет преимущество. Как обычно, топ 20% переходят на ступень повыше, а нижние 20% на ступень пониже.

Этот же принцип можно смело переносить на все игры, где хаоса в избытке (типа Call of Duty).

Создаём игру мечты. Часть 5 Матчмейкинг

Сейчас поговорим о более тактических играх, где будем использовать другую формулу.

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

Дальше в моём документе написано огромное полотно текста, с теорией из Канемана и Глейка с примерами из задачи трёх тел и так далее, но здесь предлагаю всё это не писать, а просто принять как аксиому, что мы в принципе не можем знать, какой параметр лучше оценивает скилл игрока, а какой хуже. Поэтому в формуле не используются никакие повышающие коэффициенты. Вместо этого значение каждого параметра просто приводится к единому порядку (целое и 6 знаков после запятой) и суммируется со всеми остальными параметрами.

Для игр типа контр-страйк в конце матча оцениваются следующие параметры: убийств к смертям; нанесённого урона к смертям; выполненных заданий к смертям; помех врагам выполнить их задачу к смертям; точность выстрелов; обронённого в начале раунда оружия, вместо которого было куплено другое, и из которого союзник нанес урон по врагам; доля заработанных человеком денег от среднего "дохода" команды.

Нечто подобное подходит для режимов, похожих на ВоТ и ВоВШ. Хотя понятно, что здесь матч не состоит из повторяющихся зеркальных раундов, да и «обронить» свое оружие, чтобы им мог воспользоваться союзник тоже невозможно. К тому же в таких режимах желательно вести отдельную статистику для каждой единицы технике в ангаре человека.

Немного иначе оценивается режим типа Батлфилда. Традиционно у моей любимой батлы есть 2 особенности: к матчу можно подключиться в любой момент, и в любой момент выйти без каких-либо штрафов; очки зарабатываются за любую деятельность - исцеление союзников, ремонт техники, выполнение приказов, убийства, нанесение урона, захват точек, выполнение миссий, уничтожение техники, повреждение техники, взаимодействие с инфраструктурой и так далее. Следовательно, чтобы определить место человека на рейтинговой шкале, можно использовать параметр «количество игровых очков в минуту».

Гораздо сильнее отличается режим типа Овервоча, так так в этом режиме персонажи априори различаются по своим возможностям, которые никак нельзя экстраполировать на скилл человека. Поэтому сначала высчитываются 3 промежуточных значения скилла на основании игры за персонажей определенных ролей, а потом из них выводится общий уровень скилла.

Скилл танковать: полученного (тушкой и щитами) урона к смертям; полученного исцеления к смертям; ультований к смертям; доля времени игры за танка к продолжительности матча к таковой доле среди всех союзников; доля расстояния ко всем врагам от среднего такого расстояния у всех союзников; доля времени выполнения задания от среднего времени по команде.

Скилл хилять: полученного урона к смертям; исцеления к смертям; ультований к смертям; доля времени игры за хилера к продолжительности матча к таковой доле среди всех союзников; доля дистанции до противников к доле дистанции до союзников; нанесённого исцеления к нанесённому урону.

Скилл дамажить: полученного урона к смертям; нанесённого урона к смертям; ультований к смертям; убийств к смертям; точность; доля времени игры за дамагера к продолжительности матча к таковой доле среди всех союзников;

Показатели выше оценивают способность человека играть персонажами соответствующих ролей. Далее приведены параметры, которые объединяют всё воедино: доля времени игры за каждую из ролей к значению "скилла" этих же ролей; замен героев за матч внутри одной роли; смен ролей за матч к количеству союзников с этой же ролью.

Да, кстати, посвящать людей в подробности системы матчмейкинга не стоит. Лучше в качестве ширмы использовать традиционный MMR и традиционные же параметры в статистике профиля, а в реальности использовать более подробную статистику и матчмейкинг на её основе. Ещё некоторые статистические данные позволяют гораздо надёжнее и в автоматическом режиме находить читеров, но полноценной статьи для ДТФ из этого материала у меня не получится.

В следующей статье обсудим такую интересную и мало кем изученную сущность, как загрузочный экран.

Если кому-то интересны приведённые здесь теоретические выкладки и формулы, пишите пожалуйста на BogTan4eg@gmail.com

2626
33 комментария

Матчмейкинг и туторы - 2 фичи в любой игре, у которых нет предела совершенства. Первой всегда не довольны игроки, вторая вечно на костылях и бажит 😊

4
Ответить

Мне очень "нравится" система подбора в Арех. Это был мой первый сетевой шутер (начал играть в конце 4 сезона) и соответственно статистику я себе на старте загубил порядочно, т.к. не было никакой основы типа CS, Battlefield и т.д.
И теперь адекватных тиммейтов я вижу не чаще, чем раз в 8-10 матчей. Мне не нравится, что в этой игре сделан очень сильный упор на К/D. Пример из вчерашнего матча: на команду 9 убийств, по 3 убийства на каждого. Только тиммейт-1 нанес 250 урона, тиммейт-2 нанес 350 урона. А я нанес 1800 урона. Но система Арех считает нас равными. 

3
Ответить

Матчмейкинг Апекса - это вообще тема для отдельного разговора. У меня друган - Платина, я - на золоте. И нам упорно в матч кидают предаторов. Причем, сквады предаторов. Вообще "получаем" каеф от игры. И ладно бы это рейтинг был, но нет же - квикосы. 

1
Ответить

Комментарий недоступен

Ответить

Низкое время поиска и низкий пинг в игре. Ситуацию, когда время поиска матча превышает минуту, можно смело расценивать как катастрофу./Лига Легенд вышла из чата

2
Ответить

зависит от игры. Для пекарни и по 10 минут - не предел. Хотя, уже близко к нему. А для мобилок больше минуты - реальная катастрофа. 

2
Ответить

Да что ты знаешь об ожидание? © Тапков/Варгейм РД/Тотал вар 

1
Ответить