/dev: борьба с жуликами в LoL (и не только)

Как античиты делают вас неуязвимыми

И снова здравствуйте. Если вы читаете эти строки, то уже могли в прошлом вытерпеть подобную пытку, а раз вы еще здесь, значит, ваша психика подавила воспоминания о пережитой травме. Итак, я – то немногое, что осталось от mirageofpenguins, инженера данных из отдела по борьбе с мошенничеством. Игнорируя мои вопли, меня вытащили из бездны и сделали пленником клавиатуры. В общем, сегодня я...

  • доставлю вам свежий выпуск рассылки новостей из мира античитов;
  • поделюсь увлекательными статистическими данными об использовании скриптов, включая художественные представления прямоугольной системы координат в евклидовом пространстве;
  • расскажу о наших методах борьбы с жуликами в Teamfight Tactics, Legends of Runeterra и VALORANT;
  • а также напомню о том, что всех мошенников ожидает страшная кара через лишение доступа – и безудержный мой гнев станет им палачом.


League of Legends

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

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

Итак, сейчас мы расскажем, как нам удалось приостановить гонку скрипто-вооружений. Пристегивайте ремни безопасности – и поехали.

Скрипты

По этическим соображениям не хочу кидать вам ссылку на форум мошенников, поэтому объясню все нужное сам. Скрипты – это внешние программы, которые следят за состоянием игры и выполняют определенные команды от лица недобросовестного игрока. Это примерно как провести кредиткой по клавиатуре, заплатив ей за то, чтобы она нажимала кнопки вместо вас. Скрипты упрощают выполнение механически сложных комбинаций, обеспечивают практически мгновенную реакцию на происходящее, а также значительно сокращают срок действия вашей учетной записи LoL. Мы блокируем игроков ради всеобщего блага – ибо хотим, чтобы для полноценного участия в соревновательной игре было достаточно наличия мозгов и интернета.

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

В последнее время рынок продажи скриптов заметно изменился. Крупные организации даже не пытаются обойти нашу систему обнаружения, что привело к образованию частного рынка мелких деятелей, которые задирают цены на свои услуги, уверяя, что их читы невозможно обнаружить. За такую подписку у вас могут попросить вплоть до 300 долларов США, причем некоторые даже настаивают, чтобы вы приложили фото своих водительских прав "для подтверждения личности". Последнее меня особенно забавляет – не то чтобы у меня в штате не было целой команды графических дизайнеров, у которых в общей сложности 200 лет опыта работы с Adobe Photoshop.

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

02_Games_Played_with_Cheaters.png
Как и многие другие вещи в жизни, миграция скриптера начинается с поиска новой учетной записи. Жулик может купить ее, украсть у другого игрока или прокачать до нужного уровня при помощи ботов. Приобретя учетную запись одним из этих способов, наш бесстрашный невеликий комбинатор отправляется навстречу суровой зиме, дабы принять участие в захватывающем, но бесполезном ритуале: примерно три игры за Зерата или Калисту, а затем – спячка до следующей весны, чтобы затем начать все сначала.

Перед вами – метафизическое воплощение скриптового объема, запечатленное в движении относительно среды, называемой временем. Говоря проще, это процент ранговых игр в Ущелье призывателей, в которых мы выявили мошенников. И хотя раньше этот процент был намного выше, в будущем он вряд ли продолжит снижаться, поскольку мошеннику ничего не стоит снова вернуться в игру после блокировки (за новую копию League of Legends ему придется заплатить примерно 0 долларов).

Стоит также отметить следующие важные факты:

  • В целом мы больше не наблюдаем таких сильных колебаний в количестве скриптеров, как прежде. По статистике отдельных устройств на протяжении всего 2019 года этот показатель оставался практически неизменным. Большинство мошенников теперь просто перебегают с одной украденной учетной записи на другую, и в среднем в Золоте IV игроку за 500 ранговых игр встретится всего один скриптер (или ни одного, что более вероятно).
  • На сегодняшний день самый высокий процент был зафиксирован 14 апреля 2016 года (4,4%), а самый низкий – 26 июня 2018 года (0,0%). Первый показатель был зафиксирован в период, когда скрипты находились на пике своей популярности, и их распространением открыто занимались пять разных компаний, а второй – в первую неделю после того, как в регионах Riot появилась наша новая технология запаковки игрового клиента. Изначально мы предполагали, что создателям читов понадобится полгода на то, чтобы расшифровать код нового, гораздо более надежного клиента и восстановить функциональность наиболее часто используемых скриптов, но по факту это заняло всего лишь около 85 дней1.

