Was ist das
CastlevaniaBot ist ein Plugin fĂŒr
den NES Nintaco-Emulator , der in Castlevania gespielt wird. Wenn Sie es auf dem BegrĂŒĂungsbildschirm ausfĂŒhren, durchlĂ€uft das Plugin das gesamte Spiel von Anfang bis Ende. Oder Sie können es ĂŒberall im Spiel ausfĂŒhren, damit es einen Teil davon durchlĂ€uft.
In diesem Artikel werde ich Ihnen erklĂ€ren, wie Sie einen Bot erstellen, der Castlevania passieren kann, und wie Sie fĂŒr jedes Spiel auf NES etwas Ăhnliches erstellen können.
Wissensbasierte Struktur
Dieses Projekt verwendete kein maschinelles Lernen. Entwicklung kann vielmehr als "maschinelles Lernen" bezeichnet werden. Ich weiĂ, wie man an Castlevania vorbeikommt. Die Schwierigkeit bestand darin, mein Wissen in ein Computerprogramm zu schreiben. Das Ergebnis war ein System, das denselben Entscheidungsprozess simuliert, den ich mit dem Controller in meinen HĂ€nden durchfĂŒhre. Um es zu erstellen, mussten die detaillierten Details der Physik, die die Bitwelt von Simon Belmont steuert, und alle Taktiken, die fĂŒr einen erfahrenen VampirjĂ€ger erforderlich sind, klar angegeben werden.
CastlevaniaBot hat Zugriff auf eine Reihe von Strategien, um mit einer Vielzahl von Situationen umzugehen. Die meisten von ihnen sind fĂŒr die Arbeit mit einer bestimmten Art von Spielobjekten ausgelegt. Zum Beispiel gibt es eine Skelettkontrollstrategie, eine andere fĂŒr Fischmenschen, zum Brechen von Kerzen, zum Sammeln von Herzen und so weiter.
CastlevaniaBot ĂŒberwacht stĂ€ndig den Stand des Spiels und wechselt bei Bedarf zwischen verschiedenen Strategien. Bei der Entscheidungsfindung wird die Fitnessfunktion verwendet, mit der alle Spielobjekte auf dem Bildschirm eingestuft werden. Ganz oben auf der Liste steht das Hauptziel, und wenn es sich Ă€ndert, Ă€ndert der Bot seine Strategie. Zum Beispiel könnte CastlevaniaBot bereit sein, die Kerzen zu schlagen, wenn eine Fledermaus in den Rahmen fliegt. AbhĂ€ngig von der Entfernung zur Fledermaus kann CastlevaniaBot von einer Kerzenstrategie zu einer Fledermausstrategie wechseln. Er wird die Fledermaus zerstören und weiterhin mit Kerzen arbeiten.
Bevor CastlevaniaBot sich fĂŒr einen Wechsel entscheidet, ĂŒberprĂŒft es sein aktuelles Ziel und seine Strategie. Wenn er keinen Erfolg hat, kann er in einem endlosen Zyklus stecken bleiben und zwischen zwei Zielen mit gleicher oder fast gleicher PrioritĂ€t hin und her wechseln. Um dies zu vermeiden, kann CastlevaniaBot beschlieĂen, die aktuelle Strategie fortzusetzen, wenn ein neues Hauptziel angezeigt wird, dessen PrioritĂ€t nur geringfĂŒgig höher ist als das aktuelle Ziel.
Einige Strategien werden automatisch gestartet, wenn sie in einen bestimmten Bereich fallen. In der Regel sind sie fĂŒr die gleichzeitige Bearbeitung mehrerer Spielobjekte vorgesehen. In einem Korridor mit einem Haufen fliegender Quallenköpfe ist es beispielsweise am besten, einfach weiterzumachen und nicht auf jeden Kopf einzeln zu zielen.
Einige Strategien können abhĂ€ngig von der aktuellen SekundĂ€rwaffe und der Anzahl der gesammelten Herzen variieren, insbesondere bei BosskĂ€mpfen. CastlevaniaBot versucht, basierend auf den verfĂŒgbaren Tools und der aktuellen Situation die beste Entscheidung zu treffen.
Planen einer 8-Bit-Welt
Bei der Arbeit an solchen Projekten versuche ich in erster Linie, die Aufgabe zu vereinfachen. Ich stellte mir vor, wie Castlevania aussehen wĂŒrde, wenn es auf den Levels keine Feinde, Kerzen oder GegenstĂ€nde zum Sammeln gĂ€be. Alles was in diesem Fall benötigt wird, ist einfach vom Anfang bis zum Ende des Levels zu kommen. Ich fragte mich: Wenn ich dem Bot beibringen kann, wie das geht, wie schwierig wird es sein, mehrere Feinde auf dem Weg zu zerstören?
Um dem Bot das Bewegen beizubringen, brauchte ich Kachel-Hintergrundkarten und ein VerstĂ€ndnis dafĂŒr, wie die Level organisiert sind. Das Spiel besteht aus sechs Levels, von denen jedes mit einem Boss endet.
Jedes Level ist in 3 oder 4 Stufen unterteilt. Die BĂŒhnen sind normalerweise durch HolztĂŒren getrennt, die sich knarrend öffnen und hinter dem RĂŒcken des Spielers zuschlagen.
TĂŒren sind Kontrollpunkte (Checkpoints). Wenn ein Spieler getötet wird, kehrt er zum Beginn der Phase zurĂŒck, aber nur, wenn er sein Leben nicht beendet hat. Wenn Sie das Spiel nach dem Spielende fortsetzen, wird der Spieler an den Anfang des Levels geschickt.
Die Stufennummer gibt die Gesamtzahl der seit Spielbeginn abgeschlossenen Kontrollpunkte an. Die letzte Stufe ist Nummer 18. Wenn Sie jedoch Dracula töten, beginnt das Spiel im schwierigen Modus von vorne und die Anzahl der Stufen steigt weiter auf 19 und darĂŒber hinaus. Wenn Sie den schwierigen Modus durchlaufen, wird der dritte Zyklus des Spiels nicht schwieriger, aber die Anzahl der Stufen steigt weiter an.
Jede Stufe besteht aus einer oder mehreren horizontalen Bildlaufleisten des Hintergrunds, die ich als "Unterschritte" bezeichne. Wenn Sie den Bildschirm ĂŒber die Treppe nach oben oder unten verlassen, wechselt das Spiel von einer Unterstufe zur nĂ€chsten und rollt nicht vertikal.
Das Spiel verwendet 3 Bytes, um die Spielzyklusnummer, die Stufennummer und die Unterstufennummer zu verfolgen. Der Spielzyklus im Normalmodus (Normalmodus) hat den Wert 0; Werte von 1 und höher zeigen den schwierigen Modus an. UnabhÀngig vom Spielzyklus haben die Schritte immer eine Nummerierung von 0 bis 18. Und die Unterschritte haben immer einen Wert von 0 oder 1, da die Schritte nie mehr als 2 horizontale Streifen enthalten. CastlevaniaBot verfolgt diese Bytes, um zu wissen, wo sie sich befinden.
Der Einfachheit halber habe ich den Hintergrundstreifen jeder Unterstufe in einer separaten Grafikdatei aufgezeichnet. Wenn ich die genauen Koordinaten eines Objekts herausfinden musste, konnte ich sie mit einem grafischen Editor schnell herausfinden. Ich habe die Dateien mit dem in Nintaco integrierten Map Maker-Tool aufgenommen. Ich schaltete es ein und ging dann das ganze Spiel durch. Einige der resultierenden Bilder enthielten mehrere miteinander verbundene Teilschritte, die leicht auseinander zu brechen waren.
Nachdem ich die Hintergrundbilder untersucht hatte, stellte ich fest, dass die einzigen wichtigen Kacheln Plattformen und Treppen sind. Alles andere kann als leerer Raum betrachtet werden. Es gibt zwei Arten von Treppen: vorwĂ€rts oder rĂŒckwĂ€rts (sie können als linker und rechter Rand eines gleichschenkligen Dreiecks dargestellt werden). Manchmal endet die Treppe mit einer Plattform, auf der der Spieler gehen kann.
Es gibt nur 5 wichtige Arten von Kacheln, und auf jeder Ebene haben sie ein anderes Aussehen. Ich habe sie kopiert und in separate 16 Ă 16-Bilddateien eingefĂŒgt. Dann habe ich ein Programm geschrieben, das jede Kachel in jedem Unterschritt mit dem entsprechenden Satz von Bildern vergleicht. Also habe ich die Matrix-Kacheltypen fĂŒr alle Unterschritte erhalten.
Die Matrizen konnten direkt aus dem ROM extrahiert werden, aber ich konnte die Dokumentation darĂŒber, wie und wo die Daten gespeichert sind, nicht finden. Da der ROM-Speicherplatz begrenzt ist, werden Level-Daten normalerweise in komprimierter Form dargestellt, die einem Vektorgrafikformat Ă€hnelt. Jedes Spiel verwendet ein eigenes Format, daher hielt ich es nicht fĂŒr notwendig, Nachforschungen anzustellen, da ich Map Maker hatte. AuĂerdem brauchte ich noch grafische Bilder der Unterschritte. Wenn ich die Hintergrundstreifen nicht erfasst hĂ€tte, mĂŒsste ich ein Programm schreiben, das Bilder aus Matrizen generiert.
Wegfindung
Nachdem ich die Matrizen erstellt hatte, wollte ich den Pfad-Suchalgorithmus anwenden, nÀmlich
den Floyd-Warshall-Algorithmus , der die Ausgabetabelle mit den kĂŒrzesten Pfaden zwischen jedem der Eckpunktpaare des gerichteten Graphen mit gewichteten Kanten liefert. Die Idee war, Tabellen vorab zu berechnen, in Dateien zu schreiben und sie dann wĂ€hrend des Spiels zu laden. Mit Tabellen im Speicher kann der Bot den kĂŒrzesten Weg zwischen zwei beliebigen Plattformkacheln suchen und sofort herausfinden.
Das Diagramm besteht aus Kanten und Eckpunkten. Wenn Plattformkacheln Eckpunkte sind, sind Kanten nur die Operationen, die Simon ausfĂŒhren kann, um von einer Plattform zur anderen zu wechseln. Operationen, die nur innerhalb einer Kachel ausgefĂŒhrt werden, sind verboten. In einer Ebene aus Kacheln kann Simon beispielsweise nur eine Kachel nach links oder eine Kachel nach rechts verschieben.
Wenn Simon auf der Treppe ist, kann er ein PlÀttchen in eine von zwei möglichen Richtungen bewegen.
Dies sind gĂŒltige Operationen. Aktionen wie das Verschieben vom Mittelpunkt der Kachel zum Rand der Kachel sind jedoch zu fraktioniert, da sie nicht dem Ăbergang von einem Scheitelpunkt des Diagramms zu einem anderen entsprechen.
Simon kann nicht nur nach links und rechts gehen, Treppen hinunter- und hinaufsteigen, sondern auch zu einem anderen PlĂ€ttchen springen. Und er kann von jedem der 16 Pixel der KacheloberflĂ€che nach links oder rechts springen. Um die Anzahl der Kanten im Diagramm (und die GröĂe der Nachschlagetabelle) zu verringern, habe ich nur fĂŒnf mögliche AbstoĂungspunkte berĂŒcksichtigt:
Durch HinzufĂŒgen der Operation "nichts tun" habe ich 15 Operationen erhalten. Alle von ihnen sind einfach genug, so dass der Bot leicht die Reihenfolge der TastendrĂŒcke bestimmen kann, die fĂŒr ihre AusfĂŒhrung wĂ€hrend der AusfĂŒhrung des Spiels erforderlich sind.
Um ein vollstĂ€ndiges Diagramm zu erstellen, habe ich eine sehr einfache Simulation der Physik der Welt von Simon erstellt. In dieser Simulation werden alle 15 Operationen ausgehend von jeder Plattformkachel ausgefĂŒhrt. Der Graph wird erstellt, indem einfach beobachtet wird, wo sich Simon befindet. Insbesondere gibt die Simulation bei der Angabe der Anfangskoordinaten und der Operation die Endkoordinaten am Ausgang an. Wenn es keine endgĂŒltigen Koordinaten gibt, wenn Simon beispielsweise versucht, in eine Wand oder in ein Loch zu gehen, gibt das Programm zurĂŒck, dass die Operation ungĂŒltig ist und diese Kante nicht Teil des Diagramms ist.
Um diese Simulation zu erstellen, war eine grĂŒndliche Untersuchung von Simon Belmont erforderlich. Im Gegensatz zu anderen klassischen Plattformspielern, bei denen der Spieler vom Gehen zum Laufen beschleunigen kann, bewegt sich Simon bei horizontaler Bewegung immer genau 1 Pixel pro Bild. Dies gilt fĂŒr das Gehen, Springen, Treppensteigen und sogar beim ZurĂŒckwerfen, wenn Feinde angegriffen werden.
Die Begrenzung der horizontalen Geschwindigkeit vereinfacht die Erkennung von Hindernissen erheblich. Das Spiel prĂŒft, ob sich in einem Pixel vor dem Charakter eine Wand befindet, und stoppt gegebenenfalls die Bewegung. Der Test wird unterhalb der Kopfhöhe durchgefĂŒhrt, wodurch der Kopf unter niedrigen Decken hindurchgehen kann, ohne die horizontale Bewegung zu beeintrĂ€chtigen.
Die vertikale Bewegung ist etwas komplizierter. Wenn Simon vom Rand der Plattform herunterkommt, anstatt allmÀhlich zu beschleunigen, fÀllt er sofort mit einer Geschwindigkeit von 8 Pixel pro Bild herunter. Da jede Kachel eine Höhe von 16 Pixel hat (was einem Vielfachen von 8 entspricht), wird die Bodenerkennung vereinfacht. Gleichzeitig behÀlt der Spieler eine horizontale Geschwindigkeit von 1 Pixel pro Bild in der Richtung bei, die unmittelbar vor dem Fall erhalten wurde.
Simons Sprite ist 16 Pixel breit und kann von seinem Mittelpunkt aus maximal ± 4 Pixel ĂŒber dem Block schweben. Wenn Sie sich etwas mehr bewegen, fĂ€llt es darunter.
Es ist interessant, dass er bei der Landung nicht genau auf dem Block steht, wenn er die Plattform verlÀsst und genau 1 PlÀttchen mit einer Geschwindigkeit von 1 horizontalen und 8 vertikalen Pixeln pro Frame fÀllt. Eines seiner Beine bleibt bis zu einer Tiefe von 2 Pixeln in der Wand.
Danach kann er die Mauer verlassen, aber nicht hineingehen.
Simon kann wĂ€hrend des Sprunges die Richtung nicht Ă€ndern. Nach dem DrĂŒcken von Knopf A macht er einen festen Weg entlang der Parabel.
Oben steigt Simon um 36 Pixel an, wodurch er auf Plattformen mit einer Höhe von 2 Kacheln springen kann. Und die Oberseite der "Parabel" ist ĂŒberraschend flach. Es scheint, dass es im Raum fĂŒr 9 Vollbilder einfriert, möglicherweise um PeitschenschlĂ€ge in der Luft zu vereinfachen. Wenn Simon nichts zum Landen hat, wird die Parabelbewegung fortgesetzt, bis er zu seiner ursprĂŒnglichen GröĂe zurĂŒckkehrt. Danach beginnt es mit einer Geschwindigkeit von 8 Pixeln pro Bild zu fallen, dh mit der gleichen konstanten Geschwindigkeit, mit der es von der Plattform fĂ€llt.
Wenn sich eine Plattform direkt ĂŒber dem Kopf des Charakters befindet, ist das Springen nicht erlaubt.
Ansonsten âspringtâ er teilweise in die Plattformkacheln.
Wie bereits erwĂ€hnt, bewegt sich Simon nicht mehr horizontal, wenn er mehr als die Oberseite seines Kopfes berĂŒhrt. Dies ist am Ende der ersten Stufe von Level 4 ziemlich Ă€rgerlich, wenn der Spieler versucht, aus der Höhle herauszukommen.
Ăber Treppen können Sie sich frei vertikal zwischen Plattformen bewegen.
In einem Fall geht Simon die Treppe hinauf und geht durch die Plattformkachel. Auf der Treppe kann er frei durch die Wand gehen.
Auf mobilen Plattformen der Stufe 4 kauert der Spieler normalerweise unter tief hÀngenden Stalaktiten. Sie können sich jedoch erheben und sich gegen sie ausruhen. In einer solchen Situation schrÀnkt das Spiel die horizontale Bewegung ein und zieht Simon schnell in eine Wasserfalle.
Ein Physiksimulator, der orientierte Graphen erzeugt, betrachtet Simon als Rechteck. Die Bewegung dieses Rechtecks ââwird durch die oben beschriebenen Bewegungsregeln begrenzt. Damit der Bot nicht wie ein Kaninchen von Ort zu Ort springt, wurden den RĂ€ndern der SprĂŒnge des Grafen höhere Kosten zugewiesen als den RĂ€ndern des Gehens und Bewegens entlang der Treppe.
Die vom Pfadsuchalgorithmus generierte Tabelle enthĂ€lt die kĂŒrzeste Entfernung fĂŒr jede Start- und Endkachel (Gesamtkosten des Pfads) und eine Beschreibung des ersten Schritts des Pfads. Diese Beschreibung enthĂ€lt die erste Operation, die auf diesem Pfad ausgefĂŒhrt werden muss, und die Kachel, auf der sich das Zeichen nach Abschluss befindet. Der gesamte Pfad kann durch wiederholte Suche in der Tabelle neu erstellt werden, von denen jede den nĂ€chsten Schritt in Richtung der endgĂŒltigen Kachel gibt.
In einigen Unterschritten sind die Spalten nicht vollstĂ€ndig verbunden. Auf Ebene 4 sind beispielsweise Plattformen die einzige Möglichkeit, den Abgrund zu ĂŒberqueren. In solchen Unterschritten enthĂ€lt die Tabelle Methoden zum Bewegen um jede der Inseln, jedoch nicht zwischen ihnen.
Einige zerstörbare Blöcke enthalten versteckte Objekte. Und die Zerstörung der Blöcke verĂ€ndert diesen Graphen. Um dieses Problem zu umgehen, wurde ein Algorithmus zum Finden von Pfaden mit und ohne geteilte Blöcke auf die Unterschritte angewendet. Zur Laufzeit ĂŒberwacht CastlevaniaBot die ZustĂ€nde der zu teilenden Blöcke und verwendet die entsprechende Nachschlagetabelle.
Spielstatus
CastlevaniaBot lĂ€sst sich ĂŒber
seine API in Nintaco integrieren. Es registriert die Implementierung des
FrameListener
, um in jedem Frame eine RĂŒckgabe zu erhalten. Da der Emulator mit etwa 60 Bildern pro Sekunde ausgefĂŒhrt wird, muss dieser Listener rechtzeitig zurĂŒckgegeben werden. Lange Berechnungen oder Ausfallzeiten verlangsamen oder blockieren den Emulator. In kurzer Zeit liest CastlevaniaBot den Status des Spiels, bestimmt sein Hauptziel, wechselt die Strategie, wenn sich das Ziel geĂ€ndert hat, und erfĂŒllt die aktuelle Strategie.
CastlevaniaBot liest den aktuellen Status von Simon Belmont direkt aus dem RAM des Prozessors. Aber ich kann nicht feststellen, wie andere Spielobjekte im Speicher dargestellt werden. Daher liest CastlevaniaBot direkt aus dem Speicher der Attribute von Objekten (Object Attribute Memory, OAM) - einem Bereich, in dem eine Liste der angezeigten Sprites gespeichert ist.
Diese Technik funktioniert und ist allgemein auf andere Spiele anwendbar, hat jedoch viele Nachteile. Die Reihenfolge der Sprites in OAM Àndert sich stÀndig. Wenn mehrere Instanzen desselben Feindtyps gleichzeitig auf dem Bildschirm angezeigt werden, besteht die einzige Möglichkeit, sie zu verfolgen, darin, ihre NÀhe zu bestimmen und die letzten Koordinaten des Sprites mit den Koordinaten aus dem vorherigen Frame zu vergleichen.
Einige Spielobjekte bestehen aus sich wiederholenden Sprites, wie z. B. KnochentĂŒrmen.
Bewegliche Plattformen bestehen aus einem Sprite, das sich viermal wiederholt.
Das Sortieren dieser beiden FÀlle erfordert zusÀtzliche Logik, die einfach zu implementieren ist. SekundÀrwaffen-Upgrades und einige Arten von SekundÀrwaffen verwenden dieselben Sprites. Schlimmer noch, auf Stufe 5 leihen sich die Ritter Simons sekundÀre Waffen-Sprites aus.
GlĂŒcklicherweise verwendet CastlevaniaBot mit Ausnahme von Weihwasser nur SekundĂ€rwaffen, bei denen Upgrades normalerweise nicht verfĂŒgbar sind, beispielsweise bei BosskĂ€mpfen. Und das Sprite zur AufrĂŒstung des Weihwassers unterscheidet sich von dem Sprite, das beim Wirken verwendet wird.
Einige Spielobjekte blinken wÀhrend der Erstellung, zum Beispiel Kristallkugeln am Ende von BosskÀmpfen, Todeszöpfe und Draculas Körper. Blinkende Sprites erscheinen und verschwinden in OAM, daher ist zusÀtzliche Logik erforderlich, um diese Objekte zu verfolgen.

