Schlagwort-Archive: Remake

Linux-Support

Palim palim! Der unregelmäßige SPACOLA-Remake Fortschrittsbericht ist da! Och, keine Sorge, viel Fortschritt gibts nicht. Aber es gibt immerhin was zu sehen. In den vergangenen Monaten habe ich weitestgehend unter Linux Mint weiterentwickelt, und leider ging auch ein nicht unwesentlicher Teil der Zeit dafür drauf, Probleme zu beheben, die das Spiel nur unter Linux hatte. Zum Beispiel habe ich es lange Zeit nicht hinbekommen, dass das GUI-Fenster sowohl unter Windows als auch unter Linux immer exakt die gewünschte Größe hat. Wenn es unter Linux gepasst hat, war es unter Windows falsch. Wenn ich es dann für Windows korrigiert habe, war die Linux-Version plötzlich wieder schief. Wenn das programmatische Resizing des Fensters endlich überall funktionierte, ging dafür die Menüleiste nirgends mehr. Habe ich eine Sache repariert, geht eine andere Funktion kaputt. Es war wie bei einem Teppich, bei dem man eine Unebenheit mit dem Fuß ausbessern will, die sich dann nur immer wieder woanders auftut. Da soll mir nochmal einer sagen, Java sei wirklich plattformunabhängig. Swing ist es jedenfalls schonmal nicht. Ich habe viele graue Haare bekommen bis es endlich perfekt war. Die aktuelle Version funktioniert somit einwandfrei unter Windows und Linux.

Neue Artworks

In der Zwischenzeit habe ich viel mit neuen Artworks experimentiert und dabei kräftig mit GIMP gebastelt. Lange Zeit habe ich darüber gegrübelt, wie ich die Titelgrafiken designen soll, so dass sie sehr nahe am Original bleiben, und trotzdem viel Spielraum für eine Neuinterpretation im Sinne des Remakes erlauben. Mittlerweile habe ich ein mehr oder weniger einheitliches Design für den Fensterhintergrund, für den About-Dialog, für die Webseite und für den Splash-Screen beim Laden entworfen. Ja, das Remake hat jetzt einen eigenen Ladebildschirm, weil das Starten auf manchen Systemen doch schon mal die eine oder andere Sekunde länger dauern kann. Die Grafiken sind natürlich bei weitem nicht perfekt, aber ich glaube, man kann das erstmal so stehen lassen. Der Wiedererkennungswert ist schonmal ganz ordentlich.

Spiel laden und speichern

Die Funktionen zum Laden und Speichern der Spielstände sind jetzt endlich fertig. Genau wie im Original kann der Kaffee-Button genutzt werden, um den aktuellen Spielstand zu speichern. Zusätzlich gibt es außerdem die Möglichkeit, beliebig viele weitere Spielstände zu speichern und auch via Dateiauswahl wieder zu laden. Im Moment bezieht sich das Speichern jedoch nur auf den Zustand zwischen den Levels, nicht direkt IM Spiel. Ob eine solche Funktion noch nachgereicht wird, und ob das jemandem viel hilft, muss ich noch klären. Jedenfalls ist es klasse, dass man nun tatsächlich den Spielfortschritt in eine Datei persistieren und so jederzeit fortsetzen kann. Damit wäre ein wichtiger Punkt von meiner Todo-Liste gestrichen.

GEM-Schriftarten und Highscore-Liste

Die Remake-GUI verwendet jetzt konsequent drei verschiedene Original-TOS/GEM-Systemschriftarten, um so zusätzlichen Wiedererkennungswert zu generieren. Die Atari ST-Schriftarten erkennen Fans sofort. Nicht dass diese Schriftarten besonders hübsch oder gut lesbar wären, aber sie geben einem echten Nostalgiker doch schnell ein warmes Gefühl. Die Highscore-Liste wurde von mir deutlich erweitert. Zusätzlich wird nun der Highscore-Zeitstempel gespeichert, außerdem die Komplettierungsrate des Spiels in Prozent, damit man die Angaben besser vergleichen kann. Außerdem werden jetzt beliebig viele Einträge gespeichert. Im gerenderten Spiel selbst tauchen dann allerdings nur die ersten zehn Einträge auf, und dann auch nur deren Namen und Punktestand – die übrigen Werte werden einfach versteckt, um so nah beim Original zu bleiben wie möglich.

