Eine E-Mail von meinem Blogger-Kollegen Oli – ein gleichgesinnter Atari-ST-Fan und ebenfalls Programmierer – nehme ich heute zum Anlass, einen kleinen Softwarearchäologie-Report zu verfassen. Er sprach mich auf einen alten ZX81-Emulator an; ein Emulator für den Atari ST, den ich seit bestimmt 20 Jahren nicht mehr gesehen habe, und mit dem ich einige der interessantesten Erinnerungen aus meiner Kindheit verbinde. Den Artikel schreibe ich freilich aus der Sicht von jemandem, der das Programm als Kind verwendet hat, und nicht etwa von jemandem, der professionell damit umgehen kann.

ZX81 Emulator: Ein sehr kreatives Tastaturlayout

ZX81 Emulator: Ein sehr kreatives Tastaturlayout

Ich erinnere mich noch sehr gut an dieses kleine aber großartige PD-Programm von Christoph Zwerschke, das zum ersten Mal im Oktober 1990 auf der Beilagediskette des TOS-Magazins veröffentlicht wurde. Ich war kaum sieben Jahre alt und hatte schon ganz grob begriffen, was ein Emulator ist. Dieser hier emulierte einen Sinclair ZX81 – ein kleiner Homecomputer aus England (von dem namensgebenden Erfinder Sir Clive Sinclair), der zum Zeitpunkt meiner Geburt bereits veraltet und Anfang der 90er praktisch museumsreif war. Wenn man den Emulator startet, bekommt man einen Begrüßungsbildschirm zu sehen, und dann nur noch ein Eingabefenster. Das war schon damals nicht unbedingt besonders einladend, wenn man grafische Benutzeroberflächen (wie TOS) gewohnt war, aber ich kannte zum Glück den GFA-BASIC-Interpreter, und der sah ähnlich spartanisch aus. Keine Ahnung, wie ich darauf gekommen bin (vielleicht habe ich ja wirklich die README-Datei gelesen), aber mit der Eingabe von LOAD „“ offenbarte sich mir eine fantastische Welt primitiver BASIC-Spiele, und das war für mich in dem Alter das Beste an dem Emulator.

Mein Vater schüttelte den Kopf als er diese äußerst altbackene Klötzchengrafik sah, und er wunderte sich, wie ich damit soviel Spaß haben konnte, wo der ST doch so tolle hochauflösende Monochromspiele und knallbunte Farbspiele hatte. Möglicherweise war das der Moment, in dem ich endgültig erkannte, dass Spielspaß praktisch nichts mit Grafik zu tun hatte, und mit Sound schon gar nicht, denn den gab es sowieso nicht: Der ZX81-Emulator blieb immer stumm. Keine Frage, ich liebte mein Highway Patrol 2, mein Cadaver, und mein Double Dragon, und all die anderen tollen Spiele, die ich in meiner Diskettenbox hatte, aber der ZX81-Emulator löste mit seiner merkwürdigen Schwarz-Weiß-Zeichensatz-Grafik eine wirklich kaum zu beschreibende Faszination bei mir aus.

3D-Monster-Labyrinth: Vor dieser Kreatur habe ich mich gefürchtet

3D-Monster-Labyrinth: Vor dieser Kreatur habe ich mich gefürchtet

Eine ganze Menge Spiele lagen dem Emulator bei, alle in Form von (kaum lesbaren) BASIC-Quellcodes. Mit dem Befehl RUN wurde das geladene Programm gestartet. Das waren ganz unterschiedliche Spiele: Night Driver, eine schwierige Rennsimulation, oder Varianten von Hangman und Centipede gab es, außerdem mit Hamurabi ein zahlenlastiges Resourcen-Management-Spiel, das ich kaum verstand. In Olympiade musste man abwechselnd die Tasten 5 und 8 drücken, damit der eigene Läufer immer schneller wurde, und mit der Taste 0 konnte man dann abspringen (beim Weitsprung). Viele Stunden Spaß hatte ich mit Mazogs, dessen Omikron-Äquivalent Maziacs ich schon kannte – ein Labyrinth voller Riesenspinnen, in dem man eine Schatztruhe finden musste. Daneben gab es mit Star Trek ein aufwändiges Weltraumspiel mit Handlung, an dem ich mich immer wieder versucht habe, obwohl ich noch etwas zu jung war, um die Rätsel zu verstehen.

