Як захистити онлайн-шутер у режимі реального часу від потенційних ботів


14

Я хочу створити багатокористувацький шутер зверху вниз. Поки я читав про різні теми, я їх бачу, у мене попереду справжні виклики, але я все готовий до цього.

Я не можу зрозуміти, як я повинен захищати гру від людей, які намагаються створити ботів?

Що я маю на увазі, наскільки я розумію, неможливо захистити мережевий трафік таким чином, що гравці не зможуть створювати програми, які слухають, що відбувається і розуміють це.

Тож мене хвилює те, що люди можуть створювати ботів, які слухають поточне місце розташування суперників, і надсилати комунікації, що імітують так, ніби гравець стріляє в точно "ідеальному" місці, щоб виграти цей матч.

То які методи використовуються для захисту ігор в реальному часі від таких ботів?

Також хотілося б зазначити, що я намагався шукати дискусії (оскільки це звучить як щось, з чим багато людей борються), але нічого конкретного про це не вдалося знайти, лише як частина більш широких питань щодо мереж в іграх в реальному часі. . Якби я мав виглядати важче, сміливо ставте мене на своє місце :)


Punkbuster, hehe .. Є причина, що існує стороннє додаток, яке виявляє додатки та зміни сторонніх розробників :)
Джеймс

Чому ви переживаєте, якщо люди створюють ботів? Можливо, ти зможеш обійти це, тому це просто не проблема.
Беска

@James Punkbuster - жахливий. Я багато інших мали поганий досвід, намагаючись грати в нові ігри, коли вони виходять. Постійно б’ють по ногах за якусь помилку панкбастера, а не для задоволення.
AttackingHobo

@Beska: як круто, як це звучить, мені потрібно серйозно переконати, що боти не зможуть знищити гру для гравців, які не є ботом. Я впевнений, що гра може бути розроблена там, де боти не зіпсують досвід. Я цілком впевнений, що для більшості ігор для багатьох гравців в Інтернеті нетривіально робити бот-ігровою механікою.
deft_code

@AttackingHobo Все, що я хотів зазначити, - це цілі компанії, які нічого не роблять, окрім як намагаються знайти рішення цієї проблеми. PunkBuster - лише одна з найбільш відомих програм, яка намагається це зробити, добре чи погано :)
Джеймс

Відповіді:


8

Існує два підходи до протидії ботам. Це захист на стороні клієнта та аналіз на стороні сервера.

Захист на стороні клієнта є найбільш очевидним підходом - грубою силою, в певному сенсі. Ви докладаєте всіх зусиль для того, щоб ігровий клієнт був повністю законним, не був підроблений, і жодна інша програма не впливає на нього. Зараз це складна проблема, і її неможливо повністю вирішити. Але багато ігор намагаються і мають певний успіх із цим методом. Я знаю, що існує кілька готових рішень для захисту клієнтів, і пропоную вам їх шукати. Реалізувати себе - це непросте завдання.

Окрім того, що менш 100% ефективний, захист на стороні клієнта має і недоліки, що вони надзвичайно дратівливі для ваших гравців. Зазвичай це має на увазі такі речі, як відключення переключення завдань alt-tab, антивірусні програми тощо.

Аналіз на стороні сервера менш нав'язливий. У такому підході у вас є код сервера, який аналізує шаблони поведінки гравців. Найчастіше боти грають демонстративно по-різному. Наприклад, у гравців людини різний час між діями (наприклад, стрілянина), і цей час підпорядковується розподілу кривих дзвіночків. Примітивні боти матимуть постійний час або розподіляються рівномірно протягом певного інтервалу. Веселий факт: використовуючи цей метод, ми одного разу зловили гравця з механічним ботом - розумним пристроєм, який натискав кнопки на його фізичній клавіатурі. Само собою зрозуміло, не кількість захисту клієнта може зловити що . Але цей аналіз не є досконалим. Більш просунуті боти обдурять ваші системи, і чим більше перевірок ви впровадите, тим більш просунуті боти стануть.

Для кращого захисту можна комбінувати обидва ці способи. Захист клієнта ускладнить розробку ботів, а серверний аналіз зупинить прості боти, які були швидко розроблені. Але що б ви не робили, ви ніколи не можете повністю зупинити ботів. Ну, якщо ви не відправите своїх представників до дому гравців, щоб контролювати їх гру та повідомляти про порушення. (До речі, це не чутно. Я, безумовно, прочитав історію про онлайн-покерну компанію, яка відсилала людей до дому дуже успішного гравця, щоб підтвердити, що він грає законно. Але я, здається, не можу цього знайти.)

