For English Version please click here Labyrinth für Commodore 64 herunterladen
Anleitung als Textfile herunterladen

Hallo. Wie es scheint, bist Du irgendwo im Internet über ein altes C64 Spiel gestolpert, das ich irgendwann mal geschrieben habe? Hach ja...

Wie alles anfing

Vor langer langer Zeit, als noch Dinosaurier über die Erde wanderten... bekam ich meinen ersten Heimcomputer, einen Commodore 64. Seitdem ich die tollen Sachen gesehen hatte, die andere mit diesem Gerät machen konnten, träumte ich davon, selbst Programme zu schreiben. Aber das waren andere Zeiten damals, man konnte noch nicht einfach so im Internet nach Informationen und Tools suchen. Bücher über Programmierung waren teuer und behandelten meist nur BASIC.

64er Magazin Zum Glück gab mir eines Tages ein Schulfreund zwei Sonderausgaben des deutschen 64er Magazins, die eine komplette Aufstellung aller C64 Assembler-Befehle enthielten, Anweisungen wie diese zu verwenden waren, Info über die Interrupts, das ROM / RAM Management, den SID Audio Chip sowie eine Adress-Liste aller Kernel-Routinen. Mit diesem Wissen sowie einem kleinen Tool namens 'SMON' (vergleichbar mit MS-DOS 'DEBUG') war ich endlich in der Lage eigenen Code zu produzieren. Ich war so glücklich...

Nun hatte ich diese Idee für ein Split-Screen Pacman-Spiel, das ich "Labyrinth" taufte, und begann voller Enthusiasmus zu programmieren. Alle Infos, die ich den Sonderausgaben entnehmen konnte, und was ich durch Herumprobieren herausfand floss darin ein, und natürlich jede Menge Zeit. Naiv wie ich war, wusste ich nicht, dass es Sachen gab wie 'Compiler', die Quellcode als reinen Text akzeptierten, wo man Subroutinen und Sprungadressen sinnvolle Namen geben konnte, geschweige denn Kommentare hinzufügen. Mit 'SMON' konnte man nur reine Assembler-Befehle direkt in den Speicher tippen, und ich dachte, das müsste so sein. Also machte ich eben das...

Damals schickten die meisten Hobby-Programmierer ihre Schöpfungen an Computer-Magazine, einfach so zum Spaß, wo sie dann veröffentlicht wurden, damit andere Spaß damit haben konnten. Der Code wurde oft noch in Zeilen aus Hex-Werten im Magazin abgedruckt, und die Leser mussten zuerst alles abtippen (normalerweise unterstützt durch ein besonderes Hilfsprogramm namens 'MSE', das CRC-Checks für jede Zeile durchführte), bevor sie es dann spielen konnten. Deshalb versuchte ich, das Endergebnis so kompakt wie möglich zu halten.

In 1989, als ich endlich mit dem Spiel fertig war, schickte ich es an ein Computer-Magazin (ich erinnere mich nicht mehr genau an welches), voller Hoffnung, dass sie es wie andere Spiele zuvor veröffentlichen würden. Immerhin, die meisten anderen Spiele von Hobby-Programmierern, die ich über die Jahre so gesehen hatte, die sogar Preise gewonnen hatten, verwendeten nur einen 'Mix' aus BASIC und Assembler und hatten nicht mal die Break-Taste blockiert. Meines war in reinem Assembler geschrieben, hatte einen geteilten Bildschirm mit Scrolling und allem. Ja, ich gebe zu, dass ich irgendwie stolz auf mein simples kleines Werk war...

Allerdings, nur ein paar Wochen später erhielt ich die Disk zurück, zusammen mit einem Brief in dem in etwa stand, 'man könne das nicht gebrauchen'. Ich war am Boden zerstört, räumte das blöde Spiel weg und fasste es nie wieder an.

