22.10.2021Уголок разработчиков

/dev: Как работает подбор игроков

Подбор игроков и ранговые матчи – это основа Wild Rift, но как именно они работают? Ведущий игровой дизайнер Джош Менке приоткроет завесу тайны над тем, как подсчитывается MMR, что такое "очередь неудачников" и почему игра порой сводит между собой игроков в рангах Золота и Изумруда.

Автор
  • Джош Менке

КАК WILD RIFT ОЦЕНИВАЕТ МАСТЕРСТВО ИГРОКОВ?

Мастерство игроков мы оцениваем с помощью рейтинга. Система оценки определяет число, наиболее точно отражающее вероятность того, что игрок будет побеждать в матчах. Это число называется рейтингом подбора или, коротко, MMR. По нему можно определить, чего ожидать от игрока в следующем матче – победы или поражения.

Сейчас в Wild Rift работают две системы MMR. Для ранговых матчей используется первоначальная версия, а для обычных – улучшенная и более точная версия, определяющая, кто с большей вероятностью победит согласно имеющимся данным. В дальнейшем мы планируем улучшить и систему MMR для ранговых матчей, но на введение этого улучшения понадобится много времени, поскольку ранг игрока тесно связан с MMR.

КАК РАБОТАЕТ MMR?

Полностью изложить механику работы этой системы в рамках одной статьи невозможно, но по сути это доработанный аналог систем, применяемых для определения навыка, таких как система Арпада Эло. Вкратце: после каждого матча рейтинг победителя поднимается, а рейтинг проигравшего опускается; насколько – зависит от сложности матча. Если силы были равны, рейтинг игроков поднимается и опускается примерно одинаково, а если кто-то потерпел разгромное поражение, изменение рейтинга зависит от того, насколько неожиданным был результат.

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

КАК ПРОИСХОДИТ ПОДБОР?

Цель подбора игроков заключается в том, чтобы вы получали:

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

Когда вы нажимаете "Найти матч", вы попадаете в пул игроков, которые хотят сыграть в том же режиме, что и вы. Далее система подбора каждую секунду бесконечно повторяет алгоритм действий, направленных на подбор. Для этого она:

  1. Выбирает игрока или группу, чье время ожидания больше прочих.
  2. Проверяет, достаточно ли в пуле ожидания игроков, чей MMR вписывается в допустимый диапазон значений вокруг среднего значения MMR игрока или группы, чтобы создать матч. Если их не достаточно, система не найдет подходящих партнеров для игрока на этой итерации и почти сразу попробует снова. Также система отдает предпочтение в первую очередь игрокам с максимально близкими значениями MMR, если это возможно, чтобы все участники команды были примерно одного уровня мастерства.
  3. Если найдено достаточно игроков, система подбирает потенциальные команды, стремясь учесть как MMR каждой команды, так и предпочтения по позициям. MMR команды должен быть сбалансирован, чтобы у каждой команды были примерно равные шансы на победу (близкие к 50%).
  4. Когда команды набраны, система еще раз проверяет, что разрыв между MMR обеих команд не превышает заданной величины, чтобы по возможности не допускать слишком явного перевеса сил. Если разрыв выходит за заданные пределы, подбор аннулируется, система возвращается к шагу 2 и следует алгоритму, пока не подберет подходящих игроков для игрока/команды или пока у нее не закончатся кандидаты.
  5. Когда подбор игроков завершен, игроки получают уведомление и начинается загрузка матча. Система подбора возвращается к шагу 1 и выбирает следующего игрока, ждущего дольше всех.

На шаге 2 система подбирает игроков с наиболее схожими MMR и рангами. Сперва разрыв между ними небольшой, но с каждой секундой он увеличивается на заданную величину. Это происходит в течение 2 минут. Когда достигнуто максимальное значение разрыва, следующие 18 минут (максимальное время поиска – 20 минут) система пользуется именно им. Затем время запроса на поиск истекает, и его нужно делать заново. Примечание: это значит, что если ждать подбора, то игроки для вас найдутся быстрее, чем если перезапускать поиск в пределах 20-минутного отрезка времени, потому что каждый раз при перезапуске система должна провести 2 минуты, расширяя поисковый диапазон.