Post-Processing-Filter dank neuer Rendering-Methode

Besonders wenn man das Spiel auf Pixelverdoppelung stellt, also in der Auflösung 1280×800 spielen will, bremsen etwaige Post-Processing-Filter das Spiel leider so stark aus, dass es kaum noch Spaß machen kann. Zwar gibt es im Moment mit der Invertieren-Funktion nur einen einzigen Filter, aber ich wollte dort in Zukunft noch mehr Filter-Optionen anbieten, um den Look des Spiels den eigenen Bedürfnissen anzupassen. Nun, meine Idee war es, das Post-Processing immer nur auf die gerenderte Spielgrafik (in niedriger Auflösung) anzuwenden, und erst dann das Ergebnis hochzuskalieren. Würde ich erst hochskalieren und dann die Filter auf die hohe Auflösung anwenden, wäre das logischerweise viel langsamer. Leider machte dieser neue Ansatz es nötig, einige Teile des Renderings umzuschreiben, um die neue Reihenfolge der Arbeitsschritte zu ermöglichen. Zusätzlich implementierte ich eine Filterklasse, die es erlaubt, unbegrenzt viele verschiedene Filter ins Bild „einzuhängen“, um die Grafik zur Laufzeit jederzeit zu ändern. Der neue Code funktioniert wirklich erstaunlich schnell und schön flexibel. Die Änderungen haben sich gelohnt.

Neuer Anvisieren-Algorithmus für Geschütze

Man mag es kaum glauben, aber ich habe wirklich übermäßig viel Zeit in den Algorithmus für das Anvisieren der Geschütze investiert. Ich dachte ursprünglich, es genau richtig hinbekommen zu haben. Dann fiel mir jedoch beim Nachspielen des Originals auf, dass die Geschütze beim ST-Klassiker nie daneben feuern, egal wie schnell und egal wohin der Spieler sich bewegt. Das bedeutete, dass die Geschütze nicht nur den Winkel zum Spieler und dessen Bewegungsgeschwindigkeit in die Berechnung des Vektors einbeziehen, sondern bei bekannter eigener Geschossgeschwindigkeit auch den Abschusswinkel exakt so berechnen, dass die Geschosse den Spieler an einem unbekannten Punkt zielsicher treffen. Am Ende habe ich mir das Problem bestimmt ein dutzend Mal auf einem kartesischen Koordinatensystem skizziert und versucht herzuleiten, wie der Winkel berechnet wird. Ich wusste wie lang der Vektor sein dürfte, ich wusste nur nicht, wo er den anderen Vektor schneiden würde. Am Ende fand ich eine Lösung, indem ich den Spielervektor von der Position des Geschützes aus nahm, einen Kreis mit Radius der erlaubten verbleibenden Vektorlänge um diese neue Koordinate berechnete um die Schnittpunkte mit dem anderen Vektor zu finden. Der Vektor vom Geschütz zu diesen Schnittpunkten muss dann der Abschussvektor sein. Das ist dann zwar eine vergleichsweise teure Berechnung, aber sie funktioniert perfekt.

Levelgenerator-Verbesserungen

Den Levelgenerator habe ich wieder geringfügig verbessert. So funktionieren die Floodfilling-Methoden für Konfigurationen von Stationen, Powerups und schwarzen Löchern jetzt besser und erlauben auch die Übertragung von Parametern, wie aus dem Levelskript vorgegeben. Der Levelgenerator setzt nun korrekt die Deploy-Distanz für Gegner, die Deployment-Rate und die Anzahl gleichzeitig erlaubter Gegner. Außerdem habe ich eine Funktion eingebaut, die ich nur als „Shield-Powerup-Stacking“ bezeichnen kann, die mir im Original sehr merkwürdig vorkam. Ich bin mir immer noch nicht sicher, ob das ein Bug ist, oder ob es beabsichtigt war. Jedenfalls kann der Spieler seine Schutzschild-Option zeitlich deutlich verlängern, wenn er mit aktiviertem Schutzschild noch ein weiteres Schild-Powerup einsammelt. Ich müsste wohl auch noch prüfen, ob dieses „Feature“ in jeder Spacola-Version auftritt, oder nur in einer bestimmten. Jedenfalls ist das nun ebenfalls im Remake perfekt nachgebildet.