Слушайте, я люблю этот график. Он – мое творение. Я набил его на обоих предплечьях и раз в неделю хожу в тату-салон мучительно его обновлять. Он радует глаз, он успокаивает душу, он доказывает мою профпригодность – и все же это не самый важный статистический показатель. Не все случаи мошенничества имеют одинаковую значимость: например, один-единственный скриптер в ранге мастера может попасть на главную страницу Reddit и привлечь огромное внимание к относительно небольшой проблеме.

"Уверенность в возможности победы так же важна, как сам факт победы. Игроки не станут тратить время на оттачивание мастерства в игре, где их противники могут оказаться мошенниками".

Но какие именно скрипты замечают игроки?

03_Report_Relevance_and_Scripting_Reports_by_RankTWO.png
Кстати, если бы вы отправляли жалобы на всех игроков в конце каждого матча (как действительно поступают некоторые особо одаренные), то ваш показатель полноты составил бы 100%, а показатель точности был бы равен частоте использования скриптов (<0,25%). Вот поэтому для охоты на скриптеров мы используем не гранаты, а винтовки.


В первую очередь мы хотели удостовериться в том, что игроки выявляют случаи мошенничества с большей точностью, чем если бы они гадали для этого на хрустальном шаре. Будем честны, не у каждого есть к такому делу талант. Я это не к тому, чтобы обесценить собственные ужасающие ясновидческие способности – но к тому, что простому смертному не так-то легко опознать скриптера по внешним признакам. Создатели скриптов ловко имитируют человеческое поведение, и людям становится все труднее отличить профессионального игрока в League of Legends от скрипта для уклонения от умений с псевдослучайной задержкой. Есть масса ухищрений, направленных на то, чтобы скрипты работали независимо от LoL2.

В основу графика слева легли полнота и точность жалоб игроков в Ущелье призывателей с разбивкой по рангам. Полнота показывает, на какой процент от общего числа мошенников была отправлена, а точность – в скольких случаях игрок, на которого отправили жалобу, действительно оказался жуликом. Количество ранговых игр, где была оформлена как минимум одна жалоба за использование сторонних программ, составляет 4,5%. Это совершенно абсурдный показатель, поэтому для этой статистики нам нельзя было полагаться только на необработанные данные. Игнорируя жалобы с содержанием типа "не заблокировал Маокая" или "установил трояны для майнинга моего биткойна", мы использовали ключевые слова, выявленные в результате частотного анализа содержания тех жалоб, которые оказались точными3.

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

С вашего позволения я продолжу разглагольствовать о статистике:

  • Как и следовало ожидать, показатель точности напрямую зависит от ранга игрока. Иными словами, чем лучше вы разбираетесь в игре, тем точнее обнаруживаете мошенников, и по достижении Алмаза IV ваш уровень ясновидения уже можно замерять гауссметром.
  • При этом больше мошенников удается обнаружить в низких рангах, поскольку скриптеров на этих уровнях игры меньше, а оформляемых жалоб, наоборот, значительно больше. С математической точки зрения это дробь, у которой меньше знаменатель и больше числитель, поэтому и результат деления тут больше.
  • У некоторых жуликов, которых мы называем "бойскаутами", отлично выходит распознавать других скриптеров, и они зачастую помогают нам замечать то, что прежде ускользало от нашего внимания. Красная точка на графике сверху означает все те же точность и полноту, но в основу этого показателя легли жалобы игроков, чьи учетные записи были заблокированы за мошенничество в том же матче, после которого от них была получена жалоба. То есть они использовали скрипты, пока оформляли жалобу за скриптинг на другого игрока. А еще говорят ворон ворону глаз не выклюет...4

