Schlagwort-Archive: Esprit

Ich will jetzt nicht unbedingt behaupten, dass ich fleißig bin, aber wenn ich mal ausnahmsweise nicht faul bin, dann bin ich so richtig nicht faul. Nach einer längeren Abwesenheit und gleichzeitigen Arbeitspause an meinem Spiele-Remake, bin ich nun endlich wieder dran. Mich hat aus irgendeinem mysteriösen Grund plötzlich wieder die Motivation eingeholt, und sofort konnte ich zumindest wieder etliche Kleinigkeiten angehen und Fehler korrigieren. Allerdings habe ich durch Zufall ganz unerwartet einen weiteren Meilenstein bei der Entwicklung erreicht; einen Punkt auf meiner To-Do-Liste, den ich definitiv irgendwann umsetzen wollte, selbst wenn dies einen Nutzen nur theoretischer Natur auf dem Papier bringt.

Was bisher geschah: Einem unfassbar mäßig begabten Entwickler eines Spiele-Remakes, der zwar nicht vom Erfolg seines Projektes überzeugt, aber dafür wenigstens nicht von seinem Ziel abzubringen ist, war es gelungen, die Original-Dateien des Atari ST-Spiels SPACOLA mit Hilfe eines Debuggers zu entpacken und anschließend sogar das undokumentierte Format der Sprite-Dateien zu dechiffrieren und einen eigenen Konverter zu schreiben. Dies sollte ihm endlich einen wichtigen Einblick in die Hintergründe der Unterhaltungssoftware einer längst vergessenen Zivilisation geben. Wie hatten unsere Vorfahren einst Spiele entwickelt? Wurden die Quellcodes damals noch in Keilschrift verfasst? Mussten Benutzer an einer Kurbel drehen, wenn sie ihren Heimcomputer starten wollten? Waren antike Computerprogramme auch nur in schwarzweiß? (In diesem Fall, ja!). Unermüdlich arbeitete der selbsternannte Software-Archäologe weiter an den historischen Dokumenten, um vielleicht irgendwann einmal das perfekte Remake zu erschaffen.

Teil 3 meines fortlaufenden Hintergrundberichts: Es war eigentlich reiner Zufall als ich im Internet auf die Reverse-Engineering-Erkenntnisse von Jeremy Sawicki aus dem Jahr 2003 stieß. Der hatte diverse OXYD-Spiele in ihren Farbversionen für den IBM-PC erfolgreich analysiert und deren Formatspezifikationen offengelegt, darunter das Levelformat, die Grafik- und Sounddateien. Seine Dokumentation war unter anderem nützlich bei der Entwicklung des freien OXYD-Klons Enigma. Als ich mir die Angaben zum Grafikformat genauer ansah, erkannte ich plötzlich viele Gemeinsamkeiten zu den PAC-Dateien, die in den alten Monochromversionen der frühen Dongleware-Klassiker Verwendung fanden. Diese Dateien enthielten binäre Vollbildgrafiken für die Spiele seit Esprit (1989) und bis mindestens OXYD2 (1991).

Ich hatte mich natürlich längst selbst mehrfach daran versucht, das seltsame Dateiformat zu dekodieren, zuletzt auf Grund meiner Erfolge beim Konvertieren der Sprite-Dateien, doch das PAC-Format widersetzte sich meinen Annäherungsversuchen konsequent. Bis auf einige sehr offensichtliche Headerinformationen konnte ich kaum sinnvolle Werte herauslesen, und meine einzigen Erkenntnisse über das Kompressionsverfahren bestanden darin, dass das Bild in Blöcke unterteilt wird, und die Pixelinformationen grundsätzlich durch ein XOR-Verfahren invertiert von oben nach unten beschrieben werden. Durch Manipulieren der Dateien im Hexeditor und anschließendem Beobachten der Auswirkungen in OXYD, stellte ich erstaunt fest, dass die Dateistruktur eine sehr eigenwillige sein musste, weil oft komplett unvorhersehbare und unintuitive Artefakte im Bild dadurch enstanden. Als ich keinerlei Gesetzmäßigkeiten ausmachen konnte, gab ich mein Vorhaben desillusioniert auf.

