Homebrew oder AXE 1.0 an Atari 2600 / VCS Game released just now!


Wer sich mit alten Consolen auseinandersetzt, kommt im Zeitalter von frei verfügbaren Engines nicht darum herum zu fragen: Wie schwierig war es eigentlich damals ein Game zu machen? Und wo fängt man an bei der Retro-Auseinandersetzung?
Einstiegspunkt für Atari 2600+: www.atariage.com
Taucht man dann ein in die Welt der Retro-Consolen-Programmierer, findet man sich in der Homebrew-Szene wieder. Eine Szene, die für praktisch alle erdenklichen Systeme (von VCS über NES bis zur WII) Entwicklungssysteme – sprich Assembler & Compilers und bereit hält.
Selbstverständlich alle einspielbar über rechtlich bedenkliche Karten und Hacks auf den Orginalconsolen – denn einzig die erste Konsole – die Atari 2600 – ist frei von Kopierschützen und war deswegen auch im Bereich“Pornogames“ weit vorne (Wobei die Spiele meistenes nicht gerade geschmackvoller ‚Suspens‘ sind, sondern eher Hardcore-PixelPorn sind).
Compiler, Emulatoren und USB-Cartridges


In den Foren findet man dann alles, was sich Entwickler vor 35 Jahren gewünscht hätten. Schnelle Compiler für schnelle Rechner und die Möglichkeit das Ganze dann auch auf Emulatoren zu testen, bevor man es über eine Flash-Karte in einer konkreten Cartridge am konkreten Gerät probt (Karten gibt es für die meisten Konsolen – Ausnahme leider die Intellivision).
Stella – Atari 2600 Emulator mit integriertem Debugger (Einschaltbar über die Optionen ‚Toggle Debugger‘)

Homebrew in Wellen
Wer sich durch die Foren kämpft findet schnell heraus, dass es Wellen von Entwicklungen gibt. Zeiten also in denen neue Leute reinkommen und anfangen neue Spiele oder Demos herzustellen und Zeiten,wo es ruhiger wird um konkrete Releases und mehrheitlich alte Module/Cartridges wieder aufgelegt werden. Und dennoch freut sich die Szene über neue Releases auf neuen Cartridges mit eigenen Booklets. Das Booklet und das Cartrige kanalisiert ja bekanntlicherweise die Interpretation der Pixel – shaped also den Erwartungshorizont.

Atari 2600 / VCS – die Vorhölle
Das Atari 2600 entpuppt sich als die Hölle für Spielprogrammierung. Die Console passte in die Jahre um 1977: Entwickelt für den Heimbreich und dor vor allem auf Sportspiele am Computer ausgelegt: zwei Gegnersprites, zwei Schüsse und ein Ball. Die Spiele mussten ohne Videoram auskommen und nur mit 170 Bytes. Ein Spurt durch die Hölle.
Einen Einblick geben die folgenden Slides: de.slideshare.net/chesterbr/atari-2600programming >
Atari 2600 Hardware – ein Adventure
Das Spiel AXE wurde für den Atari 2600 in Assembler geschrieben (Es gibt inzwischen auch Batari – ein Basic für Atari 2600). Der Entwicklungsprozess hat sich als sehr aufwändig herausgestellt. Selbst wenn man schon aus der Assemblerprogrammierung kommt und eigentlich „nur“ 20jähriges Wissen wieder ausgraben muss, kommt hier an seine Grenzen: Es gibt nur 3 Register zum Rechnen und 170 Bytes freies RAM. Das sind Grenzen, die sich bei der Verwaltung des Projektes auswirken.  Die 8Bitigkeit des Systems tut ihr übriges – wenn man etwa einen Zähler über 256 Stufen gehen lassen will oder wenn es auf einmal Schwarz wird auf dem Emulator wenn bei einem Vergleich die Sprungmarke fürs Branchen zu „weit“ ist. Step bei Step kommt man vorwärts. Oder anders gesagt: These um These (Wenn A, dann müsste B‘) und deren Validierung (‚aha so geht das nicht‘).

Die grösste Herausforderung ist aber, dass es kein VideoRAM gibt: Das heisst im Code muss das Programm warten, bis der Strahl auf der richtigen Zeile und am etwa richtigen horizontalen Ort ist. Dann kann gezeichnet werden. Jeder Fehler wirkt sich in verschobenen Sprites, nicht gezeichneten Sprites oder einem flackernden Bildschirm in Schwarz aus. Dabei wird schnell klar, die Referenzspiele auf dem Atari 2600 mit vielen Sprites sind Meisterleistungen in der Verwaltung des Spiels, sowie der Ausführung oft angereichert mit diversen Tricks, um überhaupt etwas in der Komplexität anzeigen zu können.
AXE – HackNSlash 2014

Am Ende entstand AXE – ein klassisches HackNSlash, das ohne grosse Tricks arbeitet.
AXE Mechanik
Die Mechanik ist dabei einfach. Versuche die gegnerischen Horden zu töten. Du bist alleine unterwegs und kannst sie nur töten, wenn sie nicht schlagen. Andernfalls beisst du ins Grass. Der Rand hilft dir, über ihn hinaus kannst du fliehen und wieder von der anderen Seite angreifen. Die Gegner kommen in verschiedenen Waves undvarieren in Anzahl, Geschwindigkeit und Verhalten. Es geht also konkret darum, den richtigen Moment zu finden, um tödlich zuzuschlagen.

Programmierung
Die Programmierung arbeitet mit bekannten Patterns wie GameLoop (hier 1:1 der ScanLoop – Rasterstrahl) und einer Statemaschine für Game, Spieler, Gegner und deren FlipAnimationen.  Behaviours wie Gangfolge (links, rechts) oder Schlagmuster wurden alle auf BitEbenen gelöst und wurden mit BitRotationen realisiert. LookUpTables wurden keine verwendet. Der Code sowie weitere Kommentare befinden sich im Zip des Spiels
Das Spiel als Rom für Emulatoren oder Cartridges
Das Spiel, das sich auf Stella spielen lässt, findet man hier:
atariage.com/forums/topic/224560-homebrew-axe-10-released-la1n-2014 >
Es ist immer eine schlechte Idee mit der Atari 2600 Programmierung zu beginnen!
GameOver
Es gibt zwei ‚alternative‘ Enden.
Ende 1: Das Ende

Ende 2: Das Ende als Statue im Kunsthaus

Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.