Wie nehmen Spiel Bots die Spielwelt - andere Einheiten Game Development Stack-Austausch

Können Sie dies auf jedes Spiel anwenden oder ist es für jedes Spiel spezifisch? Es tut mir leid, wenn die Frage nicht klar ist. und ich bin nicht zu fragen, wie ein Bot zu machen, mehr zu fragen, wie sie die Dinge auf dem Bildschirm als sehr faszinierend für mich erkennen!







Danke im Voraus :)

Juni fragte 23 '15 um 12:40

Es gibt viele Punkte, an denen ein Bot sich in das Spiel injizieren.

Der Bildschirm ist einer von ihnen, aber bei weitem nicht das nützlichste. Allerdings habe ich einmal eine sehr frühe aimbot für Counter Strike gesehen, die Farbkodierung verwendet. Es kam mit alternativen Charakter-Modellen mit Single-farbigen Texturen (das Spiel wurde modding freundlich genug, um dies zu ermöglichen) und dann nur Pixel dieser Farben erkannt. Nicht eine sehr effektive Methode, though. Es war schon ziemlich klobig damals und immer weniger rentabel, weil grafische Motoren immer leistungsfähiger geworden, die mehr und mehr Details: jeder optische Erkennungsalgorithmen zu verwirren.

Es ist möglich, das Spiel ausführbaren selbst zu ändern. Um dies der Bot-Entwickler tun muß, in Assembler lesen und zu programmieren zu können, die nicht so schwer, mit etwas Übung ist. Sie sehen dann für den Code, der die Informationen übernimmt sie interessiert sind und schreiben sie es zu ihrem Bot zu übergeben. Eine mögliche Gegenmaßnahme aus der Perspektive des Spiels Entwickler ist es, eine obfuscator verwenden das Spiel der Assembler-Code weniger lesbar zu machen, aber diese sind in der Regel nicht gut für die Leistung und es gibt Werkzeuge für viele obfuscators, die ihre Arbeit umkehren.

Bots sind Spieler. Sie lesen gerade den Spieler / Monster Positionen vom Server wie jeder andere Spieler tut und diese Werte mit einem einfachen AI Skript kombiniert verwenden, um Aktionen im Spiel auszuführen, indem Tastatureingaben simulieren und Mausklicks programmatisch. Wenn Bots tatsächlich einen Algorithmus mußten zu erkennen, welche Monster auf dem Bildschirm und mit ihm interagieren, das wäre ein ziemlich beeindruckendes Stück Software sein, die würde im Wert von Millionen. Das ist im Grunde AI für Roboter.

beantwortet 23 '15 Juni um 13:16 Uhr

Phillip gab bereits einen guten Überblick darüber, wie, wie die meisten Bots arbeiten, aber ich wollte nur Dinge in etwas ausführlicher bedecken, wie ich ein wenig persönliche Erfahrung haben die Entwicklung auf oder für alle Arten von Bots er bedeckt.

In Runescape, gab es ein großes Projekt (RSBot), die den Inhalt des Speichers aus dem Runescape-Client in seinen lokalen Speicher kopieren würde, wo es dann ohne Risiko des Kunden zu kontrollieren auf den gesamten Zustand des Spiels sehen kann. Es erforderte ein wenig Reverse Engineering zu bestimmen, wo im Speicher zu suchen, um die Zeiger auf die Daten zu finden, aber sobald sie dies getan hatten, zogen sie ausgesetzt, um ein API Vorteil der Informationen zu nehmen. Es würde genau wissen, was war, wo in der Welt durch die Koordinaten eines Objekts erhalten und dann Matrix verwandeln sie mit der Kamera verwandeln die Bildschirmposition zu erhalten. Die Treffer Masken waren auch lesbar, so war es trivial, genau zu bestimmen, was die Maus in bewegen, um im Bereich um ein gewünschtes Ergebnis zu erzielen.