Es ist auch erwĂ€hnenswert, dass NES aufgrund von HardwareeinschrĂ€nkungen nur 8 Sprites pro Rasterzeile anzeigen kann. Da die PrioritĂ€t von Sprites teilweise von ihren Indizes in OAM abhĂ€ngt, wird die Reihenfolge in jedem Frame zufĂ€llig gemischt, um eine Verschiebung zu vermeiden, die ein Sprite stĂ€ndig unsichtbar macht. Mehrere Sprites blinken nacheinander und Ă€ndern allmĂ€hlich ihre PrioritĂ€t. Dieses Blinken wirkt sich nicht auf das Lesen von Sprites aus OAM aus. Die Daten bleiben weiterhin dort, werden jedoch von der emulierten Hardware nicht angezeigt. Dies unterscheidet sich von der oben beschriebenen Situation durch Blinken beim Erstellen von Sprites. DarĂŒber hinaus verfĂŒgt Nintaco ĂŒber eine Option, die das Flashen der Hardware erheblich reduziert.

Und schlieĂlich wird ein kleiner Teil des Spielstatus aus den PPU-Namenstabellen gelesen - einem Speicherbereich, der alle Hintergrunddaten enthĂ€lt. Dies beinhaltet die ĂberprĂŒfung zerstörbarer Blöcke und die Verfolgung der Positionen des âQuetschensâ auf Stufe 2.
Heuristische Zustandsmaschinen
Strategien sind Zustandsmaschinen. CastlevaniaBot definiert sie als abstrakte Klasse mit
init
und
step
Methoden. Die
init
Methode wird aufgerufen, wenn CastlevaniaBot zur entsprechenden Strategie wechselt und die Zustandsmaschine zurĂŒckgesetzt werden kann. Und die
step
fĂŒhrt die Strategie aus. Beispielsweise ĂŒberprĂŒft die
step
fĂŒr Fischmenschen, ob sich ein Fisch im Bereich einer Peitsche befindet, und wenn ja, schlĂ€gt der Bot mit einer Peitsche. Andernfalls wird geprĂŒft, ob es möglich ist, die Schlagdistanz durch einen Sprung zu erreichen, und wenn ja, springt der Bot. Und schlieĂlich, wenn der Bot dem Feind zu nahe ist, bewegt er sich von ihm weg. Mit diesen einfachen Regeln besiegt CastlevaniaBot den menschlichen Fisch.
Um die Schreibstrategien so weit wie möglich zu vereinfachen, habe ich eine Bibliothek mit möglichen Aktionen erstellt. Anstatt beispielsweise die Taste A zum Springen zu drĂŒcken und loszulassen, ruft der Bot einfach die Sprungmethode aus der Bibliothek auf. Und vorher fragt er die Bibliothek, ob Simon auf der Plattform ist und springen kann.
AnnĂ€herung und Entfernung vom Ziel sind Standardaktionen, die unter Verwendung von Operationen aus der vom Pfadsuchalgorithmus erstellten Tabelle ausgefĂŒhrt werden. Beispielsweise verwendet die Kerzenstrategie die Bibliotheksmethode
routeAndFace
, die Simon nicht nur zu bestimmten angegebenen Koordinaten leitet, sondern diese auch nach dem Schlagen nach links oder rechts dreht. AbhĂ€ngig von der Höhe der Kerzen fĂŒhrt die Strategie auĂerdem einen Sprung oder eine Hocke aus, bevor eine Peitsche getroffen wird. Ein Gegenstand, der von Kerzen gefallen ist, wird in der Luft erzeugt und fĂ€llt oder fĂ€llt langsam zu Boden. Eine Pickup-Strategie fĂŒhrt Simon zum nĂ€chsten PlĂ€ttchen direkt unter ihm, bevor der Gegenstand den Boden berĂŒhrt.
Um sich von Feinden zu entfernen, muss die Bibliothek wissen, wie man sich nach links oder rechts bewegt, ohne in die Box zu fallen. Im Allgemeinen wird dies erreicht, indem nach Pfaden zum linken oder rechten Rand der Unterstufe gesucht wird. In einigen Bereichen muss der kĂŒrzeste Weg zum linken Rand zunĂ€chst nach rechts und umgekehrt verschoben werden. Als solche Probleme auftraten, fĂŒgte ich Logik speziell fĂŒr die Teilstufen hinzu und leitete Simon an den linken und rechten Rand der aktuellen Plattform.
Exemplarische Vorgehensweise
In diesem Abschnitt werde ich die von CastlevaniaBot verwendeten Strategien ausfĂŒhrlich beschreiben und die gesamte exemplarische Vorgehensweise kommentieren.
Das Spiel beginnt im Hof ââvor dem Schloss. Die Objekte im Rahmen sind so angeordnet, dass sie das Hauptziel auswĂ€hlen, in diesem Fall eine SĂ€ule mit einer Flamme. Die Spaltenstrategie weist den Bot an, sich der Spalte zu nĂ€hern und die Peitsche zu verwenden, wenn sie in Reichweite ist.
Nachdem Sie die Peitsche getroffen und die SÀule zerstört haben, wird ein Gegenstand erstellt. Die PrioritÀt aller Elemente ist höher als die der FlammensÀulen. Folglich reagiert CastlevaniaBot darauf mit einer Strategie, um das angezeigte Objekt zu sammeln, bevor Sie mit den nÀchsten Spalten fortfahren.
Beim Ranking von Objekten berĂŒcksichtigt CastlevaniaBot immer ein langfristiges Ziel - ein Level zu beenden, bevor die Zeit ablĂ€uft. Beim Erstellen einer Liste potenzieller Ziele wird immer eine TĂŒr zur nĂ€chsten Ebene hinzugefĂŒgt. Der TĂŒr wird eine niedrige PrioritĂ€t zugewiesen, aber nach der Zerstörung aller SĂ€ulen und der Sammlung aller Objekte wird sie zu einer PrioritĂ€t. Mit nur einer Ausnahme: CastlevaniaBot weiĂ, wie man alle verborgenen SchĂ€tze aufdeckt, und springt ĂŒber den Schlosseingang, um eine blinkende TĂŒte Geld zu schaffen.
Nach dem Betreten der Burg sieht CastlevaniaBot Geister und Kerzen. Kerzen und handgefertigte GegenstÀnde haben Vorrang, bis die Geister nÀher kommen.
Es scheint oft, dass die Peitsche Feinde zerstört, ohne sie zu berĂŒhren. Ich habe im ROM des Spiels eine Kollisionsrechteck-Tabelle gefunden, damit CastlevaniaBot genau weiĂ, wann sich etwas im Bereich der Peitsche befindet. Und da die Kollisionsrechtecke oft etwas ĂŒber die Grenzen der Sprites hinausragen, kann die Peitsche den âunsichtbaren Teilâ treffen.
In den meisten FĂ€llen springt CastlevaniaBot beim Zerstören von Kerzen eher vertikal als vorwĂ€rts. Dies ist eine Risikovermeidungstaktik. Da es in der Luft ist, die Bewegungsrichtung nicht zu Ă€ndern, kann eine Menge sich nĂ€hernder Feinde eine sichere Landung erschweren oder unmöglich machen. DarĂŒber hinaus bleibt CastlevaniaBot bei einem vertikalen Sprung im selben Block. Er muss nicht prĂŒfen, ob der Sprung zu einem Sturz auf die untere Plattform oder den Boden der Grube fĂŒhrt.
Wenn keine Kerzen zerstört oder GegenstĂ€nde gesammelt werden mĂŒssen, beginnt CastlevaniaBot, Geister zu jagen. Aber die âPanther-Strategieâ befiehlt ihm, still zu stehen und darauf zu warten, dass der Feind innerhalb der Grenzen eines Peitschenschlags fĂ€llt.
Neben der Tatsache, dass Kerzen als Quellen fĂŒr Herzen und andere GegenstĂ€nde dienen, fĂŒhren sie den Spieler auf dem Weg durch die BĂŒhne. Im Bild unten âladenâ die Kerzen in der oberen rechten Ecke den Spieler zum Treppensteigen ein. Um jedoch die Treppe hinaufzusteigen, muss der Spieler zunĂ€chst nach links gehen, weshalb die Kerzen vom Bildschirm verschwinden. Da CastlevaniaBot-Lösungen auf der Priorisierung von auf dem Bildschirm sichtbaren Objekten basieren, kann diese Situation zu einem endlosen Zyklus fĂŒhren, in dem der Bot abwechselnd den kĂŒrzesten Weg zu den Kerzen (links) oder den kĂŒrzesten Weg zur AusgangstĂŒr (rechts) auswĂ€hlt.