Seit heute weiß ich endlich sehr genau, was das große Problem war. Von Sawickis Arbeit angespornt, begann ich endlich an der Entwicklung eines eigenen Konverters, den ich letztlich in mein Remake einbauen wollte, so wie bereits getan beim Konverter für Sprite-Dateien. Ich studierte die Formatspezifikationen und implementierte die Dekompressions- und Zeichenroutinen. Ohne nun zu sehr ins Detail zu gehen (wer alles wissen möchte, kann die Originalseite lesen), besteht jede Packed-Bitplane-Datei aus einem Header, einem Bitstream und einem Bytestream. Der Bitstream beschreibt dabei die gesamte Struktur des Bildes, sowie Angaben über die Kompressionsmethodik, und der Bytestream enthält die tatsächlichen Pixeldaten, die entsprechend gezeichnet werden müssen.

Jedes Bild hat die Auflösung von 640×400 Bildpunkten und ist in Blöcken von je 16×16 Pixeln aufgeteilt. Der Bitstream beschreibt dabei, wie das Bild nacheinander in Reihen von Blöcken, Blöcken, Blockquadranten und Reihen von Pixeln in immer kleinere Häppchen aufgespalten wird, wobei jedes Element entweder übersprungen oder gezeichnet werden kann. Müssen Pixel gezeichnet werden, so wird ein Byte aus dem Bytestream gelesen und dessen Bits als Pixel interpretiert, abhängig von einer der Pixelreihen darüber, die miteinander XOR-verknüpft werden, also je nachdem ob ein Bit gekippt wird oder nicht. Die Formatspezifikation von Sawicki ist dabei technisch betrachtet soweit korrekt, aber leider an mehreren Stellen etwas unpräzise formuliert, so dass ich mehrere Fehler machte, deren Behebung mich viel Zeit gekostet hat.

Das Titelbild „TITLE.PAC“: Die einzelnen Fortschritte während der Entwicklung des PAC-Konverters von oben nach unten. (Rote Bereiche sind nur Hintergrund, wo noch nichts gezeichnet wurde.)

Während der Entwicklung fiel mir jedoch auf, dass Sawicki eines der Features des proprietären Dongleware-Formats definitiv nicht kannte: Neben dem Invert-Flag, das festlegt, ob das fertige Bild noch invertiert werden muss, gab es in meinem Archiv eine einzelne Datei, die ein undokumentiertes Flag setzt. Zum Glück konnte ich am Output des Konverters bereits erkennen, was dem Bild fehlte: Es musste ein Dithered Pattern („Schachbrettmuster“) mittels XOR über das gesamte fertige Bild gezeichnet werden, um die ursprüngliche Grafik wiederherzustellen. Dieser Modus wird wohl zwar nur sehr selten angewandt, aber mein Konverter unterstützt dieses Feature nun ebenfalls. Im Endeffekt war es mir in geschätzt sechs bis sieben Stunden gelungen, eine Implementierung abzuliefern, die sämtliche 16 PAC-Dateien, die ich aus vier Spielen gesammelt hatte, fehlerfrei einzulesen und anzuzeigen vermochte.

Ohne das hilfreiche Dokument wäre ich immer noch nicht schlauer, und sonst einen Konverter zu schreiben, hätte ich wahrscheinlich nur geschafft wenn ich viele Wochen und Monate in mühsames Debugging der Spiele investiert hätte. Ob ich mir diese Zeit jemals hätte nehmen wollen, sei mal dahingestellt. Nun bin ich umso glücklicher über diese angenehme Abkürzung, die ich nehmen konnte. Der Konverter ist fertig und bereits ins Remake eingebaut. Dadurch bin ich jetzt endlich in der Lage, auch die originalen Grafikdateien in unveränderter Form im Remake einzulesen und zu verwenden. Das macht – wie eingangs im Absatz beschrieben – für den Spieler absolut keinen Unterschied, für mich als Entwickler mit Perfektionsdrang aber einen gewaltigen.

Mein SPACOLA-Remake kann nun die ursprünglichen Sounddateien, die Sprites und die Grafikdateien korrekt lesen. An der Interpretation der originalen Leveldaten arbeite ich mich weiterhin Schritt für Schritt voran, sie werden aber immerhin schon komplett eingelesen. Alles was jetzt noch vollständig fehlt: Die Musikdaten im SMS Synthesizer-Format von Jürgen Piscol. Ob ich dieses Kapitel jemals abschließen werde, lässt sich im Moment noch nicht einmal sagen. Andererseits, wer weiß schon, ob sich nicht doch wieder jemand findet, der zufällig eine detaillierte Analyse des Formats in Schriftform für mich zur Einsicht hat. Dann könnte nämlich alles ganz schnell gehen.