Ende der Geschichte? Nun... viele Jahre später in 2016, als ich in altem Zeug herumwühlte, fand ich dort eine alte C64 Disk. Während mein geliebter Commodore Computer immer noch im Keller verstaut war, hatte das Floppy-Laufwerk bereits den Geist aufgegeben. Da ich aber neugierig war, was sich auf der Disk befinden könnte, hatte ich die Idee sie zur jährlichen GamesCom in Köln mitzunehmen, wo es eine Retro Game Area gab, auf der viele der alten Geräte spielbereit ausgestellt wurden, einschließlich C64 Computer.

Als niemand zusah, nahm ich meine Disk und schob sie in eine Floppy. Und ob man es glaubt oder nicht, es war die mit meinem "Labyrinth" Spiel drauf, und all die schönen Erinnerungen kamen zurück. Zu meiner Überraschung hatte auch Jakob Chen-Voos vom PROTOVISION Development Team mein Tun beobachtet und schlug vor, ich solle das Spiel jetzt einfach nochmal als 'Retro' veröffentlichen.

Da ich diese Idee recht interessant fand, kaufte ich auf eBay ein altes aber noch funktionierendes 1541 Floppy-Laufwerk, verband es über ein XA1541-Kabel mit meinem PC, kopierte mein Spiel mittels eines Programms namens 'PRGMover' rüber, fügte einen Link zu einer Info-Seite im Internet hinzu, und da wären wir nun.

Das ist also die Hintergrund-Geschichte... wenn Du noch nicht eingeschlafen bist, kommen wir nun zum eigentlichen Spiel. :)


Falls es jemand interessiert, nur ein wenig mehr als die ersten 4000 Byte des Spiels sind Code, der Rest beinhaltet anzuzeigenden Text, Zeichensatz, Sprites, Level-Daten usw. Ich weiß, in der heutigen Spiele-Welt klingt das lächerlich klein...

Ja, dieses Spiel wirkt ein wenig minimalistisch, aber bitte bedenkt, dass ich ursprünglich angenommen hatte, es würde als Hex-Code in einem Computer-Magazin abgedruckt werden. Deshalb werden auch beispielsweise die Fehlermeldungen direkt von der Floppy übernommen, statt eigenen Text zu verwenden.

Und nur um es zu erwähnen, im Jahr 2000 habe ich auch ein Pacman-Spiel für die SEGA Dreamcast VMU (Visual Memory Unit) geschrieben, in dem ich viele der Ideen aus der C64-Version übernommen habe, das findet ihr hier:

http://www.deco.franken.de/myfiles/pacman.html

So wird gespielt

Labyrinth Gameplay Wähle zuerst im Hauptmenü, ob Du zu zweit (mit Split-Screen) oder alleine (nur die obere Bildschirm-Hälfte) spielen möchtest und ob sich die Geister langsam oder schnell bewegen sollen, dann wähle 'Start Game' um das Spiel zu beginnen.

Ziel des Spieles ist es, jedes Level abzuschließen, indem man alle Pillen isst.

Kontakt mit den Geistern kostet ein Leben. Je länger es dauert, ein Level zu beenden, desto aggressiver werden die Geister den Pacman verfolgen.

Wie Du Dir sicher schon gedacht hast, können die Geister angegriffen werden, wenn der Pacman eine Geister-Pille isst. Die Geister werden dann schwarz und versuchen, vor dem Pacman zu fliehen, solange dieser Effekt wirksam ist.

Wenn Du den 'Feuer'-Knopf gedrückt hältst, bewegt sich der Pacman doppelt so schnell, aber dies vermindert auch den Turbo-Zähler. Wenn der Zähler Null erreicht, kannst Du nicht mehr beschleunigen, bis er durch essen einer Turbo-Pille wieder aufgefüllt wird.

Eine Liste aller Objekte, deren Wert und Funktion findest Du nachfolgend:

Alle 1000 Punkte erhält man außerdem einen Extra-Pacman.