Ăhnliche Probleme können auf verschiedene Arten gelöst werden. Zum Beispiel kann CastlevaniaBot mit dem Speichern von Objekten ausgestattet werden, um zu verstehen, dass Objekte weiterhin existieren, auch wenn sie nicht sichtbar sind. Trotzdem mĂŒssen sie von Anfang an gesehen werden. Wenn die Kerzen noch weiter rechts wĂ€ren, wĂ€re es nach ihrer Entdeckung notwendig, noch weiter zurĂŒckzugehen.
Vor diesem Hintergrund habe ich Anreize hinzugefĂŒgt, die CastlevaniaBot dazu bringen, Bereiche der BĂŒhne zu erkunden, die er normalerweise ignorieren wĂŒrde. Diese Anreize funktionieren Ă€hnlich wie AusgangstĂŒren und ziehen CastlevaniaBot dahin, wo es hingehört. AuĂerdem habe ich Regeln hinzugefĂŒgt, nach denen er Kerzen und Objekte ignoriert, die zu weit entfernt sind (in Bezug auf die zurĂŒckgelegte Entfernung und nicht in einer geraden Linie).
Nach dem Treppensteigen und der Zerstörung der Kerzen entsteht Weihwasser - die wertvollste aller SekundÀrwaffen. CastlevaniaBot wÀhlt es aus, indem es einen Dolch gegen es austauscht.
Wie bei der Geldtasche zu Beginn des Spiels kennt CastlevaniaBot alle zerstörbaren Blöcke mit versteckten Objekten. Um Blöcke mit einer Peitsche zu zerstören, wird eine Strategie verwendet, die der Strategie fĂŒr Kerzen Ă€hnelt.
Mit der weiteren Bewegung von CastlevaniaBot werden Sie feststellen, dass es anfĂ€ngt, Weihwasser zu verwenden, um Geister und Kerzen zu zerstören. Dies mag ĂŒberflĂŒssig erscheinen, dient aber einem wichtigen Zweck. Castlevania belohnt Spieler fĂŒr den Einsatz von SekundĂ€rwaffen mit Doppel- und Dreifachbelichtung. Mit anderen Worten, CastlevaniaBot
schleift sekundÀre Waffen-Upgrades.
Nach dem DrĂŒcken von Taste B gibt es eine Verzögerung von 16 Bildern, bevor eine Peitsche getroffen wird. Die Peitsche bleibt fĂŒr weitere 10 Frames lang, ist aber nur in der ersten dieser zehn gĂŒltig. CastlevaniaBot nutzt diese Tatsache, um das Zielen zu verbessern. Insbesondere wird die Geschwindigkeit aller Objekte im Rahmen verfolgt, vorausgesetzt, das Hauptziel bewegt sich weiterhin auf einem linearen Pfad. Dann drĂŒckt er Knopf B 16 Frames, bevor das Ziel eine Peitsche treffen muss. Der Feind kann wĂ€hrend dieser 16 Frames immer die Richtung Ă€ndern, aber normalerweise funktioniert diese einfache Heuristik.
Nach dem Betreten der TĂŒr trifft CastlevaniaBot jedoch auf rote FledermĂ€use. Wie die Köpfe von Quallen fliegen rote FledermĂ€use ĂŒber den Bildschirm und durch eine Sinuskurve durch Plattformen und Treppen. Um vorherzusagen, wo sich die rote Fledermaus nach 16 Bildern befindet, habe ich die Bewegung eines von ihnen in einer Tabelle aufgezeichnet. WĂ€hrend der AusfĂŒhrung des Spiels verfolgt CastlevaniaBot FledermĂ€use und wartet auf Spitzen oder Tiefs der Flugbahn, bei denen die vertikale Geschwindigkeit ihr Vorzeichen Ă€ndert. AnschlieĂend kann er die Koordinaten mit den Werten in einer vorab erstellten Tabelle vergleichen. Dies ermöglicht es der geeigneten Strategie, den roten SchlĂ€ger mit einer Peitsche zu schlagen, sich darĂŒber zu beugen oder darĂŒber zu springen.
WĂ€hrend der Passage (Speedrana) von Castlevania fĂŒhren die Spieler Manöver durch, die das Spiel so deterministisch wie möglich machen. Zum Beispiel stellten sie fest, dass sich der Boss gemÀà dem gewĂŒnschten Muster verhĂ€lt, wenn er am Ende von Level 1 einen Block zerstört und in einer bestimmten Zeitsequenz ein Waffen-Upgrade aufnimmt, sodass er schnell besiegen kann.
Egal wie erfahren Menschen sind, sie können den Zufallszahlengenerator nicht vollstĂ€ndig zĂ€hmen. Da CastlevaniaBot das DrĂŒcken von Tasten Bild fĂŒr Bild genau steuern kann, kann es das Konzept des GeschwindigkeitsĂŒbergangs jedes Mal, wenn es das Spiel auf absolut identische Weise passiert, an seine Grenzen bringen. Wenn er das tat, wĂ€re es nicht besser, als
TAS zu bestehen . Daher fĂŒgt CastlevaniaBot seinen Aktionen mithilfe eines externen Zufallszahlengenerators willkĂŒrlich Fehler und Verzögerungen hinzu, um deterministisches Gameplay zu vermeiden. Wenn er beispielsweise mit einer Peitsche eine hoch gelegene Kerze schlĂ€gt, fĂŒgt er dem Sprung und dem Schlag absichtlich eine Verzögerung fĂŒr eine zufĂ€llige Anzahl von Bildern hinzu. Diese winzigen Ănderungen wirken sich erheblich auf den Fortschritt des Spiels aus.
Obwohl CastlevaniaBot versucht, Determinismus zu vermeiden, hat er sich dennoch ein Konzept aus dem Speedrunning entlehnt:
Schadenssteigerungen . In 50% der FĂ€lle vermeidet CastlevaniaBot den Durchgang des Verlieses menschlicher Fische vollstĂ€ndig, indem er zurĂŒck auf die rote Fledermaus springt, die sie auf eine ansonsten nicht erreichbare Plattform wirft.
In der anderen HĂ€lfte der FĂ€lle kĂ€mpft CastlevaniaBot mit menschlichen Fischen. Ihre FeuerbĂ€lle haben hohe PrioritĂ€t und CastlevaniaBot schlĂ€gt sie je nach Situation mit einer Peitsche, weicht aus oder hĂŒpft.
Aufgrund der Unvorhersehbarkeit der Schaffung von Feinden und ihren FeuerbĂ€llen fĂŒhren die meisten Spieler normalerweise einen Teil mit menschlichen Fischen aus. Aber CastlevaniaBot verbringt viel Zeit mit ihnen, sammelt alle Herzen und sogar einen verborgenen Schatz am rechten Rand. Der Bot weiĂ genau, welche GegenstĂ€nde in jeder Kerze enthalten sind, und da er lieber Weihwasser verwendet, ĂŒberspringt er die Kerzen, in denen die Chronometer versteckt sind. Wenn Sie jedoch in diesem Teil bleiben und mit Fischleuten kĂ€mpfen, können Sie manchmal unweigerlich einen Chronometer in die Hand nehmen.
Stufen enden oft mit Kreuzen, die alle Feinde auf dem Bildschirm zerstören. Falls Sie neugierig sind, kann ich sagen, dass Kreuze am Ende eines Levels keine Bosse töten können. TatsÀchlich werden manchmal sogar wÀhrend BosskÀmpfen Kreuze erzeugt. Zum Beispiel erscheinen im Kampf mit der Medusa manchmal Kreuze, wenn Schlangen getötet werden. Aber diese Kreuze können nur andere Schlangen töten.
Nachdem CastlevaniaBot durch die TĂŒr gegangen ist, trifft er erneut auf Geister. Im Screenshot unten möchte er zur unteren Plattform springen, aber Geister hindern ihn daran, sich zu bewegen. Wenn eine von einem Pfadsuchalgorithmus erstellte Tabelle CastlevaniaBot zum Springen auffordert, wird der Raum um die Zielplattform untersucht. Wenn sich herausstellt, dass er auf Feinden landet, wird der Sprung nicht ausgefĂŒhrt. In diesem Fall lĂ€sst dieser Mechanismus CastlevaniaBot warten, bis die Geister ihren Platz frei haben.

