Балансувальник WoT і рівні боїв

На підставі такої таблиці можна скласти уявлення про балансному вазі будь-якої техніки в грі і системі розподілу її по боям:

На підставі такої таблиці можна скласти уявлення про балансному вазі будь-якої техніки в грі і системі розподілу її по боям:

Балансувальник підбирає танки в бій наступним чином:
Береться танк з черги і визначається його тип і рівень. Наприклад, танк ІС - важкий танк, рівень 7.
Беремо рядки 7 - «важкі» і дивимося, в які рівні боїв (стовпців таблиці) потрапляє цей танк. У нашому прикладі це рівні (стовпців) з 7 по 9.
Рандомно вибирається рівень від 7 до 9 включно (наприклад, 8). Потім балансувальник починає обробляти чергу танків, вибираючи з них танки, які можуть брати участь в 8-м рівні боїв (8-й стовпець) і становить з них команди.

Тим з Вас, хто хоче дізнатися більш детальну інформацію про балансувальник і принципи його роботи, рекомендуємо прочитати це:

Принципи роботи балансувальника

Основа ММО-гри «World of Tanks» - бої двох команд, що складаються з 15 бойових машин кожна. Машини поділені на класи (легкі, середні і важкі танки, протитанкові самохідні гармати і самохідна гаубична артилерія), кожен клас включає в себе 10 рівнів «розвитку» техніки. Щоб «випадкові бої» (основний ігровий режим) були цікавими для гравців, необхідне виконання трьох важливих умов автоматичного підбору танків:

  • Рівність можливостей бойової техніки двох протиборчих команд;
  • Різноманітність складів команд;
  • Непередбачуваність ходу бою і його підсумків.

Це завдання і виконує «балансувальник» - модуль серверної частини World of Tanks, який додає танки в команду, робить їх рівними по «силі» і відправляє команди в бій.
Бої в World of Tanks поділені на дванадцять рівнів, перші 10 з яких приблизно відповідають рівням бойових машин в деревах прокачування. Наприклад, важкий танк 4 рівня, відповідно до вищенаведеної таблицею, може потрапити тільки в бої 4 і 5 рівня. Балансний вага - це прихований чисельний параметр, що визначає бойову ефективність кожної машини. Він пов'язаний з типом машини, її рівнем і роллю в бою.

Робота балансувальника «випадкових боїв» базується на наступних принципах:

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

Балансувальник працює з чергами бойових машин. Кожному рівню і типу боїв відповідає своя чергу, всього черг 36 (12 рівнів бою, 3 різних режиму бою). Статистика боїв збирається по кожній з черг окремо, причому для арт-САУ збирається своя статистика. На основі зібраної статистики для кожного з 15 місць в команді розраховується приблизний балансовий вага і балансувальник підбирає машини в команду, орієнтуючись на нього.

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

Після натискання кнопки «В бій» танк Т14 потрапляє в 2 черги балансувальника, на останню позицію в кожній:

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

Балансувальник стежить за тим, щоб сумарні балансові ваги обох команд відрізнялися не більше, ніж на 10%. Для кожного місця в командах чергу проглядається повністю, і з неї вибирається бойова машина, балансний вага якої найбільш близький до балансному вазі цього місця. Може скластися така ситуація (адже склад черг на бій непередбачуваний), що балансний вага обраної машини буде помітно відрізнятися від ваги місця. В цьому випадку балансувальник змінює балансні ваги ще незайнятих місць, щоб скоригувати сумарні ваги команд.
Коли пара команд зібрана, обидві команди перевіряються на відповідність поточним умовам балансу, і тільки якщо ці умови виконуються, команди відправляються в бій. Інакше команди розформовується і їх набір починається заново. Може трапитися і так, що балансувальник не може завершити підбір бойових машин в команди (наприклад, якщо в черзі виявилося багато однотипних машин, які не підходять до вже відібраним в команди). В цьому випадку чергу як би «засинає», чекаючи змін (наприклад, хтось вийде з неї, так як потрапив в бій іншого типу або рівня, або хтось додасться, натиснувши кнопку «В бій!»). У цей момент чергу «прокидається» і балансувальник пробує доукомплектувати команди знову.

На схемі показано, що Т14 був відібраний в команду на бій 5 рівня, формування якої завершено, і одночасно з цим в команду на бій 6 рівня, формування якої триває. Так як пара команд для бою 5 рівня задовольняє поточним умовам балансу, Т14 йде в бій саме в цій парі:

Так як пара команд для бою 5 рівня задовольняє поточним умовам балансу, Т14 йде в бій саме в цій парі:

При цьому танк Т14 пропадає з обох черг, місце, зайняте ним в команді на бій 6 рівня, звільняється, і балансувальник буде підбирати на це місце іншу бойову машину. Чим довше машина гравця знаходиться в черзі, тим наполегливіше балансувальник намагається відправити її в бій. При великих термінах очікування послаблюються критерії відбору. Якщо окремий танк або взвод очікує виходу в бій більше 1 хвилини, то критерії стають менш жорсткими, а, починаючи з 2 хвилини, балансувальник отримує дозвіл на створення команд неповного складу (але кількість бойових машин в командах буде однаковим). Якщо ж час очікування машини або взводу в черзі перевищує 5 хвилин, то з'являється повідомлення, що пропонує вибрати інший танк, і слід перехід в ангар.
У World of Tanks, незважаючи на величезну популярність у всьому світі, іноді бувають ситуації, коли кількість гравців онлайн мало. Це відбувається в перші хвилини появи оновлень гри, на нововідкритих кластерах, а також на серверах відкритого тестування нових версій гри. Балансувальник коректно обробляє такі ситуації, хоча підбір команд для кожного з рівнів і типів боїв в цих умовах серйозно утруднений. Але в дію вступає, по-перше, система ослаблення критеріїв відбору (наприклад, різниця в балансних вагах команди може збільшитися з 10% до 20%), якщо танк довго чекає своєї черги вийти в бій, по-друге, балансувальник сам «підлаштовується» під ситуацію, орієнтуючись на статистику складу команд за останні півгодини.

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

Нижче знаходиться відео, в якому детально описується принцип роботи ігрового балансувальника World of Tanks.

** Матеріал підготовлений за даними порталу http://forum.worldoftanks.ru