Є ще дві сумнівні рекомендації щодо боротьби з ботами. Один, зашифруйте ваш мережевий трафік. Я не думаю, що це не спрацює. Якщо ваш клієнт знаходиться в руках ворога, трафік може бути і буде розшифровуватися ... або ваш власний клієнт буде використовуватися для шифрування. З іншого боку, шифрування додає відставання, і це справді погано для "шутера в реальному часі". Друга рекомендація - "просто спроектуйте свою гру навколо цього". Хоча це здається здоровою ідеєю, я ще не бачив жодної гри, яка керувала цим.


1
Сумніваюсь, ти знайшов хлопця з механічним ботом. Швидше за все це був програмний бот, який імітував апаратну клавіатуру для входів.
Атака

2
Ні, фактичний механічний бот. Автор надіслав нам фотографії. На жаль, вони вже видалені з сервера (це було ще в 2007 році!), Тому вам доведеться прийняти моє слово за це.
Nevermind

дякую за відповідь. Я вважаю, що шифрування може трохи "підняти планку" і захистити від багатьох хакерів. Але чи може бути будь-яке реальне шифрування спілкування практичним у критично важливих для часу іграх, таких як шутери чи навіть MMO?
Zaky German

Жодна з ігор, в яких я працював, не використовувала шифрування деінде, крім послідовності входу, тому я не знаю, наскільки це впливає на відставання. Я думаю, залежить від алгоритму шифрування.
забудьте

2

Я не очікував би, що хтось із великих гравців поговорить про те, що вони роблять для захисту своїх ігор. Чим менше людей знає про те, що вони роблять, тим важче людям працювати над цим. Я думаю, що частиною того, що робить Steam, є пошук певних додатків, які працюють у чорному списку.

Особисто я б спробував зашифрувати та зашкодити спілкування якомога більше між комунікаційними машинами, можливо, варто прочитати про те, як працює https / ssl, щоб отримати деякі ідеї. Якщо хости повинні генерувати випадкові відкриті / приватні ключі та лише надсилати публічну частину іншим клієнтам, то щось не було б легко перехопити та змінити вміст пакетів, що надсилаються, хоча якщо у вас є доступ до клієнта машина тоді нічого не є повністю безпечним.

Вам також потрібно переконатися, що клієнтська програма exe не піддається фальсифікації.


1

Створіть свою гру так, щоб робота в команді та фактичні інтелектуальні рішення були важливішими, ніж вміння домішуватися ідеально. Робити пристойних ботів стає експоненціально важче.


Я думаю, що ігри, які залежать від роботи в команді та підготовки, і ігри, що залежать від навичок чистого смикання, мають своє місце. Але я не думаю, що хтось повинен адаптувати свій вибір дизайну ігор до технічних перешкод
Zaky German

@Zaky: Я колись прототипував гру-черв'ячну гру, де під час раптової смерті екран повільно наповнювався рідиною SPH. Це виглядало по-справжньому круто, поки гра не загинула. Я думаю, що багато ігрових дизайнерських рішень впливають на технічні перешкоди.
deft_code

@deft_code Я мав на увазі ігровий дизайн, як в ігровій механіці, а не художній чи графічний дизайн
Zaky German

Моє використання SPH - стільки ігрового механіка, скільки водяниста смерть у глистів. Я просто змінюю спосіб взаємодії води з грою.
deft_code

0

І задайте собі все важливе питання про те, чи варто турбуватися. Шахраї та шахраї можуть робити 2 речі:

  1. знищити гру для себе. Вони не можуть грати без бота, вони швидко втрачають інтерес і залишають, тому що це не весело.
  2. знищити гру для інших. Вони стають надмірно потужними завдяки своєму боту, тим самим коштуючи вам клієнтів. Зазвичай це супроводжується одним гравцем, який керує кількома ботами з одного фізичного комп'ютера (або використовує набагато більше комп'ютерів, ніж від одного гравця можна очікувати управління вручну).

Вони, звичайно, не виключають один одного.

Зазвичай, найбільша проблема - це 3+ (оскільки людина може навчатись використовувати одночасно 2 клавіатури або інші пристрої введення, але не більше, оскільки у нього є лише дві руки) клієнтів з однакових або тісно пов'язаних IP-адрес (або MAC адреси), що діють у прямому унісон, виконуючи команди протягом мілісекунд один від одного. Отже, якщо ви виявите, наприклад, 5 клієнтів, що походять з однієї ip адреси, всі команди, які дають команди з аномально високою швидкістю та при аномально тісній координації, ви, швидше за все, знайшли свого боттера. Зазвичай це буде найбільш згубним у сценаріях pvp, де ця бот армія може домінувати над задіянням проти аналогічної кількості контрольованих людьми тонів завдяки своїй більш високій координації та швидкості. У сценаріях pve зазвичай гра обмежена (за винятком того, що вона дозволяє одній людині швидше тренувати кілька тонів до високих рівнів,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.