Es gab noch diverse Programme, die etwa Schaltpläne generierten, oder einen Biorhythmus berechneten. Das hat mich damals aber alles nicht so interessiert. Spannend war noch das Spiel Animals, eine Umsetzung von „20 Questions“. Ohne die Theorie hinter Binärbäumen zu kennen, hatte ich natürlich Schwierigkeiten mir vorzustellen, wie der Computer am Ende praktisch jedes Tier erraten kann. Das mit Abstand gruseligste Spiel war das 3D-Monster-Labyrinth. Der Spieler musste ein zufällig generiertes Labyrinth in der Ich-Perspektive durchlaufen, während am anderen Ende des Labyrinths ein Monster umherirrt, das seinerseits den Spieler sucht. Ich kann bis heute nicht sagen ob das Monster sich in Echtzeit bewegt, oder doch nur rundenbasiert, aber ihm versehentlich zu begegnen, hat mich immer wieder erschreckt. Es war auf jeden Fall ein tolles Beispiel für ein sehr simples Spiel mit Suchtfaktor, das im besten Fall zweckmäßige Grafik und absolut keinen Ton hatte. Also entweder war ich schon damals wirklich verloren, oder diese Spiele hatten einfach einen gewissen Reiz.

Star Trek: Klötzchenwelten mussten mit Hilfe des Ziffernblock erforscht werden

Star Trek: Klötzchenwelten mussten mit Hilfe des Ziffernblock erforscht werden

Kaum zu glauben, aber wahr: Christoph Zwerschke, der Entwickler des ZX81 Emulator, ist sogar noch mit einer eigenen Webseite im Internet vertreten (letzte Änderung allerdings im März 2001!), und er bietet dort die letzten Versionen seiner alten ST-Programme an, darunter natürlich auch dieser wunderbare Emulator. Extra für ein paar Screenshots habe ich daher den ST-Emulator angeworfen, um nach über 20 Jahren den ZX81-Emulator anzuwerfen, um dessen grobpixelige Spiele mal wieder anzuwerfen und digital abzulichten. Quasi eine kleine Emulatorception. Oder Retro im Quadrat. Und tatsächlich, ich konnte mich noch an so manches Bedienungsdetail erinnern. Und mit der HELP-Taste kann man sich ja im Notfall noch das Tastaturlayout einblenden lassen. Vielleicht spiele ich nochmal kurz eine Runde 3D-Monster-Labyrinth. Retroflash in 3 … 2 … 1 …

Nein, noch nicht ganz tot. Ihr müsst mich noch eine Weile ertragen. Drei Wochen lang habe ich mich nun alleine um mein sogenanntes Privatleben gekümmert und meine Internetpräsenz dafür völlig vernachlässigt. In nennenswertem Umfang vorangekommen bin ich dabei leider nicht, und das obwohl der nächste große „Level-Up“ bereits kurz bevorsteht. Einer von solch beängstigender Bedeutsamkeit, die mir jede Vorfreude daran nimmt, und auch den Reiz, darüber nachzudenken. Aber das soll nicht heißen, dass ich zuletzt keinen Spaß hatte: Ich durfte an der jährlich stattfindenden mehrtägigen Netzwerkparty im Freundeskreis teilnehmen, ich habe mir schmerzhafte blaue Flecken und üble Beulen bei einer schmierigen Paintball-Veranstaltung zugezogen, mit einem Kollegen knobelte ich an alten SNES-Spielen, außerdem war ich beim Public Viewing zum letzten WM-Gruppenspiel Deutschlands gegen die USA dabei.

Ich gehöre zu jenen Fußballmuffeln, die wirklich nur alle zwei Jahre Begeisterung für diesen Sport aufbringen können. Fußball zu spielen fand ich schon immer spannender als dabei nur zuzusehen. Doch spätestens wenn die deutsche Nationalmannschaft an der Endrunde teilnimmt, kommt sogar bei mir echte Spannung auf. Umso mehr, nun da Deutschland nach Jahrzehnten sogar wieder im WM-Finale gegen Argentinien steht – eine wahrhaft historische Begegnung. Heute Abend wird die DFB-Elf also entweder als Weltmeister 2014 oder als erster Verlierer 2014 vom Platz gehen. Es ist schwer (aber sicherlich nicht unmöglich), dabei keinerlei Erwartungen zu haben.

Genug Gelaber über Fußball. Beinahe bedauere ich es, dass ich meine kleine Webseite so lange brach liegen, die eingegangenen E-Mails alle unbeantwortet ließ, ja, ich noch nicht einmal Sport machen wollte. Drei Wochen reiner körperlicher Verfall, eine schreckliche Vorstellung für mich. Ich bin ein Mensch, der sich von jedem noch so kleinen „Termin“ abseits des Alltags beengt fühlt, der irgendwann Fluchtreflexe verspürt, wenn er seine Freizeit nicht mehr so gestalten kann, wie er möchte. Es gibt bestimmt irgendeinen Psychologen, der das längst als Störung identifiziert und ihr einen Namen gegeben hat. Jedenfalls neige ich dazu, viele Dinge liegen zu lassen, wenn ich den Kopf nicht absolut frei habe. Genau das ist hier passiert. Was soll ich sagen. Jetzt wird wieder alles gut.