Das „Boss Is Coming“-Bild aus OXYD2, dargestellt im PAC-Konverter, zeigt den Datenbank-Manager „Phoenix“ von den Application Systems Heidelberg

Und falls sich nun jemand fragt, wieviele PAC-Dateien in SPACOLA Eclipse denn nun eingelesen und angezeigt werden können: Es sind ganze vier Dateien! Erstens, das Titelbild beim Laden des Spiels. Zweitens, das typische HUD mit dem Radar auf der rechten Seite. Drittens, der Rentenbescheid zum Ausdrucken nach Abschluss des letzten Levels. Die vierte und letzte PAC-Datei ist tatsächlich ein ungenutztes Bild, das die Kontaktadresse des Dongleware-Verlages enthält. Vermutlich wurde es in einer früheren Version des Spiels verwendet, und dann durch ganz normalen Text in der Dongleware-Schriftart ersetzt. Alle diese vier Originaldateien werde ich nun ins Remake einbauen und in irgendeiner Weise nutzen, damit sich der ganze Entwicklungsaufwand auch gelohnt hat.

Was bisher geschah: Einem erfolglosen Remake-Entwickler ist es trotz aller Widrigkeiten schließlich doch noch gelungen, alle Originaldateien von SPACOLA mit Hilfe eines Debuggers in einem Atari ST-Emulator zu extrahieren. Doch das sollte noch lange nicht das Ende seiner abenteuerlichen Reise in die Heimcomputer-Vergangenheit des späten 20. Jahrhunderts sein, denn die antiken Hieroglyphen in den Originaldaten mussten erst noch aufwändig von einem gewieften Software-Archäologen entziffert und entschlüsselt werden. Dies ist seine haarsträubende Geschichte.

Da saß ich nun also, mit einem ganzen Haufen alter, unlesbarer Sprite-Dateien aus dem Spiel SPACOLA, ohne irgendeinen Hinweis, was ich damit anfangen könnte, und welche sagenhaften Geheimnisse diese historischen Dokumente letztlich bargen. Lediglich aus den perfekt erhaltenen Dateinamen ließ sich ungefähr ersehen, welche Sprites genau darin zu finden seien. Mein geschätzter Mit-Atarianer und Blogleser Gerry hatte mich glücklicherweise bereits Jahre zuvor mit einem wichtigen Zeitschriftenartikel aus der guten alten „ST Computer“ versorgt, in dem Meinolf Schneider höchstpersönlich im Jahr 1990 über die Entwicklung von Bolo und Esprit berichtet. Dieser Artikel erwies sich als pures Gold und enthielt so einige hochinteressante Einblicke und Fakten, die mir als Entwickler wiederum bedeutende Implementierungsdetails verrieten. Unter anderem beschrieb Meinolf darin einzelne Aspekte seines eigenen Sprite-Formats, den sogenannten „Shapelists“. Wie das Format aufgebaut war, war daraus zwar leider noch lange nicht ersichtlich, aber dafür andere wichtige Eigenarten, die später von Vorteil sein sollten.

Der Hex-Editor HxD zeigt eine SHL-Datei

Das Hilfsmittel Nummer eins war wiederum der Hex-Editor, mit dem ich mir die Dateien Byte für Byte quasi unter der Lupe ansehen konnte. Bei genauerem Hinsehen erkannte ich, dass diese Dateien immer aus mehreren „Blöcken“ bzw. Abschnitten bestehen, nämlich aus mindestens zwei, so wie im Falle der kleinsten Datei „SPI_MINE.SHL“. Diese spezielle Datei sollte mir schließlich zur Lösung des Rätsels dienen, da ich hierüber zum Glück ausreichend wusste. Da sie nachweislich aus genau zwei Blöcken besteht, wusste ich nun ziemlich sicher, dass nur die zwei einzelnen Sprites der beiden Sprengminen des Originals darin enthalten sein konnten. Ich wusste wie diese Sprites genau aussehen, wie groß sie sind, und am allerwichtigsten, dass diese Sprites zu einem großen Teil symmetrisch sind. Meine Chance bestand also darin, in den Shapelists nach genau diesen Symmetrien Ausschau zu halten. Würde ich eine Symmetrie im Bytemuster der Datei wiedererkennen, hätte ich schon einen äußerst wichtigen Ansatz gefunden.