Diese Regel âVor dem Springen nach Feinden suchenâ veranschaulicht eines der Prinzipien der CastlevaniaBot-Struktur: Sie sollte durch einfache, möglichst allgemeine Regeln geregelt werden. In einigen Teilen des Spiels ist es notwendig, einmalige Strategien zu verwenden, die sehr spezifische Probleme lösen. Aber im gröĂten Teil des Spiels werden Bot-Aktionen von wiederverwendbaren Heuristiken gesteuert. Ich habe kein Team geschrieben, das ihn dazu brachte, an diesem bestimmten Punkt anzuhalten und darauf zu warten, dass die Geister ihnen aus dem Weg gehen. Dieses Verhalten ist auf Heuristiken zurĂŒckzufĂŒhren.
CastlevaniaBot beendet das Level, indem es die Phantomfledermaus mit dreifachem Weihwasser tötet. Seine Angriffsstrategie wird jedoch von seiner SekundĂ€rwaffe bestimmt. Wenn er keine SekundĂ€rwaffe hatte, war er bereit, den Boss mit einer einzigen Peitsche zu töten. Ein besonders interessanter Fall ist das Töten einer Phantomfledermaus mit einer Axt. Ăhnlich wie bei der roten Fledermaus habe ich in der Tabelle die Bewegung der Axt entlang der Parabel aufgezeichnet. WĂ€hrend der AusfĂŒhrung des Spiels fĂŒhrt CastlevaniaBot einen Tabellenversatz durch, indem es mit jedem der Bodenfliesen abgeglichen wird. Auf diese Weise können Sie den optimalen Punkt berechnen, um den Boss mit einer Axt zu töten.