So, das waren wieder einige kleine Einblicke in die Entwicklung der vergangenen Monate. Ich bleibe am Ball und arbeite mich langsam voran. Der Quellcode umfasst inzwischen über 40.000 Zeilen und wächst stetig weiter.

Okay, ich habe wieder einmal sämtliche mir selbst gesetzten Deadlines verschlafen. Das Remake wurde leider doch nicht zum 25-jährigen Jubiläum fertig, und wird es vermutlich auch noch eine ganze Weile nicht. Scheiß drauf. Ich bin gleichzeitig Opfer meiner eigenen Faulheit und Penibilität geworden. Das Problem mit Arbeit nach der Arbeit ist, dass sie oftmals keinen Spaß macht, egal wie sehr einem das Zeug am Herzen liegt. Aber hey, ich habe Urlaub – Zeit für mehr Arbeit. Und das Wichtigste ist doch: Ich bin wieder dabei! Vor wenigen Tagen habe ich mit der Arbeit an der Version 0.60 begonnen.

Ich habe eine neue Spritebibliothek geschrieben, die sich um das Laden, Konvertieren und Verwalten der vielen kleinen Grafikdateien kümmert. Und diese Spritebibliothek kennt neuerdings auch jeweils die Monochrom- und Farbversion jeder einzelnen Grafik. Bisher waren dies verschiedene Klassen, die immer jeweils getrennt voneinander angepasst werden mussten, und auch der Wechsel von Monochrom nach Farbe hätte bisher viele Codeanpassungen erfordert. Nun wird es möglich, direkt im Client mit einem simplen Mausklick die Darstellung zu wechseln. SPACOLA Eclipse kann endlich richtig mit Farbe umgehen. Da aber noch weit über 90% der Sprites nur monochrom vorliegen, werde ich da irgendwann noch wahnsinnig viel Zeit investieren dürfen. Bisher gibt es nur vereinzelte Sprites in Farbe zu sehen.

Die Farbsprites haben aber noch keine Priorität. Zunächst muss der Classic-Modus fertiggestellt werden, und das ist nach wie vor nicht so einfach wie es klingt. Die Gegner-KI macht mir Sorgen, denn egal wie ich es anpacke, es verhält sich alles nie so ganz wie es sollte, oft scheitert es schon am Ansatz. Dafür habe ich erst zuletzt ein komplettes Explosions-Spriteset hinzugefügt, das mir bisher nicht aufgefallen ist. Es scheint also doch nicht so klar zu sein, dass ich inzwischen wirklich alles aus dem Spiel extrahiert habe. Und ich habe anhand eines Memory Dumps die Zuweisungen der Sounddateien korrigiert, also welcher Sound im Originalspiel welchen Dateinamen hatte. Bislang musste ich dazu raten, und scheinbar lag ich oft falsch. Immerhin konnte ich hier nun einige Fehler korrigieren und so manche Zuweisungen bestätigen, auch wenn es bei anderen Einträgen weiterhin beim Raten bleibt, da der Memory Dump nur eingeschränkt Aufschluss gibt, auf Grund der Art wie die Sounddateien im Original nachgeladen werden können.

Ich hoffe ich werde noch diesen Dezember einige vorzeigbare Fortschritte vermelden können. Kleine Schritte, Tag für Tag. Macht es die Sache besser oder schlimmer, wenn ich jetzt verkünde, dass das Remake in jedem Fall zum 30. Jubiläum im Jahr 2021 fertig sein wird? Hey, wieso werft ihr denn jetzt mit überreifen Tomaten und faulen Eiern nach mir? Okay, okay, ich fang ja schon an…

