Как стать автором
Обновить

Нескучный матчмейкинг без дисбаланса и очередей: практическое руководство

Время на прочтение7 мин
Количество просмотров11K
Всего голосов 31: ↑26 и ↓5+21
Комментарии15

Комментарии 15

Ни разу не видел, чтоб игроки были довольны работой ММ: постоянно их бьют, унижают, в противники насыпают звёзд киберспорта, а в союзники — клешнеруких, делают патенты по унижению игроков, повышают пинг и выкидывают из боя, уменьшают награды и отбирают конфеты.
А ещё наверняка называют жёлтыми земляными червяками, но это не точно.
В CoD такая проблема наблюдается часто, да. Но тот же упомянутый Starcraft 2 поначалу дает разыграться с ИИ-оппонентом, который после нескольких матчей подстроит оптимальную сложность и соперников в соответствии с навыком игрока.
В SC2 — да, но там вариативность — три расы.
Выигрываешь цепочку побед — летишь на лигу вверх, проигрываешь — пожалуйте вниз (доползал в платину в своё время)
А во всех играх, где есть много разных машин/самолётов / классов уже труднее балансировать: вот хороший снайпер, но он решил сыграть штурмовиком — как его балансить? Выкинуть поиграть против ботов сначала? Дать средневзвешенный рейтинг — а вдруг он станет маленьким злом для противника, зная карты и имея опыт? Балансить по текущему рейтингу — так у него нет нужного стиля игры и привычки, скорее, будут мешать.
В Halo не играл, но, судя по wiki, там есть предбанник, где лидеры команд собирают команды, половина работы балансера делается вручную.
Ну и любой мм ничего не сделает с психологией: пришёл человек сорвать злость, играет агрессивно и совершает ошибки, ну или напился коньяка и обнаружил, что с каждым новым снифтером команда играет всё хуже и хуже /irony
PS у меня в разгар игры может прибежать к монитору 6 килограмм маленькой ( 2 лет нет, около метра в длину с хвостом) задумчивой мэйнкошки, которую заинтересовали вспышки на экране — этого точно не учтёт ни один балансер.
вот хороший снайпер, но он решил сыграть штурмовиком — как его балансить?

Именно поэтому по-хорошему стоит учитывать рейтинг не только средневзвешенный, но по каждому классу. Однако учет всех условий, которые только можно прописать в матчмейкере, значительно увеличит время составления матча. Не каждый игрок согласится ждать своей очереди по 5-7 минут.

Ну и любой мм ничего не сделает с психологией

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

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

Хорошая идея, но, на мой взгляд, даже у идеального алгоритма будут проблемы, если игроки воспримут его в штыки, как пример — широкоизвестный в узких кругах «патент кислого», который мало кто читал, ещё меньше поняли о чём он, но большинство уверены, что именно этот коварный патент мешает становиться суперзвёздами с идеальной статистикой.
Простые вопросы «почему он другим не мешает» и «в курсе ли вы, что самый идеальный алгоритм подбора выровняет статистику побед/поражений каждого до 50/50, ибо будут встречаться абсолютно равные команды» вызывает только всплеск фекнегатива.
Да, именно из-за неоднозначности пока сильно в это не углублялись, но, возможно, еще подумаем, как можно развить тему в будущем.

Я часто играю в Overwatch и страдаю из-за несовершенства матчмейкера.


Хотел бы иметь галку "точный подбор", заранее зная что встряну на 5 минут дополнительного ожидания, но зато матч точно будет нормальный

Старик это 1v1 игра. Достаточно обычного ELO, для командных игр все очень неоднозначно.
2v2, 3v3 и 4v4 тоже есть. Тем более, у каждой расы есть командиры с собственным набором юнитов и особенностями. Понятное дело, что матч в сетевом шутере собирает побольше игроков, но имхо у SC2 добротный матчмейкинг.
С каких пор в ладдер ранкеде старика есть командиры? Дефолтные расы всегда. По крайней мере последние лет 5. Да и их коопы это не так серьезно и не так важно, ELO-like работает неплохо просто не так идеально как для дуэлей.
Матчмейкинг действительно является сложным для исполнения — об этом и идет речь в статье. Что касается удовлетворенностью работой, то те же StarCraft и Halo хвалят в том числе.
Можно больше технических деталей? Как очереди формируются, сколько очередей. Или вы используете подход реализованный в стимовском мм или комбинацию подходов. Нужно больше текста связанного с алгоритмами и программированием.
Очередей много, т.к. много разных режимов, между которыми игрок может выбирать. Есть также так называемая low priority queue — туда в качестве наказания отправляются люди, нарушающие правила, но это не очень связано с ММ как таковым.

подход реализованный в стимовском мм

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

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