Als ich einige Hexwerte (in Big Endian Bytereihenfolge) in der Shapelist in Dezimal umgerechnet hatte, fand ich so unter anderem die Dateigröße und die einzelnen Spritegrößen wieder, und so konnte ich sogar ausmachen, welches Sprite in welchem Block gespeichert ist. Ich konzentrierte mich also auf den kleineren ersten Block. Es dauerte nicht lange und ich hatte einen Teil ausgemacht, der symmetrisch aussah, und so folgerte ich, dass genau hier die Pixelinformationen begraben sein mussten. Bei einer Monochromgrafik war es zwar durchaus naheliegend, aber ich brauchte trotzdem einige Minuten, um darauf zu kommen, dass hier jedes Byte genau eine Reihe von 8 Pixeln darstellen konnte. Mit Hilfe des Windows-Taschenrechners ließ ich mir die Hex-Werte binär anzeigen, und so malte ich die gesetzten Bits auf ein Pixelgrid. Tatsächlich erkannte ich schon kurz darauf etwas, das zumindest teilweise nach den invertierten Umrissen der linken Hälfte des erwarteten Minen-Sprites aussah. Das war für mich erneut ein entscheidender Durchbruch. Ab hier war ich sicher, ich könne die Shapelists lesen.

In der Folge stellten sich mir bei der Analyse einige wichtige Merkmale des Dateiformats heraus: Die Sprites waren immer kodiert in „Scheibchen“ zu je 8 Pixeln Breite mit variabler Höhe. Zudem gab es pro Sprite meist zwei Schichten: Einen Hintergrund mit Transparenzinformationen, und einen Vordergrund. Manchmal gab es auch nur eine Schicht ohne Transparenz. Anschließend begann der nächste Block, der das nächste Sprite enthielt. Große Teile der Datei verstand ich bis dahin noch nicht, daher entschied ich mich zunächst, diese zu ignorieren, denn ich begann gleichzeitig damit, einen Konverter zu entwickeln, der SHL-Dateien laden und diese in ein anderes Grafikformat übersetzen konnte. Nach ein oder zwei Stunden hatte ich meinen Code schon soweit, dass er die beiden Minen aus der Originaldatei perfekt auf dem Bildschirm anzeigte. Ich wähnte mich bereits am Ziel, als ich zur Kontrolle eine andere SHL-Datei laden wollte, und der Konverter mit diversen Fehlern abbrach. Mit dem Format dieser Datei konnte er nichts anfangen, und so musste ich erneut mit dem Hex-Editor ran.

Ein monochromes Minen-Sprite aus der Shapelist mit Transparenzdaten in GIMP geladen

Ich entdeckte, dass Shapelists bisweilen mehrere „Versionen“ desselben Sprites beinhalteten, aber den Grund kannte ich nicht, bis sich herausstellte, dass jede folgende Sprite-Version im Grunde nur um jeweils einen Pixel nach rechts verschoben war. Die Lösung lieferte besagter ST-Computer-Artikel, in dem Meinolf erläuterte, dass er alle acht Möglichkeiten zur horizontalen Positionierung einer Grafik vorberechnete. Dies war nötig, weil er die Sprites direkt in den Grafikspeicher des Bildschirms kopierte, was natürlich nur in ganzen Bytes möglich war. Er schreibt hierzu genauer: „Will man die Figur auf eine beliebige horizontale Position darstellen, müssen die einzelnen Bits, die ja Bildpunkte repräsentierten, innerhalb eines Bytes verschoben werden. Und dies kann bei vielen zu zeichnenden Figuren für eine 72Hz-Animation zu langwierig sein.„. Diese bit-geshifteten Versionen sind in den Shapelists also allesamt enthalten. Ich entdeckte außerdem, dass die Shapelists im Header immer alle Offsets enthalten, die verwendet werden können, um direkt zum Beginn eines Blocks zu springen.

Nachdem ich meinen Konverter angepasst hatte und er flexibler mit dem Shapelist-Format umgehen konnte, erlaubte mir das bereits, einige Dutzend SHL-Dateien fehlerfrei zu laden, während so manche andere Datei jedoch noch Darstellungsprobleme hatte. Auch dies konnte ich wiederum korrigieren, so dass ich das SHL-Format dadurch immer besser zu verstehen lernte. Am Ende war mein Konverter problemlos in der Lage, alle Shapelists aus Bolo, Esprit, OXYD und Spacola zu laden. Die Shapelists aus OXYD 2 könnte er vermutlich auch konvertieren, aber diese müsste ich dazu natürlich erst mühsam aus dem Spiel holen. Eine letzte Erkenntnis konnte ich schließlich noch gewinnen: Zu jedem Sprite sind in der Shapelist die genauen horizontalen und vertikalen Pixeloffsets gespeichert, also die Zahlenwerte, um wieviele Pixel das Sprite relativ zur Position des entsprechenden Spielobjekts verschoben gezeichnet werden soll – im einfachsten Fall muss man das Sprite nämlich über dem Objekt zentrieren.