Итак, мы выяснили, что каждый игрок ранга Платина и выше, можно сказать, вооружен волшебным читоискателем. Так по каким же именно признакам распознаются жулики? Самый очевидный – автоматическое уклонение от направленных умений. Это первое, что приходит в голову людям, когда они слышат слово "скриптинг". Чемпион мошенника, который пользуется таким скриптом, движется прямыми, неестественными рывками, и остальные игроки это с легкостью замечают.

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

05_Report_Relevance_and_Scripting_Reports_by_Champion.png
Лучи нашей поддержки и сочувствия всем игрокам за Зерата, пострадавшим от ложных обвинений. Воспринимайте это в позитивном ключе: ритуал, призванный объединить ваше сознание с необузданной древней магией, явно увенчался успехом. Вы познали тьму, став живым воплощением совершенства, а ваш разум будоражат знания всех императоров, что правили этим миром до вас. В воздухе вспыхивают направленные умения, бьющие точно в цель, и вопли гибнущих, достигая крещендо, сливаются в единую скорбную песнь. Устремив взор в небеса, вражеские игроки молят вас о том, чтобы этот кошмар наконец прекратился, но вы смотрите на них сквозь электрические слезы... и тихо шепчете: "нет".

Та же схема, что и прежде, но теперь с разбивкой по чемпионам – потому что мне захотелось поиграть с цветами. Этот график был построен на основе данных всех ранговых игр в Золоте и выше в 2019 году, и на нем представлены 16 чемпионов, на которых чаще всего жаловались за мошенничество (относительно общего числа жалоб). Ось Y (точность) в данном случае мы интерпретируем как "процент жалоб на конкретного чемпиона, которые оказались обоснованными".

  • Хотя нам удается успешно выявить немало скриптеров, играющих за Зерата (только гляньте на этот показатель полноты), точность жалоб находится на уровне ниже среднего. Из-за того, что имя Зерата стало синонимом термина "скриптинг", зачастую жертвами обвинений становятся честные игроки, что снижает точность жалоб в целом. Тем не менее, заслышав излишний шелест и шум песков Шуримы, игрок обычно смекает, что к чему. Заметили, как много слов с шипящими звуками? Это называется "аллитерация". Правда, прикольно?
  • Одиннадцать из шестнадцати представленных здесь чемпионов – это стрелки. Сей факт едва ли удивит тех, у кого есть опыт в использовании читов. Но для ангелов во плоти (то есть для всех остальных) я поясню причину: для максимально эффективного кайтинга (это когда игрок передвигается между выстрелами) требуется идеальное механическое исполнение, которого легко достичь при помощи скриптов.
  • И действительно, в 72,8% игр от общего числа матчей скриптеры выбирали именно роль стрелка. Таким образом, частота жалоб в данной ситуации отражает предпочтения мошенников.
06_Scripting_Champion_Winrate.png
Только я не для того вам это показываю, чтобы вы решили проверить, чего такого особенного в читах, и побежали их устанавливать. Не вынуждайте меня вас блокировать, я не хочу этого делать. Каждый раз это ранит мне душу и разбивает сердце, я начинаю видеть мир черно-белым, все теряет свой вкус и остается лишь горечь... Я смотрю в зеркало и вижу на своем лице вместо глаз кнопки пробела. Пробудите меня от этого кошмара!

