Баг балансировщика в World of Tanks | WOT Express первоисточник новостей

Баг балансировщика в World of Tanks | WOT Express первоисточник новостей World of Tanks

Балансировщик на основе имитации отжига

В конечном варианте мы остановились на балансировщике, который работает по следующему алгоритму. Все игроки, которые нажимают кнопку «В бой», попадают в общую очередь. Балансировщик в бесконечном цикле делает следующее:

Для формирования команд из списка подходящих игроков используется метод имитации отжига. Подробнее про сам метод можно почитать

Баг балансировщика в World of Tanks | WOT Express первоисточник новостей
Поиск глобального максимума методом имитации отжига

В контексте применения к формированию команд алгоритм следующий:

Основное преимущество данного подхода: для добавления новых требований достаточно модифицировать оценочную функцию. Нет необходимости писать код, который будет описывать, как именно получить то, что мы хотим. Достаточно добавить правило, которое смотрит на сформированную команду и говорит, хорошо ли она сбалансирована или нет.

Хороший пример добавления таких правил — рейтинговые бои. В рейтинговых боях в матчмейкере появилось сразу несколько новых правил:

Баг балансировщика в World of Tanks | WOT Express первоисточник новостейПример профиля игрока из бриллиантовой лиги

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

Недостаток данного подхода — медленная скорость работы. По сравнению с предыдущим вариантом, текущий стал работать приблизительно в 10 раз медленней, даже несмотря на ряд оптимизаций. Кстати, про оптимизации. Большая часть сервера (кроме сети и физики) для игры написана на Python.

Балансировщик был переписан на C и распараллелен на много потоков. Из Python в плюсовый код прилетает запрос на формирования команды. Далее каждый из потоков независимо стартует метод отжига. Как только какой-то поток находит решение, остальные потоки останавливают процесс поиска, и найденное решение возвращается в Python.

Баг балансировщика в World of Tanks | WOT Express первоисточник новостей
Время ожидания и размер очереди на RU сервере (5 секунд в обычных боях и 10 в рейтинговых)

По мере роста онлайна росла и нагрузка на балансировщик. Этой осенью, когда онлайн на RU сервере добрался до 120 тысяч (во время ивента Mad Games), балансировщик перестал справляться. В качестве временной меры мы отключили часть правил, это позволило уменьшить нагрузку. Чтобы избежать подобных проблем в будущем мы сделали матчмейкер распределённым.

World of tanks и мошенники: баги, стримы, видео обзоры — лучшее | пикабу

Приветствую, Пикабу!
Пользуюсь услугами интернет-провайдера ПАО «Ростелеком»(будь он неладен, но альтернативы в частных домах нет), оплачиваю вперёд своевременно. Так вот, 27 октября оплатил за ноябрь месяц, а сегодня, собираясь платить за декабрь, обнаружил, что не могу войти в личный кабинет. Далее восстановил доступ через электронную почту и увидел, что вместо привычного мне положительного баланса, на счету минус. Как оказалось 28 октября (через день после оплаты) кто-то ломанул мой аккаунт в личном кабинете Ростелекома и подключил тариф игровой (на 400 рублей дороже моего), где бонусом был доп. контент для игры World of Tanks. Само собой сменил везде пароли, позвонил в Ростелеком, пообщался с 6 операторами, звонок занял почти полтора часа. Оставил им претензию, но они сказали, что вряд ли компенсируют, так как это возможно я сам взял, да подключил себе эти услуги (да, прикипело у меня знатно). Бонусом оставил обращение в отдел «К» МВД РФ на портале и написал в саппорт wargaming.ru. В личном кабинете Ростелекома узрел, что злоумышленник подключал бонусы к трём аккаунтам в игре.

Моя убедительная просьба к тем, кто играет в World of Tanks, ели увидите игрока с одним из трёх ников: KyCok___M9ICA, B_Knight или ___KeD___ объясните, что взлом — это плохо, рано или поздно справедливость может и покарать, будь то правоохранительные органы или Пикабу.

§