Ich habe nicht aufgehört zu bloggen, ich mache nur nicht so richtig Pause. Fünf Wochen ist der letzte Artikel her, und die Spinnweben auf meiner Webseite sind inzwischen nicht mehr zu verbergen. Aber das macht nichts, ich bin gar nicht weg, ich warte nur lieber auf bessere Zeiten, in denen es mehr Spaß macht, über Dinge zu schreiben. Worüber soll man denn auch schreiben in diesem Jahr? In einem Jahr, in dem die Briten sich mehrheitlich dafür entschieden haben, aus der EU auszutreten. In einem Jahr, in dem 60 Millionen US-Amerikaner es offensichtlich für eine grandiose Idee hielten, Donald Trump zum Präsidenten zu machen. Und – ich sehe es schon kommen – am Ende wird Lewis Hamilton noch zum vierten Mal Formel-1-Weltmeister. Das Jahr bringt uns also wahrlich schon genug Elend, da muss ich nicht noch meinen überflüssigen Beitrag dazu leisten.

Noch Anfang Juli ging mein letzter Dauerhusten in die mittlerweile siebte Woche, ohne auch nur das geringste Zeichen von Besserung zu zeigen. Ohne jetzt noch religiös zu werden, bin ich der griechischen Göttin Antibiotika dennoch äußerst dankbar dafür, dass sie mich aus dem endlosen Siechtum befreit hat. Ärzte scheinen also doch nicht alle gänzlich unfähig zu sein. Die siebenwöchige Zeit des körperlichen Verfalls hat sichtbare Spuren hinterlassen, die mich veranlasst haben, seit meiner langersehnten Genesung wieder mehr Sport zu treiben. Und das will etwas heißen, denn was Sport angeht, war ich schon immer ein ziemlich fauler Hund. Der einzige Sport, der mir je so etwas ähnliches wie Spaß gemacht hat, war der Kraftsport. Wie es überhaupt dazu kam, ist mir bis heute ein großes Rätsel. So verbringe ich nun meine spärliche Zeit nach Feierabend mit meiner täglichen Fitness-Routine, danach 45 Minuten Auspowern auf dem Ergometer, und dann kann ich auch schon wieder zufrieden ins Bett fallen, voller Vorfreude auf den nächsten langen Tag im Büro.

Es ist zwar wirklich nicht so, dass mir der Erfolg dabei Recht geben würde, aber man wird ja auch nicht jünger, und mangelnder Erfolg ist schließlich auch das ganze Motto meiner Webseite. Insofern ziehe ich mein Programm durch solange ich es noch kann. Die nächste Erkältung wartet schon hinter der Ecke, und dann wird es mich sehr ärgern, dass ich wieder nichts tun kann, und der ganze Fortschritt innerhalb von Tagen verpufft.

Wie sieht es mit dem Spacola-Remake aus? Kurzgesagt: Mäßig, wie schon seit Jahren. Ich gestehe, dass ich den Quelltext jetzt seit Wochen nicht mehr angerührt habe. Das Projekt ist absolut nicht tot, genauso wenig wie meine Webseite. Ich habe zuletzt einige tiefgreifende Änderungen an der Struktur des Quellcodes durchgeführt, und dann ist mir aufgefallen, dass ich da einen groben Denkfehler hatte, dass das so gar nicht funktionieren kann. Schließlich habe ich aus der Frustration über meine eigene Doofheit das Projekt erst einmal beiseite gelegt, bis mir die Inspiration wieder zufliegt. Das kann jeden Tag passieren, soviel ist sicher. Erst kürzlich war ich beinahe wieder soweit, doch quasi in letzter Sekunde fiel mir ein Film ein, den ich unbedingt noch sehen wollte. Schade.