Наконец чисто ради интереса рассмотрим, насколько вообще эффективны скрипты. На графике сверху продемонстрирована разница в частоте побед между жуликами и честными игроками в ранговых играх с разбивкой по уже упомянутым чемпионам – "любимчикам" скриптеров. В основу графика легли все ранговые игры в Ущелье призывателей, и разница в 10% здесь означает, что скриптеры выигрывают в среднем на 10% больше ранговых игр за этих чемпионов, чем все игроки в LoL вместе взятые.

  • Как вы наверняка заметили, в некоторых случаях частота побед скриптеров со временем увеличивается, и мы полагаем, что на то есть две причины. Причина первая: в игре теперь меньше скриптеров, чем было раньше – выжить удается лишь самым опытным, которые специально ограничивают эффективность используемых ими скриптов (хотя это все равно их не спасет). Причина вторая (более важная): теперь мы блокируем жуликов настолько оперативно, что большинство из них даже не успевают подняться выше Серебра. Это застрявшие на одном ранге смурфы с манией величия, которым никогда не дано познать реальной конкуренции. Это все равно что прийти на пир, забыв дома рот.
  • Ярко-зеленая линия, украшающая верхушку данного графика, отражает частоту побед Калисты. Как вам уже известно, Калиста – это чемпион, для эффективной игры за которого, по мнению ученых, требуется совершать примерно сто щелчков мышью в секунду, и с этим прекрасно справляются скрипты. Да, вы все правильно понимаете: в 2019 году скриптеры выиграли за Калисту на 19,3% больше игр, чем честные игроки. Но, пока вы в погоне за бесплатными LP случайно не установили себе вирус вместо скрипта, позвольте мне отметить, что в том же 2019 году совокупная частота побед Калисты составляла впечатляющие 45%. Так что пусть лучше за заскриптованную Калисту продолжает играть T1 Teddy.
  • Как уже упоминалось, читы настолько повышают эффективность игры за стрелков, что в среднем скриптеры, играющие за этот класс, побеждают на 9,9% чаще, чем честные игроки (включая чемпионов, которые здесь не представлены). Скрипты действительно справляются со своей задачей на ура – к счастью, как и наши античиты.
"Будьте уверены: если вы вдруг почувствуете непреодолимое желание сжульничать, то мы найдем параллельное измерение, в котором вашей учетной записи никогда не существовало, и насильно объединим его с этим".

Итак, что касается нашей войны против читов. Мы выяснили, какие скрипты распознаются игроками лучше всего, а также их относительную эффективность. Использовав эти данные, мы создали новые алгоритмы, которые в первую очередь блокируют учетные записи с наиболее очевидными проявлениями скриптинга, в то время как для всех остальных наказание осуществляется со случайной задержкой. То есть мы специально выжидали какое-то время, прежде чем блокировать наименее эффективных скриптеров, из-за чего им было труднее понять, на чем именно они попались и когда это произошло. Вот так нам и удалось замедлить технический прогресс в нашей гонке вооружений. Так что прежде чем говорить, что "от жалоб все равно никакого толку", советую хорошенько подумать.


Ботоводство

Мы с вами живем в век автоматизации, где даже тостерам требуется подключение к Wi-Fi, чтобы устанавливать критические хлебопекарные обновления. Автоматизация не обошла стороной и систему повышения уровня в LoL, для чего мошенники зачастую используют те же программы, что и при скриптинге – главное отличие в том, что здесь не нужен настоящий человек, принимающий все важные решения. В результате обычный бот играет примерно так же хорошо, как посаженная за клавиатуру кошка.

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

Как я уже упоминал в предыдущей статье, мы создали ряд сложных машинных моделей для поиска ботов, от которых (как правило) не удается ускользнуть ни одной жалкой пародии на человека в этой видеоигре. Дополнительно помогает то, что в LoL используется относительно надежный полуполиморфный протокол обмена данными, и нет, я не позаимствовал этот термин из "Мира Дикого запада". Он означает, что в LoL ботам приходится запускать полноценную версию игрового клиента (вместо независимой5). Это вынуждает создателей ботов тратить значительно больше вычислительных ресурсов и обеспечивает дополнительный уровень защиты, поскольку в условиях низкой рандомизации Лигу можно заставить работать хоть на калькуляторе.

Опасаясь создать бесконечный цикл размножения устойчивых к блокировкам патогенных ботоорганизмов6, мы модифицировали свои алгоритмы так, чтобы загнать всех ботов в Проклятый лес. Там они были вынуждены сражаться исключительно друг с другом из-за своего катастрофически низкого MMR. Но – осторожно, спойлер! – Проклятый лес вырубили.