Der Level Editor

Labyrinth Level Editor Ursprünglich hatte ich diesen In-Game Editor nur für mich entwickelt, um leichter Level entwerfen zu können, daher wirkt er anfangs evtl. etwas schwer verständlich. Aber was wusste ich damals schon von Menü-Design in dieser vor-Windows Ära? Letztendlich dachte ich aber, "Hey, eigentlich funktioniert es, also warum lasse ich es nicht drin?"

Wähle die 'Editor' Option, um Deine eigenen Pacman Levels zu entwerfen. Dann wähle 'Load Level' um ein zuvor gespeichertes Level weiter zu bearbeiten, oder 'Edit New Level' um mit einem neuen Level zu beginnen.

Um ein Level zu laden, wähle zuerst die Nummer des gespeicherten Levels, das geladen werden soll. Das Bewegen des Joysticks nach links / rechts ändert jede Ziffer, durch Drücken des 'Feuer'-Knopfes wechselt man zur nächsten Ziffer. Wenn Du fertig bist, wird die Rückmeldung des Floppy-Laufwerks angezeigt. Meldet es 'ok', wurde das Level erfolgreich geladen.

Editor Layout

Die erste Reihe enthält den Standard-Mauerstein sowie alle 'Röhren'-Wandstücke, horizontal, vertikal, Ecken usw.

Die zweite Reihe enthält von links nach rechts:

Die dritte Reihe enthält von links nach rechts:

Barrikaden können nur in bestimmten Richtungen durchfahren werden. Gedacht war dies für das Geisterhaus (damit die Geister es verlassen können, der Pacman aber nicht hineinkommt), aber man kann damit auch Einbahnstraßen in den Leveln erstellen.

Die kleinen Pfeile unter den Barrikaden zeigen, in welche Richtung sie passierbar sind.

Damit kann man geheime Gänge erstellen (die Teile sehen später exakt so aus wie normale Wand-Teile, nachdem das Level zum Spiel hinzugefügt wurde). Nur der Pacman kann sie passieren, die Geister können dies nicht (sonst würden sie den geheimen Gang evtl. preisgeben).

Dies ist ein nettes Feature, das ein Level-Erstellen wirklich beschleunigt. Wird es ausgewählt, durchsucht das Programm das gesamte Level nach essbaren und/oder durchfahrbaren Teilen, die noch NICHT von Röhren-Teilen umgeben sind, und versucht diese automatisch zu ergänzen, was eine MENGE Zeit spart. Im Grunde kannst Du einfach Korridore ziehen, indem Du Pacman-Pillen usw. platzierst und dann das 'C'-Feld benutzt, um alle Wände hinzuzufügen. Dies überschreibt NICHT Röhren-Teile, die Du bereits platziert hast, daher kannst Du immer auch Feinabstimmungen vornehmen oder nicht-standardmäßige Sachen machen.

Das beendet den Editor, damit Du Deine Arbeit speichern kannst (wenn Du dies nicht tust, wird alles verworfen).

Um ein Level zu speichern, wähle zuerst die Nummer, unter der Du es speichern möchtest. Das Bewegen des Joysticks nach links / rechts ändert jede Ziffer, durch Drücken des 'Feuer'-Knopfes wechselt man zur nächsten Ziffer. Wenn Du fertig bist, wird die Rückmeldung des Floppy-Laufwerks angezeigt. Meldet es 'ok', wurde das Level erfolgreich gespeichert.

Editor-Navigation

Die Hoch/Runter Cursortaste bewegt die Auswahl nach links, die Links/Rechts Cursortaste bewegt die Auswahl nach rechts (auf einem 'echten' C64, der nur zwei physische Cursortasten hatte, machte dies viel mehr Sinn). Wenn Du mit einem Emulator spielst, empfehle ich, die C64 Cursor-Tasten neu zuzuordnen, denn die Pfeil-Tasten wirst Du vermutlich brauchen, um Dich im Level zu bewegen.

