Оптимизация и улучшение античита. Разработчики поделились планами на 2020 год

PUBG Corporation опубликовали обширный блог, в котором поделились с сообществом игры своими планами на 2020 год. Разработчики рассказали, как они намерены бороться с читерами, и какие улучшения ждут PlayerUnknown’s Battlegrounds с точки зрения оптимизации и сетевого кода.

Привет всем игрокам!

Я Янг Тайсок, исполнительный продюсер PUBG для ПК.

Поскольку над всем миром нависла угроза, именуемая COVID-19, позвольте мне вначале пожелать вами и вашим близким крепкого здоровья. Как и остальным, командам PUBG по всему миру пришлось несколько скорректировать свой план работы, но мы делаем все возможное, чтобы стабильно предоставлять вам новый контент и непрерывно обеспечивать поддержку игры.

Мы хорошо потрудились в 2019 году, добавив в игру немало удобств, много нового контента и обновив некоторые из карт. Вы очень тепло отнеслись ко многим изменениям, но мы осознаем, что другие наши идеи были восприняты не особенно благосклонно. Кроме того, мы стремились найти причины некоторых назойливых неполадок и вели неустанную борьбу с читерами. И именно об этом я хочу сегодня с вами поговорить.

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

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

Приступим.

  • Противодействие взломам и читерству
    • Усиление превентивных мер
    • Усиление надежности мониторинга и блокировки
  • Улучшение производительности и стабильности
    • Улучшение производительности
    • Улучшение стабильности
    • Улучшение сетевого кода

Противодействие взломам и читерству

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

Усиление превентивных мер

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

Система двухфакторной аутентификации
Мы получили неисчислимое количество жалоб от игроков, чьи игровые учетные записи были пожизненно заблокированы за использование читерских программ после взлома учетных записей в Steam. Те, кто торгует подобным ПО, часто продают и доступ к учетным записям, поскольку у их клиентов на них большой спрос. Как правило, взломанные учетные записи не защищены с помощью Steam Guard, а необходимые для входа данные выуживаются из пользователя с помощью фишинговых сайтов, заманивающих игроков якобы бесплатными игровыми предметами.

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

Устранение уязвимостей в коде
Читерское ПО использует ряд факторов, позволяющих манипулировать нашим кодом. И вот что мы сделаем, чтобы помешать манипуляциям с оружием, транспортом и движениями персонажа:

  • Оружие
    • Будет усилена серверная авторизация, касающаяся проверки расчета угла, отдачи, баллистической траектории и тому подобного во время выстрела.
    • Мы анализируем и блокируем уязвимости логики клиентского приложения, связанные с прицеливанием.
  • Транспорт
    • Будет усилена серверная авторизация, касающаяся проверки скорости движения транспорта, его направления, продолжительности нахождения в воздухе и тому подобного.
    • Это не только позволит заблокировать учетные записи выявленных нарушителей, но и своевременно выкидывать тех, кто использует читерское ПО, из матча, мгновенно блокируя их.
  • Перемещения персонажей
    • Будет усилена серверная авторизация, касающаяся проверки скорости перемещения персонажей, продолжительности нахождения в воздухе и тому подобного.

Улучшенное обнаружение читеров и блокировка

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

Расширение пределов обнаружения

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

Автоматический анализ

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

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

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

Мы осознаем ограниченность существующей системы блокировки по аппаратному ID и дорабатываем ее. Внесенные улучшения позволят нам с помощью особенных алгоритмов проверить информацию о компьютере на уровнях пользователя и ядра. Даже если читерское ПО попытается проскользнуть, мы сможем его быстро заблокировать снова. Это должно помочь в блокировке как ПК, так и учетных записей, использующих читерское ПО.

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

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

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

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

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

Улучшение производительности и стабильности

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

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

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

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

Улучшение производительности

Оптимизация прорисовки и устранение задержек

  • Ускорение времени поиска контента в пакете за счет оптимизации pak-файла
    • Pak-файл — это «пакет», в котором в сжатом виде хранятся все игровые ассеты (оружие, транспорт, строения, наряды и тому подобное)
  • Повышение производительности за счет снижения требований к прорисовке и оптимизации
    • Слияние ландшафта → снижение уровня прорисовки и ускорение сбора мусора → устранение проблем с задержками
  • Устранение проблемы с задержками, вызванные загрузкой / выгрузкой графических данных
    • Изменение метода отрисовки графических данных с загрузки в один кадр на раздельный, чтобы предотвратить торможение игры
  • Список улучшений, связанных с торможением игры
  • Когда игрок открывает инвентарь
    • Когда игрок открывает просмотр персонажа
    • Когда игрок берет в руки оружие
    • Когда игрок совершает убийство
    • Когда игрок бросает предметы
    • Когда игрок открывает интерфейс, включая настройки / миссии и т. д.
    • Уменьшение количества используемых шрифтов ради оптимизации игры
    • Оптимизация отображения различных скинов, используемых в игре (оружие, персонажи)
      • В частности, снижение число случаев торможения из-за асинхронной загрузки скинов оружия, требующей значительного времени

Оптимизация для видеокарт

  • Оптимизация и улучшение производительности графического процессора за счет дальнейшего внедрения HLOD
    • HLOD — система, совмещающая многочисленные статические меши в один меш, если смотреть на них издалека. Это позволит повысить производительность за счет уменьшения количества моделей, которые необходимо обрабатывать для отображения сцены, и ускорить отрисовку кадров.
  • Оптимизация за счет окружающих объектов

Оптимизация анимации

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

Улучшения для слабых ПК

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

Улучшение стабильности

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

Своевременное исправление проблем с вылетом клиентского приложения

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

Улучшение процесса верификации сборки

  • Введение автоматического инструмента верификации и новых методов ручной верификации
  • Введение разнообразных систем проверки, отслеживающих состояние программы
    • Инструментарий для отслеживания утечек из памяти
    • Инструментарий для отслеживания использования памяти
    • Инструментарий для проверки повреждений памяти, обнаруживающий сбои, вызванные нежелательным доступом к памяти
    • Проверка торможений
    • Проверка состояния ЦП / ГП
  • Создание тестового окружения со 100 ИИ-пользователями
    • Проверка производительности уже запускается, когда в матче находятся 100 игроков, но количество игроков и результаты могут отличаться
    • Используя ботов, мы в любой момент сможем проводить столько проверок в условиях, приближенных к реальной игре, сколько захотим

Улучшение сетевого кода

DDoS

Атаки Distributed Denial-of-Service (DDoS) на определенном этапе становятся проблемой большинства популярных игр. Когда игровой сервер подвергается DDoS-атаке, пользователи сталкиваются с такими проблемами, как задержка подключения, высокий пинг и потеря пакетов. DDoS-атаки участились с ноября 2019 г. и стали очень серьезной проблемой в феврале 2020 г. Чтобы справиться с этой проблемой, наши команды начали использовать ряд сторонних решений, но мы продолжаем разрабатывать собственную защиту от DDoS-атак. Благодаря этому нам удается успешно отразить большую часть DDoS-атак. О мерах, предпринятых против DDoS-атак, мы подробнее расскажем в отдельной публикации.

Потеря пакетов

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

В заключение

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

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

Команда разработчиков PUBG осознает всю важность сохранения стабильной среды и благодарит вас за проявленное терпение и отклики.

Спасибо. И берегите себя,

Янг Тайсок — исполнительный продюсер PUBG

Разработчики объявили точное время, когда новый патч под номером 7.1 будет перенесен из тестового в основной клиент PlayerUnknown’s Battlegrounds.

Источник: www.pubg.com