Also ohne Quatsch, dieses Jahr nehme ich die Arbeit daran auf jeden Fall wieder auf. Ich würde mich ja selbst unendlich hassen, wenn mir so kurz vor dem Ziel die Puste ausginge, dafür habe ich viel zu viel Zeit schon investiert. Und ich werde wieder mehr Beiträge schreiben. Allerallerspätestens zu Weihnachten, wenn ich wieder mehr Freizeit habe, und nicht sofort weiß wohin damit.

am2r_1

Urlaubszeit: Zeit, um vielleicht doch mal wieder ein völlig belangloses Spiel durchzuspielen. Vor einigen Monaten wünschte ich mir in meinem Bericht zu Super Metroid noch, jemand möge sich doch erbarmen, ein ähnlich grandioses Spiel auch für andere Plattformen abzuliefern. Es stellte sich heraus, dass tatsächlich jemand drauf und dran war: AM2R – Return of Samus bzw. Another Metroid 2 Remake ist ein seit nahezu 10 Jahren in Entwicklung befindliches Remake des Gameboy-Klassikers „Metroid II: Return of Samus“. Das Spiel das bei uns 1992 erschien – sagt man – ist eines der besten für den Gameboy überhaupt, und ein Vorbild unter anderem in Sachen Storytelling und Atmosphäre. Doch leider ist das Spiel technisch mit seiner extrem niedrig aufgelösten Grünstufen-Grafik und den quäkenden Gameboy-Sounds sehr schlecht gealtert, und Nintendo hat bisher kein Interesse gezeigt, ein Remake in der Art des 2004 erschienenen Metroid: Zero Mission zu veröffentlichen. Doch sie haben ohne es zu wissen einen findigen argentinischen Programmierer mit just jenem NES-Metroid-Remake dazu ermuntert, auch das alte Gameboy-Spiel im modernen 2D-Metroid-Stil aufleben zu lassen.

Beinahe ein Jahrzehnt schraubte dieser Mensch mit Hilfe des GameMakers an seinem Remake, komponierte Neuinterpretationen alter Metroid-Musikstücke, übernahm Grafiken und Spielmechaniken aus den neueren Spielen, entwarf die Levelkarten, tüftelte an der Gegner-KI und vieles mehr. Das kostenlose Remake sollte ein Tribut an Nintendo und an die fantastischen 2D-Metroid-Spiele werden. Rechtzeitig zum 30-jährigen Jubiläum von Metroid am 6. August wurde das fertige AM2R schließlich in der Version 1.0 veröffentlicht. Viele Onlinemedien berichteten darüber, das Remake wurde größtenteils mit Begeisterung und mit Erstaunen über diese Leistung empfangen. Offenbar war das etwas zuviel Aufmerksamkeit, denn nur einen Tag später machten die Anwälte von Nintendo of America dem Treiben ein Ende. Sie forderten, das Spiel nicht länger zum Download anzubieten, da es Nintendos Urheberrechte verletze. Zur Erinnerung: Nintendo ist der Verein, der es seit 2004 nicht gebacken bekommt, einen brauchbaren Metroid-Nachfolger zu produzieren. Nintendo ist der Verein, der das 30-jährige Jubiläum von Metroid selbst komplett verpennt hat. Das verspätete Geschenk zum Jubiläum an die Fans ist jetzt also die Vernichtung eines der großartigsten Remake-Projekte.

am2r_2

Die Community ist verständlicherweise ziemlich angepisst, der Ärger über Nintendos erbarmungslose Paragrafenreiter-Politik ist groß. Die Fans WOLLEN ein neues 2D-Metroid, doch Nintendo ist weder bereit es ihnen zu geben, noch sind sie bereit zu akzeptieren, wenn andere den Job gratis übernehmen. Nun, der Entwickler selbst macht das Beste aus der Situation: Er habe möglicherweise den richtigen Stein ins Rollen gebracht. Da das Spiel ohnehin schon im Internet ist, kann Nintendo es jetzt auch nicht mehr effektiv entfernen lassen. Der Programmierer werde das Spiel außerdem „privat“ weiterhin mit Updates versorgen: Inzwischen gibt es auch schon die Version 1.1. Zu Deutsch: Die Fans scheißen auf das was die Japaner ihnen vorschreiben wollen.