Ein Zusammenschnitt mehrerer konvertierter Shapelist-Inhalte aus Bolo (1987), Esprit (1989), und SPACOLA (1991)

Besagten Shapelist-Konverter habe ich mittlerweile nativ in das Remake SPACOLA ECLIPSE integriert, und das Spiel lädt folglich nicht nur die Original-Sounddateien, sondern inzwischen auch schon einige der Original-Spritedateien. Die Transition hin zu Shapelists ist aktuell noch im Gange und wird auch noch einige Monate andauern, aber der Vorteil ist für mich eindeutig: Absolute Originaltreue ohne unnötige Kompromisse. Durch die Verwendung von Shapelists werden all meine bisherigen Unsicherheiten verschwinden, ob ich dieses oder jenes Sprite auch wirklich pixelgenau und fehlerfrei gezeichnet habe, und ich kann meine geringe Aufmerksamkeit wieder anderen, deutlich wichtigeren Dingen widmen. Zum Beispiel dem Spiel.

Mit der Programmierung meines kleinen SPACOLA-Remakes habe ich übrigens heute vor exakt 10 Jahren begonnen. In dieser Zeit wuchs das Hobby-Projekt auf 54.300 Codezeilen in 326 Quelldateien an, und umfasst zusätzlich knapp 1500 Grafikdateien und 64 Audiodateien. Für volle 10 Jahre Entwicklungszeit ist das wahrlich nicht so viel, aber schneller bekomme ich es nicht hin. Ich habe eben mein ganz eigenes Tempo, das sowohl von motivierten als auch von faulen Phasen mitbestimmt wird. Dafür steckt trotzdem eine ganze Menge Herzblut, Schweiß und Erfahrung in meinem Werk. Wann das Spiel fertig oder wenigstens mal spielbar sein wird, steht weiterhin in den Sternen. Aber wer meine vielen kleinen Fortschritte bis heute fleißig verfolgt hat, und die Hoffnung immer noch nicht aufgegeben hat, den werde ich vielleicht in den kommenden Wochen doch noch ein bisschen überraschen können.

To be concluded…

Richtig, im Dezember hatte ich bereits zwei Beiträge zur Remake-Thematik veröffentlicht, aber ich muss meine kreative Zeit auskosten solange sie noch nachwirkt. Ich bin erstaunlicherweise noch nicht in den Entwicklungs-Winterschlaf gefallen, so wie sonst bei mir durchaus üblich. Im Gegenteil. Der kalte Januar ist noch lange nicht vorbei, und das Changelog für diesen Monat ist bereits das aktivste seit Bestehen des Projekts. Solange meine Motivation weiter ungebrochen ist, wollte ich etwaige Fans daran teilhaben lassen, denn die nächste faule Phase ist so sicher wie das Amen in der Kirche.

Den Schwerpunkt legte ich im Januar auf das Beischleppen von Ressourcendateien, damit ich wenigstens diesen Arbeitsschritt vielleicht irgendwann einmal endgültig abhaken könnte. In den vergangenen Wochen spielte ich daher viel SPACOLA – also die Originalversion. Inzwischen bin ich bei Level 57 von 64 angelangt. Auf dem Weg dorthin kamen hunderte von Screenshots zusammen, die ich mit Hilfe von GIMP bearbeitete. Weit über 120 Sprites sind seit Version 0.39 vom Dezember hinzugekommen, außerdem mindestens acht neue Soundeffekte. Was die Original-Sounds angeht, dürfte ich so ziemlich fertig sein. Viele neue Gegnertypen sind nun im Remake zumindest „enthalten“ (ohne ihre entsprechende KI).

