So schützen Sie Ihren Echtzeit-Online-Shooter vor potenziellen Bots


14

Ich möchte einen Multiplayer-Top-Down-Shooter erstellen. Während ich über verschiedene Themen gelesen habe, kann ich sehen, dass ich einige echte Herausforderungen vor mir habe, aber ich bin alle bereit dafür.

Eine Sache, die ich nicht verstehen kann, ist, wie soll ich das Spiel vor Leuten schützen, die versuchen, Bots zu erstellen?

Ich meine, soweit ich weiß, ist es unmöglich, den Netzwerkverkehr so ​​zu schützen, dass die Spieler keine Programme erstellen können, die die Vorgänge anhören und verstehen.

Was mich also beunruhigt, ist, dass die Leute Bots erstellen können, die den aktuellen Standort der Rivalen abhören und eine Kommunikation senden, die so aussieht, als würde der Spieler genau an dem "perfekten" Ort schießen, um das Match zu gewinnen.

Welche Techniken werden also verwendet, um Echtzeitspiele vor solchen Bots zu schützen?

Ich möchte auch erwähnen, dass ich versucht habe, nach Diskussionen zu suchen (das hört sich nach etwas an, mit dem viele Leute zu kämpfen haben), aber nichts darüber speziell finden konnte, nur als Teil allgemeinerer Fragen zum Networking in Echtzeitspielen . Wenn ich härter ausgesehen haben sollte, zögern Sie nicht, mich an meine Stelle zu setzen :)


Punkbuster, hehe .. Es gibt einen Grund, warum es eine Drittanbieter-App gibt, die Drittanbieter-Apps und -Änderungen erkennt :)
James

Warum machst du dir Sorgen, wenn Leute Bots erstellen? Vielleicht können Sie das umgehen, es ist also kein Problem.
Beska

@ James Punkbuster ist schrecklich. Ich bin, dass viele andere schlechte Erfahrungen mit dem Versuch gemacht haben, neue Spiele zu spielen, wenn sie herauskommen. Lass dich ständig für einen Punkbuster-Fehler kicken, der keinen Spaß macht.
AttackingHobo

@Beska: So cool das klingt, ich brauche eine ernsthafte Überzeugung, dass Bots das Spiel für Nicht-Bot-Spieler nicht zerstören werden. Ich bin mir sicher, dass ein Spiel entwickelt werden könnte, bei dem Bots die Erfahrung nicht ruinieren würden. Ich bin mir ziemlich sicher, dass es für die meisten Online-Multiplayer-Spiele nicht trivial ist, die Spielmechanik als Bot-Beweis zu verwenden.
deft_code

@AttackingHobo Ich wollte nur darauf hinweisen, dass es ganze Unternehmen gibt, die nur versuchen, eine Lösung für dieses Problem zu finden. PunkBuster ist nur eine der bekannteren Software, die versucht, dies zu tun, gut oder schlecht :)
James

Antworten:


8

Es gibt zwei Ansätze, um Bots entgegenzuwirken. Sie sind clientseitiger Schutz und serverseitige Analyse.

Client-seitiger Schutz ist der naheliegendste Ansatz - gewissermaßen Brute Force. Sie unternehmen alle Anstrengungen, um sicherzustellen, dass der Spielclient vollständig legitim ist, nicht manipuliert wurde und von keinem anderen Programm betroffen ist. Dies ist ein schwieriges Problem, das nicht vollständig zu lösen ist. Aber viele Spiele versuchen es und haben einige Erfolge mit dieser Methode. Ich weiß, dass es einige vorgefertigte Lösungen für den Kundenschutz gibt, und schlage vor, dass Sie nach ihnen suchen. Eine selbst umzusetzen ist eine entmutigende Aufgabe.

Client-seitiger Schutz ist nicht nur weniger als 100% effektiv, sondern hat auch den Nachteil, dass er für Ihre Spieler äußerst ärgerlich ist. Normalerweise impliziert dies Dinge wie das Deaktivieren der Umschaltung von Alt-Tab-Aufgaben, Antivirenprogramme usw.