Kurz bevor CastlevaniaBot die Kristallkugel aufnimmt, wirft er die SekundĂ€rwaffe in verschiedene Richtungen und weiĂ, dass sie in der Luft gefriert, nachdem sie die Kugel berĂŒhrt hat. Dann springt er wiederholt nach dem Zufallsprinzip und schlĂ€gt mit einer Peitsche, in der Hoffnung, in einer seltsamen Pose einzufrieren.
Zu Beginn von Level 2 vermeidet CastlevaniaBot die ersten Kerzen, in denen der Bumerang versteckt ist. Die Strategie, mit einem Ritter-SpeerfĂŒhrer zu arbeiten, ist eine Kampagne gegen die Strategien von Geistern oder Fischmenschen, aber dies ist der erste Feind, der zwei Treffer benötigt. Die schwarze Fledermaus macht ein Nickerchen, bis Sie sich ihr nĂ€hern. Danach hebt sie ab und bewegt sich linear genug, um mit einer Peitsche mit den oben genannten einfachen Heuristiken getötet zu werden.

CastlevaniaBot hat in 50% der FĂ€lle die Ziegel der Mauer zerstört und scheint den Raum zu verlassen, ohne die Krone zu heben. Aber ist das so? TatsĂ€chlich nimmt er in solchen FĂ€llen die Krone mit dem Fehler des Spiels auf. Da das Ende der oberen Leiter horizontal mit der Position der Krone zusammenfĂ€llt, ist der Spieler beim Passieren und hinter dem Bildschirm vorĂŒbergehend unten. Wenn Sie den Ton hören oder auf die Brille schauen, können Sie sehen, dass der Bot tatsĂ€chlich die Krone nimmt.
Auf Stufe 2 greifen Feinde den Spieler nicht an, wenn er sich auf einer sich bewegenden Plattform befindet. CastlevaniaBot muss nur warten, bis sich die Plattform nĂ€hert, die Plattform betreten, warten, bis sie die andere Seite erreicht, und dann aussteigen. Es gibt eine geringfĂŒgige Abweichung fĂŒr Plattformen, die keine Kacheln berĂŒhren. In solchen FĂ€llen steigt CastlevaniaBot nicht ab, sondern springt von der Plattform.
Eine TĂŒr fĂŒhrt in einen Korridor voller fliegender Köpfe, und CastlevaniaBot reagiert darauf, indem er sich vorwĂ€rts bewegt. Wie bei mobilen Plattformen weiĂ CastlevaniaBot, dass diese Strategie basierend auf ihrer Position angewendet werden muss, anstatt Spielobjekte auf dem Bildschirm zu priorisieren. Sobald jedoch alle Köpfe der Quallen vorbeifliegen, wechselt er zurĂŒck zu dieser Technik, um die Strategie zu wĂ€hlen, die weiter angewendet wird.