Natürlich musste ich mir dieses Spiel einmal gründlich ansehen. Schon da es das erste komplette Metroid für den PC ist. AM2R macht im direkten Vergleich mit Metroid Fusion und Metroid: Zero Mission einen ähnlich professionellen Eindruck. Die Musik wirkt sehr stimmig, und die schön gepixelte 16-Bit-Grafik wärmt das Herz jedes Konsolennostalgikers. Ich bin äußerst beeindruckt, dass AM2R nativ in 320×240 Pixeln läuft und nur hochskaliert wird. Dazu gehört irgendwo Mut und ein Sinn für Authentizität. Wer aber darüber hinaus eine originalgetreue Nachbildung von Metroid II erwartet, wird leider enttäuscht. Das Remake-Projekt orientiert sich eher frei an der Vorlage. Manche Gebiete kommen einem schon sehr bekannt vor, bei anderen klingelt dafür überhaupt nichts. Die Handlung und die meisten Bossgegner sind gleich geblieben, wurden lediglich modernisiert. Samus Aran fliegt auf den Heimatplaneten SR388 der Metroids, um die Viecher dort endgültig zu beseitigen. Dabei muss sie in jedem neu geöffneten Areal eine vorgegebene Anzahl an Metroids besiegen, bis durch Erdbeben neue Schächte freigelegt werden. So gerät Samus immer tiefer in den Untergrund des Planeten, wo immer gruseligere Metroid-Mutationen warten, bis sie schließlich der Metroid-Queen gegenübersteht.

am2r_3

Der finale Kampf gegen die Metroid-Queen war quälend lang, mühsam und hat mich etliche Nerven gekostet, aber beim sechsten oder siebten Anlauf habe ich es doch noch geschafft. Dass es in AM2R am Ende nicht noch eine haarsträubende Fluchtsequenz gibt (die wurde schon zur Mitte des Spiels abgefrühstückt), kam mir gerade recht, so konnte ich meinen Triumph auf mich wirken und meinen wahnsinnig hohen Puls wieder sinken lassen. Die obligatorische Statistik zeigte mir eine Durchspielzeit von 8:23 Stunden, und offenbar fand ich stolze 84% der Gegenstände. Einige zusätzliche Verstecke waren mir zwar bekannt, aber die Speed-Booster-Moves, die man dafür hätte ausführen müssen, waren mir dann doch zu abgedreht. Ein komplettes Bonus-Gebiet habe ich leider übersehen, aber fairerweise sollte man anmerken, dass AM2R es direkt darauf anlegt, dass es nicht gefunden wird.

Im Verlauf des Spiels sind mir genau zwei große Bugs aufgefallen, die allerdings beide bereits von anderen fleißigen Spielern gemeldet wurden. Einer dieser Bugs sorgt dafür, dass Baby-Metroids plötzlich in der Wand verschwinden und sich daher die Türen nicht mehr öffnen lassen, so dass wieder zum letzten Spielstand zurückgekehrt werden muss. Das Remake bringt einige Grafikaspekte moderner 2D-Indie-Spiele ein, darunter Lichteffekte, echtes Alphablending, und natürlich Partikeleffekte, aber das ganze fügt sich gut ins Spiel ein. Samus bewegt sich im Remake wesentlich schneller und agiler als im Original, was hauptsächlich den Modernisierungen aus den neueren Metroid-Spielen geschuldet ist, so wurde auch hier dem bekannten Pacing aus z.B. Metroid Fusion der Vorzug gegenüber dem gemächlichen Ur-Metroid gegeben. Das ganze Paket wird durch ein Logbuch abgerundet, eine Art Metroid-Lexikon, das während des Spiels immer abrufbar ist, und auch Schwachstellen einzelner Bossgegner offenbart.

am2r_4

