World of Warplanes - Бессердечный баланс: логика формирования команд

1901
0

Козни балансировщика, Великий Рандом, «броняня», рикошеты и непробития в World of Tanks, тараны и столкновения в World of Warplanes – игры вселенной Wargaming.net славны внутренними особенностями, которые игроками часто воспринимаются как случайности.

Действительно, некоторые из них происходят по мановению виртуального «кубика», чтобы внести разнообразие в геймплей, однако за многим скрывается сложный механизм. И разработчики решили рассказать про логику работы балансировщика в ММО-экшене World of Warplanes.

Читать статью   Система балансирования сторон в игре построена таким образом, чтобы, с одной стороны, игроки не проводили много времени в очереди, а с другой команды формировались справедливо и были равноценны. Для этого используется довольно сложный механизм отбора самолетов и звеньев из очереди.

Вначале балансировщик проверяет, есть ли в очереди в бой достаточное число самолетов нужного уровня, чтобы начать формировать комнату. Для разных уровней боев это количество разное, например, для сборки комнаты I-II уровней нужно 60 подходящих самолетов, для II-III – 30, и так далее. Это сделано для того, чтобы не возникало ситуаций, когда все самолеты, например, II уровня ушли в бой I-II, и для II-III в очереди остается слишком мало игроков. Конечно, подобное решение не идеально, однако оно лучшим образом работает в условиях довольно небольшого числа игроков с самолетами некоторых уровней (например, обладателей IX-X). В будущем реализация балансировщика изменится и станет более сложной и гибкой.

Итак, у нас сформировалась игровая комната из 30 самолетов, формально подходящих под базовые условия. Теперь нужно их отсортировать и составить две равнозначных команды. Для этого используется так называемый «балансный вес» самолетов. Общий вес команд должен быть максимально равен. В World of Warplanes не учитываются характеристики конкретных моделей самолетов, только уровень и класс. Для балансировщика принято, что самолет III уровня равноценен двум первым, IV – двум вторым, и так далее. Для классов установлены отдельные коэффициенты, которые учитываются при формировании команд: для штурмовиков – 0,3, для тяжелых истребителей – 0,25, для палубных и легких истребителей – 0,1. Они определяют приоритет их балансировки при возникновении конфликта (например, в одной команде есть штурмовик, а в другой нет) – в первую очередь алгоритм будет «выравнивать» штурмовики, отсеивая из комнаты самолеты других классов.

Отдельно учитывается балансный вес звена, который равен сумме весов самолетов, входящих в него. Уровень боев для звена соответствует уровню боев для самолета максимального уровня в нем (звено 3+4+5 может попасть в бои от III до VII уровней). Однако во время сортировки для звена применяется дополнительная составляющая, равная вес_старшего_самолета_в_звене + 0,01 · (размер_звена — 1). Таким образом, для целей сортировки вес звена из 3 самолетов будет на 0,02 выше, чем суммарный вес одиночных самолетов того же уровня. Благодаря этому мы можем свести к минимуму ситуации, когда в высокоуровневый бой попадают одиночные самолеты низкого уровня – балансировщик предпочтет заменить несколько «одиночек» звеном с таким же весом.

Дополнительно балансируются топ-3 команд: (Top1A – Top1B) · Ktop1 (разница между весами двух топ-1 умножается на коэффициент для них. Коэффициенты – 4, 2, 1 для первых трех мест). Полученные значения добавляются в балансный вес команды.

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

Подобный процесс проходит каждый «тик» сервера, равный одной секунде. Т.е. каждую секунду балансировщик проверяет очередь, если есть возможность – создает новые комнаты и начинает с ними работать, одновременно формируя команды в уже созданных.

Другие публикации по теме
Русский сервер World of Warplanes закроют 13 декабря
Русский сервер World of Warplanes закроют 13 декабря
Разработчики решили уйти из России и Беларуси. Впрочем, новость про ММО с самолетами заметили лишь спустя неделю.
23 июня 2022
3078
1
Форум
Самолет из личной коллекции вокалиста Iron Maiden появится в World of Warplanes
Самолет из личной коллекции вокалиста Iron Maiden появится в World of Warplanes
Iron Maiden и World of Warplanes подготовили очередной сюрприз для своих поклонников: пройдя особый марафон, игроки смогут получить уникальный истребитель Supermarine Spitfire Vb IM, который находится в личной коллекции фронтмена легендарной группы Брюса Диккенса.
6 августа 2018
3954
3
Форум
Wargaming будет отмечать 20-летний юбилей в своих играх месяц напролет
Wargaming будет отмечать 20-летний юбилей в своих играх месяц напролет
В августе Wargaming исполняется 20 лет, и весь месяц компания будет отмечать юбилей вместе с 200-миллионным сообществом танкистов, пилотов, капитанов и командиров. Во всех проектах Wargaming пройдут праздничные события — в честь юбилея и в благодарность игрокам, помогавшим разработчикам создавать и совершенствовать игры.
3 августа 2018
2397
8
Форум
Пользователи:
Оценка редакции: