Балансировщик
Версия 09:33, 12 октября 2016 | Версия 09:35, 12 октября 2016 | |||
Строка 1: | Строка 1: | |||
? | + | _NOTITLE_ | ||
+ | {{DISPLAYTITLE:Балансировщик (WoT)2}} | |||
+ | ''Курсивное начертание'' | |||
<div class="wot-frame-1"> | <div class="wot-frame-1"> | |||
[[Файл:Game manual.png|left|link=]] '''Балансировщик''' — программный механизм, в чьи функции входит распределение игроков по командам перед началом боя. | [[Файл:Game manual.png|left|link=]] '''Балансировщик''' — программный механизм, в чьи функции входит распределение игроков по командам перед началом боя. |
Версия 09:35, 12 октября 2016
_NOTITLE_
Курсивное начертание
Содержание
Принцип работы
Основа игры «World of Tanks» — бои двух команд, состоящих из 15 боевых машин каждая. Машины поделены на классы (лёгкие, средние и тяжёлые танки, противотанковые самоходные орудия и самоходная гаубичная артиллерия), каждый класс включает в себя 10 уровней «развития» техники. Чтобы «случайные бои» (основной игровой режим) были интересными для игроков, необходимо выполнение трёх важных условий автоматического подбора танков:
- Равенство возможностей боевой техники двух противоборствующих команд.
- Разнообразие составов команд.
- Непредсказуемость хода боя и его итогов.
Эту задачу и выполняет «балансировщик» — модуль серверной части World of Tanks, который добавляет танки в команду, делает их равными по «силе» и отправляет команды в бой. Балансировщик появился в начале закрытого бета-тестирования игры (на альфа-тесте его не было вообще). В самом первом его варианте уровней боёв было всего два («песок» с уровнями танков 1-2 и общие бои 3-10 уровней). Затем ему на смену пришёл более сложный балансировщик, и появилась первая таблица распределения танков по уровням боёв.
Бои в World of Tanks поделены на одиннадцать уровней, первые 10 из которых примерно соответствуют уровням боевых машин в деревьях прокачки. Например, тяжёлый танк 4 уровня, в соответствии с вышеприведённой таблицей, может попасть только в бои 4 и 5 уровня. Балансный вес - это скрытый численный параметр, определяющий боевую эффективность каждой машины. Он связан с типом машины, её уровнем и ролью в бою.
Работа балансировщика «случайных боёв» базируется на следующих принципах:
- Любая боевая машина может попасть в бои только своего уровня (см. таблицу), за исключением взводов;
- Место машины в списке команды определяется её балансным весом;
- Боевые машины подбираются в команды на основе статистики составов уже собранных команд за прошедшие полчаса;
- Суммарный балансный вес двух противоборствующих команд различается не более, чем на 10%, за исключением особых случаев;
- Суммарный балансный вес САУ двух противоборствующих команд различается не более, чем на 20%, количество - не более чем на 1, число САУ на команду - не более 5;
- Чем больше конкретная машина ждёт своей очереди, тем более высоким становится её приоритет, а если ожидание превышает 1 минуту, балансировщик стремится отправить в бой именно её;
- Если обе уже собранные команды не удовлетворяют условиям баланса, они расформировываются и набираются заново;
Балансировщик не учитывает:
- национальную принадлежность танка
- модули танка (орудие, башня, двигатель и т. д.)
- установленное на танк дополнительное оборудование и/или снаряжение
- уровень прокачки экипажа
- уровень мастерства игрока
Балансировщик работает с очередями боевых машин. Каждому уровню и типу боёв соответствует своя очередь, всего очередей 33 (11 уровней боя, 3 различных режима боя). Статистика боёв собирается по каждой из очередей отдельно, причём для САУ собирается своя статистика. На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес и балансировщик подбирает машины в команду, ориентируясь на него.
Рассмотрим работу балансировщика на примере. Был выбран американский тяжёлый танк Т14, отличающийся тем, что он может попадать в бои только 2 уровней — 5 и 6 уровень. Для простоты отключим режимы боёв «Штурм» и «Встречный бой». После нажатия кнопки «В бой» танк Т14 попадает в 2 очереди балансировщика, на последнюю позицию в каждой:
Так как танк оказался в конце очереди, приоритет на отправку в бой у него низкий. Однако, балансировщик при подборе машин в команду, просматривает очередь на всю длину, поэтому, если в набираемой команде не хватало именно танка с балансным весом, близким к весу Т14, он может сразу оказаться в команде, направляемой в бой. Но может быть придется и подождать. Балансировщик в каждой из очередей, отправив пару команд в бой, тут же начинает набирать следующую пару. Сначала в команды добавляются САУ, в соответствии с правилами из п.5, которые оказываются в командах на местах, балансные веса которых максимально близки весам этих САУ. Затем балансировщик начинает подбор боевых машин на ещё не занятые места. Сначала подбираются танки на места с большим балансным весом, то есть сначала в команду добавляются «топы» списка. При добавлении взвода в команду балансировщик стремится к тому, чтобы балансные веса всех танков взвода были близки к весам свободных мест команды, при этом приоритет у танка с наибольшим балансным весом.
Балансировщик следит за тем, чтобы суммарные балансные веса обеих команд отличались не более, чем на 10 %. Для каждого места в командах очередь просматривается полностью, и из неё выбирается боевая машина, балансный вес которой наиболее близок к балансному весу этого места. Может сложиться такая ситуация (ведь состав очередей на бой непредсказуем), что балансный вес выбранной машины будет заметно отличаться от веса места. В этом случае балансировщик изменяет балансные веса ещё незанятых мест, чтобы скорректировать суммарные веса команд.
Когда пара команд собрана, обе команды проверяются на соответствие текущим условиям баланса, и только если эти условия выполняются, команды отправляются в бой. Иначе команды расформировываются и их набор начинается заново. Может случиться и так, что балансировщик не может завершить подбор боевых машин в команды (например, если в очереди оказалось много однотипных машин, которые не подходят к уже отобранным в команды). В этом случае очередь как бы «засыпает», ожидая изменений (например, кто-то выйдет из неё, так как попал в бой другого типа или уровня, либо кто-то добавится, нажав кнопку «В бой!»). В этот момент очередь «просыпается» и балансировщик пробует доукомплектовать команды снова.
На схеме показано, что Т14 был отобран в команду на бой 5 уровня, формирование которой завершено, и одновременно с этим в команду на бой 6 уровня, формирование которой продолжается. Так как пара команд для боя 5 уровня удовлетворяет текущим условиям баланса, Т14 идёт в бой именно в этой паре:
При этом танк Т14 пропадает из обеих очередей, место, занятое им в команде на бой 6 уровня, освобождается, и балансировщик будет подбирать на это место другую боевую машину. Чем дольше машина игрока находится в очереди, тем более настойчиво балансировщик старается отправить её в бой. При больших сроках ожидания ослабляются критерии отбора. Если отдельный танк или взвод ожидает выхода в бой более 1 минуты, то критерии становятся менее жёсткими, а, начиная с 3 минуты, балансировщик получает разрешение на создание команд неполного состава (но количество боевых машин в командах будет одинаковым). Если же время ожидания машины или взвода в очереди превышает 5 минут, то появляется сообщение, предлагающее выбрать другой танк, и следует переход в ангар.
В World of Tanks, несмотря на огромную популярность во всём мире, иногда бывают ситуации, когда количество игроков онлайн мало. Это происходит в первые минуты появления обновлений игры, на новооткрытых кластерах, а также на серверах открытого тестирования новых версий игры. Балансировщик корректно обрабатывает такие ситуации, хотя подбор команд для каждого из уровней и типов боёв в этих условиях серьёзно затруднён. Но в действие вступает, во-первых, система ослабления критериев отбора (например, разница в балансных весах команды может увеличиться с 10 % до 20 %), если танк долго ждёт своей очереди выйти в бой, во-вторых, балансировщик сам «подстраивается» под ситуацию, ориентируясь на статистику состава команд за последние полчаса.
- Балансировщик взводов
Количество взводных игроков одной команды, не может превышать количество взводных игроков в другой команде более чем на 3 человека. Как балансировщик определяет уровень боёв в который попадёт взвод? Балансировщик оценивает какие танки входят в состав взвода, находит машину с наибольшим балансным весом и дальше работает с ней. Взвод попадает только в те бои, которые подходят для этого танка, балансный вес остальных никак не учитывается.
- Особенности формирования шаблона команд и его нюансы
Корректный шаблон создаётся спустя 30 минут работы балансировщика. С ним балансировщик точно знает какую технику брать из очереди, в следствии чего игроки меньше ждут в очереди начало боя. Балансировщик постоянно следит на какой технике игроки входят в бой и если нужно вносит изменения в шаблон. В первые полчаса балансировщик работает без шаблона из-за чего могут сформировываться не совсем сбалансированные команды. Процент таких боёв крайне невелик по отношению ко всем боям на сервере.
- Ответы на основные вопросы
1. Существует ли льготный режим боев для недавно приобретенной стоковой техники? Ответ: Только что приобретенная техника без взвода имеет повышенный шанс попадания в топ списка команды, однако это правило нивелируется, если сервер не может создать подобный бой в данный момент. Также льготный режим боев существует для первых двадцати боев на технике первого уровня. 2. Имеют ли премиум машины приоритет на попадание в верх списка команды? Ответ: Нет, у премиум техники нет никаких преимуществ, кроме повышенной доходности и сниженной стоимости ремонта. Некоторые премиум машины имеют пониженные уровни боев. Узнать которые можно из таблицы в этой теме. 3. В какой момент осуществляется выбор карты? До или после формирования команды? Ответ: Выбор карты осуществляется после формирования обеих команд.
Балансировщик «случайных боёв» World of Tanks постоянно совершенствуется, чтобы обеспечивать выполнение трёх принципов, указанных в начале статьи. В настоящий момент ведётся работа над алгоритмом, призванным обеспечить равномерное распределение лёгких танков по командам. В работе изменения алгоритмов подбора команд для режима «Штурм». Но принципы, заложенные в балансировщик изначально, остаются неизменными, обеспечивая как равные сбалансированные команды (±10 %) в подавляющем большинстве боёв, так и неожиданные составы боёв, требующие от игроков нестандартных решений.
Таблица уровней боёв и распределения техники
Как пользоваться таблицей: Определяется уровень и класс искомого танка. Например, танк ИС — тяжёлый танк седьмого уровня. Соответственно первый столбик — строка 7 — тяжёлые танки — уровни боёв с 7 по 9. Перемещаясь по столбикам 7-9 можно определить потенциальных противников танка ИС.
В обновлении 0.8.11 из таблицы удалён 12-й уровень боев.
Ограничения по картам
Внимание, в данном разделе идет речь об уровнях боев (столбцы в таблице), а не об уровнях танков.
Низкоуровневые бои проводятся на ограниченном наборе карт. В частности,
1 уровень: Химмельсдорф, Зимний Химмельсдорф, Рудники, Провинция и Малиновка.
2 и 3 уровни: Химмельсдорф, Зимний Химмельсдорф, Рудники, Провинция, Малиновка, Карелия, Прохоровка, Энск.
4 уровень и выше: все, кроме Провинции (доступна только для 1-3 уровней) и Уайдпарк (доступна только для 4-6 уровней).
Карта Комарин доступна только для боев до 8 уровня - введено в 0.9.2
Видео
Источники информации
- Storm. Балансировщик и уровни боёв / Официальный форум