Momentan stehe ich vor einem zusätzlichen Problem. Etwa ein Drittel der Gegner wird im Handbuch des Spiels dokumentiert. Bei einem weiteren Drittel kann ich mir deren Namen aus den internen Dateien des Spiels halbwegs zusammenreimen. Beim letzten Drittel der Gegner habe ich keine Ahnung, wie diese heißen könnten, ich kenne höchstens ihre Anfangsbuchstaben. Hier bin ich nun angelangt, so dass ich jetzt namenlose Spritesets habe, die ich so nicht ins Remake einbauen kann. Überhaupt, wenn ich schon beim Thema Handbuch bin: Ich bin unsicher, nach welchen Kriterien die Entwickler sich entschlossen, Gegner im Handbuch zu erwähnen, und andere wiederum auszulassen. So werden beispielsweise die mit Lenkraketen bewaffneten Cargoliners im Handbuch beschrieben, die sogar erst tief in der zweiten Hälfte des Spiels auftauchen, aber die tödlichen Peashooters (intern: „Pigs“), mit denen man es quasi ab der ersten Spielsekunde zu tun bekommt, werden gar nicht erwähnt. Diese gehören eigentlich zu den frustrierendsten Gegnern im Spiel, da sie sehr gut zielen.

Im letzten Drittel des Spiels bekommt man es mit zwei sehr exotischen „Gegnern“ zu tun: Der Defender, sowie die Kaulquappe aus dem OXYD-Vorgänger Esprit. Als ich noch ein Kind war, hatte ich mit dem hohen Schwierigkeitsgrad wirklich zu kämpfen. Sich den zahlreichen schwerbewaffneten Gegnern zu stellen, hatte oft ein frühes Gameover zur Folge, weshalb ich viele Levels nur bewältigen konnte, indem ich ziellos herumballerte und wie ein Irrer im Affenzahn zum Ausgang flog. Stehenbleiben war keine Option. Sobald ein Gegner auf dem Bildschirm auftauchte, hieß es schießen oder abgeschossen werden, weshalb ich auch keine nähere Bekanntschaft mit dem Defender oder der Kaulquappe machen konnte. Vor kurzem ist mir aufgefallen, dass diese Schiffe dem Spieler gegenüber gar nicht so feindlich auftreten. Der Name des Defenders trifft es ganz gut: Er umkreist den Spieler, und rammt sämtliche Piraten aus dem Weg. Zu Anfang fand ich das ganz nett. Nach einer Weile bemerkte ich aber, dass der Pilot des Defenders vielleicht auf den einen oder anderen Schnaps hätte verzichten sollen: Es kommt zu oft vor, dass er versehentlich den Spieler rammt und zerstört. Absicht oder nicht, sowas nervt ein wenig.

Die Kaulquappe ist jedoch durch und durch ein äußerst nützlicher Helfer. Sie fliegt los, sammelt verlorengegangene Waren ein, und bringt sie dem Spieler zurück. Ich war ziemlich baff als ich dieses Verhalten entdeckte. Dummerweise ist die Kaulquappe ein häufiger Kollateralschaden bei hitzigen Feuergefechten, so dass man auf diesen Vorzug schon sehr früh wieder verzichten muss. Ich schätze das ist Absicht. Was ich nun an SPACOLA extrem schade finde: Obwohl sich die beiden Entwickler des Originals so sehr Gedanken um ihr Spiel gemacht hatten, dass sie sogar hilfreiche Figuren einbauten, wird der Spieler nicht nur im Handbuch darüber völlig im Dunkeln gelassen, er bekommt nicht einmal während des Spiels die Zeit, diese Figuren kennenzulernen. Ich habe SPACOLA mit meinen 7 oder 8 Jahren vielleicht 5 mal durchgespielt, aber erst heute erfahren, dass es nicht nur Feinde im Spiel gibt. Nun, ich habe mit dem Remake jetzt sogar mal die Gelegenheit, ein paar vorsichtige Anpassungen vorzunehmen.

Ein kleines neues Feature, das es im Originalspiel nicht gibt: Mit TAB kann man zur Zeit die Kamera umschalten, so dass man z.B. zwischen eigenem Spielerschiff und Raumstation wechseln kann. Ist eigentlich nur ein Test, um zu sehen, was ich noch alles machen könnte. In die Einspielerkampagne des Hauptspiels wird diese Funktion definitiv keinen Einzug finden, aber im Multiplayer-Modus wird das absolut nötig sein, um seine Mitspieler im Auge zu behalten, bzw. um als Zuschauer nach dem Gameover wenigstens noch einen guten Blick auf das Geschehen zu haben.