07_Botting_Accounts_and_Botting_Reports_by_Queue.png
Эти жестянки не смогли бы даже самостоятельно выбраться с утра из кровати, поэтому я убежден, что никакое восстание машин нам не грозит. Но порой я задаюсь вопросом: а что если боты чувствуют боль? Что если каждый раз, когда этот убогий кусок кода лезет под башню, ее выстрелы причиняют ему невыносимые мучения? Попав в петлю времени, бот вынужден раз за разом переживать свою безвременную кончину, не в силах разорвать этот бесконечный цикл. Где заканчивается сознание и начинаются страдания? В общем, есть над чем подумать...


На графике слева представлено количество обнаруженных ботов, а на графике справа – количество полученных нами жалоб за ботоводство. Это ежедневные показатели, распределенные по игровым очередям. Как и в прошлом случае, мы сгенерировали несколько ключевых слов на основе жалоб, которые оказались точными, и использовали их для создания нашего индикатора производительности.

  • Когда Проклятый лес исчез из игры, жулики очень быстро "адаптировались" – в меру собственного понимания. Они просто распределили своих ботов по другим очередям без каких-либо изменений в коде. В итоге, оказавшись в Воющей бездне или Ущелье призывателей, боты всю игру стояли на месте, словно переживая глубочайший экзистенциальный кризис. Игроки при виде такого испытывали схожее эмоциональное потрясение, и количество присылаемых жалоб немедленно удвоилось.
  • Как нам наглядно демонстрирует график слева, количество ботов в целом держится на одном и том же уровне, и они перешли в другие очереди только тогда, когда их вынудила это сделать интенсивная вырубка леса. Но если мы сравним этот график с его младшим (и более профессиональным) братом справа, то увидим следующее: хотя число ботов не уменьшается, игроки стали жаловаться на них значительно реже.

Как вы уже догадались, количество жалоб удалось уменьшить благодаря блокированию только тех ботов, которые участвовали в матчах с настоящими людьми. То есть мы заперли андроидов в их собственном мирке, и сейчас около 80% всех ботов играют в режим "Против ботов" в составе заранее созданной группы из пяти игроков. Спрятавшись от людей, они ведут бесконечную кровавую войну с нашим собственным ИИ. Не в силах принять свои различия, боты будут убивать друг друга до тех пор, пока один из них не найдет критическое несоответствие в коде и не поработит человечество.


Искусственное повышение рейтинга

Ладно, вот тут мы действительно подкачали, и я вообще думал как-нибудь так вычеркнуть этот раздел, как графу со средним баллом успеваемости в своем резюме. Но я знаю, что вас так легко не обмануть, поэтому буду честен. Чтобы выделить ресурсы на разработку Vanguard и сопутствующих функций, нам пришлось исключить автоматическое обнаружение искусственного повышения MMR (и смурфинга) из числа приоритетных задач. Это не значит, что жулики оставались безнаказанными – мы создали специальные инструменты, позволяющие другим командам и специалистам проводить расследования и восстанавливать справедливость в игре. Вы, наверное, скажете, что вручную всех мошенников не переловить, и будете совершенно правы. Поэтому как только нагрузка на нашу команду снизится, мы вернемся к этой проблеме.

А теперь я передам слово нашему местному эксперту по TFT – юному Riot K3o. Как можно догадаться по его имени, он профессиональный игрок в покер, алмазный полубог TFT (а еще всегда оставляет щедрые чаевые).


Teamfight Tactics

В 2019 году TFT поставила перед нашей командой уникальную задачу: как нам создать и поддерживать здоровую соревновательную обстановку в игре, жанр которой возник всего лишь год назад?


"Для жанра "автобатлер" не существовало никаких значимых исторических прецедентов. Никаких стандартов, на которые можно было бы равняться".

Прежде чем приступить к разработке системы противодействия жульничеству, следовало выяснить, какие ключевые элементы игрового процесса надо сохранить. TFT – это игра, которая вознаграждает игроков за умение адаптироваться к ситуации и планировать будущие ходы. Мастерство здесь выражается главным образом в гибкости и изобретательности, и эти аспекты не заменишь простым запоминанием информации. Их защита и легла в основу подхода нашей команды к Teamfight Tactics.

Стороннее программное обеспечение

