Сколько бы матчей вы ни играли, вы наверняка задумывались, что за каждым из них скрывается сеть систем, незаметно влияющих на ваш опыт, но вряд ли глубоко погружались в этот вопрос.
К изучению системы матчмейкинга меня привела не ярость за проигранный матч, или испорченное настроение от рандомного тролля… Я люблю разбираться в системах, понимать как устроены те или иные механизмы интересных мне игр, находить уязвимости или неочевидные моменты.
Для систем матчмейкинга практически сразу стало ясно что ответов на ютубе я получу очень мало, так как зачастую авторы роликов не пытаются копать глубоко. Такие ролики описывают механизмы уже давно известных систем MMR, EBMM, SBMM, 50%, и т.д… Достаточно известные, чтобы вы о них где-то слышали.
Стало ясно что если я желаю раскопать что-то неочевидное и свойственное исключительно для Riot игр, нужно покопаться в чем-то менее увлекательном, но куда более информативном. Поиски навели меня на прочтение личных патентов Riot…
И то что удалось найти - лежало на поверхности, как что-то такое обыденное как система чести для стимулирования порядочного настроения может влиять на наш подбор игроков.
Разобравшись со всем этим, попробую объяснить как именно система матчмейкинга может зависеть от репортов и системы чести внутри League of Legends … и возможно это заставит вас посмотреть по новому на привычные механизмы внутри игры.
Но перед этим я попрошу вас обратить внимание…
Примечание*
При написании, была взята информация из семейства патентов и дополнена авторским мнением. Патент официально опубликован, принадлежит Riot Games Inc и в конце я приведу ряд источников, если вам будет любопытно самостоятельно нагуглить те или иные моменты.
И самое важное: здесь не утверждается, что всё в League of Legends работает именно так. Любая система со временем меняется и улучшается. Однако можно сказать, что принципы, описанные в патенте, вероятно, и сегодня актуальны для системы подбора игроков.
Что из себя представляет патент
Тут будет разбираться семейство патентов:
«СИСТЕМЫ И МЕТОДЫ, ПОЗВОЛЯЮЩИЕ ПОДБИРАТЬ ИГРОКОВ ДЛЯ МНОГОПОЛЬЗОВАТЕЛЬСКИХ ОНЛАЙН-ИГР».
Хоть и указано что это семейство патентов, грубо говоря это один конкретный патент, который несколько раз переиздавался, иногда дополнялся и корректировался. Самая первая версия была зарегистрирована в 2012 году, а новейшее заявление и публикация были в 2021-22 году.
Патент описывает систему по оптимальному подбору игроков на основании совместимости.
Конкретно не указано определение “оптимального набора”, но дальше по тексту будет приведено несколько предположений.
Углубимся в детали…
Система о которой пойдет речь имеет интеграцию в основную архитектуру League of Legends, с его форматом клиент - сервер, с отдельным сервером подбора игроков, базой данных игроков, и т.д… League of Legends это большой проект, с комплексной архитектурой…
Мы упростим данное взаимодействие до минимально необходимого, ведь нас не интересует вся ее совокупность и не все мы сисадмины, чтобы разбираться в подобном.
Потому мы ограничимся двумя элементами:
Сервер подбора игроков – на нем производится тот самый алгоритм подбора
База данных – состоит из профилей игроков, которая пассивно пополняется
Достаточно банальная реализация, однако дьявол всегда кроется в деталях.
Про базу данных
Откуда берет информацию база данных?
Для начала разберемся с базой данных, на которую опирается система подбора игроков. Попытаемся объяснить откуда база данных вообще берет всю информацию.
Как можно догадаться из заголовка, основной поток информации для базы данных система берет из похвалы и репортов, напрямую взятую у игроков.
Однако вас может заинтересовать та экосистема, которую Riot выстроили вокруг сбора отзывов игроков. Это важно, ведь они превратили этот процесс в отдельную игру внутри игры, со своими правилами, наградами и наказаниями.
2012 год – В League of Legends была введена новая система чести. Она должна была мотивировать игроков к хорошей среде внутри игры, исправить токсичных игроков и вознаградить наиболее дружелюбных. В будущем не один раз дорабатывалась.
С реформацией системы чести в 7 сезоне, в игру также ввели навязчивое окно после матча для похвалы одного из членов команды, для награждения его как «Дружелюбного», «Командного игрока» или «Хорошая игра <3», это также существовало параллельно с системой репортов, где мы могли пожаловаться на любого игрока, в т.ч. из противоположной команды за «Вредительство», «АФК», «Оскорбления», «Выход из игры», «Плохую игру» или «Неподобающее имя».
Я назвал это навязчивым, т.к. окно похвалы всегда вылезало после матча перед окном статистики, было на весь клиент и для его пропуска требовалось подождать некоторое время или нажать на очень малую кнопку. Получалось довольно навязчивым, хотя и подается весь процесс как нечто естественное, чтобы выделить заслуги одного конкретного игрока.
В контексте описываемого патента, все это играет прямую и очень важную роль по сбору отзывов базы данных игроков. Практически весь сбор данных переложили косвенно на плечи самих игроков.
Все полученные отзывы через систему похвалы и репортов напрямую направляется в базу данных, с которой в последующем будет взаимодействовать система матчмейкинга.
Система похвалы и репортов едино работает для всех режимов (за исключением Teamfight Tactics), потому ее можно заприметить в драфте, рейтинговых режимах и в ARAM.
Какие данные собирает база данных?
Поскольку мы разобрались откуда берутся данные, теперь нужно определить какого рода информацию собирают от игроков.
Тут патент разграничивает 2 стороны игроков:
кто дал отзыв
кто получил отзыв
Со стороны подавшего отзыв берется следующее:
• Квалификация игрока (эфемерно его умение играть, возможно ммр)
• Опыт игрока (то сколько времени он потратил на игру за период)
• История матчей и какие это были режимы (рейтинг, драфт и т.д.)
• Прошлые отзывы игрока (содержание, частота их отдачи и средняя точность отзыва)
Со стороны получившего отзыв берется следующее:
• История матчей и какие это были режимы
• Для репортов сохраняется комментарий отдавшего репорт
• Для похвалы определяется кто ее отдал (рандом или друг)
Все описанное приводится в качестве примера и на самом деле передаваемая информация может быть куда более подробной и иметь больше пунктов.
Также вы могли заприметить что система различает от кого получена информация и определяет точность передаваемых отзывов игроков.
Под точностью в патенте есть определение – это обозначение насколько переданный отзыв от одного конкретного игрока соответствует среднему отзыву, который получает другой игрок и не противоречит ли он ожидаемому среднему для него.
Отсюда мы можем определить что не каждый голос имеет равное значение и каждый игрок обладает разным влиянием, в зависимости от истории его репортов и похвал.
Система имеет некоторую защиту от злоупотребления, где определяет вес каждой отдельной похвалы, в зависимости от того является ли игрок знакомым, с которым заранее встали в очередь на этапе лобби.
Нам не дают четкого определения насколько незначительным становится голос знакомого по сравнению с рандомным игроком, но это факт.
Каждый полученный отзыв от игрока обозначается по шкале от 1 (негативный) до 5 (положительный)
Внутри патента указывается что игрок определяет его значение самостоятельно, однако внутри самой League of Legends нет такого функционала даже на период 2012 года.
Это мне кажется любопытным, так как если она не доступна игрокам, то в теории система самостоятельно определяет какого балла заслуживает каждый отдельный отзыв.
Каждый игрок обладает квотой отзывов, которые он может предоставить системе. Внутри патента это выражено формулой:
(N * 3) + 30, где N – количество сыгранных игр.
И хотя формула может не иметь реального значения сегодня, это все еще говорит нам что отзывы искусственно ограничены и при исчерпании квоты похоже не будут учитываться в системе (или присуждать им около-нулевой вес).
Поскольку игра физически не дает тебе выдать похвалу более чем одному игроку, я думаю подобное направлено на борьбу с злоупотреблением репортами. Сделано это было чтобы множественные репорты не испортили собираемые данные.
Внутри патента также выделены отдельные правила:
Игрок может похвалить любое кол-во союзников (LoL имеет ограничение в один голос на матч)
Игрок может похвалить любое кол-во оппонентов за матч как «Достойный противник» (После изменения системы чести, это стало невозможно)
Игрок не может похвалить или зарепортить себя
Игрок не может похвалить и зарепортить одного и того же игрока (LoL блокирует возможность репорта игрока, если вы его похвалили)
Передышка
На этом этапе нам показалось, что получается слишком много бУкОв.
Поэтому! Мы разделяем на 2 части, во второй части мы поговорим как подбирают игроков, на основе архетипов, степенной связи и не только. Если вам понравилось, то вот ссылка на вторую часть — ТЫК.
А также, если вы хотите получать интересные новости игровой индустрии то ждём вас в нашем Telegram-канале: Игровой террариум Мы публикуем только самое интересное и в гораздо большем объёме, чем здесь.