Балансировщик танков для версии 0.9.1

Мир танков Гайды

balansirovshik-wot.jpg

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

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

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

Принципы работы балансировщика

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

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

Схема подбора команды

Балансировщик работает с очередями боевых машин. Каждому уровню и типу боёв соответствует своя очередь, всего очередей 44 (11 уровней боя, 4 различных режима боя). Статистика боёв собирается по каждой из очередей отдельно, причём для арт-САУ собирается своя статистика. На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес и балансировщик подбирает машины в команду, ориентируясь на него.
Рассмотрим работу балансировщика на примере. Был выбран американский тяжёлый танк Т14, отличающийся тем, что он может попадать в бои только 2 уровней - 5 и 6 уровень. Для простоты отключим режимы боёв "Штурм" и "Встречный бой". После нажатия кнопки "В бой" танк Т14 попадает в 2 очереди балансировщика, на последнюю позицию в каждой:

balancer_tanks.jpg

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

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

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

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

balans-tanka_t14.jpg

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

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

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

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

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

Как балансировщик определяет уровень боёв в который попадёт взвод?

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

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

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

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

FAQ по балансировщику танков:

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

Распределение танков по боям

Таблица распределения танков в World of Tanks версии 0.9.1

balans-tankov-wot-0.9.1.jpg

Подбор танков балансировщиком

При подборе танков балансировщик WOT руководствуется следующим принципом:

Берётся танк из очереди и определяется его тип и уровень. Например танк ИС - тяжёлый танк, уровень 7.
Берём строчку 7-тяжелые и смотрим, в какие уровни боёв (столбцы таблицы) попадает этот танк. В нашем примере это уровни (столбцы) с 7 по 9. Рандомно выбираем уровень от 7 до 9 включительно. Например 8. Потом балансировщик начинает обрабатывать очередь танков, выбирая из них танки, которые могут участвовать в 8-м уровне боёв (8-й столбец) и составляет из них команды.

balans-tankov-wot-0.9.1-2.jpg

 

 


Танки | Самолеты | Корабли Наши проекты

World of TanksWorld of WarplanesWorld of Warships

Форум Танкистов
Форум Летчиков
Форум Моряков