Існує два підходи до протидії ботам. Це захист на стороні клієнта та аналіз на стороні сервера.
Захист на стороні клієнта є найбільш очевидним підходом - грубою силою, в певному сенсі. Ви докладаєте всіх зусиль для того, щоб ігровий клієнт був повністю законним, не був підроблений, і жодна інша програма не впливає на нього. Зараз це складна проблема, і її неможливо повністю вирішити. Але багато ігор намагаються і мають певний успіх із цим методом. Я знаю, що існує кілька готових рішень для захисту клієнтів, і пропоную вам їх шукати. Реалізувати себе - це непросте завдання.
Окрім того, що менш 100% ефективний, захист на стороні клієнта має і недоліки, що вони надзвичайно дратівливі для ваших гравців. Зазвичай це має на увазі такі речі, як відключення переключення завдань alt-tab, антивірусні програми тощо.
Аналіз на стороні сервера менш нав'язливий. У такому підході у вас є код сервера, який аналізує шаблони поведінки гравців. Найчастіше боти грають демонстративно по-різному. Наприклад, у гравців людини різний час між діями (наприклад, стрілянина), і цей час підпорядковується розподілу кривих дзвіночків. Примітивні боти матимуть постійний час або розподіляються рівномірно протягом певного інтервалу. Веселий факт: використовуючи цей метод, ми одного разу зловили гравця з механічним ботом - розумним пристроєм, який натискав кнопки на його фізичній клавіатурі. Само собою зрозуміло, не кількість захисту клієнта може зловити що . Але цей аналіз не є досконалим. Більш просунуті боти обдурять ваші системи, і чим більше перевірок ви впровадите, тим більш просунуті боти стануть.
Для кращого захисту можна комбінувати обидва ці способи. Захист клієнта ускладнить розробку ботів, а серверний аналіз зупинить прості боти, які були швидко розроблені. Але що б ви не робили, ви ніколи не можете повністю зупинити ботів. Ну, якщо ви не відправите своїх представників до дому гравців, щоб контролювати їх гру та повідомляти про порушення. (До речі, це не чутно. Я, безумовно, прочитав історію про онлайн-покерну компанію, яка відсилала людей до дому дуже успішного гравця, щоб підтвердити, що він грає законно. Але я, здається, не можу цього знайти.)
Є ще дві сумнівні рекомендації щодо боротьби з ботами. Один, зашифруйте ваш мережевий трафік. Я не думаю, що це не спрацює. Якщо ваш клієнт знаходиться в руках ворога, трафік може бути і буде розшифровуватися ... або ваш власний клієнт буде використовуватися для шифрування. З іншого боку, шифрування додає відставання, і це справді погано для "шутера в реальному часі". Друга рекомендація - "просто спроектуйте свою гру навколо цього". Хоча це здається здоровою ідеєю, я ще не бачив жодної гри, яка керувала цим.