Добро пожаловать на Леста Игры Wiki!
Варианты
/
/
Балансировщик

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

Перейти к: навигация, поиск
Версия 17:54, 2 ноября 2014Текущая версия на 06:11, 2 октября 2023 
не показаны 43 промежуточные версии 17 участников
Строка 1:Строка 1:
 += Балансировщик =
 +
 <div class="wot-frame-1"> <div class="wot-frame-1">
?[[Файл:Game manual.png|left|link=]] '''Балансировщик''' — программный механизм, в чьи функции входит распределение игроков по командам перед началом боя.+[[Файл:Main reward large.png|250px|left|link=]] '''Балансировщик''' — программный механизм, в чьи функции входит распределение игроков по командам перед началом боя.
 </div> </div>
 <noinclude> <noinclude>
  
?=== Принцип работы ===+=== Введение ===
?Основа игры «World of Tanks» — бои двух команд, состоящих из 15 боевых машин каждая. Машины поделены на классы (лёгкие, средние и тяжёлые танки, противотанковые самоходные орудия и самоходная гаубичная артиллерия), каждый класс включает в себя 10 уровней «развития» техники. Чтобы «случайные бои» (основной игровой режим) были интересными для игроков, необходимо выполнение трёх важных условий автоматического подбора танков:+Основа игры «Мир Танков» — бои двух команд, состоящих из 15 боевых машин каждая. Машины поделены на классы (лёгкие, средние и тяжёлые танки, противотанковые самоходные орудия и самоходная гаубичная артиллерия), каждый класс включает в себя 10 уровней «развития» техники. Чтобы «случайные бои» (основной игровой режим) были интересными для игроков, необходимо выполнение трёх важных условий автоматического подбора танков:
 * Равенство возможностей боевой техники двух противоборствующих команд. * Равенство возможностей боевой техники двух противоборствующих команд.
 * Разнообразие составов команд. * Разнообразие составов команд.
 * Непредсказуемость хода боя и его итогов. * Непредсказуемость хода боя и его итогов.
  
?Эту задачу и выполняет «балансировщик» — модуль серверной части World of Tanks, который добавляет танки в команду, делает их равными по «силе» и отправляет команды в бой. Балансировщик появился в начале закрытого бета-тестирования игры (на альфа-тесте его не было вообще). В самом первом его варианте уровней боёв было всего два («песок» с уровнями танков 1-2 и общие бои 3-10 уровней). Затем ему на смену пришёл более сложный балансировщик, и появилась первая таблица распределения танков по уровням боёв. +Эту задачу и выполняет «балансировщик» — модуль серверной части Мира Танков, который добавляет танки в команду, делает их равными по «силе» и отправляет команды в бой. Балансировщик появился в начале закрытого бета-тестирования игры (на альфа-тесте его не было вообще). В самом первом его варианте уровней боёв было всего два («песок» с уровнями танков 1-2 и общие бои 3-10 уровней). Затем ему на смену пришёл более сложный балансировщик, который постоянно совершенствуется.
  
?Бои в World of Tanks поделены на одиннадцать уровней, первые 10 из которых примерно соответствуют уровням боевых машин в деревьях прокачки. Например, тяжёлый танк 4 уровня, в соответствии с вышеприведённой таблицей, может попасть только в бои 4 и 5 уровня. Балансный вес - это скрытый численный параметр, определяющий боевую эффективность каждой машины. Он связан с типом машины, её уровнем и ролью в бою.+=== Принцип работы ===
 +Система анализирует машины в очереди и выбирает один из шаблонов — серверных алгоритмов для сбора команд, которые определяют количество машин в верхней, средней и нижней частях списка.
  
