Добро пожаловать на Wargaming.net Wiki!
Варианты
/
/
Балансировщик

Балансировщик

Перейти к: навигация, поиск
Версия 17:54, 2 ноября 2014Версия 12:55, 3 ноября 2014
Отмена правки 172981, сделанной участником nhjdbvjd:ru (обс.)
Строка 90:Строка 90:
 === Видео === === Видео ===
 {{#ev:youtube|L918cAvlTbQ}} {{#ev:youtube|L918cAvlTbQ}}
?[[Файл:Balancer_scheme_01.jpg|700px]] 
  
 === Источники информации === === Источники информации ===

Версия 12:55, 3 ноября 2014

Game_manual.png
Балансировщик — программный механизм, в чьи функции входит распределение игроков по командам перед началом боя.


Принцип работы

Основа игры «World of Tanks» — бои двух команд, состоящих из 15 боевых машин каждая. Машины поделены на классы (лёгкие, средние и тяжёлые танки, противотанковые самоходные орудия и самоходная гаубичная артиллерия), каждый класс включает в себя 10 уровней «развития» техники. Чтобы «случайные бои» (основной игровой режим) были интересными для игроков, необходимо выполнение трёх важных условий автоматического подбора танков:

  • Равенство возможностей боевой техники двух противоборствующих команд.
  • Разнообразие составов команд.
  • Непредсказуемость хода боя и его итогов.

Эту задачу и выполняет «балансировщик» — модуль серверной части World of Tanks, который добавляет танки в команду, делает их равными по «силе» и отправляет команды в бой. Балансировщик появился в начале закрытого бета-тестирования игры (на альфа-тесте его не было вообще). В самом первом его варианте уровней боёв было всего два («песок» с уровнями танков 1-2 и общие бои 3-10 уровней). Затем ему на смену пришёл более сложный балансировщик, и появилась первая таблица распределения танков по уровням боёв.

Бои в World of Tanks поделены на одиннадцать уровней, первые 10 из которых примерно соответствуют уровням боевых машин в деревьях прокачки. Например, тяжёлый танк 4 уровня, в соответствии с вышеприведённой таблицей, может попасть только в бои 4 и 5 уровня. Балансный вес - это скрытый численный параметр, определяющий боевую эффективность каждой машины. Он связан с типом машины, её уровнем и ролью в бою.

Работа балансировщика «случайных боёв» базируется на следующих принципах:

  • Любая боевая машина может попасть в бои только своего уровня (см. таблицу), за исключением взводов;
  • Место машины в списке команды определяется её балансным весом;
  • Боевые машины подбираются в команды на основе статистики составов уже собранных команд за прошедшие полчаса;
  • Суммарный балансный вес двух противоборствующих команд различается не более, чем на 10%, за исключением особых случаев;
  • Суммарный балансный вес САУ двух противоборствующих команд различается не более, чем на 20%, количество - не более чем на 1, число САУ на команду - не более 5;
  • Чем больше конкретная машина ждёт своей очереди, тем более высоким становится её приоритет, а если ожидание превышает 1 минуту, балансировщик стремится отправить в бой именно её;
  • Если обе уже собранные команды не удовлетворяют условиям баланса, они расформировываются и набираются заново;

Балансировщик не учитывает:

  • национальную принадлежность танка
  • модули танка (орудие, башня, двигатель и т. д.)
  • установленное на танк дополнительное оборудование и/или снаряжение
  • уровень прокачки экипажа
  • уровень мастерства игрока

Балансировщик работает с очередями боевых машин. Каждому уровню и типу боёв соответствует своя очередь, всего очередей 44 (11 уровней боя, 4 различных режима боя). Статистика боёв собирается по каждой из очередей отдельно, причём для САУ собирается своя статистика. На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес и балансировщик подбирает машины в команду, ориентируясь на него.

Рассмотрим работу балансировщика на примере. Был выбран американский тяжёлый танк Т14, отличающийся тем, что он может попадать в бои только 2 уровней — 5 и 6 уровень. Для простоты отключим режимы боёв «Штурм» и «Встречный бой». После нажатия кнопки «В бой» танк Т14 попадает в 2 очереди балансировщика, на последнюю позицию в каждой:

Balancer_scheme_01.jpg

Так как танк оказался в конце очереди, приоритет на отправку в бой у него низкий. Однако, балансировщик при подборе машин в команду, просматривает очередь на всю длину, поэтому, если в набираемой команде не хватало именно танка с балансным весом, близким к весу Т14, он может сразу оказаться в команде, направляемой в бой. Но может быть придется и подождать. Балансировщик в каждой из очередей, отправив пару команд в бой, тут же начинает набирать следующую пару. Сначала в команды добавляются САУ, в соответствии с правилами из п.5, которые оказываются в командах на местах, балансные веса которых максимально близки весам этих САУ. Затем балансировщик начинает подбор боевых машин на ещё не занятые места. Сначала подбираются танки на места с большим балансным весом, то есть сначала в команду добавляются «топы» списка. При добавлении взвода в команду балансировщик стремится к тому, чтобы балансные веса всех танков взвода были близки к весам свободных мест команды, при этом приоритет у танка с наибольшим балансным весом.

Балансировщик следит за тем, чтобы суммарные балансные веса обеих команд отличались не более, чем на 10 %. Для каждого места в командах очередь просматривается полностью, и из неё выбирается боевая машина, балансный вес которой наиболее близок к балансному весу этого места. Может сложиться такая ситуация (ведь состав очередей на бой непредсказуем), что балансный вес выбранной машины будет заметно отличаться от веса места. В этом случае балансировщик изменяет балансные веса ещё незанятых мест, чтобы скорректировать суммарные веса команд.

Когда пара команд собрана, обе команды проверяются на соответствие текущим условиям баланса, и только если эти условия выполняются, команды отправляются в бой. Иначе команды расформировываются и их набор начинается заново. Может случиться и так, что балансировщик не может завершить подбор боевых машин в команды (например, если в очереди оказалось много однотипных машин, которые не подходят к уже отобранным в команды). В этом случае очередь как бы «засыпает», ожидая изменений (например, кто-то выйдет из неё, так как попал в бой другого типа или уровня, либо кто-то добавится, нажав кнопку «В бой!»). В этот момент очередь «просыпается» и балансировщик пробует доукомплектовать команды снова.

На схеме показано, что Т14 был отобран в команду на бой 5 уровня, формирование которой завершено, и одновременно с этим в команду на бой 6 уровня, формирование которой продолжается. Так как пара команд для боя 5 уровня удовлетворяет текущим условиям баланса, Т14 идёт в бой именно в этой паре:

Balancer_scheme_02.jpg

При этом танк Т14 пропадает из обеих очередей, место, занятое им в команде на бой 6 уровня, освобождается, и балансировщик будет подбирать на это место другую боевую машину. Чем дольше машина игрока находится в очереди, тем более настойчиво балансировщик старается отправить её в бой. При больших сроках ожидания ослабляются критерии отбора. Если отдельный танк или взвод ожидает выхода в бой более 1 минуты, то критерии становятся менее жёсткими, а, начиная с 3 минуты, балансировщик получает разрешение на создание команд неполного состава (но количество боевых машин в командах будет одинаковым). Если же время ожидания машины или взвода в очереди превышает 5 минут, то появляется сообщение, предлагающее выбрать другой танк, и следует переход в ангар.

В World of Tanks, несмотря на огромную популярность во всём мире, иногда бывают ситуации, когда количество игроков онлайн мало. Это происходит в первые минуты появления обновлений игры, на новооткрытых кластерах, а также на серверах открытого тестирования новых версий игры. Балансировщик корректно обрабатывает такие ситуации, хотя подбор команд для каждого из уровней и типов боёв в этих условиях серьёзно затруднён. Но в действие вступает, во-первых, система ослабления критериев отбора (например, разница в балансных весах команды может увеличиться с 10 % до 20 %), если танк долго ждёт своей очереди выйти в бой, во-вторых, балансировщик сам «подстраивается» под ситуацию, ориентируясь на статистику состава команд за последние полчаса.

Балансировщик взводов

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

Особенности формирования шаблона команд и его нюансы

Корректный шаблон создаётся спустя 30 минут работы балансировщика. С ним балансировщик точно знает какую технику брать из очереди, в следствии чего игроки меньше ждут в очереди начало боя. Балансировщик постоянно следит на какой технике игроки входят в бой и если нужно вносит изменения в шаблон. В первые полчаса балансировщик работает без шаблона из-за чего могут сформировываться не совсем сбалансированные команды. Процент таких боёв крайне невелик по отношению ко всем боям на сервере.

Ответы на основные вопросы

1. Существует ли льготный режим боев для недавно приобретенной стоковой техники? Ответ: Нет, стоковая техника балансируется по общим принципам. Льготный режим боев существует только для первых двадцати боев на технике первого уровня. 2. Имеют ли премиум машины приоритет на попадание в верх списка команды? Ответ: Нет, у премиум техники нет никаких преимуществ, кроме повышенной доходности и сниженной стоимости ремонта. Некоторые премиум машины имеют пониженные уровни боев. Узнать которые можно из таблицы в этой теме. 3. В какой момент осуществляется выбор карты? До или после формирования команды? Ответ: Выбор карты осуществляется после формирования обеих команд.

Балансировщик «случайных боёв» World of Tanks постоянно совершенствуется, чтобы обеспечивать выполнение трёх принципов, указанных в начале статьи. В настоящий момент ведётся работа над алгоритмом, призванным обеспечить равномерное распределение лёгких танков по командам. В работе изменения алгоритмов подбора команд для режима «Штурм». Но принципы, заложенные в балансировщик изначально, остаются неизменными, обеспечивая как равные сбалансированные команды (±10 %) в подавляющем большинстве боёв, так и неожиданные составы боёв, требующие от игроков нестандартных решений.

Таблица уровней боёв и распределения техники

Ballance_table_091.jpg Ballance_table_091_prem.jpg

Как пользоваться таблицей: Определяется уровень и класс искомого танка. Например, танк ИС — тяжёлый танк седьмого уровня. Соответственно первый столбик — строка 7 — тяжёлые танки — уровни боёв с 7 по 9. Перемещаясь по столбикам 7-9 можно определить потенциальных противников танка ИС.

В обновлении 0.8.11 из таблицы удалён 12-й уровень боев.

Ограничения по картам

Внимание, в данном разделе идет речь об уровнях боев (столбцы в таблице), а не об уровнях танков.

Низкоуровневые бои проводятся на ограниченном наборе карт. В частности,
1 уровень: Химмельсдорф, Зимний Химмельсдорф, Рудники, Провинция и Малиновка.
2 и 3 уровни: Химмельсдорф, Зимний Химмельсдорф, Рудники, Провинция, Малиновка, Карелия, Прохоровка, Энск.
4 уровень и выше: все, кроме Провинции (доступна только для 1-3 уровней) и Уайдпарк (доступна только для 4-6 уровней).
Карта Комарин доступна только для боев до 8 уровня - введено в 0.9.2

Видео

Источники информации