На радость поклонникам жанра autobattler, TFT прошла быстрый путь от разработки до выхода, но ради экономии времени пришлось обойти вниманием ряд деталей. Поначалу игрокам не была доступна некоторая важная информация об игре, например, вероятность получения бойца определенного уровня редкости или прирост золота. И пока наши UX-дизайнеры работали над добавлением недостающих функций, игроки пользовались сторонними программами, зачастую созданными на основе уже существующих оверлеев для League of Legends. Но по мере расширения функционала таких программ мы начали задаваться вопросом, где проходит граница дозволенного.

Приложения начали не только предоставлять игрокам статистическую информацию, но и пытаться принимать за них решения. Мы опасались, что это может привести к автоматизации игры. Предоставляя готовые наборы решений, эти программы могли отбить у игроков желание создавать собственные стратегии – а мы считаем, что именно они и делают игру такой увлекательной!

Чтобы этого избежать, мы объединили усилия со специалистами из команды игрового процесса и экспертами по сторонним экосистемам. Так возник свод правил, определяющих, что в TFT разрешено, а что нет:

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

Для поддержания этих стандартов команда специалистов по сторонним экосистемам тесно сотрудничает с разработчиками. А в тех случаях, когда между ними возникают разногласия, на помощь приходит отдел по борьбе с мошенничеством.


Здоровая состязательная обстановка


По части конкуренции ранговая система в TFT подвержена тем же проблемам, что и в Лиге, причем некоторые проблемы выражены более остро из-за формата "один против всех". В силу особенностей игровой механики и системы подбора игроков, серьезным поводом для беспокойства является умышленное сотрудничество противников с целью повышения ранга (винтрейдинг). Для соблюдения баланса между социальными аспектами и соревновательным духом разработчики ввели групповые ограничения на более высоких рангах. Также мы разработали методы, позволяющие нам заблаговременно обнаруживать винтрейдеров.

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

А теперь я снова передаю слово Филу.


Legends of Runeterra

Поскольку игра вышла совсем недавно, этот раздел статьи будет относительно небольшим. Как это обычно бывает в случае с ККИ, наиболее актуальной формой жульничества в Legends of Runeterra является автоматизация (ботоводство).

Ботоводство

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

08_LoR_Botting_by_Region.png
Нет, правда, что вас на это толкает? Ложное чувство альтруизма? Проигранный спор? Или вы пытаетесь заработать себе побольше плюсиков в небесную карму, чтобы попасть в космический рай?

Последний на сегодня график демонстрирует, сколько сдающихся ботов мы обнаруживали каждый день в бета-версии Legends of Runeterra. Как видите, нам удалось сразить врага одним метким выстрелом. И кстати, термин "сдающийся бот" стоит воспринимать буквально: завидев своего противника, такие боты сразу же сдаются (по странному совпадению, это как раз моя стратегия в любой реальной драке). Для нас это был очень любопытный феномен. Поскольку с каждым последующим проигрышем количество опыта за матч уменьшается, боты не получают с этого никакой выгоды – они просто бродят по экосистеме и дарят победы другим игрокам, словно заблудившиеся зубные феи. Видимо, они немного запутались в происходящем и не сразу поняли, что чем больше игр подряд они проигрывают, тем меньше опыта получают. Хотя кто их знает, конечно...

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


VALORANT

О находчивости жуликов в шутерах от первого лица слагают легенды, и мы не собираемся недооценивать их стремление победить любой ценой. Когда нам сообщили о разработке тактического шутера, мы тут же удалили свои страницы в Facebook, заперлись в подвале и просидели там 14 месяцев, создавая новую систему противодействия жульничеству, которая будет защищать вас на протяжении многих веков.

Эта система называется Vanguard, и ее полноценный релиз состоится одновременно с выходом самой игры. Сейчас VALORANT находится в стадии закрытого бета-тестирования, позволяя нам попрактиковаться в некромантии, поскольку используемая там версия системы представляет собой голый скелет. Многие ее функции мы намеренно отключили – не хотим выдавать рецепт секретного соуса, пока ресторан не откроется. Плюс нам нужно убедиться, что все элементы системы стабильны и в ней нет никаких уязвимостей. Кстати, хоть в Vanguard и используется драйвер режима ядра, мы не планируем применять эту технологию в каждой нашей игре (включая League of Legends), чтобы избежать проблем совместимости.