?Работа балансировщика «случайных боёв» базируется на следующих принципах:+Балансировщик начинает свою работу с попытки создать трёхуровневый бой с использованием шаблона 3/5/7 (три машины в верхней, пять машин в средней и семь машин в нижней части списка) или другого его варианта (например, 3/4/8, 3/3/9 и т. д.). Выбранный балансировщиком вариант зависит от состава очереди. В любом случае не будет боёв, где количество машин в верхней части списка превышает количество машин в середине. Руководствуясь тем же принципом, балансировщик не создаёт боёв, где количество машин в середине превышает количество машин внизу списка. Всегда будут соблюдаться следующие правила:
?* Любая боевая машина может попасть в бои только своего уровня (см. таблицу), за исключением взводов;+
?* Место машины в списке команды определяется её балансным весом;+
?* Боевые машины подбираются в команды на основе статистики составов уже собранных команд за прошедшие полчаса;+
?* Суммарный балансный вес двух противоборствующих команд различается не более, чем на 10%, за исключением особых случаев;+
?* Суммарный балансный вес САУ двух противоборствующих команд различается не более, чем на 20%, количество - не более чем на 1, число САУ на команду - не более 5;+
?* Чем больше конкретная машина ждёт своей очереди, тем более высоким становится её приоритет, а если ожидание превышает 1 минуту, балансировщик стремится отправить в бой именно её;+
?* Если обе уже собранные команды не удовлетворяют условиям баланса, они расформировываются и набираются заново;+
  
?Балансировщик не учитывает:+* машин вверху списка не может быть больше, чем в середине;
?* национальную принадлежность танка+* машин в середине списка не может быть больше, чем в нижней части.
?* модули танка (орудие, башня, двигатель и т. д.)+
?* установленное на танк дополнительное оборудование и/или снаряжение+
?* уровень прокачки экипажа+
?* уровень мастерства игрока+
  
?Балансировщик работает с очередями боевых машин. Каждому уровню и типу боёв соответствует своя очередь, всего очередей 44 (11 уровней боя, 4 различных режима боя). Статистика боёв собирается по каждой из очередей отдельно, причём для САУ собирается своя статистика. На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес и балансировщик подбирает машины в команду, ориентируясь на него.+Таким образом, балансировщик гарантирует, что, независимо от позиции игрока в списке команды, для него всегда будет достаточное количество машин противника аналогичного уровня, и влияние такого игрока на исход боя увеличивается.
 +<br />
 +<br />
 +С 03 апреля 2019 года принцип работы балансировщика был изменен : добавлены динамические шаблоны, которые должны уменьшить количество боев против техники на два уровня выше, особенно для машин VI и VIII уровней. Танки будут перераспределяться в одноуровневые бои и сражения с разницей в один уровень.
 +Премиум техника VIII уровня c льготным уровнем боёв будет реже встречаться в бою с противником на уровень выше в двухуровневом бою и чаще — с противниками своего уровня или уровнем ниже.
  
?Рассмотрим работу балансировщика на примере. Был выбран американский тяжёлый танк Т14, отличающийся тем, что он может попадать в бои только 2 уровней — 5 и 6 уровень. Для простоты отключим режимы боёв «Штурм» и «Встречный бой». После нажатия кнопки «В бой» танк Т14 попадает в 2 очереди балансировщика, на последнюю позицию в каждой:+С выходом обновления 1.18 были внесены изменения:
 +<br />
  
?[[Файл:Balancer_scheme_01.jpg|700px]]+* '''Балансировка легких/колесных танков VII уровня и выше'''
 + Теперь балансировщик станет «строже» распределять лёгкие танки по командам и всегда будет пытаться подобрать идентичные составы. Это значит, что
 + боёв с «перекосом» по количеству лёгких танков в командах будет гораздо меньше. Кроме того, более строгие правила балансировки коснутся и колёсной
 + техники. Ограничение колёсных танков - до 1 машины на команду. Также добавлено ограничение : не более одного легкого/колёсного танка VII - X
 + уровня на взвод.
  