Несколько лет назад, играл я в популярную в те времена онлайн игру.

Че уж там скрывать, это был WoT.

Кто не знает, это игра-войнушка, в танковой тематике времен второй мировой войны.

Не буду томить и расписывать суть игры, и так все понятно.

Катаешься, воюешь, затягивает короче.

Разработчики постарались, игра вышла довольно разнообразной (к слову, сейчас ее слишком захламили, испортили и ЦА постепенно слилась в подобные проекты с более лояльным отношением к игрокам).

Но тогда она была близка к идеалу.

Ну, почти. За исключением одного до боли обидного факта.

Я мог выкачать практически любой танк, да, убить кучу времени, но это не проблема, за исключением голдовых.

На которые нужно было задонатить.

И таких танков, штук наверное около 50, ценой от 2$ до 60$, в зависимости от уровня, а от акционных и подарочных, которые ограниченными тиражами шли и не были в свободной продаже, школьники массово текли и пускали слюни.

Они то и ездят быстрее, и броня толще, и стреляют метко (кстати, так только казалось, на деле, разработчики сами не раз обьявляли что эти танки слабее линейных, отличаются только повышеной доходностью).

Откуда у 14-ти летнего меня такие бабки?

А хотелось ведь на золотых покататься, и камуфляжик донатный тоже хотелось.

И проблема была даже не в том что не было лишних денег, а в том, что даже если бы они и были, меня б жаба задавила, просрать 60$ на игру.

Я на эти деньги месяц могу прожить и ни в чем себе не отказывать )

Ну. Может недели две точно.

И начал я короче думать и планы строить, как получить нужные мне танки, ночи не досыпал.

И таки однажды попал в клан к парням-мажорам, которые задарили парочку бонус-кодов на дешевенькие танчики по 3$ стоимостью (код выглядевший примерно так Y-MEH9-BIG-PISKA, был он одноразовым)

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

Вводишь на официальном сайте и получаешь плюшку.

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

И тут меня осенило, можно ведь этими кодами пользоваться, и весело жить, и не обязательно хату продавать и все деньги в игру кидать.

Пошел я короче в известную соц сеть, искать там коды нахаляву.

таки еще парочку выклянчил у пацанов из игры.

Про WoT:  Cougar Ultimus RGB World of Tanks (CGR-WT2MB-WTK) – купить клавиатуру, сравнение цен интернет-магазинов: фото, характеристики, описание | E-Katalog

И зашел на форум игры, где в специальной теме, мог обменять ненужный мне код на нужный.

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

Их я успешно выменивал на нужные, на форуме.

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

И так, где-то за два месяца, я получил игрового имущества где-то на 400-450$.

И пока мои одноклассники тратили подаренные на дни рождения деньги — на игру.

Я получал все бесплатно.

Но суть рассказа не в этом.

А в том, что бесконечно долго скитаясь вконтакте в поисках кодов, я пролистал тысячи постов о продаже бонус кодов.

И в 99% это был развод.

Т.е создавались фейковые страницы, чаще всего не заморачивающиеся с наполнением контента.

Спамили в группах и сообществах, в качестве «доказательств», скидывали одни и те-же (5-10) фото кодов с самых крупных встреч разработчиков.

Самые умные, распечатывали их на принтере и делали фото на фоне своей страницы.

Переписки вели неграмотно, при прочтении неудобных вопросов — сливались.

Часто, при удачной попытке кинуть на деньги — удаляли страницы.

Действовали по одной схеме:

Реклама в пабликах

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

После короткого и глупого общения, мошенник получал деньги и:

1) Добавлял в чс и не парился.

2) Скидывал левый, нерабочий код, и искренне недоумевал, почему ничего не получилось.

Предлагал «продать» еще один, уже по скидке, и пункт 1.

Путем логического мышления можно было понять что:

1) Код на то что в игре стоит 2500 рублей, ре может стоить 300 рублей.

2) Продавец невдекватен.

3) Бонус кода на эту технику нет уже более двух лет.

