Балансировщик формирует команды в два этапа:
- Формируется боевая группа с учётом действующих лимитов (см. ниже) и настроек уровней боёв для каждого корабля.
- Из кораблей, отобранных в боевую группу, формируется команда по принципу максимального равенства сумм балансного веса кораблей.
Балансный вес — характеристика корабля, учитывающая силу корабля в составе команды и не отражающая реального соотношения сил между двумя конкретными кораблями.
При подборе команд балансировщик будет стремиться равномерно распределять корабли по нациям.
- Максимальный уровень боя, в который могут попасть все исследуемые корабли I–IV уровней, рассчитывается по формуле «уровень корабля + 1».
- Максимальный уровень боя, в который могут попасть все остальные корабли, рассчитывается по формуле «уровень корабля + 2».
- В боях может быть до трёх авианосцев в каждой команде.
Уровень боя равен уровню самого высокоуровневого корабля в боевой группе.
Команда для боя набирается с учётом следующих лимитов:
- Максимальное количество игроков в бою: 24.
- Лимит авианосцев в бою: 2–6.
- Количество «топов» и линкоров уровнем ниже уровня боя в обеих командах должно быть одинаковым.
- Авианосцы в обеих командах должны быть одного уровня.
- Число эсминцев и линкоров может различаться на 1.
- Число крейсеров может различаться на 2.
В случайном бою игрок, нажавший на кнопку «В бой!», попадает в список не распределённых по боям игроков, который непрерывно обрабатывается балансировщиком. При обработке списка учитывается время ожидания игрока: первыми распределяются те, кто ждёт дольше остальных.
Если нет боя, который подходит игроку по уровню либо классу (например, пользователь играет авианосцем, а во всех подходящих по уровню боях уже достигнут лимит по числу авианосцев), то для этого игрока создаётся новый бой.
Время ожидания
При долгом ожидании бой может стартовать с меньшим количеством игроков (10х10, 11х11 и т. д.), но лимиты по классам и набору техники сохраняются (см. выше).
Улучшена работа матчмейкера для новичков на низких уровнях, чей уровень аккаунта не превышает 8-й, участвующих в боях 1–3-го уровней. Если по каким-то причинам полный состав команд не собирается, то в большинстве ситуаций бой симметрично дополняется ботами до 10 игроков в команде.
В версии 0.7.4 исправлен принцип работы балансировщика в первые три минуты ожидания боя. Теперь после того, как первый игрок попадает в очередь, в течение трёх минут балансировщик собирает команды зеркально. Это значит, что напротив каждого корабля будет стоять корабль тех же класса и уровня. Такая работа системы наиболее заметна, когда в очереди достаточное количество игроков.
Если за три минуты ожидания первого игрока в очереди так и не удастся подобрать зеркальные команды, балансировщик вернётся к прежнему алгоритму, чтобы отправить командиров в бой как можно скорее. Такой сценарий наиболее вероятен в ночное и утреннее время, когда игроков на серверах сравнительно немного. Просим вас обратить внимание на то, что на поиск боя для игроков в составе отряда изменения балансировщика не повлияют.
В боях 10-го уровня в среднем уменьшилось количество кораблей VIII и IX уровней. Следовательно, эти корабли чаще стали попадать в бои своего уровня.
В обновлении 0.8.2.1 мы добавили в игру мягкое ограничение на количество авианосцев в боях с участием кораблей X уровня — не более одного в каждой команде.
Мягкое ограничение означает, что если у балансировщика не получится в течение трёх минут собрать подходящие команды, то заставлять вас ждать дольше игра не будет. В этом случае в каждой команде может быть по два авианосца.
Правило, по которому в бою может быть не более двух авианосцев, действует только для сражений с участием кораблей VIII–X уровней. В более низкоуровневых боях число авианосцев в команде по-прежнему может быть равно трём.
В этом обновлении мы ввели жёсткое ограничение на попадание в бои определённого уровня.
Для каждого игрока балансировщик будет отслеживать и учитывать количество боёв с кораблями своего уровня и кораблями на один или два уровня выше.
Вначале балансировщик проведёт калибровку: вам нужно будет провести до 20 боёв для каждого типа боя и уровня техники. После этого балансировщик будет следить за тем, чтобы процент боёв с кораблями определённого уровня не превышал установленную норму. Например, для кораблей VIII уровня установлено ограничение в 40% боёв с техникой на два уровня выше. Это значит, что из последних 20 боёв на корабле VIII уровня будет не больше восьми с «десятками».
Важный плюс этого изменения — надёжное прерывании серии «неудобных» боёв. Поскольку балансировщик будет анализировать последние 20 боёв, вы больше не будете попадать в затяжные серии сражений с кораблями более высокого уровня.
В обновлении 0.8.10 мы улучшили балансировщик кооперативных боёв, а именно:
- бои стали проходить в формате «9 на 9»;
- добавление союзников-ботов в неполную команду стало разнообразнее.
Также в кооперативных боях было введено ограничение на максимальное количество кораблей самого высокого уровня и минимальное количество кораблей самого низкого уровня в бою. Эти ограничения зависят как от уровня боя, так и от времени ожидания в очереди.
Например, с выходом обновления стали невозможными бои, в которых был только один корабль VIII уровня, а остальные — X уровня.
В обновлении 0.9.3 в балансировщик были внесены следующие изменения:
- ограничено минимальное количество кораблей на два уровня ниже уровня боя (для боёв VII-X уровней);
- ограничено максимальное количество кораблей, чей уровень соответствует уровню боя. Исключение — бои с участием кораблей только одного уровня;
- обновлены настройки, ограничивающие количество кораблей определённого класса в бою.
Например, для боёв Х уровня в команде стало не менее 3 кораблей VIII уровня (при их наличии в очереди) и не более 5 кораблей X уровня при нормальном заполнении очереди матчмейкера, а количество эсминцев и линкоров в команде не превышает 4 и 5 кораблей каждого класса соответственно.
Более того, для каждого уровня боёв стали использоваться несколько наборов настроек, которые будут сменять друг друга в зависимости от времени ожидания в очереди: чем дольше длится ожидание боя, тем мягче становятся ограничения. Таким образом, новые настройки позволили не увеличивать значительное время ожидания в очереди в случае небольшого количества желающих выйти в бой, но при этом собирать бои с наиболее эффективным составом команд.
В обновлении 0.9.6. мы существенно переработали балансировщик низкоуровневых боёв.
Ранее в случайных боях на кораблях начальных уровней (I–V уровни включительно) команды зачастую выходили в бой неполными. Это связано с тем, что основные активности в игре проходят на высоких уровнях. С выходом обновления 0.9.6., если время ожидания первого игрока в очереди превышало 3 минуты, оставшиеся места в командах стали дополняться разными по силе ботами в зависимости от уровня, а именно:
- в боях I-IV уровня боты равны по силе ботам в кооперативных боях;
- в боях V уровня боты получили улучшенный ИИ и сражаются на уровне ботов в операциях.
Были изменены и правила формирования боёв для новых игроков.
Количество сыгранных новичком боёв для попадания в общую очередь в случайные бои увеличено с 69 до 200. Таким образом, новый игрок сможет получить больше игрового опыта перед переходом к общим случайным боям. Более того, если новый игрок решит, что он готов к сражениям с опытными игроками, то он может выйти в бой на кораблях V уровня и до того момента, как им будет проведено 200 боёв. Таким образом:
- Игрок, сыгравший 200 боёв и меньше и выходящий в боя на кораблях I-IV уровня и выше, попадёт только в очередь для новичков;
- Игрок, сыгравший 200 боёв и меньше, но выходящий в бой на корабле V уровня и выше, попадёт в общую очередь;
- Игроки, сыгравшие больше 200 боёв, всегда попадают в общую очередь.
Если время ожидания первого игрока в очереди превышает 3 минуты, то возможен бой, где будет только один живой игрок, отзеркаленный ботом. В таком случае остальные боты будут распределены по командам зеркально - по уровням и классам кораблей.
Балансировщик низкоуровневых случайных боёв также претерпел изменения:
- В случайные бои I-V уровней стали добавляться боты до формирования полных команд в том случае, если время ожидания первого игрока в очереди превысило 3 минуты. Бой будет сформирован, если в общей очереди была хотя бы одна пара игроков, которые совпадают по уровню корабля.
- Если у игроков корабли разных классов, то после 3 минут ожидания в очереди они будут отзеркалены ботами того такого же класса и уровня, а команды будут дополнены ботами – в рамках ограничений по классам и уровням кораблей для данного уровня боя. То есть, количество ботов в каждой команде будет одинаковым.
- На экран ожидания боя было добавлено визуальное оповещение о максимальном времени ожидания и возможности наполнения боя ботами.
- Стартовый шаблон матчмейкера в боях IV уровня и выше включает максимум 3 линкора и 3 эсминца на команду. Если время ожидания первого игрока в очереди превышает 25 секунд, максимальное количество линкоров и эсминцев увеличивается до 4.
- Полностью исключены бои с 5 линкорами или 5 эсминцами для всех уровней боя.
- Установлен общий лимит на количество эсминцев и подводных лодок в команде.
- Для кораблей VI–IX уровней снижено максимальное количество боёв с кораблями на два уровня выше — теперь оно составит не более 37,5% за последние 16 боёв.
- Время ожидания первого игрока в очереди до достижения лимита в 4 эсминца и 2 подлодки уменьшено с 40 до 25 секунд.
- Улучшен механизм сбора команд при длительном ожидании боя.
Изменены настройки матчмейкера для боёв на кораблях I–V уровней.
Теперь смягчение лимитов матчмейкера и, соответственно, возможность наполнения боёв ботами будет происходить раньше. Это позволит боям на кораблях этих уровней формироваться быстрее.
Снижена вероятность попасть на одну и ту же карту несколько раз подряд в Блицах, Ранговых и Клановых боях.
Количество боёв до выхода из «песочницы» станет меньше, но она будет распространяться на корабли до VI уровня включительно.
Количество боёв дло выхода из «песочницы» теперь равняется 45. Условия распространяются на корабли до VI уровня включительно.