Перейти к содержанию

Главный балансировщик до обновления 0.9.18

Материал из Леста Wiki

Основная статья: Главный балансировщик

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

О главном


В случайных боях Мира танков куётся основное игровое достижение игроков — их статистика. Потому главный балансировщик до обновления 0.9.18 автоматически составлял бои двух команд из 15 игроков по старым правилам:

  • все машины делятся на классы (лёгкие, средние и тяжёлые танки, противотанковые самоходные орудия и самоходная артиллерия);
  • каждый класс включает в себя 10 уровней исследования техники;
  • подбор игроков осуществлялся по принципу примерного равенства возможностей боевой техники двух команд;
  • второй принцип подбора — разнообразие составов команд;
  • третий принцип подбора — непредсказуемость хода боя и его итогов (ввиду случайности подбора команд).

Таким образом, главный балансировщик входит в комплекс серверной части Мира танков, которая добавляет танки в таблицу команд, делает их примерно равными по возможностям и отправляет команды в бой.

Балансировщик появился в начале закрытого бета-тестирования (на альфа-тесте в нём не было необходимости). В самом первом варианте уровней боёв было всего два:

  • «песок» — 1-2 уровни танков;
  • общие бои - 3-10 уровни танков.
Затем на смену двум уровням боёв пришёл более сложный балансировщик, в котором появилась таблица распределения техники по уровням боёв и т. н. балансный вес техники.

В обновлении 0.8.11 из таблицы балансировщика формально был удалён 12-й уровень боёв (но бои только с 10 уровнем техники никуда не удалились).

Случайные бои в Мире танков поделены на одиннадцать уровней. Первые 10 из них примерно соответствуют уровню боевых машин в деревьях исследования. К примеру, танк 10-го уровня мог попасть к танкам 8-10 уровня. Также он мог попасть в бой 11-го уровня, где «десяток» было большинство или даже в упразднённый 12-й уровень боя, где были только «десятки».

У каждого танка также имеется свой балансный вес — скрытый численный параметр, определяющий боевую эффективность каждой машины и её принадлежность к т. н. «льготному» (сниженному) уровню боёв. Он связан с типом машины, её уровнем, ролью в бою и общим балансом (видением разработчиков).

Основные принципы балансировщика


Из основных принципов главного балансировщика для случайных боёв стоит отметить:

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

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

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

Балансировщик работает с «таблицами» — очередями боевых машин. Каждому из 11 уровней боёв и 3 типам случайных боёв соответствует своя из 33-х очередей. Статистика боёв собирается по каждой из очередей отдельно (для САУ собирается отдельная статистика). На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес (количество уровней техники в бою и положение игрока в нём) и осуществляется подбор подходящей команды. В течение одной игровой сессии балансный вес танка может меняться из боя к бою.

Теоретический пример расчёта балансировщика

Рассмотрим работу балансировщика на примере американского тяжёлого танка V уровня Т14. Он может попадать в бои только 2-х уровней: 5 и 6. Для простоты расчётов отключим режимы боёв «штурм» и «встречный бой» (режим «генеральное сражение» появился лишь в обновлении 0.9.20). После нажатия кнопки «в бой» танк Т14 попадает в 2 очереди балансировщика (5-й уровень боя и 6-й уровень боя) на последнюю позицию в каждой.

  • танк оказался в конце очереди, у него низкий приоритет на отправку в бой (высокий тайминг ожидания);
  • однако он может сразу оказаться в команде, направляемой в бой, если балансировщик при просмотре всей длины очереди искал танк с балансным весом, близким к весу Т14. Если это условие отсутствует, T14 придётся подождать;
  • в обеих очередях непрерывно создаются команды и обновляются списки:
сначала в команды добавляются САУ (с ограничениями);
далее подбирается техника с самым большим балансным весом («топы» списка команд);
балансные веса всех танков взводов (при наличии) должны быть близки к весам свободных мест команды (при этом учитывается танк с наибольшим балансным весом). Количество взводных игроков одной команды, не может превышать количество взводных игроков в другой команде более чем на 3 человека;
  • суммарные балансные веса обеих команд отличабтся не более 10 %: каждое свободное место занимает техника с подходящим балансным весом;
  • когда пара команд собрана, обе команды проверяются на соответствие текущим условиям баланса (в т. ч. соответствию шаблону и равенству команд) и отправляются в бой. В противном случае команды расформировываются и их набор начинается заново.
Порой балансировщик не может завершить подбор боевых машин в команды (например, если в очереди оказалось много однотипных машин, которые не вписываются в текущие места команд). В этом случае тайминг ожидания увеличивается до наступления благоприятных изменений в очереди. Однако, он не может превышать стандартные 5 минут.

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

При этом наш Т14 пропадает из обеих очередей, и в бой 6 уровня попадает другой танк. Чем дольше машина игрока находится в очереди, тем более настойчиво балансировщик старается отправить её в бой.

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

Главный балансировщик корректно подстраивается под любые возникающие ситуации, среди которых особенно тяжелы низкие очереди игроков. Тут в действие вступает и система ослабления критериев подбора (например, разница в балансных весах команды может увеличиться с 10 % до 20 %), и адаптация балансировщика под конкретную ситуацию на основе статистики состава команд за последние полчаса.

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

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

Недавно приобретенная исследуемая техника некоторое время имеет повышенный балансный вес (шанс попадания в «топ» списка команды). Но это обстоятельство дезавуируется при упомянутых выше сложностях с выходом в бой. Также техника 1-го уровня имеет повышенный балансный вес для первых 20-ти боёв

Ограничение балансировщика по картам


Выбор игровой локации (карты) осуществляется после формирования состава обеих команд. В игре существует «ранжирование» карт — ограничение по уровню боёв (не по уровню техники).[1]

Ссылки