Джефф Каплан – о системе подбора соперников и MMR

Джефф Каплан в одном из очередных своих объемных сообщений на форуме Battle.net рассказал о том, какие основные параметры принимает во внимание система подбора соперников в Overwatch, в чем заключаются сложности с ее разработкой и почему иногда что-то работает не так, как хотелось бы.

Система поиска соперников – очень сложная штука. В самом общем смысле, на самом базовом уровне, система поиска соперников подбирает для вас еще 11 человек для игры – но не просто так, а с учетом ряда факторов. Вот некоторые из них:

Время.

  • Система поиска соперников старается найти вам соперников за минимально возможное время. Если поиск ведется слишком долго, то игроки жалуются. Если игра находит соперников быстро, но игрокам не нравится их уровень – игроки снова жалуются. В случае с системой поиска соперников «дольше» не всегда значит "лучше".
  • Очевидно, что никому не нравится ждать долгое время для того, чтобы потом проиграть "в одну калитку". Но, впрочем, когда ты долго ждешь, а потом все равно проигрываешь – радости мало.

Пинг.

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

Группы игроков.

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

MMR.

  • Система вычисления MMR в Overwatch многое заимствует у других игр, но привносит и свои уникальные наработки.
  • Если игрок выигрывает – MMR повышается, если игрок проигрывает – MMR понижается. Но есть ряд факторов, от которых зависит то, насколько именно MMR возрастет или понизится. Например, учитывается карта, на которой происходит игра, а также играете ли вы за атаку или за оборону. Blizzard известны проценты побед за атаку и оборону на всех картах, и прирост MMR изменяется соответственно. Не все победы и поражения одинаковые.
  • Также в учет принимается то, насколько хорошо игрок играл каждым из героев, которых он использовал в течение матча. У всех есть герои, за которых они играют лучше, и герои, за которых они играют хуже – эти данные игра также собирает и они также принимаются во внимание при расчете MMR.
  • Ну и, конечно же, количество полученных или потерянных очков зависит от MMR вашего соперника.
  • При расчете MMR никогда не принимаются во внимание ваше общее соотношение побед и поражений, равно как это сочетание никогда не используется для того, чтобы найти игроку соперника. Игра не старается привести процент побед и поражений игрока к определенному значению (хотя на данный момент у большинства игроков примерно 50% побед, и это очень радует).

Конечно же, все гораздо сложнее, чем описанное выше. Есть штрафы за то, что игрок какое-то время не играл. Есть подстройка под совершенно новых игроков – их стараются какое-то время держать подальше от основной массы игроков.

Что мешает системе матчмейкинга и на что очень сложно, или вообще нельзя, повлиять:

  • Игроки, которые покидают игры
  • У игроков очень разный уровень игры за разных героев
  • Игроки собираются в группы с разбросом в мастерстве и в пинге до серверов
  • Иногда игроки дают свой аккаунт кому-то еще (например, своему маленькому братишке)
  • Иногда перед экраном решает пройтись кошак
  • Иногда в беспроводной мышке садятся батарейки (кстати, почему вы играете беспроводной мышкой?)
  •  Иногда очень скилловый игрок просто покупает новую версию игры, чтобы начать аккаунт с нуля
  • Иногда бывают проблемы с интернетом
  • Иногда кто-то решает сыграть пьяным… Или усталым… Или и то, и другое сразу
  • Кто-то играет первую игру за сегодняшний день…
  • … Или последнюю игру за сегодняшний день
  • Ну и так далее.

Дальше мысли сугубо Джеффа, которые не являются официальной позицией компании Blizzard и не отражают каких бы то ни было намерений в отношении системы поиска соперников:

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

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

Система подбора соперников постоянно улучшается. В течение недели часто выходят "незаметные патчи" - и они, в том числе, что-то исправляют в системе подбора соперников.

Иногда что-то работает не так, как мы планировали. Например, один из лучших игроков мира за Вдову пожаловался нам, что у него очень долгое время поиска игр. Мы исследовали проблему и поняли, что очень многие игроки воспользовались функцией "Избегать игрока" в его отношении (т.е. функцией, которая задумывалась для того, чтобы игроки могли реже встречаться с анманерными игроками) В результате, сначала он очень долго ждал, пока система найдет соперников, а потом та начинала подбирать ему игроков низкого уровня – и в результате он оказывался в матче со слабыми игроками. Функция "Избегать игрока" была нужна для того, чтобы сделать игру лучше, но вышло совсем наоборот. И это очень плохо.



Примечание: опция "Избегать игрока" была деактивирована в сегодняшнем минорном патче. Она по-прежнему присутствует в интерфейсе, но не работает.