In wenigen Wochen werde ich endlich meinen Jahresurlaub antreten und dabei eine ganze Schiffsladung an angesammelten Altlasten entsorgen, Erledigungen bewältigen und Besorgungen tätigen. Dieser Beinahe-Zungenbrecher ist mein Plan für den August. Nebenbei möchte ich die zweite Hälfte meines Lebens mit Freunden gebührend anfeiern, wenn sich die Gelegenheit dafür bietet. Man könnte die letzten Tage quasi als eine Art Halbzeitpause betrachten. Aber jetzt werde ich noch ein paar der vielen angefangenen Blog-Beiträge zuende schreiben um den kleinen Rückstand so langsam wieder abzubauen.

Eine reichlich produktive Woche liegt hinter mir. Ein paar müßige Woche mussten nämlich ausgeglichen werden, jedenfalls im Bereich der Spieleentwicklung. Aber seit Montag konnte sich meine Entwicklungsumgebung nicht über zuwenig Aufmerksamkeit beklagen. Es gibt daher schon wieder einen kleinen Update-Bericht zu SPACOLA Eclipse.

spaclipse034

Als erstes möchte ich bekanntgeben, dass ich eine gedankliche Schwelle überschritten habe: Ich bin mir jetzt hundertprozentig sicher, dass ich das kleine Retro-Spieleprojekt eines Tages wirklich zum Abschluss bringen muss. Nachdem ich bisher stets darauf hingewiesen habe, dass ich keine Garantie dafür geben werde, dass ich meine kaum spielbare Monochrom-Demo nicht eines Tages doch noch aus plötzlichem Desinteresse wieder einstampfe, bin ich nun sicher, dass mir das nicht mehr passieren kann. Zuviel Mühe, Zeit und Erfahrung stecken inzwischen in dem bald 13000 Zeilen langen Quellcode.

Außerdem ist das zwar noch weitestgehend unfertige Spiel längst mit einem tatsächlich recht drolligen Gameplay gesegnet. Auf dem Bildschirm wuseln und explodieren schon eine ganze Menge Raumschiffe hektisch umher, ballern aus allen Rohren, Geschütztürme verfolgen aufgeschreckt jede Bewegung des Spielers. Selbst die winkenden Männchen in den Raumstationen trinken schon gierig ihre Cola, wenn man sie mit der wertvollen Ware beliefert. Mit maximalem Schub versucht man der Anziehungskraft schwarzer Löcher zu entkommen, oftmals vergeblich. Ja tatsächlich, Geschütztürme und schwarze Löcher sind in dieser Woche fertig geworden.

Ich habe endlich meine neue Vortex-Klasse für Strudel- bzw. Wirbeleffekte (z.B. Intro-Animation und Gameover-Animation) in Betrieb genommen. Für den Wirbeleffekt (logarithmische Spirale) und für die Gravitationsberechnung schwarzer Löcher musste ich mir wieder mal eine ganze Menge Mathematik anschauen. Selten habe ich soviel über irgendwelchen Formeln gebrütet wie die letzten Tage, aber es hat sich ausgezahlt. Der Effekt ist wirklich spannend und funktioniert sehr gut. Den neuen Code für die Gravitation konnte ich auch gleich für zwei Sammler-Powerups und für die Container einbauen, so dass das Thema auch abgehakt wäre. Von seiner eigenen Code-Kreation brutal über den Haufen geschossen oder ins Nirvana gezogen zu werden, das macht einen auch irgendwie stolz.

Aber ich will niemandem etwas vormachen: Die Todo-Liste wird eher länger statt kürzer. Für jedes Feature, das ich mühsam umsetze, fallen mir zwei neue ein. Und das schließt Ideen für Erweiterungen und Bugs nichtmal ein. Alle paar Monate meldet sich mal ein SPACOLA-Fan bei mir, was mich immer ganz besonders freut. Manchmal ist das sogar die nötige Motivation, die ich brauche, um mich nach faulen Phasen mal wieder ins Gefecht zu stürzen. Und ich bin noch optimistisch, dass das Projekt Ende des Jahres wirklich vorzeigbar wird! Bis dahin wird es noch ein weiteres Gameplay-Video geben, das alle neuen Funktionen demonstriert und dass man nun sogar das Spiel verlieren und seinen Highscore-Eintrag hinterlassen kann. Wenn die vielen Spielmechaniken mal irgendwann alle fertig implementiert sind, dann kann ich mich endlich um das wirkliche Spieldesign kümmern, also um die Levels, das Feintuning, ein korrektes Gegnerverhalten, uvm.