ПОЧЕМУ СИСТЕМА ПЛОХО ПОДБИРАЕТ ДЛЯ МЕНЯ ИГРОКОВ?

Если вам кажется, что игроки для вас подобраны плохо, этому может быть несколько причин:

  • Эффект снежного кома: мы полностью разделяем взгляд Лиги на ПК на эту проблему: "С точки зрения дизайна, мы хотим, чтобы League of Legends оставалась игрой, в которой к победе приводит реализация даже небольшого преимущества. Любой малый успех, превратившийся в снежный ком, может подарить команде превосходство на раннем этапе и даже повлиять на исход матча". Поэтому случается, что в матче сходятся равные по силам команды, но из-за особенностей именно этого матча после финала остается ощущение, что подбор был сделан неудачно.
  • Командная композиция: некоторые чемпионы, например убийцы и маги, могут за очень короткое время нанести огромный урон. Если вы играете против Ренгара с парой предметов, и он совершает два убийства на линии дракона, может показаться, что вам уже трудно будет с ним справиться, но на самом деле ваши способности могут быть равны.
  • Разнообразие MMR: система подбора не сумела найти игроков с максимально одинаковыми значениями MMR (шаг 2 в алгоритме работы). Мы знаем, что в пограничных случаях игрокам нелегко дождаться подбора, и мы увеличили допустимый разрыв, чтобы решить эту проблему. То есть чтобы некоторые игроки вообще могли попасть в матч, мы увеличили допустимый разрыв в MMR для всех игроков. Из-за этого порой разрыв между MMR участников команды может оказаться больше, чем хотелось бы. В дальнейшем мы планируем добиться более динамического подбора этого разрыва в зависимости от показателей конкретного игрока, чтобы не увеличивать разрыв для всех еще больше. Это позволит подбирать игроков, максимально равных по уровню.
  • Прогнозирование MMR: иногда система ошибочно оценивает уровень мастерства игроков. В таком случае она по-прежнему выполняет свою задачу, но подбор игроков может оказаться не столь эффективным. Как уже говорилось выше, обновление MMR, которое мы сделали для обычных матчей, снизило возможность подобных ситуаций – новая система более точно предсказывает, которая команда выиграет в каждом матче. Это улучшение коснется и ранговых матчей, чтобы улучшить качество игры для всех игроков.
  • Невезение: иногда игра просто неудачно складывается. Ни один игрок не способен в каждом матче проявлять стабильный уровень мастерства. От матча к матчу показатели игроков могут колебаться от Изумруда до Золота. И в таких случаях даже хороший подбор игроков может привести к катастрофическому провалу – даже без эффекта снежного кома.

ПОЧЕМУ ДЛЯ РАНГОВЫХ И ОБЫЧНЫХ МАТЧЕЙ СИСТЕМА ПОДБИРАЕТ РАЗНЫХ ИГРОКОВ?

Подбирая игроков для обычной игры, система вообще не учитывает ранговых игроков. Игроки по-разному играют в обычных матчах и ARAM, и потому их MMR высчитываются отдельно от ранговых. Например, в обычных режимах игроки могут хотеть опробовать нестандартный стиль игры, сборку или новых чемпионов. Поэтому разные MMR позволяют нам подбирать игроков, ориентируясь на их примерные ожидания от режима игры.

ПОЧЕМУ В МОЕЙ КОМАНДЕ ПОСТОЯННО ОКАЗЫВАЮТСЯ ИГРОКИ НИЗКОГО РАНГА?

