Jak chronić strzelankę online w czasie rzeczywistym przed potencjalnymi botami


14

Chcę stworzyć strzelankę dla wielu graczy. Gdy czytam o różnych tematach, widzę, że mam przed sobą prawdziwe wyzwania, ale jestem gotowa na to.

Nie rozumiem tylko, w jaki sposób mam chronić grę przed ludźmi, którzy próbują tworzyć boty?

Chodzi mi o to, o ile rozumiem, że nie można chronić ruchu sieciowego w taki sposób, aby gracze nie byli w stanie tworzyć programów, które słuchają tego, co się dzieje i rozumieją to.

Martwi mnie więc to, że ludzie mogą tworzyć boty, które słuchają bieżącej lokalizacji rywali i wysyłają komunikację naśladującą sytuację, jakby gracz strzelał w dokładnie „idealnej” lokalizacji, aby wygrać ten mecz.

Jakie techniki są używane do ochrony gier w czasie rzeczywistym przed takimi botami?

Chciałbym również wspomnieć, że próbowałem szukać dyskusji (ponieważ brzmi to jak coś, z czym zmaga się wiele osób), ale nie mogłem znaleźć niczego konkretnie na ten temat, tylko jako część szerszych pytań na temat sieci w grach czasu rzeczywistego . Gdybym miał wyglądać trudniej, umieść mnie na swoim miejscu :)


Punkbuster, hehe .. Istnieje powód, dla którego istnieje aplikacja innej firmy, która wykrywa aplikacje i zmiany innych firm :)
— James

Dlaczego martwisz się, że ludzie tworzą boty? Może możesz to obejść, więc to nie jest problem.
— Beska

@James Punkbuster jest okropny. Jestem wielu innych, którzy mieli złe doświadczenia, próbując grać w nowe gry, kiedy wychodzą. Ciągle zostajesz wyrzucony za jakiś błąd punkbustera, a nie zabawa.
— AttackingHobo

@Beska: tak fajnie, jak to brzmi, potrzebuję poważnego przekonania, że ​​boty nie zniszczą gry dla graczy niebędących botami. Jestem pewien, że można zaprojektować grę, w której boty nie zrujnują gry. Jestem pewien, że w przypadku większości gier wieloosobowych nie jest trywialne, aby mechanika gry była odporna na boty.
— deft_code

@AttackingHobo Chciałem tylko zaznaczyć, że są całe firmy, które robią tylko próby znalezienia rozwiązania tego problemu. PunkBuster jest tylko jednym z bardziej znanych programów, które próbują to zrobić, dobre lub złe :)
— James

Odpowiedzi:


8

Istnieją dwa podejścia do przeciwdziałania botom. Są to ochrona po stronie klienta i analiza po stronie serwera.

Ochrona po stronie klienta jest najbardziej oczywistym podejściem - w pewnym sensie brutalna siła. Dokładasz wszelkich starań, aby klient gry był w pełni zgodny z prawem, nie został zmieniony i żadne inne programy na niego nie wpływają. To jest trudny problem i niemożliwy do pełnego rozwiązania. Ale wiele gier próbuje i odnosi pewne sukcesy dzięki tej metodzie. Wiem, że istnieją gotowe rozwiązania ochrony klienta i sugeruję, abyś ich szukał. Samo wdrożenie jest trudnym zadaniem.

Oprócz tego, że jest mniej niż 100% skuteczna, ochrona po stronie klienta ma tę wadę, że jest wyjątkowo denerwująca dla twoich graczy. Zwykle oznacza to takie rzeczy, jak wyłączenie przełączania zadań Alt-Tab, programy antywirusowe itp.

Analiza po stronie serwera jest mniej inwazyjna. W tym podejściu masz kod serwera, który analizuje wzorce zachowań graczy. Najczęściej boty grają wyraźnie inaczej. Na przykład, gracze będący ludźmi mają różny czas między czynnościami (takimi jak strzelanie), a tym razem przestrzegają rozkładu krzywej dzwonowej. Prymitywne boty będą miały stały czas lub równomiernie rozłożone w pewnym okresie. Ciekawostka: za pomocą tej metody złapaliśmy kiedyś gracza z mechanicznym botem - sprytnym urządzeniem, które naciskało przyciski na fizycznej klawiaturze. Nie trzeba dodawać, że żadna ochrona klienta nie może tego uchwycić . Ta analiza nie jest jednak idealna. Bardziej zaawansowane boty oszukują twoje systemy, a im więcej kontroli wprowadzasz, tym bardziej zaawansowane stają się boty.

Aby uzyskać najlepszą ochronę, możesz połączyć obie te metody. Ochrona klienta utrudni tworzenie botów, a analiza serwera zatrzyma proste boty, które zostały szybko opracowane. Ale cokolwiek zrobisz, nigdy nie możesz całkowicie powstrzymać botów. O ile nie wyślesz swoich przedstawicieli do domów graczy, nadzoruj ich grę i zgłaszaj naruszenia. (Nawiasem mówiąc, nie jest to niespotykane. Zdecydowanie przeczytałem historię o pokerze online wysyłającym ludzi do domu odnoszącego sukcesy gracza, aby potwierdzić, że gra legalnie. Ale nie mogę tego teraz znaleźć.)