Thema Multiplayer: Die ersten Vorbereitungen hierzu habe ich jetzt einfach mal getroffen. Spielen kann man so noch nicht, aber es gibt jetzt zumindest technisch die Möglichkeit, als Server zu hosten und auf Mitspieler zu warten, und die Clients können sich schon übers Netzwerk beim Server anmelden. Sogar entsprechende Performance-Tests habe ich schon durchgeführt, so wird mit dem Anmelden der Clients permanent der Ping gemessen, und einen Timeout-Mechanismus, der verlorengegangene Clients vom Server wirft, gibts auch schon. Ich schätze, in einer der nächsten Versionen werden sich Spieler im Multiplayermodus zumindest gegenseitig sehen können.

Ein großes Dankeschön an Gerry, meinem geschätzten Mit-Atarianer und Thalion-Veteranen, der mich gerade noch rechtzeitig auf eine auslaufende Ebay-Auktion aufmerksam gemacht hat. Eine solche Rarität findet man wahrscheinlich nur alle paar Jahre mal, daher musste ich sofort zugreifen. Zu Anfang hoffte ich noch, dass ich schon für 6 Euro den Zuschlag bekäme, aber da habe ich nicht mit den anderen Nostalgikern gerechnet, wegen der ich etwas tiefer in die Tasche greifen musste. Am Ende gelang mir der große Coup mit knapp unter 40 Euro. Ja, viel Geld für alten Kram. Wenig Geld für einen echten Fan. Aber wovon spreche ich überhaupt? Ach, es geht eigentlich nur um den ultimativen Atari ST Public Domain Klassiker: Bolo

bolo_bolowerkstatt

Eine meiner aller-aller-aller-ersten Spieleerfahrungen hängt mit dem Breakout-Klon „Bolo“ von 1987 zusammen. Damals war ich wohl gerade so in der Lage, die Maus zu bewegen ohne dass sie vom Tisch fiel, und die Gefahr bestand bei diesem Spiel durchaus. Bolo – das etwas andere Ball(er)spiel – dürfte man eigentlich kaum Klon nennen, weil es das Original-Spielkonzept um so wahnsinnig viele Elemente erweitert, dass es die Idee auf ein völlig anderes Niveau hebt. Ich kann nicht betonen, wieviele unglaublich spannende (und auch frustrierende) Stunden ich damit erleben durfte. Dieses Spiel hat mich schon sehr früh geprägt, meine Ansprüche und Erwartungen an die Spielewelt entscheidend beeinflusst. Selbstredend hat sich seitdem viel getan, aber ich erwarte auch heute noch, dass eine große Portion Spielwitz eingebracht und viel Liebe zum Detail bei der Entwicklung von Spielen an den Tag gelegt wird, genau so wie das Meinolf Schneider vor etwa 27 Jahren getan hat, als er Bolo im Jahr 1986 zunächst für den auf dem 68000er von Motorola basierenden (wenig bekannten) Gepard Computer entwickelte, und dann für den damals brandneuen Atari ST veröffentlichte.

Die größte Besonderheit von Bolo war die beeindruckende Vielzahl an verschiedensten Steinen, die sehr geniale Physiksimulation, die den Spieler am Schläger den Widerstand beim Anschlagen beinahe spüren ließ, das Gewicht des (unterschiedlich großen) Balles, die dynamische Schwerkraft, die Menge an Levels und die wundervollsten grafischen Effekte, wenn es z.B. explosive Steine in alle Richtungen zerfetzt. Mir fallen nicht genug Superlative ein, um dieses Spiel ausreichend zu würdigen. Über den als Megaghost bezeichneten Antagonisten kann ich leider nicht das Geringste erzählen, denn Bolo war mir leider zu schwer. Wenn man 50 Levels am Stück erfolgreich durchgespielt hat, soll er wohl erscheinen. Einmal hatte ich knapp 20 Levels geschafft. Die klobige Atarimaus, deren Kugel ständig im Gehäuse hängenblieb, hat mir die Schwerstarbeit im Kampf gegen die Schwerkraft kaum abnehmen können.

Als Meinolf Schneider noch für das Label der Application Systems Heidelberg entwickelte, nannte er sich Dr. Mausklick, so wie das auch den Rückseiten der Plastikhüllen zu entnehmen ist. Ich bin begeistert wie gut erhalten die beiden Schachteln sind, sogar der Sticker wurde noch nicht verwendet, und das DIN A2-Poster mit den Levelbildern wurde offenbar auch noch nicht aufgehängt. In der zweiten Schachtel steckt die „Bolo Werkstatt“, also der Leveleditor, einschließlich gedruckter Kurzanleitung. Die Hülle ist dabei exakt dieselbe wie beim Spiel, mit einem zusätzlichen aufgeklebten „Werkstatt“-Schriftzug. Und als wäre das nicht schon toll genug, sind selbst die Preisetiketten noch auf der Packung, die beide Produkte mit 69,00 DM auszeichnen. Dieser fantastische Neuzugang geht direkt in meine virtuelle Vitrine.