Но «покупатели», были на это не способны, и по глупости лишались своих денег (хотя чаще денег своих родителей.

Мы этим очень заинтересовались, и решили провести небольшой эксперимент.

И за неделю активного ведения страницы, и  попыток кинуть людей на деньги и убедительных доводов, мы заработали, не много не мало, около 5200 рублей.

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

Кстати.

Пару раз мы писали таким кидалам, с угрозами написать заявление в полицию, и 15 таки возвращал деньги обманутому человеку.

Закончилось все тем, что один паренек из нашего клана, Андрей, решил доводить дело до конца, связывался с пострадавшими и их родителями, и просил писать заявление в полицию на основании переписок и личных данных с карт на которые перекидывали деньги.

В последний раз когда выходил на связь, хвастался что 6 заявлений было благополучно отправлены в полицию.

Чем все закончилось, мы так и не узнали, в Июле 2022 года, Андрюха погиб.

В чем мораль?

А фиг его.

Сами ищите…

§

Всем привет!

Предыстория: ВГ запустил акцию за Твич премиум, я в ней по участвовал и получил 2 набора: альфа и браво. В этих наборах был в аренде танк SOMUA. Я бы даже так сказал что он мне ЗАШЕЛ, было удовольствие на нем играть.

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

Сегодня решил, загуглить и купить в неофициальных интернет магазинах. Ну собственно попал на лохотрон и -1800р (я читал отзывы и видел комментарии как на самом сайте так и на сторонних, и понимал что может быть развод)!

Деньги, приходят и уходят-это растраты.

Но вот обидно другое:

Картоха, не продавая определенные танки, в премиум магазине, дает хлеб лохотронщикам. Не я единственный кто захочет купить после аренды определенные танки, мне его дали в руки, а потом забрали. обычная психология развода. И да я купил бы у картохи его даже за 3000р. Но вот вопрос в том что я НЕ МОГУ ЕГО КУПИТь!

Что мне делать-рисковать и искать сторонние магазины которые продадут коды. Которые могут просто обмануть! Кинуть!)))

ЧТо мы имеем: картоха сама создает и кормит (косвенно) рынок мошенников: дает в руки товар и расхваливает его, потом забирает, и говорит «может быть когда нибудь я его буду продавать 1 день в году», но я его уже хочу. И ищу где его купить СЕЙЧАС! я создаю спрос, а спрос рождает предложение. На это предложение реагируют мошенники и наживаются.

Я хочу, поднять этот пост в топ (без рейтинга) , чтобы

1) Люди на моем примере увидели что этот сайт да и подобные-это лохотрон)))))

2)Чтобы увидела WARGAMING и  не создавала больше предпосылок и возможностей для картошки:

а) Или продет все прем технику которую хоть раз продавала, разыгрывала и тд

б)Или создает спец раздел в котором  когда можно купить тот или иной танк по акциям с графиком на перед!

в)или больше не делает такие действия, как дать в аренду танки и не дать возможность потом его выкупить в любое время!!!

——————пруфы————

вверху слева авторизация по WG API , ник нейм как в игре , с соблюдением регистра, типо если подарком засылать будут!

белые участки после чека специально не удалял-это оригинальные с сайта киви, обратите номер первого чека с окончанием 2022 транзакции! это важно!!

далее переписка!

1) ПРОМОКОД НЕКУДА вводить!!!) это я вижу сразу)

2) ID разработчика что за бред?

3) id покупателя и так уже известен-я авторизовался,

4) Как можно успеть во время покупки активировать прем код?)))

Второй раз уже сделал оплату что-бы посмотреть какая дальше будет линия развода! Уже стало больше интересно.

По факту в личном кабинете у меня должно быть 2 строки с кодами-их нет.

Про WoT:  ▷ Купить видеокарты GeForce RTX 3080 Ti с E-Katalog - цены интернет-магазинов России на видеокарты GeForce RTX 3080 Ti - в Москве, Санкт-Петербурге

Должно быть 2 письма с бонус кодами в почте: ))

В спаме тоже нет))