?Так как танк оказался в конце очереди, приоритет на отправку в бой у него низкий. Однако, балансировщик при подборе машин в команду, просматривает очередь на всю длину, поэтому, если в набираемой команде не хватало именно танка с балансным весом, близким к весу Т14, он может сразу оказаться в команде, направляемой в бой. Но может быть придется и подождать. Балансировщик в каждой из очередей, отправив пару команд в бой, тут же начинает набирать следующую пару. Сначала в команды добавляются САУ, в соответствии с правилами из п.5, которые оказываются в командах на местах, балансные веса которых максимально близки весам этих САУ. Затем балансировщик начинает подбор боевых машин на ещё не занятые места. Сначала подбираются танки на места с большим балансным весом, то есть сначала в команду добавляются «топы» списка. При добавлении взвода в команду балансировщик стремится к тому, чтобы балансные веса всех танков взвода были близки к весам свободных мест команды, при этом приоритет у танка с наибольшим балансным весом.+* '''Количество САУ в боях'''
 + В большинстве боёв будет от 0 до 2 САУ в команде. Балансировщик будет стремиться свести количество боёв с тремя САУ в команде к абсолютному минимуму.
 +Бои с тремя САУ в одной команде будут встречаться в исключительных случаях.
  
?Балансировщик следит за тем, чтобы суммарные балансные веса обеих команд отличались не более, чем на 10 %. Для каждого места в командах очередь просматривается полностью, и из неё выбирается боевая машина, балансный вес которой наиболее близок к балансному весу этого места. Может сложиться такая ситуация (ведь состав очередей на бой непредсказуем), что балансный вес выбранной машины будет заметно отличаться от веса места. В этом случае балансировщик изменяет балансные веса ещё незанятых мест, чтобы скорректировать суммарные веса команд.+Во всех ситуациях балансировщик предпочтёт другую технику из очереди вместо 3-й САУ. Однако в редких случаях, когда другой тип техники недоступен или очередь САУ становится слишком большой, балансировщик заполнит слот 3-й САУ, чтобы уменьшить время ожидания боя.
  
?Когда пара команд собрана, обе команды проверяются на соответствие текущим условиям баланса, и только если эти условия выполняются, команды отправляются в бой. Иначе команды расформировываются и их набор начинается заново. Может случиться и так, что балансировщик не может завершить подбор боевых машин в команды (например, если в очереди оказалось много однотипных машин, которые не подходят к уже отобранным в команды). В этом случае очередь как бы «засыпает», ожидая изменений (например, кто-то выйдет из неё, так как попал в бой другого типа или уровня, либо кто-то добавится, нажав кнопку «В бой!»). В этот момент очередь «просыпается» и балансировщик пробует доукомплектовать команды снова.+Для первоначальной реализации этого ограничения балансировщик будет пытаться подбирать бои, в которых будет не более двух САУ в команде. Однако по прошествии определённого времени это жёсткое правило смягчится: если в очереди находится значительное количество САУ (или другой техники в очереди недостаточно), балансировщик создаст бой с тремя САУ в команде. Количество боёв с тремя САУ будет сильно зависеть от времени суток и дня недели, а также от состава очереди и количества в ней игроков на САУ.
 +<br />
  
?На схеме показано, что Т14 был отобран в команду на бой 5 уровня, формирование которой завершено, и одновременно с этим в команду на бой 6 уровня, формирование которой продолжается. Так как пара команд для боя 5 уровня удовлетворяет текущим условиям баланса, Т14 идёт в бой именно в этой паре:+24 октября 2022 балансировщик стал быстрее формировать команды для I - V уровней техники. На I–IV уровнях техники среднее время ожидания уменьшилось с ≈45 до ≈12 секунд, на V уровнях — с ≈48 до ≈32 секунд. При этом значительно вырастет количество боёв с техникой под управлением искусственного интеллекта (ИИ) на I–V уровнях (на заполненных серверах ИИ будет встречаться реже). Уменьшатся минимально возможные размеры команд: появятся бои 7×7.
  