Ich nehme mir mal die Freiheit, hier ein kleines Gameplay-Video von YouTube einzufügen, um das Spiel zu demonstrieren. Man sollte allerdings einschränkend dazu erwähnen, dass der Spieler hier nicht allzu talentiert ist. Außerdem zeigt das Video nur äußerst wenig von der Vielfalt, die die Levels bieten können.

[youtube]http://youtu.be/NTG3CAD-s_4[/youtube]

Für das grenzenlose Glück fehlt mir jetzt eigentlich nur noch ein originalverpacktes Esprit für den Atari ST, also dem Vorgänger von OXYD. Falls jemand zufällig darüber stolpert, oder sein eigenes Exemplar für einen guten Preis verkaufen möchte – bitte nicht zögern, E-Mail an mich. Im Idealfall ist noch alles so in der Verpackung wie es verkauft wurde, aber ich nehme auch weniger guterhaltene Spiele. Ich bin mal gespannt, was sich in den kommenden Monaten und Jahren noch so an Gelegenheiten ergeben wird. Vielleicht komme ich ja wirklich noch dazu, einen kleinen Dongleware-Schrein aufzustellen.

enigmalogoVoller Freude präsentiere ich mal wieder einen kleinen News-Beitrag auf meinem Blog, der sich meiner Headergrafik als würdig erweist und sie ausnahmsweise nicht gar so deplatziert wirken lässt: Fast sechs Jahre hat es gedauert, nun können OXYD-Fans endlich aufatmen, denn Enigma ist wieder da, in der neuen Version 1.20.

Enigma ist ein hervorragendes und einzigartiges Esprit-, OXYD-, OXYD2-, Oxyd Magnum-, Sokoban-, usw. -Kombi-Remake, das so viele großartige Kistenverschiebe-, Puzzle-, Denk- und Geschicklichkeitsspiele vereint, wie man sich kaum vorstellen kann. Alleine als Atarianer wird man unendlich viel Freude daran haben, weil es sich spielt wie die alten Dongleware-Meisterwerke. Der Suchtfaktor ist auch heute noch enorm. Wenn ich durch meinen exzessiven OXYD-Konsum in Kindheitstagen nicht längst immunisiert wäre, würde ich dem Charme von Enigma wahrscheinlich Tag und Nacht erliegen. In der Hinsicht verhält sich das bei mir vielleicht ein bisschen wie mit Obelix und dem Zaubertrank.

enigma120Da sich die neueste Version nun wirklich sehr lange Zeit gelassen hat, gibt es tatsächlich eine ganze Stange an Änderungen, darunter beinahe 1500 neue Levels für alle möglichen Spielarten. Auch einige bekannte Dongleware-Levels sind neu hinzugekommen, wie man schon am Screenshot erkennen kann. Darüber habe ich mich persönlich am meisten gefreut. Außerdem gibt es einige neue Musikstücke, neuerdings sogar im laufenden Spiel wenn man das möchte. Viele neue Steine und Spielobjekte wurden implementiert, es gibt viele grafische Verbesserungen, und eine komplett neue API, wobei letzteres wohl nur den Entwicklern und Leveldesignern auffallen wird.

Die neuen Download-Pakete kann man ab sofort auf der Enigma-Webseite herunterladen. Mac-Benutzer müssen sich leider noch ein wenig gedulden, für den Anfang gibt es nur Windows-Binaries und den Quelltext zum selbst kompilieren. An dieser Stelle nochmals der Hinweis darauf, dass Enigma auf Grund der Reverse-Engineering-Leistung hinter der sogenannten „Oxydlib“ die alten Dateiformate der Ur-OXYDs laden und interpretieren kann, genauer gesagt die Original-Sounds und die Landschaftsdaten, so dass sich schnell ein noch wesentlich authentischeres Spielerlebnis für Fans einstellt. Die importierten Landschaften der Originale funktionieren aber nur eingeschränkt, da auch nach all den Jahren noch längst nicht alle Spielelemente im Remake umgesetzt sind.