Что в итоге: -1800р, и кинут страйк на 2 платежа!))

Кто дочитал огромное спасибо!

Я думаю в будущем эта страница будет быстро гуглиться по названию сайта wot-shop, и люди будут сразу читать и не станут тратить деньги. И если мой опыт спасет хотя бы одного человека (его деньги и нервы) то, уже это сделает мой опыт не безнадежным!

§

Leon__id (15:41:56) ну что, вор, пиздабол и дебил, как насчёт денег?

Leon__id (23:38:52) мораторий

shuma1234 (23:46:23) у путина)

Leon__id (23:48:30) где деньги, милай?

Leon__id (23:51:20) мне реально очень жаль, что командир моего клана оказался просто мошенником. Я не говорю хохол или кто- один народ. Живи с этим, воришка.

shuma1234 (23:53:41) нет ты говорил что хохлы и тд тп. реально от этого желания отбило

shuma1234 (23:53:44) что ты гамно

Leon__id (23:58:54) а ты просто вор и мошенник, хохлом тебя называть западло- ты не хохол.

Leon__id (23:59:21) Извини, если раньше называл.

Leon__id (0:01:29) хохлы когда-то одумаются, а ворьё всякое как было ворьём, так и останется.

shuma1234 (0:06:26) хохлы русь создали

Leon__id (0:11:16) а ворьё как было, так и осталось)))

shuma1234 (0:14:07) бла бла бла бла

shuma1234 (0:14:32) по поводу хохлов забери слово, и скажи путин пидар. я сру же брошу

Leon__id (0:20:14) Путин НЕ пидар, а ты вор и мошенник.

Leon__id (0:26:20) И твои слова это поттверждают. Я это заскриню и на Пикабу выложу, там много хохов пасётся.

Leon__id (0:27:10) Лишний раз посмеются над «пацаном».))))

Мошенники!

Само «удаление» заняло 5 минут. Потом врач начала ковырять. Попросила встать и пройти на 3д снимок (если что на консультацию я приходила с ним же), там помощник врача на мне натурально училась, как работает вся эта система.

Клинику, к слову, я выбирала по отзывам и опыту врачей.

Вернулась со снимка, мне говорят:
Врач: ложитесь в кресло
я: подождите, а что происходит?
врач: ну у вас корень сложный, отсекся от зуба, стоит в кости у носовой пазухи. Надо рассекать десну.

Я в волнении. Мне обещали процедуру в 15 минут.

Говорю:
— татата, говорили 15 минут, вышло иначе, позвольте я проконсультируюсь.

Звоню своему хорошему знакомому- врачу (не стоматологу), объясняю ситуацию. Меня уверяют, что лучше сию проблему устранить сразу.
Я уточняю у врача самые худшие возможные последствия.

Врач: (сидя нога на ногу, вальяжно помахивая рукой) самое плохое — вы поедете в больницу. У нас может получится корень достать, может нет.

я: как мне вам доверять, под нож ложиться, когда мне изначально одно говорили, сейчас вскрытие десны и не ясно, получится или нет? Зачем мне лишнее время лежать и страдать?
врач: во-первых, не нож, а скальпель. Во-вторых, у меня таких как вы, с осложнениями, через один ходит, и все всё нормально воспринимают.

Я дышу.
Нормально.
Уходить сейчас, без нужной суммы в кармане не вариант. Оставить, встать на очередь в госе = запустить инфекцию.
Дышу.

Я: давайте.

Лежу там, кровью харкаю, обезбол проходит — мне колят новый, сверлят челюсть.
Ммм, запах палёной кости так сложно забыть.
Доходят до пазухи.

Изначально мне сказали, что все манипуляции займут максимум час. Она ковыряла там на тот момент полтора.

На протяжении полутора часа мне дёргали нервы с других (возможно) зубов, я харкала и/или глотала свою кровь со слюнями, подскакивала от боли «больше анестезии колоть нельзя», чтобы услышать что врач не справляться.

Врач: я не понимаю в чём дело. Я не могу его (корень) найти.

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