Это нередко происходит потому, что система подбирает игроков и по MMR, и по рангу. Порой, чтобы получить подбор по одному из этих критериев, игроку приходится ждать дольше, чем обычно. Например, игрок в ранге Серебра и с MMR, характерным для ранга Алмаза, будет долго ждать подбора, потому что в ранге Серебра не так много игроков с его уровнем MMR. Чтобы обеспечить подбор для всех игроков, нам пришлось увеличить допустимый ранговый разрыв, что привело к большой разнице рангов внутри команды.

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

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

ПОЧЕМУ ВЫ ПОСТАВИЛИ МЕНЯ В ОЧЕРЕДЬ НЕУДАЧНИКОВ?

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

Не забывайте, что даже в довольно сбалансированной системе серия побед или поражений – это нормально. Чем длиннее серия, тем реже такое происходит, но даже серия в 10 поражений с вероятностью 10% случится за 100 матчей.

Вдобавок можем сказать, что в более старой версии системы MMR есть нюансы, которые порой могут приводить к недолговременному завышению MMR игрока, и из-за этого игрок может проиграть лишние пару-тройку раз. Но этот эффект проявляется редко, а с улучшением системы MMR в обновлении 2.6 он и вовсе исчезнет. Серии побед или поражений в обычных играх – это нормально.

ПОЧЕМУ В АЛМАЗЕ И ВЫШЕ Я ПОЛУЧАЮ МЕНЬШЕ ПОБЕДНЫХ ОЧКОВ, ЧЕМ ДОЛЖНО БЫТЬ?

Получение меньшего количества ПО можно объяснить одной из двух причин (или их комбинацией):

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

    Исправить это можно, если выигрывать более 50% матчей в определенном промежутке времени. Это поднимет ваш уровень MMR до (или выше) вашего текущего ранга, и вы будете получать больше ПО. После этого вам уже не нужно будет выигрывать больше половины матчей, чтобы повышать ранг. А если ваш показатель MMR намного больше среднего MMR вашего ранга, вы сможете быстрее повышать ранг, выигрывая лишь 50% матчей.

    Примечание: это происходит само собой, когда вы получаете новый ранг. Ваш MMR может быть высоким для игрока ранга мастера, но средним для игрока ранга грандмастера. Когда ваш ранг близок к рангам большинства игроков с тем же MMR, количество ПО станет ожидаемым, +/- 15.

  • Также вы получаете меньше ПО, если MMR игроков вашего ранга повышается и превышает ваш MMR. Если в течение сезона мастерство других игроков вашего ранга будет расти быстрее, чем ваше мастерство, тогда их MMR повысится, несмотря на то, что ваш MMR не понижался. Это создаст ту же ситуацию, что и предыдущем случае, и чтобы решить проблему, вам так же нужно будет увеличить свой MMR, выигрывая более 50% матчей, пока количество ПО не стабилизируется или не станет больше.


ЗАЧЕМ НУЖНЫ СРАЗУ РАНГ И MMR? НЕУЖТО НЕЛЬЗЯ ОБОЙТИСЬ ОДНИМ ПОКАЗАТЕЛЕМ?

Если вкратце, то MMR – это оценка того, что БУДЕТ, а ранг – награда за то, что БЫЛО. Мы можем предсказать, насколько хорошо игрок себя проявит, но мы не присвоим ему ранг, пока он не сыграет так хорошо, как от него ожидается. Если игрок проигрывает чаще, чем должен в соответствии с MMR, он получает более низкий ранг, пока не начинает играть лучше. А если игрок выигрывает больше, чем должен в соответствии со своим MMR, он заслуженно получает более высокий ранг.

  • Josh_Menke_-_Rakan.jpg

    Джош Менке

    Главный игровой дизайнер

    Джош Nextdoor Менке – главный игровой дизайнер в команде по поддержке интереса игроков. Последние 17 лет он работал над ранговыми системами и подбором игроков в Call of Duty, Halo и играх от Blizzard, а теперь использует накопленный опыт в Wild Rift.