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

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

Версия от 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: выбор карты. Как только балансировщик подбирает шаблон, который соответствует требованиям, он собирает команды, выбирает карту и создаёт бой. Карты для низкоуровневой техники выбираются случайным образом из ограниченного набора. В остальных случаях балансировщик определяет набор карт, которые соответствуют типу боя и диапазону уровней техники в командах. Далее программа анализирует, на каких картах игроки воевали в последних нескольких боях, и выбирает ту, на которой побывало меньше всего танкистов.

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

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

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

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

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

Архив