DevNotes #2: Борьба с читерами и победа над спуферами
Новая статья Заметок разработчиков полностью посвящена борьбе с нечестными игроками на RustMe. Проблема значимая, не новая и достаточно неприятная как для аудитории проекта, так и для команды.
Наша цель — обеспечить классный игровой опыт, адреналин и другие положительные эмоции от PvP, рейдов. Но, согласитесь, это получить трудно, когда ты, как игрок, прилагаешь усилия, чтобы предугадать действия врага в своей голове, нацелиться и открыть огонь точно по его квадратной тушке. А оппонент в ответ лишь включает софт и жмёт всего одну кнопку левой ногой. Бам, ты снова на пляже, дом скорее всего забрали, так что развиваться придётся по новой. Разумеется, ни о какой буре положительных эмоций речи идти не может. Точнее, не могло.
Сентябрьское глобальное обновление стало ключевым в борьбе с читерами. Именно в прошлом месяце наши разработчики, DarksideCode и Bpex, достигли успехов и обеспечили значительный спад среди нечестных игроков на RustMe.
Пришло время рассказать вам больше о проделанной работе и, что самое интересное, показать статистику блокировок за период с января по октябрь.
ПРОБЛЕМЫ, С КОТОРЫМИ СТОЛКНУЛИСЬ
Для начала немного откатимся в прошлое. С начала года мы ежедневно наблюдали многочисленные жалобы от добросовестных пользователей, а модераторы обрабатывали по сотне жалоб в день и проверяли подозреваемых на предмет запрещённого программного обеспечения (читы) вручную. Анти-чит постоянно отлавливал нарушителей, отправляя их в вечное путешествие на остров «Банляндия». Система также не стояла на месте и постоянно обновлялась: мы добавляли всё больше и больше новых методов обнаружения ЗПО.
Но, увы, постепенно труды разработчиков и доблестных модераторов начинали меркнуть по другой причине — спуферы (от англ. «spoof» — обман, подмена данных). Этот инструмент стал обязательной частью арсенала большинства читеров на проекте. В свою очередь, честные юзеры начали списывать свой негативный игровой опыт на плохую защиту. Однако такое мнение некорректно, ведь нарушители активно находились и блокировались.
Промежуточным решением проблемы стали Time+ сервера, которые требуют определенного количества уже наигранного времени для входа. Зайти на них с «чистого» аккаунта не получится. Но это борьба со следствием, а не с самой проблемой.
Тогда мы развернули штурвал в сторону решения задачи по лёгкому обходу блокировок и внесли такие изменения:
- Архитектура анти-чит системы. Первое, что мы сделали — это обновили платформу, лежащую в основе клиентского анти-чита. Переработали всю систему защиты Osiris, включая обе части — клиентскую (Astraea) и серверную (RMAC). Это даёт больше возможностей для защиты от нечестных игроков с ЗПО, а также улучшает производительность клиента, повышая количество FPS.
- Улучшенная аналитика и хранение данных. RMAC теперь умеет собирать и анализировать больше данных о ПК игроков благодаря системе фингерпринтинга (от англ. fingerprinting — снятие цифрового отпечатка устройства). Это помогает анти-читу распознавать нарушителей даже при попытке обойти бан (смена аккаунта, IP, железа). Теперь мы можем лучше понимать, как ведут себя нарушители, визуализировать статистику и быстро внедрять новые алгоритмы для защиты, проверять качество обновлений и избегать случайных ошибок на этапах тестирования.
- Математически обоснованные алгоритмы. Если раньше принцип работы анти-чит системы строился «на свечке в церкви за отсутствие коллизий», то теперь все алгоритмы идентификации основаны на точных метриках — энтропии, корреляции и других параметрах. Это позволяет нам составлять алгоритмы логично и последовательно, снижает риск ложных блокировок.
НЕМНОГО ЧИСЕЛ И ГРАФИКОВ
Мы часто пишем о проделанной работе над системой защиты проекта. Это тяжёлый и зачастую скрытный от глаз аудитории процесс, потому поделиться всеми нюансами всё равно, что выложить карты на стол перед разработчиками ЗПО.
Но вот чем мы точно можем поделиться — статистика. Она поможет более ярко прояснить актуальную картину борьбы с нечестными игроками на проекте.
На графике выше показано, как менялось количество блокировок игроков за период с января 2025 года по октябрь. Мы отслеживаем две основные причины: читы и обходы блокировок — то есть попытки вернуться в игру с другого аккаунта после бана.
С выходом крупного обновления анти-чита в сентябре система начала работать ещё точнее. Общее число банов снизилось на 40%.
Интересный факт: теперь большинство банов не за читы, а за попытки обойти бан. То есть, игроки, которых уже ловили, пытаются вернуться сторонними путями, но система стала узнавать их практически моментально.
Количество ручных блокировок также пошло на спад. Если раньше модераторы вручную проверяли и блокировали 25% маскирующихся под другими аккаунтами игроков, то теперь 95% банов выдаёт сама система, без участия людей. Это помогло снизить нагрузку на отдел модерации.
На следующем графике видно какой процент всех блокировок приходится на автоматические блокировки за обход. Другими словами на тех, кто после бана создаёт новый аккаунт и пытается вернуться в игру.
До сентября большинство блокировок были «первичными». Система банила игроков так, будто они — новые пользователи. Однако среди них было много повторных нарушителей. Их анти-чит узнавал не сразу. То есть человек мог получить бан, зарегистрировать новый аккаунт и какое-то время играть снова.
С сентября текущего года ситуация кардинально поменялась. Впервые за всё время больше половины блокировок (61,6%) — это автоматические блокировки за обход. Теперь система не просто ловит читеров. Она запоминает самих людей, а не только аккаунты, которые они используют.
Если человек пытается вернуться после бана, то анти-чит система RustMe его узнаёт и выносит повторный бан почти мгновенно.
КОЛИЧЕСТВО ЧИТЕРОВ В ИГРЕ
До выхода Сентябрьского глобального обновления и вступления в силу изменений анти-чит системы, наша команда несколько месяцев внимательно изучала поведение нечестных игроков. Мы не спешили блокировать всех нарушителей, а собирали данные при помощи скрытых проверок системы, которые не упускали из виду ни один известный нам чит.
Как результат, было изучено более 50 000 игровых сессий, и на основе этой цифры получена приблизительная оценка: примерно 2,5–5% игроков, которые хотя бы раз пробовали использовать читы или спуферы.
Эта цифра соответствует мировой статистике. В большинстве онлайн игр доля читеров колеблется в пределах от 5 до 10%, а на высоких рейтингах бывает и выше.
ИТОГИ
Собрав всю информацию воедино, можно сделать один простой вывод:
обойти блокировку на RustMe стало ГОРАЗДО сложнее.Мы вышли на совершенно новый уровень в разработке анти-чит системы проекта. Последний график демонстрирует резкое снижение общего числа блокировок в сравнении с другими месяцами 2025 года. При этом по двум предыдущим видно, как выросла доля автоматических банов и банов за обход.
Теперь система не просто ловит нарушителей, а распознаёт людей, даже если те пытаются вернуться с другого аккаунта или устройства, и предотвращает попытку обхода блокировки почти мгновенно.
Что говорят читеры?
Немного об очевидных картах в рукаве. Разумеется, у нас есть свои «спецагенты» — ребята, которые следят за читерским комьюнити изнутри. И они подтверждают: среди юзеров ЗПО началась настоящая паника.
Порог входа в мир читеров стал значительно выше. Многие жалуются, что обойти бан теперь почти невозможно. Прежде кто угодно мог легко скачать / купить и запустить чит, а также обойти бан. Однако теперь, даже если рабочие читы и спуферы остались, то теперь программы доступны только единицам с нужными связями и достаточным количеством средств за такое "удовольствие".
Наша команда не собирается останавливаться на достигнутых результатах. Мы следим за читерским комьюнити, чтобы быть в курсе о новых способах обхода банов, а также своевременно добавляем новые детекты читов, совершенствуем алгоритмы анализа и тестируем всё в боевых условиях.
Да, количество читеров сильно снизилось, что не может не радовать. Но это не значит, что они исчезли навсегда. Разработчики ЗПО продолжат пытаться обойти защиту. Борьба вряд ли когда-то закончится, но мы готовы во всеоружии обеспечивать комфортную игру и дальше!