Istnieją jeszcze dwie wątpliwe zalecenia dotyczące walki z botami. Po pierwsze, zaszyfruj ruch sieciowy. Nie sądzę, żeby to zadziałało. Gdy twój klient jest w rękach wroga, ruch może być i zostanie odszyfrowany ... lub twój własny klient zostanie użyty do szyfrowania. Z drugiej strony szyfrowanie powoduje opóźnienie, co jest naprawdę złe dla „strzelanki w czasie rzeczywistym”. Drugie zalecenie to „po prostu zaprojektuj swoją grę na tym”. Choć wydaje się to dobrym pomysłem, nie widziałem jeszcze jednej gry, która to poradziłaby.


1
Wątpię, żebyś znalazł faceta z mechanicznym botem. Bardziej prawdopodobne było, że bot programowy emulował klawiaturę sprzętową dla wejść.
— AttackingHobo

2
Nie, rzeczywisty mechaniczny bot. Autor przesłał nam zdjęcia. Niestety, zostały już usunięte z serwera (było to w 2007 roku!), Więc musisz mi wierzyć.
— Nevermind,

Dzięki za odpowiedzi. Podejrzewam, że szyfrowanie może nieco podnieść poprzeczkę i ochronić przed wieloma hakerami. Ale czy jakiekolwiek prawdziwe szyfrowanie komunikacji byłoby praktyczne w grach o krytycznym czasie, takich jak strzelanki, a nawet MMO?
— Zaky German

Żadna z gier, nad którymi pracowałem, nie używała szyfrowania poza sekwencją logowania, więc nie wiem, jak bardzo wpływa na lag. Chyba zależy od algorytmu szyfrowania.
— Nevermind

2

Nie spodziewałbym się, że żaden z dużych graczy opowie o tym, co robią, aby chronić swoje gry. Im mniej ludzie wiedzą o tym, co robią, tym trudniej jest im się obejść. Myślę, że częścią tego, co robi Steam, jest wyszukiwanie niektórych działających aplikacji, które znajdują się na czarnej liście.

Osobiście starałbym się szyfrować i zaciemniać komunikację tak bardzo, jak to możliwe między komunikującymi się maszynami, może warto przeczytać o tym, jak działa https / ssl, aby uzyskać jakieś pomysły. Jeśli hosty wygenerują losowe klucze publiczne / prywatne i wyślą tylko część publiczną do innych klientów, wówczas coś nie będzie w stanie łatwo przechwycić i zmienić zawartości wysyłanych pakietów, chociaż jeśli masz dostęp do klienta maszyna wtedy nic nie jest całkowicie bezpieczne.

Musisz także upewnić się, że exe klienta nie zostanie zmieniony.


1

Zaprojektuj swoją grę tak, aby praca w zespole i podejmowanie właściwych decyzji były ważniejsze niż umiejętność celowania. Twarde boty stają się wykładniczo trudniejsze.


Myślę, że gry, które zależą od pracy zespołowej i przygotowania, oraz gry, które zależą od umiejętności czystego skurczu mają swoje miejsce. Nadal nie sądzę, aby ktokolwiek powinien dostosowywać swoje wybory do projektowania gier do przeszkód technicznych
— Zaky German,

@Zaky: Kiedyś prototypowałem grę w stylu robaków, w której podczas nagłej śmierci ekran powoli wypełniałby się płynem SPH. Wyglądało to naprawdę fajnie, dopóki gra nie opóźniła się. Myślę, że wiele decyzji dotyczących projektowania gier jest spowodowanych przeszkodami technicznymi.
— deft_code

@deft_code Miałem na myśli projektowanie gier jak w mechanice rozgrywki, a nie w projektach artystycznych lub graficznych
— Zaky German

Moje użycie SPH jest tak samo mechaniką gry, jak wodnistą śmiercią robaków. Zmieniam tylko sposób interakcji wody z grą.
— deft_code

0

I zadaj sobie najważniejsze pytanie, czy warto. Oszuści i osoby dojeżdżające do gry mogą robić 2 rzeczy:

  1. zniszczyć grę dla siebie. Nie mogą grać bez bota, szybko tracą zainteresowanie i odchodzą, ponieważ nie jest to zabawne.
  2. zniszczyć grę dla innych. Stają się zbyt potężni przez swojego bota, co kosztuje klientów. Zwykle towarzyszy temu pojedynczy gracz kontrolujący wiele botów z tego samego fizycznego komputera (lub korzysta ze znacznie większej liczby komputerów, niż można oczekiwać, że pojedynczy gracz będzie sterował ręcznie).

Oba nie wykluczają się oczywiście.

Zwykle największym problemem są 3+ (ponieważ człowiek może podczas szkolenia korzystać z 2 klawiatur lub innych urządzeń wejściowych w tym samym czasie, ale nie więcej, ponieważ ma tylko 2 ręce) klientów z tych samych lub blisko powiązanych adresów IP (lub MAC adresy) działając w zgodzie, wykonując polecenia w ciągu milisekund od siebie. Więc jeśli wykryjesz powiedzmy, że 5 klientów pochodzących z tego samego adresu IP wydaje polecenia z nienaturalnie wysoką częstotliwością i nienormalnie ścisłą koordynacją, prawdopodobnie znalazłeś swojego robota. Zwykle będzie to najbardziej szkodliwe w scenariuszach PvP, w których ta armia botów może zdominować starcie przeciwko podobnej liczbie ludzi kontrolowanych przez ludzi ze względu na wyższą koordynację i szybkość. W scenariuszach pve, gra zazwyczaj ma ograniczone obrażenia (z wyjątkiem tego, że pozwala jednej osobie szybciej trenować wiele toonów na wysokie poziomy,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.