?[[Файл:Balancer scheme 02.jpg|700px]]+В обновлении 1.19 была произведена доработка "балансировщика" : в своих первых боях новички не будут пересекаться с опытными игроками; первые бои для них будут создаваться только с другими новичками или ботами.
  
?При этом танк Т14 пропадает из обеих очередей, место, занятое им в команде на бой 6 уровня, освобождается, и балансировщик будет подбирать на это место другую боевую машину. Чем дольше машина игрока находится в очереди, тем более настойчиво балансировщик старается отправить её в бой. При больших сроках ожидания ослабляются критерии отбора. Если отдельный танк или взвод ожидает выхода в бой более 1 минуты, то критерии становятся менее жёсткими, а, начиная с 3 минуты, балансировщик получает разрешение на создание команд неполного состава (но количество боевых машин в командах будет одинаковым). Если же время ожидания машины или взвода в очереди превышает 5 минут, то появляется сообщение, предлагающее выбрать другой танк, и следует переход в ангар.+== Динамические шаблоны ==
 +В отличие от текущего балансировщика с жёстко заданными шаблонами, в новом шаблоны будут динамически подстраиваться под изменяющиеся условия очереди.
  
?В World of Tanks, несмотря на огромную популярность во всём мире, иногда бывают ситуации, когда количество игроков онлайн мало. Это происходит в первые минуты появления обновлений игры, на новооткрытых кластерах, а также на серверах открытого тестирования новых версий игры. Балансировщик корректно обрабатывает такие ситуации, хотя подбор команд для каждого из уровней и типов боёв в этих условиях серьёзно затруднён. Но в действие вступает, во-первых, система ослабления критериев отбора (например, разница в балансных весах команды может увеличиться с 10 % до 20 %), если танк долго ждёт своей очереди выйти в бой, во-вторых, балансировщик сам «подстраивается» под ситуацию, ориентируясь на статистику состава команд за последние полчаса.+Шаблоны 3-5-7 и 5-10 по-прежнему остаются актуальными, но использоваться станут реже — тогда, когда в очереди будет подходящее распределение техники по уровням.
  
?;Балансировщик взводов+Предварительный список шаблонов, которые будут использоваться в новом балансировщике:
?Количество взводных игроков одной команды, не может превышать количество взводных игроков в другой команде более чем на 3 человека.+
?Как балансировщик определяет уровень боёв в который попадёт взвод? Балансировщик оценивает какие танки входят в состав взвода, находит машину с наибольшим балансным весом и дальше работает с ней. Взвод попадает только в те бои, которые подходят для этого танка, балансный вес остальных никак не учитывается.+
  
?;Особенности формирования шаблона команд и его нюансы+*5-10, 7-8, 6-9 и 4-11 для двухуровневых боёв;
?Корректный шаблон создаётся спустя 30 минут работы балансировщика. С ним балансировщик точно знает какую технику брать из очереди, в следствии чего игроки меньше ждут в очереди начало боя. Балансировщик постоянно следит на какой технике игроки входят в бой и если нужно вносит изменения в шаблон.+*3-5-7, 3-6-6, 4-5-6 и 4-4-7 для трёхуровневых боёв.
?В первые полчаса балансировщик работает без шаблона из-за чего могут сформировываться не совсем сбалансированные команды. Процент таких боёв крайне невелик по отношению ко всем боям на сервере.+<br />
 +<br />
  
