/dev: борьба с жуликами в LoL
Если вы читаете эти строки, скорее всего, вы не заблокированы в League of Legends, и наши пути вряд ли пересекались. Нам приходится держаться в тени, как и мошенникам, с которыми мы боремся. Мы не можем распространяться о своей работе, чтобы не раскрывать методики обнаружения и не рекламировать тех, кто взламывает игры. Недостаток солнечного света благотворно влияет на наши программистские способности и защищает нас от тех, кто не хочет играть по правилам.
Итак, встречайте команду по борьбе с мошенничеством! Мы решили, что конец очередного сезона LoL – отличный повод для того, чтобы: 1) поделиться статистикой о самых мерзких способах мошенничества; 2) напомнить всем о том, что нужно играть честно; 3) попытаться поставить рекорд по количеству заблокированных жуликов (Гиннесс, перезвоните мне, пожалуйста).
ЧЕМ ЗАНИМАЕТСЯ КОМАНДА ПО БОРЬБЕ С МОШЕННИЧЕСТВОМ?
Команды по борьбе с мошенничеством обычно защищают игру от проблем, которые могут повредить ее соревновательной составляющей, и внимательно следят за любыми механизмами, методами и стратегиями, позволяющими получить несправедливое преимущество. Кроме того, мы определяем, предусмотрено ли такое преимущество игрой (например, выбор Мальзахара) или находится вне закона (прокачка MMR ради модной золотой рамки).
У нас есть несколько методов борьбы с недобросовестным поведением, которые можно разделить на три категории: предотвращение, обнаружение и устрашение. Мы предпочитаем называть их Блистательной триадой справедливости™.
- Предотвращение. Здесь главное внедрить в игру как можно больше методов защиты от мошенничества, чтобы пользователь в принципе не смог жульничать. Тогда нам не придется полагаться только на моральные качества игроков, в надежде, что они не поддадутся искушению пойти “легким” путем.
- Обнаружение. То, что не удалось предотвратить, надо отлавливать. Для этого у нас есть самые разнообразные инструменты, от постоянно развивающихся механизмов контроля за памятью клиента до передовых технологий машинного обучения, которые следят за успехами игроков.
- Устрашение. Иногда по-хорошему не получается. Это может потребовать не одной волны блокировок, но карательные меры позволяют внушить игрокам страх перед жульничеством и даже стать для невиновных своего рода катарсисом.
Чтобы узнать больше о нашей технической стратегии, читайте недавнюю статью Майкла Ван Кейперса о шифровании и отладке в техническом блоге.
ЗАЧЕМ НУЖНА КОМАНДА ПО БОРЬБЕ С МОШЕННИЧЕСТВОМ?
К сожалению, некоторые игроки жульничают. Людям нравится побеждать – а точнее, им нравится престиж, который приходит вместе с победой. Взломщики пользуются желанием игроков забраться повыше, чтобы зарабатывать на них деньги (или просто славу в интернете). Нам нужно максимально снизить доходность этого предприятия и сделать так, чтобы вам никогда не приходилось загружать вредоносные программы, чтобы сохранить свой рейтинг.
Вот фраза, достойная цитирования: чтобы LoL воспринимали как серьезный спорт (а мы именно к этому и стремимся), все игроки должны состязаться в равных условиях. Грош цена тому трофею, который куплен, а не заработан.
КТО ВХОДИТ В КОМАНДУ ПО БОРЬБЕ С МОШЕННИЧЕСТВОМ?
Целый отряд хакеров в тренчах за мониторами, на которых постоянно мелькают квадратики openGL. В нашей команде есть несколько бывших взломщиков (для поддержания имиджа), специалисты по анализу данных (для красивых графиков) и пара-тройка аналитиков (чтобы блокировать всех до следующего века).
Все эти компьютерные ниндзя помогли нам создать мощные технологий для обнаружения и защиты.
ГДЕ НАХОДИТСЯ КОМАНДА ПО БОРЬБЕ С МОШЕННИЧЕСТВОМ?
У вас за спиной.
ЧТО НОВОГО В 2018 ГОДУ?
Недавно мы летали в Шэньчжэнь на встречу с настоящими гуру защиты от мошенничества из Tencent. В Китае игровое жульничество достигло угрожающих масштабов, и мы вместе ищем новые способы обнаружить тех, кто создает инструменты для взлома. Мы хотим задать международный стандарт для соревновательных игр – не последнюю роль здесь играет борьба с сервисами прокачки и разработка более незаметных систем обнаружения.
ЖУЛЬНИЧЕСТВО В LEAGUE OF LEGENDS
Вступительная часть позади, переходим к самому интересному.
Когда игроков блокируют за жульничество (к стыду их родителей), обычно это происходит по одной из трех причин: скриптинг, прокачка или ботоводство.
Скриптинг
LoL – серверная игра. Каждый игровой клиент соединяется с сервером, который управляет состоянием матча. Это значит, что самые распространенные варианты мошенничества – не безумные штуки вроде режима бога или взлома карты (с этим справиться легко), а скорее попытки повысить игровую эффективность программными средствами. “Скриптинг” – пожалуй, основной вид мошенничества в жанре MOBA. Это внешняя программа, которая нажимает на кнопки или следит за умениями вместо вас (например, автоприцеливание, трекеры перезарядки и автоматическое исполнение комбинаций), позволяя играть с нечеловеческой эффективностью.
"Кто же хочет давать алмазную рамку программе?"
Чтобы это реализовать, нужны определённые усилия. Для начала хакер разбирает клиент игры при помощи специального программного обеспечения и врожденного таланта. Он определяет местонахождение всех важных игровых функций и пишет код для доступа к ним. Затем он внедряет свой код в игру, открывая API для других разработчиков, которые пишут скрипты автоматизации или инструменты для конкретных чемпионов. Жулики радостно используют эти скрипты, восхищая друзей своей способностью атаковать на бегу. Правда, недолго.
Давайте посмотрим на популярность скриптинга в LoL за последние пару лет.
![Что важнее: размер молота или скорость, с которой наносятся удары?](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/9186-scripting_games_percent_RU_htvgg48mqvrlcl7vliud.png)
Что важнее: размер молота или скорость, с которой наносятся удары?
Зеленая линия показывает ежедневный процент скриптеров в ранговых играх. Она постепенно идет на спад и статистически называется “хорошей линией”. В том же временном промежутке показаны волны блокировок (окрашенные в благородный золотой цвет), так что вы можете сравнить два показателя и приятно удивиться. У моего начальника были некоторые опасения по поводу публикации “секретных данных”, так что абсолютные значения количества блокировок пришлось исключить.
Вот некоторые данные, достойные упоминания:
- За последние три года мы заблокировали за скриптинг 7 миллионов учетных записей по всему миру, из которых 5 миллионов на счету Tencent в Китае. Сегодня у обычного игрока шанс встретить случайного скриптера составляет всего один раз на 400 ранговых игр.
- Всего в 9% случаев в 2018 году игроки вставали на путь исправления после блокировки за скриптинг. В среднем жулик удаляет LoL только после блокировки 5,1 учетных записей.
- Блокировки позволили нам снизить частоту использования скриптов настолько, насколько это возможно, учитывая то, что полностью избавиться от жуликов нельзя. Так что теперь мы больше занимаемся превентивными мерами, а не карательными.
"Слушай, mirageofpenguins, помогает ли вообще жульничество? Спрашиваю для друга".
Рад, что вы спросили. Давайте разберемся.
![Оказавшись под угрозой исчезновения, скриптеры на зиму мигрируют на юг.](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/9187-scripting_winrate_RU_15pkud8tljmgbm5bwght.png)
Оказавшись под угрозой исчезновения, скриптеры на зиму мигрируют на юг.
Наверное, это очевидно, но я все-таки скажу для тех, кто прогуливал уроки математики: средняя частота побед случайного игрока должна составлять 50%, так что эти приложения все-таки дают определенное преимущество. Но важно отметить некоторые факторы, повлиявшие на падение эффективности скриптов.
- Скрипты полезнее всего для чемпионов с высокими требованиями к техническому исполнению – например, стрелков или Кассиопеи. Чтобы снизить преимущество от идеальной точности использования умений, мы намеренно “упростили” спам некоторыми умениями (вроде [Q] Эвелинн), позволив людям на равных сражаться с машинами.
- Чтобы их скрипты не обнаружили, разработчики специально добавили задержки в автоматизированные действия, так что они стали больше похожи на человеческие.
- Постоянная безжалостная борьба со взломщиками приводит к тому, что им приходится отказываться от тех или иных платформ и кодовых баз. Представьте, что вы пытаетесь наладить работу своей машины, а кто-то (я) постоянно ворует у вас гайки.
Мы прошли долгий путь, но теперь с уверенностью можем сказать, что восстание машин откладывается по крайней мере еще на несколько десятилетий. Можете смело пользоваться своей микроволновкой – при условии, что она не взаимодействует с вашим клиентом LoL.
Прокачка
Порой выбраться из Серебра бывает непросто, и некоторые не слишком добропорядочные игроки начинают подумывать о том, чтобы попросить об этом кого-то другого. Прокачка, которую также называют “Покупкой трофея” и “Приобретением рамок”, в первую очередь делается для того, чтобы заработать награды конца сезона (в 68% случаев учетная запись прокачивается только до Золота V). А еще такие игроки хотят казаться круче, чем они есть на самом деле.
"Не стесняйтесь рассказывать о своем Серебре. Настоящий друг примет вас таким, какой вы есть".
Говорю по личному опыту: очень неприятно видеть игрока из Алмаза II в ранговых играх на уровне Золота III. Или даже хуже: оказаться в одной команде с элобущенным в повышающей серии Платины V. Лучше всего проходят матчи, в которых у всех игроков примерно одинаковый уровень мастерства, поэтому мы считаем прокачкой любые случаи игры на учетной записи, уровень которой сильно отличается от уровня игрока, с целью повысить ее рейтинг.
Обычно прокачку сложно предотвратить, поэтому мы сосредотачиваемся на поиске самых злостных нарушителей. Не хочу вдаваться в подробности, чтобы сохранить в тайне наш Секретный Прием, поэтому расскажу в двух словах. Исследуя заметные различия в стиле игры между настоящим владельцем учетной записи и тем, кто ее прокачивает, мы смогли разработать небольшой алгоритм, который запускаем раз в сезон, чтобы лишить наград самых недостойных. Всех отловить не получается, но мы работаем над этим.
![Обратите внимание на правую часть графика, где жаждущие Золота отчаиваются и покупают рейтинг со скидкой.](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/9188-boosting_leagues_RU_jhrrny19etdt91w3tori.png)
Обратите внимание на правую часть графика, где жаждущие Золота отчаиваются и покупают рейтинг со скидкой.
Самые заметные скачки связаны с двумя хорошо изученными феноменами:
- “Бро, сыграй за меня квалификацию”.
- “Йоу, устрой мне встречу с Победоносным Грейвзом”.
Чтобы решить эту проблему, мы стараемся мешать тем, кто хочет превратить прокачку в бизнес, но впереди у нас еще долгий путь. Просто наказывать прокачиваемых недостаточно. Отныне мы будем усиленно искать и закрывать сервисы, продающие прокачку, – эту тактику мы позаимствовали у коллег из Tencent.
Ботоводство
И последнее – повышение уровня с помощью ботов. Эти жестянки доставляют игровому миру кучу проблем. LoL – бесплатная игра, а значит, для создания учетной записи почти ничего не требуется. Игрокам за Ясуо нужны новые смурфы, чтобы оттачивать свое мастерство, а тем миллионам скриптеров, которых мы заблокировали, нужны новые учетные записи, чтобы нам докучать. В результате появился рынок чистых учетных записей 30 уровня. Мы хотим его прикрыть – во-первых, потому что это портит новичкам впечатление от игры, а во-вторых, потому что наши наказания из-за этого кажутся менее суровыми.
"Зачем тебе в гараже столько умных холодильников?"
В общем, мы работаем над этим. У нас есть пара кандидатов наук, и эти умники постоянно создают машинные модели, которые учатся отличать жестянки от людей. Боты сражаются с ботами – увлекательно, правда? Жалобы игроков помогают им учиться, так что если вы заметили в своем матче соковыжималку, не забудьте нажать соответствующую кнопку в конце игры.
В первую очередь проверяется ARAM. Это самый простой режим для написания ботов и самый быстрый способ получить опыт: бегите по средней линии, жмите все подряд, забирайте капсулу с чемпионом.
![Меньше жалоб на ботов – меньше влияние на игроков. ЧТД.](https://nexus.leagueoflegends.com/wp-content/uploads/2018/10/9190-botting_player_reports_RU_lqy08dayzh9u1mpu2r3z.png)
Меньше жалоб на ботов – меньше влияние на игроков. ЧТД.
Здесь вы видите результат кампании по стравливанию ботов друг с другом (кодовое имя: Ботолимпийские игры). Это лишь первый шаг на пути к победе: мы собираемся заблокировать их всех и отправить обратно на склад бытовой техники. А главное, сделать так, чтобы игроки никогда их не встречали. Боты будут блокироваться еще до продажи, и мы готовы увеличить расходы на серверы, если это поможет оставить ботоводов не у дел.
Будущее
Мы привели далеко не полный список, ведь жулики всегда будут искать новые способы мошенничества. С одной стороны, без зарплаты я точно не останусь. А с другой, это значит, что моя работа никогда не будет сделана до конца. Мы изо всех сил боремся за ваше право на честную соревновательную игру и готовы практически на все, чтобы раз и навсегда избавиться от жуликов.
"Если не хочешь играть честно, то тебе здесь не рады".
Все просто.
Мы будем внимательно следить за комментариями, так что присылайте нам вопросы и говорите, хотите ли вы видеть новые статьи о борьбе с мошенничеством. А если вас недавно заблокировали, можете поныть в комментариях – это придает мне сил.