Какой должна быть система матчмейкинга: советы создателя Awesomenauts

Как распределить игроков по командам так, чтобы все остались довольны.

Разработчик Йост ван Донген, недавно завершивший работу над обновлённой системой матчмейкинга для MOBA Awesomenauts, поделился опытом в своём личном блоге. Мы выбрали из его текста главное.

Какой должна быть система матчмейкинга: советы создателя Awesomenauts

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

Рейтинг матчей, который используется в Awesomenauts, рассчитывается исходя из нескольких факторов.

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

Какой должна быть система матчмейкинга: советы создателя Awesomenauts

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

Команды из друзей. В идеале, каждая команда из трёх друзей должна играть против такой же команды, а не против трёх не знакомых друг с другом людей. Расчёты здесь будут простыми: если обе команды полностью состоят из друзей, значение принимается за 100. Если, например, три друга играют против двух друзей и одного соло-игрока, — это 60 баллов. Если три соло-игрока играют против команды — это ноль.

Какой должна быть система матчмейкинга: советы создателя Awesomenauts

Разработчики Awsomenauts используют алгоритм, который проверяет пинг между игроком и всеми тремя игроками из команды противника. Чем выше пинг, тем ниже получившееся значение — среднее арифметическое между девятью получившимися числами принимается за «средний пинг» матча.

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

Фактор пинга между членами одной команды разработчики не учитывают — ведь игрокам не нужно уворачиваться от пуль друзей, рассчитывая всё до долей секунды. С каждым новым фактором, который добавляется в систему, остальные становятся всё менее значимыми: из-за того, что игра не учитывает пинг между членами одной команды, значение пинга между врагами усиливается.

Какой должна быть система матчмейкинга: советы создателя Awesomenauts

Каждый из факторов оценивается в процентах — от нуля (очень плохое сочетание) до 100 (идеальное сочетание). Но для создания матча нужно одно значение, а не несколько — поэтому из шести чисел высчитывается одно, причём вес каждого из факторов может различаться в зависимости от особенностей игры. Например, в быстрой игре вроде Awesomenauts главное — хороший пинг, поэтому именно этому значению придаётся наибольший вес.

Учитывается не только важность того или иного фактора, но и другие особенности. Например, ноль процентов совместимости для фактора «одинаковый уровень команд» встречается очень редко — для этого нужно, чтобы друг с другом сражались три профи и три новичка. А вот ноль процентов для фактора «команды из друзей» встречается часто — для этого просто нужно, чтобы три друга играли против трёх соло-игроков. Следовательно, вес этого фактора нужно немного снизить — иначе он станет чересчур влиятельным.

Какой должна быть система матчмейкинга: советы создателя Awesomenauts

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

Например, двух игроков можно поменять местами: это увеличит показатель одного матча на 5%, но снизит показатель другого на 10%. Алгоритм не будет этого делать, поскольку, в целом, это приведёт к ухудшению ситуации, а не к улучшению. По словам разработчика, это кажется очевидным, но иногда это правило можно и нарушить: например, кому-то может показаться правильным увеличить привлекательность матча с 50 до 55 ценой уменьшения привлекательности другого матча с 90 до 80.

Алгоритм ван Донгена начинается с очень простого шага: составлялся список из всех доступных игроков, в котором они были расположены в зависимости от своих навыков. Затем шесть самых опытных игроков определялись в одну группу, следующие шесть — во вторую, и так далее.

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

Какой должна быть система матчмейкинга: советы создателя Awesomenauts

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

3434
21 комментарий

Она еще жива? Последний раз запускала ее 16.03.2017 оО

3
Ответить

Да, с марта 2018-го её перевели на F2P, добавили квестов типа "сыграйте 3 раза за такой-то класс персонажей" и разной кастомизации типа капсул и скинов. И с 2017-го ещё персонажа 3 или 4.

Хорошая моба для тех, кто не любит привычные мобы.

3
Ответить

Например, двух игроков можно поменять местами: это увеличит показатель одного матча на 5%, но снизит показатель другого на 10%. Алгоритм не будет этого делать, поскольку, в целом, это приведёт к ухудшению ситуации, а не к улучшению. По словам разработчика, это кажется очевидным, но иногда это правило можно и нарушить: например, кому-то может показаться правильным увеличить привлекательность матча с 50 до 55 ценой уменьшения привлекательности другого матча с 90 до 80.Таким образом, все игроки распределялись по матчам — но было всё ещё не понятно, как эти шестёрки будут делиться на команды. Здесь в дело вступают остальные пять факторов: система рассчитывает все возможные комбинации и выбирает из них лучшую. По словам ван Донгена, хорошая система матчмейкинга может получиться только в том случае, если разработчик понимает, чего он от неё хочет. Разработчик советует помнить о том, что чем больше правил задействует ваша система, тем менее значимым становится каждое из них, и о том, что любая подобная система работает лучше при большем количестве игроков.Эти куски встречаются дважды за текст, совершенно не меняясь.
Это какой-то хитрый способ увеличить объем?

2
Ответить

Нет, это очень странная ошибка. Спасибо, что заметили!

Ответить

А теперь они ещё и в комментариях. Это сговор какой-то?

Ответить

Классная игра была, темы для каждого из героев - топ
https://youtu.be/9eYAyYo5638

1
Ответить

И какие результаты внедрения этой системы? Токсичность уменьшилась? Или ретеншен вырос?

Ответить