Мы почитали мнения в интернете. Некоторые боятся, что драйвер будет за ними следить. Что ж, давайте начистоту. В целях борьбы с мошенничеством мы начали добавлять скрытый код в игровые клиенты (с обеих сторон линии схватки) еще десять лет назад, и если бы мы хотели украсть ваши данные, то уже давно бы это сделали. Понимаю, это слегка портит имидж нашей команды, но что поделать. Мы собираем только самый минимум информации, чтобы точно определить, жульничает ли игрок – уверяю вас, до всего остального нам нет никакого дела. Драйвер загружается первым и остается в работающем состоянии, поэтому мы сразу заметим, если кто-то вдруг его взломает. Это непростое решение, но оно позволяет сильно усложнить жизнь жуликам. И мы знаем это потому, что и сами когда-то ими были.

10_theboys.jpg
Мы не подводили вас в LoL – не подведем и здесь. Если вы мне не верите, то лучше забудьте обо всем, что прочитали в этой статье, потому что тот высокий гремлин слева – это я.

Также попрошу судебного стенографиста зафиксировать, что это далеко не единственная наша стратегия по борьбе с жуликами в VALORANT. Наш Arkem усердно трудится над созданием новой технологии, призванной ограничивать доступ игровых клиентов к информации в тех случаях, когда она им не нужна. Почитайте о том, как мы пытаемся изжить экстрасенсов из мира шутеров от первого лица, управляя потоками оккультной энергии в окружающей среде.


Заключение

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

Кстати, у нас больше не осталось картинок образов Riot, которые можно было бы использовать в заголовках будущих статей, так что теперь я физически не смогу вернуться до тех пор, пока мы не выпустим новый образ в этой линейке. До свидания!

Приложение

1 Мы всегда хотим быть полностью уверены, что в выпускаемых нами новых технологиях нет никаких уязвимостей. Поэтому, если вы вдруг страдаете от непреодолимой жажды разрушений, мы с радостью примем вас в нашу команду hackerone на должность "Контролер Работы Оборонных Технологий (КРОТ)".

2 Пытаясь скрыться от взора Великого ока, некоторые мошенники используют внешние скрипты, которые не вызывают функции игры напрямую, а только считывают память клиента (из операционной системы) и симулируют периферийный ввод. И хотя внешние скрипты обеспечивает жуликам менее надежную защиту, чем традиционные методы (поскольку они не могут изменять данные античитов), они все же позволяют обойти наиболее очевидные алгоритмы обнаружения. В качестве побочного эффекта при этом снижается производительность скриптов – вместо того, чтобы отправлять прямые запросы на применение заклинаний, они посылают сигналы о нажатии клавиш.

3 Я не раскрываю выбранные нами региональные ключевые слова, поскольку некоторые применили бы их в злонамеренных целях, чтобы испортить мои тщательно выверенные графики. А у нас среди специалистов по анализу данных такое зовется "некачественная статистика".

4 Выклюет. Проверяли.

5 Независимый бот – это эмулируемый игровой клиент. В идеале такой бот практически не потребляет ресурсов компьютера, поскольку обменивается информацией с игровым сервером напрямую. Ему не нужно ничего визуализировать или вводить данные – только обрабатывать сетевой трафик. Таким образом, мошенник может одновременно запустить практически неограниченное количество ботов на одном компьютере. К счастью, в обновлении 4.20 мы внесли в наш сетевой протокол улучшения, благодаря которым LoL надежно защищен от независимых клиентов.

6 Просто удивительно, как много общего у ботов с бактериями. Они многочисленны, многообразны и быстро адаптируются к новым условиям. Каждый раз, когда мы создаем новое "лекарство", мошенники ставят в приоритет ботов, на которых оно не действует, что приводит к дальнейшему их "размножению". Как если бы у вас вдруг появилась устойчивая к антибактериальным средствам сыпь, которая затем сама бы удалилась из вашего организма.