Die serverseitige Analyse ist weniger aufdringlich. Bei diesem Ansatz verfügen Sie über einen Servercode, der Muster im Verhalten der Spieler analysiert. Meistens spielen Bots nachweislich anders. Beispielsweise haben menschliche Spieler eine unterschiedliche Zeitspanne zwischen den Aktionen (z. B. Schießen), und diesmal wird eine Glockenkurvenverteilung eingehalten. Primitive Bots haben eine konstante Zeit oder sind gleichmäßig über ein bestimmtes Intervall verteilt. Tolles Faktum: Auf diese Weise haben wir einmal einen Spieler mit einem mechanischen Bot erwischt - einem cleveren Gerät, das Tasten auf seiner Tastatur gedrückt hat. Unnötig zu sagen, kann nicht Menge an Kundenschutz fangen , dass . Dennoch ist diese Analyse nicht perfekt. Fortgeschrittenere Bots täuschen Ihre Systeme, und je mehr Prüfungen Sie implementieren, desto fortgeschrittenere Bots werden.

Für einen optimalen Schutz können Sie beide Methoden kombinieren. Der Client-Schutz erschwert die Entwicklung von Bots, und die Server-Analyse stoppt einfache Bots, die schnell entwickelt wurden. Aber was auch immer Sie tun, Sie können Bots nie ganz stoppen. Nun, es sei denn, Sie schicken Ihre Vertreter zu den Häusern der Spieler, um deren Spiel zu überwachen und Verstöße zu melden. (Was übrigens nicht ungewöhnlich ist. Ich habe definitiv eine Geschichte über ein Online-Poker-Unternehmen gelesen, das Leute zu einem sehr erfolgreichen Spieler nach Hause geschickt hat, um zu bestätigen, dass er legitim gespielt hat. Aber ich kann es anscheinend nicht finden.)

Es gibt zwei weitere zweifelhafte Empfehlungen für den Kampf gegen Bots. Erstens, verschlüsseln Sie Ihren Netzwerkverkehr. Ich glaube nicht, dass das funktionieren wird. Befindet sich Ihr Client in der Hand eines Feindes, kann und wird der Datenverkehr entschlüsselt ... oder Ihr eigener Client wird für die Verschlüsselung verwendet. Andererseits führt die Verschlüsselung zu einer Verzögerung, was für einen "Echtzeit-Shooter" sehr schlecht ist. Die zweite Empfehlung lautet "Gestalte dein Spiel einfach so". Obwohl dies eine gute Idee zu sein scheint, habe ich noch kein einziges Spiel gesehen, das dies geschafft hat.


1
Ich bezweifle, dass Sie einen Typen mit einem mechanischen Bot gefunden haben. Es war eher ein Software-Bot, der eine Hardwaretastatur für die Eingaben emulierte.
AttackingHobo

2
Nein, tatsächlicher mechanischer Bot. Der Autor hat uns Bilder geschickt. Leider sind sie bereits vom Server gelöscht (es war im Jahr 2007!), So dass Sie mein Wort dafür nehmen müssen.
Nevermind

Danke für die Antwort. Ich nehme an, dass die Verschlüsselung die Messlatte ein wenig höher legen und vor vielen Hackern schützen könnte. Aber wäre eine echte Kommunikationsverschlüsselung in zeitkritischen Spielen wie Shootern oder sogar MMOs praktisch?
Zaky German

Keines der Spiele, an denen ich gearbeitet habe, verwendete Verschlüsselung außer der Anmeldesequenz. Daher weiß ich nicht, wie sehr dies die Verzögerung beeinflusst. Kommt auf den Verschlüsselungsalgorithmus an, denke ich.
Nevermind

2

Ich würde nicht erwarten, dass einer der großen Spieler darüber spricht, was sie tun, um ihre Spiele zu schützen. Je weniger die Leute wissen, was sie tun, desto schwieriger ist es für die Leute, sich darum zu kümmern. Ich denke, Steam sucht unter anderem nach bestimmten Anwendungen, die auf einer schwarzen Liste stehen.