?;Ответы на основные вопросы:+Если сбор команд по шаблону 3/5/7 заставит игроков ждать в очереди слишком долго, балансировщик ослабляет требования, чтобы создать бой быстрее. В таком случае могут создаваться двух- и одноуровневые бои. Основная часть сражений при этом будет трёхуровневыми.
?1. Существует ли льготный режим боев для недавно приобретенной стоковой техники?+
?Ответ: Нет, стоковая техника балансируется по общим принципам. Льготный режим боев существует только для первых двадцати боев на технике первого уровня.+
?2. Имеют ли премиум машины приоритет на попадание в верх списка команды?+
?Ответ: Нет, у премиум техники нет никаких преимуществ, кроме повышенной доходности и сниженной стоимости ремонта. Некоторые премиум машины имеют пониженные уровни боев. Узнать которые можно из таблицы в этой теме.+
?3. В какой момент осуществляется выбор карты? До или после формирования команды?+
?Ответ: Выбор карты осуществляется после формирования обеих команд.+
  
?Балансировщик «случайных боёв» World of Tanks постоянно совершенствуется, чтобы обеспечивать выполнение трёх принципов, указанных в начале статьи. В настоящий момент ведётся работа над алгоритмом, призванным обеспечить равномерное распределение лёгких танков по командам. В работе изменения алгоритмов подбора команд для режима «Штурм». Но принципы, заложенные в балансировщик изначально, остаются неизменными, обеспечивая как равные сбалансированные команды (±10 %) в подавляющем большинстве боёв, так и неожиданные составы боёв, требующие от игроков нестандартных решений.+Если игрок провёл несколько боёв подряд внизу списка, балансировщик постарается найти такому игроку место выше, независимо от того, выходил ли игрок в бой на одной и той же или на разных машинах. Однако, если ожидание такого боя занимает слишком много времени, балансировщик отправит игрока в любой подходящий бой. В результате игрокам не придётся ожидать в очереди слишком долго, а составы команд будут отвечать текущей ситуации на сервере.
  
?=== Таблица уровней боёв и распределения техники ===+=== Создание боя ===
?[[Файл:Ballance table 091.jpg|link=]]+
?[[Файл:Ballance table 091 prem.jpg|link=]]+
  
?Как пользоваться таблицей:+'''Этап 1''': определение диапазона уровней техники в бою и типа боя. Сначала балансировщик определяет количество игроков и взводов, подходящее для каждого уровня боя, а также тип боя. Далее система анализирует режимы, указанные игроками, выбранную ими технику, её уровни, а также стандартный или льготный уровень боёв.
?Определяется уровень и класс искомого танка. Например, танк ИС — тяжёлый танк седьмого уровня.+
?Соответственно первый столбик — строка 7 — тяжёлые танки — уровни боёв с 7 по 9.+
?Перемещаясь по столбикам 7-9 можно определить потенциальных противников танка ИС.+
  
?В обновлении 0.8.11 из таблицы удалён 12-й уровень боев.+'''Этап 2''': создание двух равноценных команд. Определив диапазон уровней техники в бою и тип боя, система пытается распределить игроков по командам, учитывая балансные требования и ограничения:
  
?=== Ограничения по картам ===+* Шаблоны: обе команды должны соответствовать шаблону: количество техники вверху, в середине и внизу списка должно быть одинаковым.
?''Внимание, в данном разделе идет речь об уровнях боев (столбцы в таблице), а не об уровнях танков.''+* САУ: количество САУ ограничено тремя машинами в команде.
 +* Взводы: в случайных боях разрешены только одноуровневые взводы. Разница в количестве взводных игроков должна быть не более трёх.
 +* Типы техники: разница в количестве САУ, лёгких танков и ПТ-САУ в пределах каждой части списка команды должна быть не более одной машины.
  