Der Bot eine Reihe von Debug-Informationen, wie Anmerkungen versehen, die die Entwickler gesagt, die Kachelkoordinaten sind in dem, was ID dieses Objekt hat, welche ID zu einem gegebenen Element gehört, usw. Diese Informationen können dann verwendet werden, Bots zu machen. Der eigentliche Prozess des Bot-Skripte zu machen war eigentlich ganz einfach. Das Framework bereitgestellt viele Nutzenfunktionen, wie BEWEGE_ZU (world_coordinates) oder MOUSE_MOVE (x, y), die die spezifizierten Aktionen in einer etwas glaubhafte Weise (Bewegen der Maus entlang einer zufälligen Spline durchführen würde, wiederholt durch Bewegen sowohl der Minikarte und Bildschirm, und bald)

Auch in Runescape, Sie haben die Möglichkeit, drastisch die Qualität der Grafik zu reduzieren. Es war eigentlich recht einfach zu bestimmten Arten von Bots zu machen, indem Sie den Bildschirm filmen und einige grundlegende Computer-Vision-Konzepte, um die Anwendung eines Modells der Welt zu bauen. Ich habe sowohl einen Fluch bietet und Verhüttung bietet mit dieser Technik, die beide ganz gut funktioniert. Es würde nur den Rahmen, erhöhen Sie die Sättigung, so viel wie sie konnte, und dann versuchen, Muster daraus zu extrahieren, die sie dann eine Wahrscheinlichkeitskarte für Klick Zonen erzeugen könnte.

Im Fall des Fluch bietet, war das Ziel ein geringerer Dämon, der nur ein riesiges rotes Ding ist, das ist trivial zu finden. Im Fall des Schmelz bietet, wäre es für eine kleine orange Trapez von grau umgeben zu sehen, und das wäre der Ofen sein. Es würde auch versuchen, eine große, hellgrau ‚L‘ Form zu finden, die die Bank Schreibtisch wären. Das war nur mit Downscaling und Grund Heuristik getan. Es könnte orientieren sich auch mit dem praktischen Kompass neben der Minikarte, so dass er die Kamera in einer zuverlässigeren Position orientieren könnte die Zielobjekte zu finden.

In verschiedenen Nexon Spiele, sind die Server sehr vertrauensvoll der Kunden. Ich missbraucht diese eine Tonne in Maplestory von Karten Ändern Gefahr entfernen oder Verwerfungen hinzufügen, so dass ein Bot nicht annähernd so hoch entwickelt sein muss. Ich würde auch den Verkehr zu und von dem Server, um ein Modell der Welt zu überwachen, um zu bauen, die dann dazu verwendet werden könnten, um schnell zu finden und Monster zu töten.

beantwortet 24 '15 Juni um 18:18 Uhr

Phillip Antwort ist groß, aber nur eine kurze Notiz über das Model / View / Controller-Muster oder MVC kurz.

Ihr Bildschirm ist Teil der „Ansicht“, die Daten aus dem „Modell“ präsentiert, das der reale Zustand des Spiels ist es, wenn Sie mögen. Die Bots und dein Charakter, alle ‚existieren‘ (in gewissem Sinne) innerhalb des Modells. Stellen Sie sich vor, wenn Sie Ihren Bildschirm unplugged - das Spiel auch weiterhin, obwohl die Ansicht gegangen ist.

beantwortet 24 '15 Juni um 15:06 Uhr

Sie können die Koordinaten aus einer Datei oder einen Server lesen, sondern auch mit einem Strahl Kollisionserkennungssystem. Es ist üblich, Strahlen zu verwenden, die vom Bot (in diesem Fall) nach außerhalb ihm geht. Wenn der Strahl mit etwas kollidiert dann gibt es einige Informationen zu den Bot wie wenn das, was der Strahl fand einen Spieler war, einen Bot, ein Tier oder eine einfache Wand. Das liegt daran, dass im Fall des Spielers und der Bot zum Beispiel sie eine unsichtbare Kapsel, die sie vollständig mit Informationen über seine Art zum Beispiel beinhaltet (human, bietet.). Damit können sie vermeiden, mit Wänden und anderen elemnts abstürzt, wenn sie Sie folgen zum Beispiel.

Sie können den Teil Kollisionserkennung dieser Seite sehen

beantwortet 23 '15 Juni um 14:05 Uhr

Das würde erfordern Sie Code an das eigentliche Spiel zu injizieren, obwohl - dimitris93 23. Juni '15 um 14:10 Uhr







In Verbindung stehende Artikel