Lange habe ich mich nicht mehr so sehr über etwas geärgert wie die Windows-Dateisuche. Aus einem bestimmten Ordner mit sehr vielen unterschiedlichen Dateien wollte ich anhand eines entsprechenden Namensmusters einige davon in einen anderen Ordner verschieben. Nichts leichter als das, dachte ich mir, denn die Windows-Suche unterstützt ja schließlich Wildcards („*“ und „?“), und auf den Kopf gefallen bin ich zum Glück auch nicht. Die erwartete Trefferliste lieferte mir die Suchfunktion in Nullkommanix. Mittels Ausschneiden und Einfügen waren mehrere hundert Dateien blitzschnell an den neuen Ort verschoben.

Durch Zufall fiel mir eine Datei ins Auge, die in dem neuen Ordner aber definitiv nichts verloren hatte. Hat die Windows-Suche sich da ein wenig vertan? Konnte ja eigentlich kaum sein. Vielleicht habe ich beim Markieren der Dateien irgendetwas verkehrt gemacht? Auch unwahrscheinlich. Um sicherzugehen, machte ich den Verschiebevorgang rückgängig und führte die Suche erneut aus. Wieder wollte ich die gefundenen Dateien verschieben. Und wieder waren Dateien dabei, die nicht auf das Namensmuster zutreffen konnten. Spinnt Windows oder versagt hier der Faktor Mensch? Ich beschloss also, den Test zu machen:

windowssuche

Was für ein unbrauchbarer Dreck ist das denn bitte? Die Windows-Dateisuchfunktion ist völlig wertlos! Sie hält sich nicht an das Pattern, das ich eingegeben habe, und spuckt neben den richtigen auch falsche Treffer aus. Die Klammern werden einfach ignoriert, so als hätte ich sie nur aus Spaß eingegeben. Meine Recherche im weltweiten Netz bestätigt meine Vermutung: Microsoft hält nichts von Konventionen, sondern bastelt lieber wieder irgendeinen eigenbrötlerischen Schrott zusammen, den man als professioneller Nutzer nicht vernünftig verwenden kann. Das „Escapen“ der Klammern mit Backslashes oder Punkten bringt leider nichts, Windows scheint meine Eingabe nur als grobe Empfehlung zu betrachten. Was richtige Suchergebnisse sind, muss ich offenbar gänzlich dem Betriebssystem überlassen. Die Suchfunktion genügt meinen Ansprüchen hier leider absolut nicht. Bevor ich mir die Microsoft’sche Syntax zur Dateisuche anlerne, sofern eine solche überhaupt existiert, nehme ich lieber ein ordentliches Third Party Tool, mit dem man arbeiten kann.

Beinahe hätte ich meine Dateien unbewusst falsch sortiert. Na danke, Microsoft, ihr verdammten Trolle. Wer weiß wie oft ich darauf bislang schon hereingefallen bin ohne es zu merken. Wie schwer kann es sein, eine Suchfunktion mit Wildcards richtig zu implementieren. Ich verlange ja gar nicht, dass hier reguläre Ausdrücke ausgewertet werden, aber eine simple Suchfunktion, die keinen Mist baut, wäre mir WIRKLICH wichtig. Echt mal.

So habe ich nun in meiner Verzweiflung einige – wie sich herausstellte – ebenfalls ziemlich nutzlose Tools heruntergeladen, die meine Erwartungen nicht erfüllen können, darunter „Everything“, „Snowbird“, „Locate32“ und „UltraSearch“. Entweder ließ sich die Suche nur auf (langwierig) vorindizierte Festplatten anwenden (und ich wollte nicht drei Stunden auf mein Suchergebnis warten müssen), oder die Suche ließ sich überhaupt nicht auf Verzeichnisse, sondern im Fall von „Everything“ nur auf ALLES anwenden, oder die Suche kannte keine Wildcards, was ich bei einem Dateisuch-Tool als übles Versäumnis betrachte. Nun habe ich schließlich den „FreeCommander“ ausprobiert. Der hat alle gewünschten Dateien problemlos gefunden, mit exakt demselben Suchmuster, wie ich es zuvor dem Windows Explorer vorgesetzt hatte – und zwar im Gegensatz dazu fehlerfrei.