?Низкоуровневые бои проводятся на ограниченном наборе карт. В частности,<br />+При этом балансировщик '''НЕ учитывает''' нацию техники, конфигурацию модулей, оборудование, снаряжение, уровень экипажа и статистику игроков, за исключением количества боёв. Последнее учитывается при создании отдельных боёв для новичков.
?1 уровень: [https://wiki.wargaming.net/ru/%D0%A5%D0%B8%D0%BC%D0%BC%D0%B5%D0%BB%D1%8C%D1%81%D0%B4%D0%BE%D1%80%D1%84 Химмельсдорф], [https://wiki.wargaming.net/ru/%D0%97%D0%B8%D0%BC%D0%BD%D0%B8%D0%B9_%D0%A5%D0%B8%D0%BC%D0%BC%D0%B5%D0%BB%D1%8C%D1%81%D0%B4%D0%BE%D1%80%D1%84 Зимний Химмельсдорф], [https://wiki.wargaming.net/ru/%D0%A0%D1%83%D0%B4%D0%BD%D0%B8%D0%BA%D0%B8 Рудники], [https://wiki.wargaming.net/ru/%D0%9F%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F Провинция] и [https://wiki.wargaming.net/ru/%D0%9C%D0%B0%D0%BB%D0%B8%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0 Малиновка].<br />+
?2 и 3 уровни: [https://wiki.wargaming.net/ru/%D0%A5%D0%B8%D0%BC%D0%BC%D0%B5%D0%BB%D1%8C%D1%81%D0%B4%D0%BE%D1%80%D1%84 Химмельсдорф], [https://wiki.wargaming.net/ru/%D0%97%D0%B8%D0%BC%D0%BD%D0%B8%D0%B9_%D0%A5%D0%B8%D0%BC%D0%BC%D0%B5%D0%BB%D1%8C%D1%81%D0%B4%D0%BE%D1%80%D1%84 Зимний Химмельсдорф], [https://wiki.wargaming.net/ru/%D0%A0%D1%83%D0%B4%D0%BD%D0%B8%D0%BA%D0%B8 Рудники], [https://wiki.wargaming.net/ru/%D0%9F%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F Провинция], [https://wiki.wargaming.net/ru/%D0%9C%D0%B0%D0%BB%D0%B8%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0 Малиновка], [https://wiki.wargaming.net/ru/%D0%9A%D0%B0%D1%80%D0%B5%D0%BB%D0%B8%D1%8F Карелия], [https://wiki.wargaming.net/ru/%D0%9F%D1%80%D0%BE%D1%85%D0%BE%D1%80%D0%BE%D0%B2%D0%BA%D0%B0 Прохоровка], [https://wiki.wargaming.net/ru/%D0%AD%D0%BD%D1%81%D0%BA Энск].<br />+
?4 уровень и выше: все, кроме [https://wiki.wargaming.net/ru/%D0%9F%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F Провинции] (доступна только для 1-3 уровней) и [https://wiki.wargaming.net/ru/%D0%A3%D0%B0%D0%B9%D0%B4%D0%BF%D0%B0%D1%80%D0%BA Уайдпарк] (доступна только для 4-6 уровней).<br />+
?Карта Комарин доступна только для боев до 8 уровня - введено в 0.9.2+
  
?=== Видео ===+'''Этап 3''': выбор карты. Как только балансировщик подбирает шаблон, который соответствует требованиям, он собирает команды, выбирает карту и создаёт бой. Карты для низкоуровневой техники выбираются случайным образом из ограниченного набора. В остальных случаях балансировщик определяет набор карт, которые соответствуют типу боя и диапазону уровней техники в командах. Далее программа анализирует, на каких картах игроки воевали в последних нескольких боях, и выбирает ту, на которой побывало меньше всего танкистов.
?{{#ev:youtube|L918cAvlTbQ}}+ 
?[[Файл:Balancer_scheme_01.jpg|700px]]+=== Частые вопросы ===
 +{{QA|Существует ли льготный режим боев для недавно приобретенной стоковой техники?
 +|Только что приобретенная техника без взвода имеет повышенный шанс попадания в топ списка команды, однако это правило нивелируется, если сервер не может создать подобный бой в данный момент. Также льготный режим боев существует для первых двадцати боев на технике первого уровня.}}
 + 
 +{{QA|Имеют ли премиум машины приоритет на попадание в верх списка команды?
 +|Нет, у премиум техники нет никаких преимуществ, кроме повышенной доходности и сниженной стоимости ремонта. Некоторые премиум машины имеют льготные уровни боёв.}}
 + 
 +{{QA|В какой момент осуществляется выбор карты? До или после формирования команды?
 +|Выбор карты осуществляется после формирования обеих команд.}}
  
 === Источники информации === === Источники информации ===
?* [https://forum.worldoftanks.ru/index.php?/topic/41221-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA-%D0%B8-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B8-%D0%B1%D0%BE%D1%91%D0%B2/ gendosx. Балансировщик и уровни боёв] / Официальный форум+* [https://lesta.ru/support/ru/products/wot/article/15708/Статья на официальном портале]
  
 [[Категория:Игровая механика]] [[Категория:Игровая механика]]
 [[Категория:Техника по уровням| ]] [[Категория:Техника по уровням| ]]
 +
 +===Архив===
 +* [[Tank:Старый балансировщик|Балансировщик до версии 9.18]]
 </noinclude> </noinclude>
 +
 +{{#seo:
 +|title=Балансировщик – таблица уровней боев МТ
 +|titlemode=replace
 +|keywords=балансный вес танков в world of tanks, уровни боев танков в wot, у каких танков льготный уровень боев
 +|description=Балансировщик МТ определяет балансный вес танков в Мире танков и распределяет игроков. Таблицу уровней боев МТ смотрите на портале wiki.lesta.ru.
 +}}
 +__NOTOC____NOTITLE__

Текущая версия на 06:11, 2 октября 2023

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

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


Введение

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

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

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

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

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

Балансировщик начинает свою работу с попытки создать трёхуровневый бой с использованием шаблона 3/5/7 (три машины в верхней, пять машин в средней и семь машин в нижней части списка) или другого его варианта (например, 3/4/8, 3/3/9 и т. д.). Выбранный балансировщиком вариант зависит от состава очереди. В любом случае не будет боёв, где количество машин в верхней части списка превышает количество машин в середине. Руководствуясь тем же принципом, балансировщик не создаёт боёв, где количество машин в середине превышает количество машин внизу списка. Всегда будут соблюдаться следующие правила:

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

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

С 03 апреля 2019 года принцип работы балансировщика был изменен : добавлены динамические шаблоны, которые должны уменьшить количество боев против техники на два уровня выше, особенно для машин VI и VIII уровней. Танки будут перераспределяться в одноуровневые бои и сражения с разницей в один уровень. Премиум техника VIII уровня c льготным уровнем боёв будет реже встречаться в бою с противником на уровень выше в двухуровневом бою и чаще — с противниками своего уровня или уровнем ниже.

С выходом обновления 1.18 были внесены изменения:

  • Балансировка легких/колесных танков VII уровня и выше
Теперь балансировщик станет «строже» распределять лёгкие танки по командам и всегда будет пытаться подобрать идентичные составы. Это значит, что
боёв с «перекосом» по количеству лёгких танков в командах будет гораздо меньше. Кроме того, более строгие правила балансировки коснутся и колёсной
техники. Ограничение колёсных танков - до 1 машины на команду. Также добавлено ограничение : не более одного легкого/колёсного танка VII - X
уровня на взвод.
  • Количество САУ в боях
В большинстве боёв будет от 0 до 2 САУ в команде. Балансировщик будет стремиться свести количество боёв с тремя САУ в команде к абсолютному минимуму.

Бои с тремя САУ в одной команде будут встречаться в исключительных случаях.

Во всех ситуациях балансировщик предпочтёт другую технику из очереди вместо 3-й САУ. Однако в редких случаях, когда другой тип техники недоступен или очередь САУ становится слишком большой, балансировщик заполнит слот 3-й САУ, чтобы уменьшить время ожидания боя.

Для первоначальной реализации этого ограничения балансировщик будет пытаться подбирать бои, в которых будет не более двух САУ в команде. Однако по прошествии определённого времени это жёсткое правило смягчится: если в очереди находится значительное количество САУ (или другой техники в очереди недостаточно), балансировщик создаст бой с тремя САУ в команде. Количество боёв с тремя САУ будет сильно зависеть от времени суток и дня недели, а также от состава очереди и количества в ней игроков на САУ.

24 октября 2022 балансировщик стал быстрее формировать команды для I - V уровней техники. На I–IV уровнях техники среднее время ожидания уменьшилось с ≈45 до ≈12 секунд, на V уровнях — с ≈48 до ≈32 секунд. При этом значительно вырастет количество боёв с техникой под управлением искусственного интеллекта (ИИ) на I–V уровнях (на заполненных серверах ИИ будет встречаться реже). Уменьшатся минимально возможные размеры команд: появятся бои 7×7.

В обновлении 1.19 была произведена доработка "балансировщика" : в своих первых боях новички не будут пересекаться с опытными игроками; первые бои для них будут создаваться только с другими новичками или ботами.

Динамические шаблоны

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

Шаблоны 3-5-7 и 5-10 по-прежнему остаются актуальными, но использоваться станут реже — тогда, когда в очереди будет подходящее распределение техники по уровням.

Предварительный список шаблонов, которые будут использоваться в новом балансировщике:

  • 5-10, 7-8, 6-9 и 4-11 для двухуровневых боёв;
  • 3-5-7, 3-6-6, 4-5-6 и 4-4-7 для трёхуровневых боёв.



Если сбор команд по шаблону 3/5/7 заставит игроков ждать в очереди слишком долго, балансировщик ослабляет требования, чтобы создать бой быстрее. В таком случае могут создаваться двух- и одноуровневые бои. Основная часть сражений при этом будет трёхуровневыми.

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

Создание боя

Этап 1: определение диапазона уровней техники в бою и типа боя. Сначала балансировщик определяет количество игроков и взводов, подходящее для каждого уровня боя, а также тип боя. Далее система анализирует режимы, указанные игроками, выбранную ими технику, её уровни, а также стандартный или льготный уровень боёв.

Этап 2: создание двух равноценных команд. Определив диапазон уровней техники в бою и тип боя, система пытается распределить игроков по командам, учитывая балансные требования и ограничения:

  • Шаблоны: обе команды должны соответствовать шаблону: количество техники вверху, в середине и внизу списка должно быть одинаковым.
  • САУ: количество САУ ограничено тремя машинами в команде.
  • Взводы: в случайных боях разрешены только одноуровневые взводы. Разница в количестве взводных игроков должна быть не более трёх.
  • Типы техники: разница в количестве САУ, лёгких танков и ПТ-САУ в пределах каждой части списка команды должна быть не более одной машины.

При этом балансировщик НЕ учитывает нацию техники, конфигурацию модулей, оборудование, снаряжение, уровень экипажа и статистику игроков, за исключением количества боёв. Последнее учитывается при создании отдельных боёв для новичков.

Этап 3: выбор карты. Как только балансировщик подбирает шаблон, который соответствует требованиям, он собирает команды, выбирает карту и создаёт бой. Карты для низкоуровневой техники выбираются случайным образом из ограниченного набора. В остальных случаях балансировщик определяет набор карт, которые соответствуют типу боя и диапазону уровней техники в командах. Далее программа анализирует, на каких картах игроки воевали в последних нескольких боях, и выбирает ту, на которой побывало меньше всего танкистов.

Частые вопросы

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

В: Имеют ли премиум машины приоритет на попадание в верх списка команды?
О: Нет, у премиум техники нет никаких преимуществ, кроме повышенной доходности и сниженной стоимости ремонта. Некоторые премиум машины имеют льготные уровни боёв.

В: В какой момент осуществляется выбор карты? До или после формирования команды?
О: Выбор карты осуществляется после формирования обеих команд.

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

Архив