Если люди хотят ботов, я не думаю, что вы действительно можете их остановить.
Конечно, вы можете реализовать много мер, которые делают боты более или менее болезненными. Но вы можете сделать так много, прежде чем ваша кодовая база превратится в гигантский беспорядок, который адски поддерживать, подвержен ошибкам и раздражает законных пользователей. Тем временем боттеры всегда найдут способ победить ваши контрмеры:
- Их больше, чем тебя
- У них больше свободного времени (нужно разделить время между фактической разработкой и проверкой ботов, они могут взламывать свой код бота в течение всего дня)
- По мере того, как вы создаете диковинные, сложные меры предосторожности, авторы ботов будут и далее поощряться, потому что весело нарушать защиту ботов.
- Если существует черный рынок людей, коммерчески извлекающих выгоду из ботов, чем сложнее вам написать бота, тем более ценными становятся рабочие боты, поэтому вы стимулируете ботов
По сути, вы окажетесь в ловушке гонки вооружений с боттерами, и, исходя из логики, описанной выше, а также моего опыта в таких играх, вы не сможете идти в ногу.
Некоторые разработчики игр применяют чрезвычайно агрессивные меры против мошенничества: например, Steam сканирует память и файловую систему, чтобы найти взломы, а нарушители могут быть наказаны, потеряв аккаунты на сотни долларов. Тем не менее, есть еще боты и другие хаки для игр Steam, и некоторые из них даже работают половину времени. В отличие от них, у вас есть API, который широко открыт для пользователя, и вы не можете контролировать компьютер пользователя. Это тяжелая битва с самого начала.
Проблема, которую вы пытаетесь решить, по сути, является тестом Тьюринга: за исключением того, что это очень простой тест Тьюринга, потому что вы не можете обмануть, требуя сложных ИИ-проблем, таких как язык. Независимо от того, сколько эвристик вы создаете, для бота было бы тривиально добавить немного случайности к действию бота, чтобы он имитировал почти точно человека. Было бы даже не сложно заставить бота наблюдать за тем, как ты играешь, и научиться определять время действий точно так же, как ты. Затем, когда вы блокируете бота, он публикует на форуме громкие разговоры о том, что он просто преданный игрок (и, возможно, он на самом деле ложный позитив), и ваша основная аудитория хардкорных игроков поднимется против вас.
Сделайте игру слишком увлекательной, чтобы бот
Основная причина, по которой кто-то использует бота, заключается в том, что он хочет пропустить часть игры. Если бы они наслаждались игрой и находили ее забавной, бот не играл бы в нее, они играли бы в нее сами.
Но если игра такая скучная, зачем вообще в нее играть? Предположительно, некоторые части игры являются скучными и обязательными, чтобы попасть в интересные части. Например, в ММО всем нравится подниматься на новый уровень, но никто не хочет убивать 42324 ужасных яда с нежитью, чтобы получить ХР. Таким образом, они позволяют боту рушиться, чтобы играть забавную роль.
Это не критика вас или вашей игры, но, по крайней мере, некоторые игроки считают некоторые части вашей игры утомительными. Вы должны посмотреть, сможете ли вы уменьшить количество этих утомительных частей и посмотреть на добавление более сложных, значимых решений: боты плохо разбираются в глубокой стратегии или латеральном мышлении по сравнению с человеческим интеллектом, и, кроме того, людям нравится принимать сложные игровые решения.
Из вашего описания у меня сложилось впечатление, что это браузерная игра, похожая на Travian, где есть очередь на сборку с единственным лучшим порядком сборки и определенными задачами «обслуживания» (такими как поддержание рейдов на ферме), которые необходимо выполнить. Вы говорите, что конфликта нет, но в любой ММО драма и мелкая политика неизбежны (ИМО - это главная привлекательность), поэтому я уверен, что ваши игроки найдут способы нанести удар по голове. В играх такого типа большая часть утомления приходит от этих «задач» обслуживания - то, что игроки действительно хотят сделать, это заключить союзы и сыграть в дипломатическую игру с конкурирующими кланами, то обслуживание становится своего рода налогом, когда вам нужно проснуться. до будильника в неурочные часы, чтобы попасть в эту забавную дипломатическую часть. Так что вырежьте скуку
Этот подход не всегда может работать, к сожалению. Не все игроки имеют одинаковую терпимость к скуке или одинаковую концепцию веселья. У вас может быть выдающаяся механика, которая нравится 99% ваших игроков, но 1% считают скучной. Что если 1% тогда начнёт писать ботов, разрушая удовольствие на 99%? Но в конечном итоге это вопрос степени. Вы никогда не сможете полностью удалить ботов, но вы можете минимизировать ущерб.
Подрезанные боттеры
Многие из действительно негативных эффектов ботов прибывают от авторов ботов, коммерциализирующих их работу. Если это так, вы можете просто соревноваться с ботами. Многие онлайн-игры в реальном времени уже имеют расширенные функции, которые позволяют пропускать время и автоматизировать (например, расширенные очереди сборки). Эти суммы составляют санкционированный разработчиком официальный бот. Если они у вас есть и вы оцениваете их соответствующим образом, игроки будут покупать вашу премию вместо того, чтобы покупать ботов. Хорошая новость заключается в том, что вы отвечаете за API, так что у вас всегда есть сильное преимущество в разработке автоматизации качества для вашей собственной игры, так что на этот раз битва за проигрыш.
Это не устранит любителей-любителей или людей, которые считают, что ваша премия не является хорошим соотношением цены и качества, поэтому эффективность этого подхода зависит от ситуации.
Искать их вручную
Как я уже говорил выше, то, что вы делаете, по сути является тестом Тьюринга. Поскольку общение с людьми считается сложной задачей теста Тьюринга, вы можете попытаться использовать это.
Вручную осмотрите игроков высшего уровня и посмотрите, не нашли ли вы что-нибудь подозрительное. Возможно, вам даже удастся сойти с рук время от времени, исследуя их способами, ограниченными только вашим воображением, чтобы увидеть, сможете ли вы обмануть бота, чтобы он сделал то, чего он не сделает.
Хотя сложно написать алгоритм, который будет надежно обнаруживать ботов, человеку не так сложно научиться определять их. Я думаю, что многие браузерные игры используют эту стратегию, и она может быть довольно эффективной. Недостатком является то, что либо вам нужно все время выполнять скучную работу, либо вам нужно платить мастерам игр за регулярное патрулирование ботов.