Dieser Artikel ist ein Fragment meines Buches Bug Voyage: Eine Tour durch klassische Spielstörungen. Das Buch enthält auch Informationen zum Generieren von Pseudozufallszahlen, zum Durchführen von Berechnungen auf niedriger Ebene mit Binär- und Dezimalzahlen sowie zum Verursachen eines Fehlers in einer Galaga-Maschine, ohne dort Münzen fallen zu lassen.Wenn Sie Pac-Man Arcade Machine in Ihrer Nähe haben, Frau Pac-Man oder so, Sie haben Glück, heute sind sie Mangelware. Sogar die in der Vergangenheit sehr verbreiteten „20 Year Reunion“ -Maschinen, bei denen Frau zusammen installiert ist Pac-Man und Galaga sind jetzt weniger verbreitet.
Um zu verstehen, was besprochen wird, reicht es jedoch aus, ein Video von YouTube über eines dieser Spiele herunterzuladen und es in nur einer Minute anzusehen:
Hast du es bemerkt? Wie bewegen sich Pac-Man und Geister reibungslos durch das Labyrinth? Sie gleiten so selbstbewusst und klar.
Diese Fließfähigkeit ist, wie wir sehen werden, eine Illusion, und das ist noch nicht alles. Hier ist ein weiteres YouTube-Video:
Es wird von Jamey Pittman hochgeladen, dem Autor des
Pac-Man-Dossier- Artikels, aus dem viele Pac-Man-Informationen für mein Buch stammen. Das Video wurde etwas zurückgespult, um Ihnen Zeit zu sparen. Schau es dir an. Behalten Sie insbesondere Pac-Man und den roten Geist im Auge (das Handbuch besagt, dass er Blinky heißt). Beachten Sie, was ungefähr in der vierzigsten Sekunde passiert!
Hast du gesehen Pac-Man ging ohne Probleme durch einen roten Geist! Wie ist das passiert? Ist es möglich sicherzustellen, dass dies ständig geschieht?
Beruhige dich, jetzt erkläre ich alles und ja, das ist ein ständiges Verhalten. Wenn Sie die Anweisungen von Pittman auf der ersten Ebene genau befolgen, wird dies immer passieren.
Pac-ManWas ist ein Sprite?
Ein Teil der zweidimensionalen Grafikausrüstung verwendete spezielle Grafikobjekte in Spielen, die Sprites genannt wurden. Sie haben diesen Begriff wahrscheinlich in modernen Gesprächen über die Pixelgrafiken von Zeichen gehört.
Zuvor war die Bedeutung des Begriffs jedoch anders: Er bezeichnete ein sich unabhängig bewegendes Grafikobjekt, das an einer beliebigen Stelle auf dem Bildschirm oder über den übrigen Grafiken, dem Hintergrund oder darunter, platziert werden konnte. Das Sprite erhält die X- und Y-Koordinaten, das Bild und seine Farbe. Oft wurden sie für Spielfiguren verwendet, aber auch als Ergänzung zum Hintergrund und für andere Zwecke.
Die meisten Systeme unterstützten mehrere oder (im Fall von Galaga) viele Sprites. Sie hatten andere Namen: Atari nannte sie zuerst "Player-Missile Graphics", und in der frühen Commodore-Dokumentation wurden sie als "Movable Object Blocks" (MOBs) bezeichnet. Nach und nach nannten sie jedoch fast alle Sprites.
Geräte-Arcade-Maschine Pac-Man unterstützt Sprite-Grafiken. Es können bis zu acht Sprites gleichzeitig auf dem Bildschirm angezeigt werden, ohne dass Tricks mit Scanlinien verwendet werden müssen. Einer der Sprites ist das Bild von Pac-Man selbst, und vier weitere werden von Geistern verwendet. Wenn Pac-Man den Geist isst, benutzen seine Augen, die nach Hause zurückkehren, das Geister-Sprite.
Nicht alles, was sich auf dem Bildschirm ändert, ist ein Sprite. Eine andere Art von Grafik, die von den Geräten dieser Zeit verwendet wird, ist der Kachelhintergrund. Es war nur ein Raster einzelner grafischer Elemente, die im Speicher gespeichert waren. Wenn Sie den Inhalt eines Speicherbereichs ändern, ändert sich auch sofort ein kleiner Teil des Bildschirms, der diesem Teil des Rasters entspricht. Daher ist die Arbeit mit diesen Gittern einfach.
Punkte im Pac-Man-Spiel sind Kacheln (Kacheln) des Hintergrunds, die gelöscht werden, wenn Pac-Man sie isst. Das Flackern des Energizers, das Pac-Man Stärke verleiht, erfolgt durch Färben dieser Zellen alle paar Frames schwarz und dann weiß. Diese Objekte bewegen sich jedoch nicht, sie können nur entfernt oder ersetzt werden.
Das Problem mit Zeichenkachelgrafiken ist, dass sie sich nicht reibungslos bewegen können. Es befindet sich im Raster, sodass sich ein sich bewegendes Hintergrundobjekt nicht reibungslos auf dem Bildschirm bewegen kann, wie dies Pac-Man und Geister tun. Es kann sich nur zwischen Gitterzellen bewegen. Es ist unmöglich, einen Teil des Gitterraums zu verschieben, entweder ist er da oder nicht.
Ja, das ist interessant. Aber was nun?
Grundlagen der Pac-Man-Welt
Als Kind habe ich für meinen Commodore 64 kleine Spiele auf Microsoft BASIC geschrieben. Diese Implementierung von BASIC hatte Probleme. Die Programme wurden langsam ausgeführt und verwendeten fast nie die Sound- und Grafikressourcen des Computers, die für ihre Zeit erstaunlich waren. Wenn Sie etwas mit Grafik und Sound anfangen wollten, mussten Sie die kryptischen technischen Direktspeicherzugriffsbefehle namens POKEs erlernen oder das Schreiben in Maschinencode lernen.
Eine Lösung bestand darin, Zeichenobjekte anstelle von Sprite-Systemgrafiken zu verwenden, wie oben beschrieben. Objekte machten fliesengroße Sprünge, aber es war viel einfacher, damit zu arbeiten. Es war möglich, ein Spiel mit Charaktergrafiken zu erstellen, und dann, als das Projekt bereits groß und ernst wurde und ich es den Leuten zeigen wollte, auf die Verwendung von Hardware-Sprites umzusteigen.
Ein Objekt im Speicher konnte immer noch im gleichen Schritt von acht Pixeln überspringen, aber der Player hat dies nicht gesehen. Alles, was er sah, war ein flackerndes Sprite-Bild, das größer sein konnte als die Charakterkachel und das versteckte, was tatsächlich geschah. Wenn man sich der Programmierung mit Bedacht näherte, war es möglich, die Position des Sprites so zu interpolieren, dass seine Bewegung ruhiger schien. Wenn Sie es gut genug gemacht haben, hat der Spieler den Unterschied nie bemerkt. Nur du würdest die Wahrheit wissen.
Sie müssen erraten haben, wohin ich führe. Denn so wurde
Pac-Man programmiert .
Tatsächlich hatten sowohl Pac-Man als auch Geister jeweils zwei Positionen. Dies ist die Position von Sprite-Grafiken, die sich reibungslos auf dem Bildschirm bewegen, den der Player sieht. Solche Informationen werden dem Spieler gegeben, wenn er das Spiel spielt, aber dies ist nur ein Schatten, eine Illusion. Wenn Sie verstehen möchten, wie Pac-Man tatsächlich funktioniert, müssen Sie genauer hinschauen.
Hinter den Kulissen des Spiels berücksichtigt Pac-Man auch, welche Charakterzellen von Pac-Man und Geistern besetzt sind. Es gibt keine Spuren dieser Koordinaten auf dem Bildschirm. Ich vermute, dass die Entwickler in den frühen Phasen von Pac-Man beim Experimentieren mit dem Gameplay Kacheln direkt auf den Bildschirm zeichnen konnten. Jamie Pittman entdeckte, dass diese Koordinaten für die künstliche Intelligenz aller Geister verwendet werden und dass sie auch zur Erkennung aller Kollisionen im Spiel verwendet werden.
Um diese Illusion aufrechtzuerhalten, muss das Spiel Tricks ausführen. Sie verfolgt, wie weit sich Pac-Man und die Geister auf Abonnentenebene von ihrer aktuellen Zelle entfernt haben, und wechselt sie in eine neue Position, wenn sie weit genug entfernt sind. Ein etwas schnelleres Objekt hat eine Geschwindigkeit, die das Ändern von Zellen etwas häufiger macht.
Diese Elemente - Gitterkoordinaten, Verfolgung zwischen Zellen und die Position des Sprites auf dem Bildschirm - erzeugen die Illusion einer reibungslosen Bewegung. Aus Sicht des Spiels wird die Bewegung jedoch genauso ausgeführt wie in meinem Fall, als ich die Zellgrafiken von Charakteren auf Commodore 64 programmiert habe.
Abrechnung
Jetzt haben wir alle Informationen, die Sie benötigen, um zu verstehen, wie Pac-Man durch Geister gehen kann.
Pac-Man-Kollisionen werden durch Vergleichen ihrer Gitterkoordinaten mit den Koordinaten von Geistern erkannt. Wenn sie gleich sind, tritt eine Kollision auf und einer frisst den anderen. Wenn sie unterschiedlich sind, gibt es keine Kollision. Das ist alles, nicht mehr und nicht weniger.
Sie sehen, dass der Grund für diese Entscheidung die Geschwindigkeit der Kollisionserkennung in Prozessorzyklen ist. In jedem Frame vergleicht er die Zahlen X und Y eines Pac-Man-Charakters mit den Zahlen der vier Geister. Dank dessen muss er sich keine Sorgen um Entfernungen und riskante Situationen machen. Kollisionen sind exakte Übereinstimmungen von Koordinaten im Rastersystem.
Dieses Gitter entspricht (ungefähr) dem Kachelkoordinatensystem, das die wahren Positionen der Spielfiguren darstellt. Die Kollisionserkennung verwendet dieses Raster. Das Spiel registriert nur dann eine Kollision, wenn die Koordinaten der Kacheln beider Charaktere übereinstimmen. Dies bedeutet, dass sie eine Gitterzelle belegen müssen.Das Problem tritt auf, wenn die Positionen von Pac-Man und dem Geist, die sich aufeinander zu bewegen, zur nächsten Zelle im selben Frame wechseln. Die Kollisionsprüfung wird durchgeführt, nachdem sich alle Objekte im aktuellen Frame bewegt haben. Wenn Pac-Man zur Blinky-Zelle und Blinky zur vorherigen Pac-Man-Zelle im selben Frame wechselt, tritt ein Fehler auf, wenn eine Kollision erkannt wird. Sie haben die Plätze getauscht!
Da dies die einzige Realitätsebene ist, die wirklich etwas im Spiel bedeutet,
ist es nicht wichtig, was der Spieler
sieht . Pac-Man und der Geist gehen einfach durch und "divergieren wie Schiffe im Meer".
Künstliche Intelligenz (KI) im Spiel hat einen deterministischen Charakter, sodass Sie ein Muster für die Wiederholung von Verhalten identifizieren können. Trotz der Tatsache, dass die Zeit für die Manifestation eines Fehlers beim Durchlaufen genau auf das Bild abgestimmt sein muss, muss der
Spieler nicht genau auf das Bild genau sein, wenn er die Regeln für die Ausführung von Pac-Man-Bewegungsmustern befolgt. So wurde Jamie Pittmans Video aufgenommen.
Ich habe eine so detaillierte Beschreibung gegeben, um eine wichtige Tatsache hervorzuheben. Es ist sehr einfach, Objekte im Spiel als real wahrzunehmen. Pac-Man ist so
ein Objekt auf dem Bildschirm, Geister sind auch Objekte wie ein Raumschiff, Mario, Sonic, Solid Snake, ein Soldat von Call of Duty. Alle von ihnen sind Objekte. Aber das ist eine Illusion.
Tatsächlich geben sie alle nur einen Hinweis auf ein internes, tieferes System. In diesem System muss der Computer ernsthafte Arbeit leisten, um festzustellen, ob sich zwei Objekte
berühren . Was Sie auf dem Bildschirm sehen, ist eine Illustration der abstrakten Welt, und ein Teil des Spiels überträgt Informationen aus dieser Welt über den Bildschirm auf eine Weise an den Spieler, die seinem Realitätssinn entspricht.
Es ist sehr leicht zu vergessen, wie dünn diese Verbindung ist. Woher wissen Sie, welches Objekt Sie auf dem Bildschirm steuern? Er unterscheidet sich von anderen und reagiert auf das Management. Was aber, wenn genau dasselbe auf dem Bildschirm angezeigt wird? Oder bewegt sich Ihr Objekt manchmal zufällig, reagiert verzögert auf Steuersignale, wird manchmal unsichtbar, zweigeteilt und wird wie einer der Feinde?
Die Aufgabe des Designers ist es, die Verbindung zwischen der inneren Welt des Spiels und dem, was Sie auf dem Bildschirm sehen, so einfach und unmittelbar wie möglich herzustellen (natürlich, wenn er nicht versucht, einen Spezialeffekt zu erzielen). Dies ist, was
Eintauchen bedeutet oder bedeuten sollte.
Weitere Informationen
Wirf eine Münze in den Arcade-Automaten „20 Year Reunion“ und betrete sie mit dem Joystick des ersten Spielers: hoch, hoch, hoch, runter, runter, runter, links, rechts, links, rechts, links. Wenn der Geist auf dem Game Select-Bildschirm rosa wird und Sie einen Ton hören, ist alles korrekt. Nun, wenn Sie das Spiel wählen, Frau Pac-Man, dann spielen Sie stattdessen den originalen Pac-Man.
Auf einigen Grafikhardware können Sie Tricks mit Scanlinien verwenden, um mächtige Magie zu erzeugen. In einem System, das nur acht Sprites anzeigen kann, kann beispielsweise mehr erreicht werden, allerdings auf Kosten der Prozessorzeit und der verringerten Flexibilität.
In dieser Hinsicht ist die Atari VCS / 2600-Konsole am bemerkenswertesten, da die meisten Systemgrafiken dort mit Tricks mit Scanlinien erstellt wurden. Lesen Sie mehr über diese Techniken im Buch
Racing The Beam .
Quellen:
Dossier über Pac-Man: http://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php?print=1
Jamie Pittmans YouTube-Kanal: https://www.youtube.com/user/jameypittman/videos