Игровая механика, обсуждение карт и стратегии поведения при встрече с противником
#24811 Edrard 16 фев 2013, 18:05
Основа ММО-игры "World of Tanks" - бои двух команд, состоящих из 15 боевых машин каждая. Машины поделены на классы (лёгкие, средние и тяжёлые танки, противотанковые самоходные орудия и самоходная гаубичная артиллерия), каждый класс включает в себя 10 уровней "развития" техники. Чтобы "случайные бои" (основной игровой режим) были интересными для игроков, необходимо выполнение трёх важных условий автоматического подбора танков:

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

Эту задачу и выполняет "балансировщик" - модуль серверной части World of Tanks, который добавляет танки в команду, делает их равными по "силе" и отправляет команды в бой. Балансировщик появился в начале закрытого бета-тестирования игры (на альфа-тесте его не было вообще). В самом первом его варианте уровней боёв было всего два ("песок" с уровнями танков 1-2 и общие бои 3-10 уровней). Затем ему на смену пришёл более сложный балансировщик, и появилась первая таблица распределения танков по уровням боёв. В настоящее время доступна таблица для обновления 0.8.3 (см. первое сообщение темы).
Бои в World of Tanks поделены на двенадцать уровней, первые 10 из которых примерно соответствуют уровням боевых машин в деревьях прокачки. Например, тяжёлый танк 4 уровня, в соответствии с вышеприведённой таблицей, может попасть только в бои 4 и 5 уровня. Балансный вес - это скрытый численный параметр, определяющий боевую эффективность каждой машины. Он связан с типом машины, её уровнем и ролью в бою.
Работа балансировщика "случайных боёв" базируется на следующих принципах:

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

Балансировщик работает с очередями боевых машин. Каждому уровню и типу боёв соответствует своя очередь, всего очередей 36 (12 уровней боя, 3 различных режима боя). Статистика боёв собирается по каждой из очередей отдельно, причём для арт-САУ собирается своя статистика. На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес и балансировщик подбирает машины в команду, ориентируясь на него.
Рассмотрим работу балансировщика на примере. Был выбран американский тяжёлый танк Т14, отличающийся тем, что он может попадать в бои только 2 уровней - 5 и 6 уровень. Для простоты отключим режимы боёв "Штурм" и "Встречный бой". После нажатия кнопки "В бой" танк Т14 попадает в 2 очереди балансировщика, на последнюю позицию в каждой:

Изображение


Так как танк оказался в конце очереди, приоритет на отправку в бой у него низкий. Однако, балансировщик при подборе машин в команду, просматривает очередь на всю длину, поэтому, если в набираемой команде не хватало именно танка с балансным весом, близким к весу Т14, он может сразу оказаться в команде, направляемой в бой. Но может быть придется и подождать. Балансировщик в каждой из очередей, отправив пару команд в бой, тут же начинает набирать следующую пару. Сначала в команды добавляются арт-САУ, в соответствии с правилами из п.5, которые оказываются в командах на местах, балансные веса которых максимально близки весам этих арт-САУ. Затем балансировщик начинает подбор боевых машин на ещё не занятые места. Сначала подбираются танки на места с большим балансным весом, т.е. сначала в команду добавляются "топы" списка. При добавлении взвода в команду балансировщик стремится к тому, чтобы балансные веса всех танков взвода были близки к весам свободных мест команды, при этом приоритет у танка с наибольшим балансным весом.
Балансировщик следит за тем, чтобы суммарные балансные веса обеих команд отличались не более, чем на 10%. Для каждого места в командах очередь просматривается полностью, и из неё выбирается боевая машина, балансный вес которой наиболее близок к балансному весу этого места. Может сложиться такая ситуация (ведь состав очередей на бой непредсказуем), что балансный вес выбранной машины будет заметно отличаться от веса места. В этом случае балансировщик изменяет балансные веса ещё незанятых мест, чтобы скорректировать суммарные веса команд.
Когда пара команд собрана, обе команды проверяются на соответствие текущим условиям баланса, и только если эти условия выполняются, команды отправляются в бой. Иначе команды расформировываются и их набор начинается заново. Может случиться и так, что балансировщик не может завершить подбор боевых машин в команды (например, если в очереди оказалось много однотипных машин, которые не подходят к уже отобранным в команды). В этом случае очередь как бы "засыпает", ожидая изменений (например, кто-то выйдет из неё, так как попал в бой другого типа или уровня, либо кто-то добавится, нажав кнопку "В бой!"). В этот момент очередь "просыпается" и балансировщик пробует доукомплектовать команды снова.
На схеме показано, что Т14 был отобран в команду на бой 5 уровня, формирование которой завершено, и одновременно с этим в команду на бой 6 уровня, формирование которой продолжается. Так как пара команд для боя 5 уровня удовлетворяет текущим условиям баланса, Т14 идёт в бой именно в этой паре:

Изображение
#24828 SteelnGun 17 фев 2013, 12:21
"Балансировщик работает с очередями боевых машин. Каждому уровню и типу боёв соответствует своя очередь, всего очередей 36 (12 уровней боя, 3 различных режима боя). Статистика боёв собирается по каждой из очередей отдельно, причём для арт-САУ собирается своя статистика. На основе собранной статистики для каждого из 15 мест в команде рассчитывается примерный балансный вес и балансировщик подбирает машины в команду, ориентируясь на него."

А это что значит ? Какая такая статистика ?
#24849 Ghenya 17 фев 2013, 18:37
Самое интересное осталось недосказанным. "Последняя статистика за 30 минут". Сюда явно входит вероятность оказаться в топе. Наверняка есть что-то ещё. Что именно?

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Реклама | Adv
cron