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 :)

Zaky German
źródło
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.

Nieważne
źródło
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.

Roger Perkins
źródło
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.

Tom Gullen
źródło
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,

jwenting
źródło