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