Моя врач в частной клинике так старалась найти корень, что выдавила его в пазуху носа. Теперь приличный кусок кости болтается у меня там в пазухе. Если его быстро не убрать, у меня начнется сепсис. Вплоть до менингита.

К сожалению, в детской областной очень большая очередь на операции.
Мне обьяснили, что достать кость из пазухи через то отверстие не представляется возможным. Осколок очень большой, место неудобное. Надо ложится под общий наркоз и ждать, пока мне просверлят в щеке ещё одну дырку (ха-ха, господа идиоты).
Принять меня смогут только на следующей неделе, чем дольше хожу с костью в пазухе, тем сильнее сепсис.

Анализы делаю в частной клинике за свой счёт. Что будет дальше не знаю.
Здоровья и удачи вам, господа и дамы, как сказал мне администратор той клиники, в которую я так неудачно пришла.

А и да, это первый мой пост, пишу с телефона и не знаю, как ставить теги)

Некоторые тонкости работы балансировщика world of tanks

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

Но сначала подчеркнём ещё раз то, что уже было сказано в программе:

  • В алгоритмах балансировщика заложена возможность сбора нестандартных команд. Число боёв таких команд не должно превышать 5% от общего количества боёв, однако в конкретной ситуации у конкретного игрока этот процент может варьироваться, в полном соответствии с Теорией вероятностей. Например, если вы сыграли 10 боёв подряд на ИС-3, и в 3 (30%) из этих боёв наблюдали нарушение «правила первых 5 мест» (не было равенства машин по уровню), то это не является ошибкой балансировщика и скорее всего в следующих 10 боях не повторится.
  • Балансировщик стремится привести составы команд в соответствие с текущим состоянием очереди, поэтому в случаях, когда состав необычен, шаблон набора боевых машин в команду может значительно отличаться от эталонного (используемого сразу после старта серверов). Статистика уже отправленных в бой команд влияет на эталонный шаблон с первых минут, и уже через полчаса шаблон соответствует текущему состоянию очереди и «отслеживает» изменения в её составе. Например, во время публичного тестирования обновлений игры очередь может оказаться заполненной однотипными танками, которые участники теста берут в первую очередь, и можно заметить, что в командах всё больше и больше этих «популярных» танков, а время ожидания боя на них сокращается.

Если боевая машина стоит в очереди на бой более 1 минуты, то балансировщик стремится отправить в бой именно её, ослабляя требования к составам команд. Но в бой уходит 30 машин (2 команды по 15), и даже если вы ждали менее 1 минуты, вы всё равно можете попасть в бой, состав команд в котором подобран именно под такого настойчивого игрока. Ещё одна причина появления нестандартных составов — взводы. Если взвод собран из однотипных машин (например 3 тяжёлых танка VII уровня), балансер легко подберёт команду такому взводу. А если во взводе собраны очень разные танки, например тяжёлый 10 уровня и 2 «брелка» 2 уровня? Балансер корректно обрабатывает и такую ситуацию, однако состав обеих команд скорее всего будет необычным. Ещё одна разновидность взводов, под которые балансировщик может подобрать нестандартные команды — взводы артиллерии либо лёгких танков-«разведчиков». Эти классы машин в игре балансируются по-своему, а взводы, собранные из них, не должны нарушать правила балансировки.

Собирая команду на бой, балансировщик заполняет незанятые места в ней, двигаясь от 1 к 15 ячейке и пропуская уже заполненные. Очередь просматривается балансировщиком на всю длину и из неё выбирается очередная машина, балансный вес которой максимально близок к весу текущей ячейки. Однако, если веса всё же различаются (в очереди не оказалось танка с нужным весом), то ячейка заполняется, а балансные веса ячеек, оставшихся незанятыми, корректируются так, чтобы не выйти за 10% (20% в случае наличия в очереди игрока, который ждёт боя более 3 минут) разницы суммарных весов команд. Именно этим объясняются случаи выдачи танков «на сдачу», когда на 15 месте в команде оказывается слабый танк: балансировщик несколько раз корректировал балансные веса ячеек, и вес последней незанятой оказался минимально допустимым.