Ich bin durchweg beeindruckt von AM2R, sowohl von der Leistung des alleinigen Entwicklers, als auch vom Ergebnis selbst, das zwar keine perfekte Metroid II-Reinkarnation ist, und sicherlich auch kein perfektes Metroid-Spiel, aber dafür eine spannende Erfahrung und eine gute Gelegenheit, noch einmal in das echte Metroid-Spielgefühl einzutauchen. Jedem Metroid-Fan kann ich dieses wirklich liebevolle Remake nur empfehlen. Zuviel Arbeit und Herzblut ist in dieses Projekt eingeflossen um es jetzt einfach in der Versenkung verschwinden zu lassen. Mit Hilfe des Dateinamens „AM2R_10.zip“ und ein wenig Suchmaschinenmagie solltet ihr problemlos in der Lage sein, das Spiel zu finden. Wobei die neue Version 1.1 sogar direkt im Forum des Projekts als Download angeboten wird. Ihr werdet die spaßige Metroid-Hatz nicht bereuen. Auf dem PC. Ohne Nintendos Segen.

Berichte über das Ende von SuccessDenied sind stark übertrieben. Ich hatte in letzter Zeit weder besonders viele Themen über die ich schreiben wollen würde, noch war ich überhaupt in der Stimmung, etwas zu schreiben. Beruflich bin ich zur Zeit unabkömmlich. Hinzu kommt, dass ich seit meiner letzten Erkältung vor über fünf Wochen zwar längst nicht mehr krank bin, aber leider auch nicht richtig gesund. Wieder einmal schleppe ich einen wirklich besonders hartnäckigen, unproduktiven Husten mit mir herum. Mehrmals täglich inhaliere ich daher mit meinem Kompressor-Druckluftinhalator Kochsalzlösung mit Mucosolvan, schmiere mich mit Mentholsalbe ein, trinke Hustenlöser, nehme Tropfen ein – die ganze übliche Palette eben, ohne dass irgendetwas davon irgendwie helfen würde. Mit meinen guten Genen bin ich schon sehr gesegnet.

Aber: Wenn die Gesundheit eines Tages zurückkehrt, bin ich sicher, dass ich auch meine gute Laune zurückerhalten werde. In der Zwischenzeit ein kleines Update zum SPACOLA Eclipse Remake-Projekt. Das Projekt steht ganz und gar nicht still, sondern wird wöchentlich mit Änderungen und Neuerungen versehen. Die aktuelle WIP-Version 0.57 vom Juli bringt wieder viele kleine neue Funktionen mit, und sogar eine größere. Aber auch ein paar Änderungen der vorhergehenden Versionen dürfen hier nicht unerwähnt bleiben. Der nüchterne Screenshot soll einen Einblick in das Debug-Menü geben, das ich um einige Einträge erweitert habe. Beim Testen sind die vielen Kommandos äußerst hilfreich, sonst spielt man sich dumm und dämlich, wenn man zum 50. Mal dieselbe Stelle im Code geändert hat.

spacolaeclipse57

Remake-Technik

Die 2D-Grafikengine zeigt jetzt bei Bedarf ein paar Dinge an, die das Original nicht hatte: Sektorgrenzen, Hüllkreise, Objekttypen, Spielernamen (für den Multiplayer-Modus), außerdem natürlich die Partikeleffekte, Interpolation und Pixelvergrößerung. Mal davon abgesehen, erlaubt es das Remake, einige Limitierungen des Originals aufzuheben, die damals vermutlich aus Performancegründen nötig waren. Beispielsweise Objekte, die sich zu weit vom Spieler entfernt hatten, wurden im Original aus dem Spiel genommen. Heute könnte man diesen Löschmechanismus herausnehmen und dadurch eine persistentere Spielwelt bekommen. Der Dongleware-Fadein/Fadeout-Effekt, den ich vor ungefähr 4 Jahren mühsam implementiert hatte, war leider fehlerhaft. Inzwischen ist er eine absolut pixelgetreue Nachbildung.

Maforianer-Gegner fertig