Mit dem 'Feuer'-Knopf kann das aktuell gewählte Teil im Level platziert oder die ausgewählte Funktion aktiviert werden.

Die nicht passierbaren Mauer-Steine, die das Level-Areal umgeben sind nur da, um den erlaubten Arbeitsbereich festzulegen. Sie werden mit normalen Mauer-Steinen ersetzt, wenn das Level zu einem Spiel hinzugefügt wird, Du kannst also die gesamte zugängliche Fläche zum 'Bauen' verwenden.

Zusammenstellen eines eigenen Spiels

Labyrinth Level Settings Spiele-Daten werden aus zuvor gespeicherten Leveln erstellt (füge so viele hinzu, wie reinpassen). Im fertigen Spiel, wenn alle Level durchgespielt wurden, wird wieder beim ersten Level begonnen.

Wähle 'Make Game' um eine spielbare Level-Auswahl zu erstellen.

Hier wähle 'Load Levels', um Level zu Deinem Spiel hinzuzufügen. Wähle zuerst die Nummer des gespeicherten Levels, das geladen werden soll. Das Bewegen des Joysticks nach links / rechts ändert jede Ziffer, durch Drücken des 'Feuer'-Knopfes wechselt man zur nächsten Ziffer. Wenn Du fertig bist, wird die Rückmeldung des Floppy-Laufwerks angezeigt. Meldet es 'ok', wurde das Level erfolgreich geladen.

Für jedes Level wirst Du dann aufgefordert, die Start-Positionen für Spieler 1 und 2 sowie für Geist 1 - 4 festzulegen. Bewege das Viereck zuerst zur gewünschten Position und drücke dann den 'Feuer'-Knopf. Wenn die Position erfolgreich gespeichert wurde, solltest Du ein 'Beep' hören.

Wenn alle Sprites platziert wurden, kannst Du die Farbe jedes Geistes für dieses Level festlegen, indem Du den Joystick nach links und rechts bewegst. Drücke den 'Feuer'-Knopf, um die Farbe auszuwählen.

Wiederhole dies, bis alle Level, die Du im Spiel haben möchtest geladen und konfiguriert sind.

Hinweis: obwohl es technisch möglich ist, ist es nicht empfehlenswert, den Pacman und einen Geist auf dieselbe Position zu setzen. Auch kannst Du einen Pacman oder Geist nicht in einer Wand platzieren. Wenn ein Level keinen Raum enthält, auf den man einen Pacman oder Geist setzen kann (z.B. ausschließlich Mauer-Steine), wird die Meldung 'Bad Level' angezeigt.

Es liegt an Dir sicherzustellen, dass alle Pillen erreicht werden können, ansonsten kann das Level nicht abgeschlossen werden.

Speichern des erstellten Spiels

Wenn Du mit dem Hinzufügen von Leveln fertig bist, wähle 'Save Game' um alle geladenen Level als Spiele-Daten zu speichern.

Wähle zuerst die Nummer, unter der Du die Spiele-Daten speichern möchtest. Das Bewegen des Joysticks nach links / rechts ändert jede Ziffer, durch Drücken des 'Feuer'-Knopfes wechselt man zur nächsten Ziffer. Wenn Du fertig bist, wird die Rückmeldung des Floppy-Laufwerks angezeigt. Meldet es 'ok', wurden die Daten erfolgreich gespeichert.

Willst Du nun irgendwann Deine Level spielen, wähle einfach 'Editor' - 'Load Game' und lade Deine Daten.

Level-Daten werden 'roh' aufbewahrt, Spiele-Daten werden mit einfacher Kompression aufbewahrt (auf der Disk und im Speicher). Um beide unterscheiden zu können, werden Level "+L xxx" und Spiele-Daten "+G xxx" auf der Disk benannt.

Viel Spaß beim Spielen!