Ячейки заполняются в обеих командах синхронно, от 1-й до 15-й. «Пересортировка» 30 уже отобранных боевых машин с целью обеспечения равенства составов не производится, и если в паре команд одна содержит группу однотипных машин, а вторая — нет, то при соблюдении прочих условий балансировщика такая пара команд отправится в бой. При заполнении незанятых ячеек в команде, начиная с 6-й, балансер не учитывает тип и уровень машины в ячейке противоположной команды под тем же номером, поэтому сравнивать команды «по парам машин» имеет смысл только в первых 5 ячейках. Но и в них «равенство пар» не гарантировано, так как для долго ожидающих в очереди машин это правило отменяется.

Если количество игроков на сервере мало, либо в очереди избыток боевых машин определённых типов, то время ожидания боя может расти, и в этом случае допускаются следующие послабления в правилах подбора команд:

  1. Могут создаваться бои, где больше 5 арт-САУ на команду (если у какого-либо игрока время ожидания в очереди превысило 3 минуты);
  2. Могут формироваться команды неполного состава (7-14 машин), при равном количестве машин на команду (если у какого-либо игрока время ожидания в очереди превысило 3 минуты);
  3. Лёгкие танки с повышенным балансным весом могут занимать места тяжёлых и средних танков на топ-позициях команды;
  4. Может появиться заметное неравенство классов техники и её уровней, вплоть до разницы в суммарных балансных весах команд в несколько очков (равенство соблюдается только для арт-САУ);
  5. Начиная с 7 уровня боя на топ-позиции команды может оказаться ПТ-САУ, средний танк или даже арт-САУ;
  6. Танк вообще не попадает в бой и по истечении 5 минут отправляется назад в ангар.

Всё вышеперечисленное — частные случаи работы балансировщика.

Требования


Список требований к балансировщику был сформирован на основе фидбека от игрового сообщества и периодически обновляется по сей день.

На момент написания статьи для обычных боёв список состоял из следующих пунктов:

Список требований к балансировщику
  • Разница между максимальным и минимальным уровнем танка не должна превышать единицу, за исключением взводов (то есть если в бою встречаются 10-ки, то там не должно быть 5-ок или 7-ок, только 9-ки и 10-ки);
  • Команды должны быть 7×7, за исключением низкого онлайна (в этом случае можно создавать бои меньшего размера, например 5×5 или 3×3);
  • Команды должны быть зеркально сбалансированы по уровню техники (если в одной команде 3 танка десятого уровня и 4 девятого, то и в другой тоже должно быть 3 десятки и 4 девятки);
  • В обоих командах уровень техники взводов должен быть одинаковым;
  • В командах должно быть не больше 3 танков каждого типа (например, не более 3 тяжей, не более 3 ПТ). Правило работает, начиная с 5-го уровня и выше;
  • Различие числа танков одинакового типа у двух команд не должно быть больше единицы (например, если в одной команде 1 ПТ, то во второй может быть максимум 2 ПТ);
  • Команды должны быть сбалансированы по количеству одинаковых танков, с разницей не более чем в один танк (если в одной команде 1 ИС-7, то в другой — не более 2 ИС-7);
  • Игроки должны попадать только в выбранные ими режимы боя (если игрок включил только «Встречный бой», то он не должен попадать в «Превосходство»);
  • Если игрок купил новый танк, то в первых N боях на новом танке уровни других танков не превышают уровня нового танка игрока (то есть, если у игрока танк 5-го уровня, то в бою не должно встречаться танков 6-го уровня);
  • Игрок должен попадать на те карты, которые у него уже загружены. Часть контента у нас загружается уже после установки игры;
  • Если игрок включил опцию «Единый тип управления» то он должен играть только с игроками, у которых такой же тип управления как у него (если он играет на планшете / телефоне, то он не должен попадать к игрокам с мышками, и наоборот).

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

Оцените статью
TankMod's
Добавить комментарий