Es hat lange gedauert und mir sind dabei viele graue Haare gewachsen: Der Maforianer, einer der ersten drei Gegner, ist mehr oder weniger komplett fertig. Das Bewegungsmuster dieses Gegners ist vermutlich eines der einfachsten im Spiel, aber bei weitem nicht so leicht nachzuimplementieren, wie man meinen möchte. Inzwischen bin ich an einem Punkt angelangt, wo mein Ansatz der Vorlage nahe genug kommt, so dass man es vorerst so lassen könnte. Dadurch bin ich auch auf die Spur eines neuen mathematischen Ansatzes für die Schiffsnavigation der Gegner gekommen – und habe zufällig auch die Lösung für das Problem mit dem Magnetismuseffekt gefunden. In der Folge bewegen sich die Gegner jetzt realistischer, und die Anziehung von Containern, Waren und Piraten sieht viel besser aus als vorher. Der Maforianer hetzt jetzt dem Spieler permanent hinterher, jagt ihm nach Möglichkeit die Lieferwaren ab und flieht damit zu seiner Piratenstation. Es ist noch nicht alles hundertprozentig, aber es ist besser als nichts. Fehlen für den ersten Level also nur noch zwei weitere Gegner, mal sehen wann mir das gelingt.

Abspann

Im Remake kann man sich – genau wie im Original – das „Zertifikat“, also die Siegerurkunde ausdrucken lassen, sobald man den letzten Level gewonnen hat. Zusätzlich gibt es im Remake nun einen echten Abspann (die Closing Credits), in dem viele beteiligte Personen genannt und Danksagungen zum Ausdruck gebracht werden. Diese kleine Erweiterung wollte ich in jedem Fall im Remake drin haben, denn sie macht ja schließlich auch nichts kaputt. Mir fällt tatsächlich nun außerhalb des laufenden Spiels nichts mehr ein, das ich noch nicht fertig habe. Eigentlich eine gute Nachricht.

Timings

Timings sind mir seit einigen Monaten ein großes Ärgernis gewesen. Nachdem ich am Anfang meistens gesagt habe „Diese oder jene Animation läuft ungefähr 4 Sekunden“ und das dann auch so eingebaut habe, ging ich nun endlich dazu über, die exakte Anzahl Frames zu zählen. Wenn dann beispielsweise 270 Frames herauskommt, muss ich das wiederum umrechnen auf die Zielframerate von aktuell 50 fps. Das wären dann etwa 187 Frames, damit die Animation genauso lange läuft. Ähnlich verhält es sich mit den Konstanten für Gegnerverhalten: Wenn ein bestimmter Gegner 120 Frames braucht, um sich um 180 Grad zu drehen, dann braucht derselbe Gegner im Remake dafür nur noch 83 Frames. Und da sich die Framerate beliebig einstellen lassen wird, muss diese Berechnung wiederum variabel sein. Zusammengefasst habe ich viel Zeit damit verbracht, die Dinge, die eigentlich schon fertig waren, nun auch bezüglich der Original-Timings anzupassen.

Gegner-Deployment und -Redeployment

Das Deployment und Redeployment von Gegnern ist nun wesentlich näher am Original. Alle paar hundert Frames wird ein Gegner in der Station generiert. Dann beginnt dieser sich zu drehen, und zum Spieler auszurichten. Wenn die Ausrichtung stimmt, gibt er Schub und beginnt die Jagd. Dafür gibt es eine Gegner-Warteschlange, die sich aus den Anweisungen der Gegnerkonfigurationen im Levelskript zusammensetzt, und es gibt die Redeployment-Warteschlange für Gegner, die gestohlene Ware abgeliefert haben. Leider verstehe ich den Zusammenhang mit den Levelskripten noch nicht so ganz, daher ist die Unschärfe hier sehr groß. Ich kann aktuell nur nachbilden was ich sehe, und viel sehe ich nicht.

Es sind wie gesagt viele Kleinigkeiten, die nach und nach besser werden. Das Ziel für den ersten komplett spielbaren Level ist schon sichtbar, jetzt heißt es dranbleiben und das Tempo steigern. Die zwei verbliebenen Gegnertypen (für Level 1) werde ich wohl in Kürze angehen müssen, und mich zur Not auch damit anfreunden, wenn das Ergebnis dann nicht perfekt wird.