Eine andere Strategie wird je nach Position ausgelöst, nachdem die nĂ€chste Leiter hinaufgestiegen ist, die zu dem mit Quallenköpfen gefĂŒllten Bereich fĂŒhrt. In 50% der FĂ€lle springt CastlevaniaBot absichtlich auf den Kopf einer Qualle, um einen Schadensschub zu erhalten, und schiebt ihn auf die obere Plattform neben der TĂŒr, die zur nĂ€chsten Stufe fĂŒhrt. Dies sind die einzigen zwei SchadensschĂŒbe, die CastlevaniaBot kennt. Im Gegensatz zu Speedrunnern wird es nicht ausgefĂŒhrt, um Zeit zu sparen. Dies ist nur ein weiterer Beitrag zum Nichtdeterminismus der Passage.

Das Durchlaufen des Schwarms ist eine interessante positionsbasierte Strategie, die dreimal wiederholt wird. CastlevaniaBot wartet, bis der nĂ€chste "Schwarm" links davon die gewĂŒnschte Position erreicht, wonach er durchlĂ€uft. Nachdem er es passiert hat, hĂ€lt er an, dreht sich um, schlĂ€gt mit einer Peitsche auf die Kerzen, nimmt das erstellte Objekt auf und wiederholt den Vorgang mit dem anschlieĂenden âQuetschenâ. Eines der Objekte könnte möglicherweise Weihwasser sein, daher werden diese Kerzen immer zerstört.Nach dem âCrushâ erscheinen zuerst Geister und KnochentĂŒrme. Geister sind sehr leicht zu zielen, aber um sie zu töten, braucht man ein paar Treffer. Es ist noch einfacher, auf die KnochentĂŒrme zu zielen, weil sie sich nicht bewegen. FĂŒr ihre FeuerbĂ€lle wird die gleiche Strategie angewendet wie fĂŒr die Fisch-Menschen-BĂ€lle.Level 2 endet normalerweise damit, dass CastlevaniaBot Medusa sofort mit einem endlosen Strom von Weihwasser tötet. Er ist jedoch bereit, mit jeder anderen Art von SekundĂ€rwaffe zu arbeiten.Auf Stufe 3 erscheinen Jumper. CastlevaniaBot reagiert auf sie und wartet darauf, dass sie an die Grenzen der Peitsche springen. Wenn die Springer den Spieler springen, bewegt sich CastlevaniaBot in die entgegengesetzte Richtung und schlĂ€gt sie mit einer Peitsche, bevor sie den Boden berĂŒhren.Dann erscheinen weiĂe Skelette. Sie haben ein sehr zufĂ€lliges Muster. AuĂerdem werfen sie Knochen. Auf Stufe 3 versucht CastlevaniaBot zu vermeiden, getroffen zu werden. Aber ich habe festgestellt, dass die Knochen in spĂ€teren Levels nur ablenken und es effizienter ist, sie einfach zu ignorieren. CastlevaniaBots Strategie fĂŒr weiĂe Skelette besteht darin, sie einfach zu schlagen.CastlevaniaBot wartet darauf, dass die KrĂ€hen hochfliegen. Basierend auf der GröĂe des Raben im VerhĂ€ltnis zum Spieler berechnet er dann genau, wann er nach dem Sprung mit einer Peitsche schlagen muss.Nach dem Ăbergang zur nĂ€chsten Stufe schlĂ€gt CastlevaniaBot unabhĂ€ngig auf die Kerzen, aus denen der Chronometer erscheint, und wartet, bis er verschwindet. Ein StĂŒck vor und hinter dem Bildschirm ist ein Rabe. Der Bot zerstört Kerzen vor einem Rabenkampf, um das Risiko zu verringern, sie versehentlich zu treffen und unerwĂŒnschte SekundĂ€rwaffen zu erhalten.Direkt vor dem Standort der Mumien geht CastlevaniaBot nach links auf die Plattform, um das Erscheinen eines versteckten Geldbeutels auszulösen. Er tut dies nur aus GrĂŒnden des Interesses, weil er es in keiner Weise anheben kann.Als nĂ€chstes schlĂ€gt CastlevaniaBot absichtlich auf die Kerzen, von denen der Dolch fĂ€llt. Wie beim Chronometer tut er dies, um es bei nachfolgenden Aktionen nicht zufĂ€llig aufzunehmen.Und schlieĂlich werden die Mumien vom Regen aus Weihwasser besiegt.CastlevaniaBot ist bereit, mit jeder SekundĂ€rwaffe gegen alle Bosse zu kĂ€mpfen. TatsĂ€chlich Ă€ndern sich die Strategien fĂŒr den Einsatz von SekundĂ€rwaffen vollstĂ€ndig, wenn aus irgendeinem Grund ein Block mit einem StĂŒck Schweinefleisch zerstört wird. Ohne diesen Block ist es unmöglich, die obere Plattform zu besteigen, weshalb Sie auf der unteren Ebene kĂ€mpfen mĂŒssen.Auf Stufe 4 kehren mobile Plattformen zurĂŒck. Und diesmal besteht die Möglichkeit, dass rote FledermĂ€use auf dem Weg erscheinen. Um die Wahrscheinlichkeit ihres Angriffs zu verringern, erwartet er, dass die Ankunft der Plattform mit der Zerstörung der roten Fledermaus zusammenfĂ€llt. Da rote MĂ€use in festgelegten AbstĂ€nden erscheinen, hat CastlevaniaBot genĂŒgend Zeit, um die Wassergrube ohne FledermĂ€use zu ĂŒberqueren. Er ist bereit, mit FledermĂ€usen und zufĂ€llig erscheinenden Fischmenschen auf der Plattform umzugehen, aber dies macht das Springen auf und von der Plattform sehr gefĂ€hrlich. Die von CastlevaniaBot verwendete Strategie erhöht die Erfolgswahrscheinlichkeit.Die gleiche Strategie wird in der Mitte der Phase wiederholt. Diesmal ist der Sprung zur beweglichen Plattform viel lĂ€nger, daher ist es wichtig, die rote Fledermaus vor dem Sprung zu zerstören.Wie im obigen Screenshot gezeigt, befinden sich Kerzen immer in einem Abstand von 64 Pixel voneinander. Möglicherweise ist dies ein Artefakt der Tatsache, dass die Level-Daten im ROM in einem Format dargestellt werden, das Vektorgrafiken Ă€hnelt, wodurch Platz gespart wird. Aus irgendeinem Grund beschlossen die Designer, die Kerzen nicht an den Zentren, sondern an den Kanten der Fliesen auszurichten. In diesem Fall sind die Kerzen an beiden Enden der Plattform ausgerichtet. Daher kann ein Objekt, das erscheint, nach dem Auftreffen direkt in den Abgrund unter ihnen fallen.Ich denke, dass die Designer dieses Problem irgendwann erkannt haben. Bis dahin kann das Verschieben der gesamten Kerzenserie auf allen fertigen Ebenen, um sie an den Fliesenmitten auszurichten, andere Probleme verursachen. Stattdessen haben sie beschlossen, die Kerzen zufĂ€llig um ein Pixel nach rechts oder links von der Stelle zu verschieben, an der sie erstellt wurden. Daher besteht nach dem Schlagen der Kerzen auf der rechten Seite des Screenshots eine 50% ige Wahrscheinlichkeit, dass das darin enthaltene Weihwasser auf die Plattform fĂ€llt. In der restlichen HĂ€lfte der FĂ€lle fĂ€llt es ins Wasser.CastlevaniaBot vermeidet diese Kerzen normalerweise vollstĂ€ndig, da es erfolgreich Weihwasser konserviert. Aber wenn er es braucht, kommt er diesen Kerzen sehr nahe, um die Auswahl des heiligen Wassers zu garantieren, das von ihnen gefallen ist.Als nĂ€chstes trifft CastlevaniaBot ein paar Springer. In diesem Bereich erscheinen nach dem Töten von Jumpern hĂ€ufig Ăxte. CastlevaniaBot vermeidet sie, weil Weihwasser besonders nĂŒtzlich ist, wenn man gegen den Boss kĂ€mpft.Beim Ăbergang zur letzten Stufe des Levels ignoriert CastlevaniaBot den Knochendrachen vollstĂ€ndig.Aber er wird die nĂ€chsten beiden mit schnellen PeitschenschlĂ€gen los.Frankensteins Monster und Igor werden durch einen stĂ€ndigen Strom von SchlĂ€gen mit einer Peitsche und Weihwasser zerstört. Wie bei anderen Bossen kann CastlevaniaBot auch mit anderen SekundĂ€rwaffen oder ĂŒberhaupt nicht umgehen. Die Ăberlebenschancen ohne Weihwasser sind jedoch geringer.Auf Stufe 5 befasst sich CastlevaniaBot erneut mit weiĂen Skeletten. Diesmal verwendet er jedoch Strategievarianten, die auf Stufe 3 selten zu sehen sind. Je nachdem, wo sie erscheinen, wirft CastlevaniaBot Weihwasser und tritt dann zurĂŒck, um Skelette in Flammen zu ziehen. In der NĂ€he der Treppe geht er unter den Skeletten hindurch, um sie dorthin zu lenken, wo sie sein sollten.Auf Stufe 5 erscheinen zuerst wiedergeborene rote Skelette. CastlevaniaBot verfolgt die Zeit des letzten Treffers, um zu wissen, wann es sicher ist, durch die roten Knochen zu gehen.
Der erste Raum der Stufe 14 wird vollstĂ€ndig von einer groĂen Strategie bearbeitet. CastlevaniaBot tötet zuerst den Springer. Dann wartet er darauf, dass der untere Ritter die Axt wirft, mit einer Peitsche auf die Axt schlĂ€gt und langsam die untere Treppe hinaufsteigt. Dies drĂŒckt den unteren Ritter hinter den Bildschirm, was zu seinem Verschwinden fĂŒhrt. Dann wartet er, bis der obere Bereich frei von Ăxten ist, schlĂ€gt auf die Kerzen und sammelt die GegenstĂ€nde ein, die erschienen sind. Dann nĂ€hert er sich dem FuĂ der Treppe, die zum oberen Ritter fĂŒhrt. Als der oberste Ritter die Axt hoch wirft, rennt CastlevaniaBot hinter ihm her. Dies drĂŒckt den oberen Ritter nach links und fast vollstĂ€ndig vom Bildschirm, zerstört ihn aber nicht. CastlevaniaBot biegt sich unter die zurĂŒckkehrende Axt und möglicherweise unter die zweite verlassene Axt und nĂ€hert sich schlieĂlich der Treppe zur nĂ€chsten Unterstufe. Hurra!
Nach mehreren Treppen trifft CastlevaniaBot erneut auf einen Ritter mit einer Axt. Er benutzt Weihwasser, um ihn zu betÀuben, und beendet ihn dann mit einer Peitsche. Wenn es kein heiliges Wasser gibt, schlÀgt er weiter mit einer Peitsche und jagt den Ritter, bis er stirbt.CastlevaniaBot muss oft warten, bis sich das rote Skelett von der Ober- oder Unterseite der Treppe entfernt hat. Gegen Ende des Levels macht der Knochenturm diese Aufgabe noch schwieriger. Je nachdem, wie sich die Skelette bewegen, geht CastlevaniaBot die Treppe hinunter und hinauf, bis sie passieren kann.
Um Gruppen roter Skelette zu verarbeiten, ist zusÀtzliche Logik erforderlich, damit der Bot nicht in eine Endlosschleife fÀllt. Wenn CastlevaniaBot sie separat mit einer Peitsche schlÀgt, mit einem solchen Intervall, dass der erste Treffer Zeit hat, sich wiederzubeleben, fÀllt er in einen Zyklus, in dem er weiterhin endlos wiederbelebende Skelette zerstört. Um dies zu vermeiden, wird CastlevaniaBot nicht mit einer Peitsche eines roten Skeletts getroffen, das neben einem Haufen roter Knochen steht. Diese Regel ermöglicht es, die roten Knochen neben dem noch lebenden roten Skelett wiedergeboren zu werden, so dass beide gleichzeitig getroffen werden können. Ohne ein Intervall zwischen ihrer Zerstörung wird kein Zyklus erstellt.
Um den Quallenköpfen im langen Korridor, der zum Tod fĂŒhrt, auszuweichen, hĂ€lt der Bot nie an und betĂ€ubt die Ritter, die normalerweise unterwegs erscheinen. Er nutzt die Tatsache aus, dass der Spieler durch von Weihwasser betĂ€ubte Feinde gehen kann, ohne Schaden zu nehmen.Wenn es kein Weihwasser gibt, kann CastlevaniaBot direkt vor dem Korridor einen Bumerang nehmen. Unter erfolgreichen UmstĂ€nden nutzt er es, um die Ritter zu zerstören und Waffen-Upgrades zu erhalten.CastlevaniaBot betĂ€ubt den Tod mit Weihwasser, bevor sie anfĂ€ngt, Zöpfe zu werfen, und tötet sie schnell. Er kann den Tod auch mit einem dreifachen Bumerang besiegen, dies erfordert jedoch normalerweise mehrere Versuche.Die Hauptstrategie von CastlevaniaBot, die BrĂŒcke zu Beginn von Level 6 zu passieren, besteht darin, sich weiter zu bewegen. Er schlĂ€gt eine Peitsche mit riesigen FledermĂ€usen von oben, um sie zu betĂ€uben, und springt dann ĂŒber die riesigen FledermĂ€use, die von unten erscheinen. AuĂerdem muss er von Zeit zu Zeit FeuerbĂ€llen ausweichen, die von FledermĂ€usen geworfen werden, oder sie mit einer Peitsche schlagen.Der Durchgang ĂŒber die BrĂŒcke ist nicht garantiert. Es hĂ€ngt alles davon ab, wie freundlich die riesigen FledermĂ€use sein werden.Im nĂ€chsten Unterschritt verwendet CastlevaniaBot den Chronographen der BrĂŒcke zwei- oder mehrmals, um durch Adler und Springer zu fahren. Ohne Chronographen versucht er sich mit einer Peitsche zurechtzufinden.Wenn CastlevaniaBot den Turm von Dracula erreicht, kann er die Treppe mehrmals hinauf- und hinuntersteigen, um wieder Kerzen herzustellen, mit denen Sie mindestens 20 Herzen sammeln können.Die Kerzen ganz rechts in den Kammern von Dracula geben Weihwasser, das notwendig ist, um die zweite Form von Dracula zu bekĂ€mpfen.Um die erste Form von Dracula zu besiegen, sind 16 SchlĂ€ge auf den Kopf erforderlich. CastlevaniaBot nĂ€hert sich Dracula mehrmals, wartet darauf, dass er mit FeuerbĂ€llen schieĂt, springt dann ĂŒber die BĂ€lle und schlĂ€gt Draculas Kopf mit einer Peitsche.Die zweite Form von Dracula, Cookie Monster genannt, wird vom Bot vom Weihwasser betĂ€ubt und schlĂ€gt mehrmals mit einer Peitsche auf den Kopf. Von Zeit zu Zeit springt Cookie Monster zum Spieler, wĂ€hrend CastlevaniaBot ausweicht. Cookie Monster wirft auch FeuerbĂ€lle, die normalerweise mit Weihwasser und einer Peitsche zerstört werden können. Manchmal kann man ein Waffen-Upgrade bekommen. Und doppeltes Weihwasser fĂ€ngt Cookie Monster in einem konstanten BetĂ€ubungszyklus, was zu einem schnellen Sieg fĂŒhrt.CastlevaniaBot kann den schwierigen Modus, der nach dem Abspann beginnt, nicht durchlaufen. Nach dem Neustart des Spiels im Schlosshof wird das Spielzyklusbyte jedoch auf Null zurĂŒckgesetzt und in den Normalmodus geschaltet. Dadurch kann CastlevaniaBot endlos spielen.
Dateien
CastlevaniaBot_2018-12-09.zipDie Datei .zip
enthÀlt:src
- Quellbaum.CastlevaniaBot.jar
â .lgpl-2.1.txt
â .
Starten
- Nintaco â NES.
Castlevania (U) (PRG1) [!].nes
â ROM .
- Nintaco
Castlevania (U) (PRG1) [!].nes
. CastlevaniaBot.jar
.zip
.- Run Program, Tools | Run Program...
- JAR , Find JAR....
- Load JAR, .
- Run.
Copyright © 2018 meatfighter.com
. / LGPLv2.1. |