Античит для проблем ММО и решения? [закрыто]

14

Большинство онлайн-игр страдают от этой проблемы, и есть некоторые компании, разрабатывающие программное обеспечение , чтобы решить эту проблему, но в последнее время из того, что я видел, большинство компаний пытаются избежать того, чтобы эти программы создавали свою собственную систему (метель с надзирателем, aion с их собственной проверкой и т. Д.). ...) но это очень сложный случай, чтобы предотвратить такое ...

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

Какую защиту вы, ребята, используете, чтобы (попытаться) предотвратить такие действия:

  1. Анти-чит-софт? (пожалуйста, укажите, какие, почему и возможные проблемы, с которыми вы столкнулись, например, aion прекратил использовать GameGuard на стадии бета-тестирования из-за огромного количества проблем совместимости и жалоб от их пользователей)
  2. Ваш собственный код? (какую проверку вы обычно проводите, чтобы удостовериться в недобросовестных игроках, например, спидхаке, проверке новой локации по скорости + последней локации и т. д ...)
  3. Нет, мне все равно? (какая-либо личная причина или вклад, которым вы хотели поделиться?)

Любой интересный фрагмент кода, связанный с проблемой, которую вы хотели бы опубликовать?

Не стесняйтесь переделать мой текст, мой английский инст, это здорово? **

Prix
источник
1
Тег сделан. Если вы ожидаете большого количества ответов, сделайте это вики-сообществом. Это позволит нескольким людям редактировать индивидуальные ответы вместо того, чтобы постоянно пересоздавать их.
Джесси Dorsey
1
Для примера того, как это может быть полезным. Проверьте это: gamedev.stackexchange.com/questions/480/…
Джесси Дорси
Спасибо за комментарий и ссылки, я проверю его сейчас и вижу, на мой взгляд, этот вопрос для разработки игр - очень хороший вопрос для обсуждения, но большинство для MMO-игр я верю, поэтому я не уверен, также Сообщество довольно мало в данный момент, и я боялся быть отрицательным для такого вопроса, поэтому я не уверен, спасибо за создание тега :)
Prix

Ответы:

22

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

Для MMO самое большое, что вы можете сделать, это просто не доверять тому, что отправляет вам клиент . Клиент не должен быть в состоянии сказать вам, куда игрок переместился, какой урон ему был нанесен и т. Д. Вместо этого вы должны отправить управляющий ввод на сервер, подтвердить, что он практичен (нажав кнопку «атака»). 1000 раз в 1 секунду, например, недопустимо), затем обновите симуляцию на сервере. Затем вы отправите соответствующие части нового состояния игры обратно клиенту.

Пока вы проверяете пользовательский ввод, также можно искать тенденции в его вводе. Если вы не разрешаете макросы, вы можете поймать их здесь, заметив, что пользователь нажимал одну и ту же кнопку с точно такими же координатами пикселей с идеальными интервалами в 1 секунду в течение последних 30 минут.

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

Шон Джеймс
источник
Спасибо за ваш вклад, я надеюсь увидеть больше людей, делающих свой вклад; Действительно, это очень сложная проблема, чтобы противостоять ... Есть также те, кто взломает игру, чтобы отключить античит-движок, и это вызов от него ... что делает вещи еще сложнее ... если у вас нет онлайн GM, чтобы проверить, что данный человек или другие проверки, как вы заявили. что бы вы подумали как этот вопрос для сообщества вики? Должен ли я оставить как есть или изменить что-то, чтобы сделать его подходящим для этого;
Приз
Вероятно, сообщество вики, если вы не ищете конкретный ответ.
Шон Джеймс
Есть какие-нибудь подробности о том, как работает Punkbuster для более полного ответа?
Крис Ллойд
Хороший ответ - не существует «одного решения, чтобы управлять ими всеми» - большинство игр имеют несколько «векторов атаки». Часто речь идет об оценке риска больше, чем о чем-то другом, то есть о том, как это повлияет на сообщество, если кто-то может обмануть System X и т. Д.
zebrabox
Я верю, что хакерство неизбежно, даже если у него самая сильная программа против мошенничества. Обман в порядке, если офлайн технически, но не онлайн. Играть онлайн больше на честности. Это так?
Дэвид Дималанта
8

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

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

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

То, что вы делаете, когда обнаруживаете чит, - это совсем другое дело. Заблокировать аккаунт по факту - это хорошо, особенно если у вас есть достаточно надежный механизм автоматического обнаружения. Ранний запрет предупреждает читы о том, что они обнаруживаются, а также риск ложных срабатываний из-за неубедительных механизмов обнаружения. Слишком поздний бан рискует испортить игровой опыт для других. Это очень серая область, и разработчики должны принять решение.

MrCranky
источник
2

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

Джеймс Беллингер
источник
Спасибо за вклад, вы использовали какое-либо анти-чит-программное обеспечение или у вас была такая проблема, о которой вам нужно было позаботиться? если так, то было бы приятно услышать об этом.
Prix
2
Нет, я не пользовался сторонними античит-программами, нет. Когда я впервые начал кодировать онлайн-RPG, мой сервер просто вызывал «атаку», когда клиент отправлял «атаку», вместо того, чтобы помещать запрос в очередь, и тому подобное. Это самые важные для предотвращения мошенничества. Быстрые хаки, делайте всю синхронизацию на сервере, чтобы они получали небольшое преимущество, но также отправляли временные метки, и если вы получите слишком большой дрейф, вы будете знать, что они его используют. Отметьте их учетную запись, но не пинайте их немедленно - немедленная обратная связь - отличный способ узнать, что обнаруживает ваша программа.
Джеймс Беллингер
1
Мне нравится эта часть, которую but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.я недавно изучал при внедрении системы отметок времени и предупреждений от пользователей, помеченных, в настоящее время я поместил проигрыватель в список, над которым я сейчас работаю, так это то, что если кто-то пользуется большим злоупотреблением, он отправит предупреждение онлайн GM для проверки ...
Prix