Persönlich würde ich versuchen, die Kommunikation zwischen kommunizierenden Maschinen so gut wie möglich zu verschlüsseln und zu verschleiern. Es könnte sich lohnen, über die Funktionsweise von https / ssl nachzulesen, um einige Ideen zu erhalten. Wenn die Hosts einen zufälligen öffentlichen / privaten Schlüssel generieren und den öffentlichen Teil nur an andere Clients senden würden, wäre es nicht einfach, den Inhalt der zu sendenden Pakete abzufangen und zu ändern, obwohl Sie Zugriff auf den Client haben Maschine ist dann nichts mehr völlig sicher.

Sie müssen auch sicherstellen, dass die Client-Exe nicht manipuliert wird.


1

Gestalten Sie Ihr Spiel so, dass Teamarbeit und tatsächliche intelligente Entscheidungen wichtiger sind, als perfekt zielen zu können. Es wird exponentiell schwieriger, anständige Bots zu machen.


Ich denke, dass Spiele, die von Teamwork und Vorbereitung abhängen, und Spiele, die von reinen Zuckungsfähigkeiten abhängen, ihren Platz haben. Trotzdem denke ich nicht, dass jemand seine Spieldesign-Entscheidungen an technische Hindernisse anpassen sollte
Zaky German

@Zaky: Ich habe einmal ein Wurmspiel entwickelt, bei dem sich der Bildschirm während eines plötzlichen Todes langsam mit einer SPH-Flüssigkeit füllte. Es sah wirklich cool aus, bis das Spiel zu Tode lag. Ich denke, viele Entscheidungen im Spieldesign werden durch technische Hindernisse beeinflusst.
deft_code

@deft_code Ich meinte Game-Design wie in der Gameplay-Mechanik, nicht künstlerische oder grafische Gestaltung
Zaky Deutsch

Mein Einsatz von SPH ist ebenso eine Spielmechanik wie der wässrige Tod von Würmern. Ich ändere nur die Art und Weise, wie das Wasser mit dem Spiel interagiert.
deft_code

0

Und stellen Sie sich die alles entscheidende Frage, ob sich die Mühe lohnt. Cheater und Botters können zwei Dinge tun:

  1. zerstöre das Spiel für sich. Sie können nicht ohne den Bot spielen, verlieren schnell das Interesse und gehen, weil es keinen Spaß macht.
  2. zerstöre das Spiel für andere. Sie werden durch ihren Bot übermächtig und kosten Ihre Kunden. Dies wird normalerweise von einem einzelnen Spieler begleitet, der mehrere Bots von demselben physischen Computer aus steuert (oder weit mehr Computer verwendet, als von einem einzelnen Spieler manuell gesteuert werden kann).

Die beiden schließen sich natürlich nicht gegenseitig aus.

In der Regel ist dann das größte Problem 3+ (da ein Mensch mit dem Training 2 Tastaturen oder andere Eingabegeräte gleichzeitig verwenden kann, aber nicht mehr, da er nur 2 Hände hat) Clients mit den gleichen oder eng verwandten IP-Adressen (oder MAC) Adressen), die im direkten Gleichlauf Befehle innerhalb von Millisekunden voneinander ausführen. Wenn Sie also feststellen, dass 5 Clients von derselben IP-Adresse stammen und Befehle mit einer ungewöhnlich hohen Rate und einer ungewöhnlich engen Koordination geben, haben Sie wahrscheinlich Ihren Botter gefunden. Normalerweise ist dies in PvP-Szenarien am schädlichsten, in denen diese Bot-Armee aufgrund ihrer höheren Koordination und Geschwindigkeit ein Engagement gegen eine ähnliche Anzahl von von Menschen kontrollierten Toons dominieren kann. In PVE-Szenarien ist der Schaden des Spiels in der Regel begrenzt (mit der Ausnahme, dass eine Person mehrere Toons schneller auf hohe Level trainieren kann).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.