Schlagwort-Archive: Artwork

Wieder einmal in drei Wochen nicht einen einzigen Beitrag geschrieben. Aber heute schaffe ich es. Ich habe ein freies Wochenende, ich habe Motivationsmusik laufen, ich habe Kaffee gemacht, ich muss mich nur noch konzentrieren! Tschakka! Nein, SuccessDenied wird nicht eingestampft, aber die Zahl der regelmäßigen Beiträge hat sich leider wieder einmal reduziert. Beruflich bin ich zur Zeit derart eingespannt, dass ich abends nur noch froh bin, wenn ich nichts mehr machen muss. Manchmal wundere ich mich selbst, wie ich überhaupt noch zu etwas komme. Nunja, in acht oder neun Wochen ist ja schon wieder Urlaub. Bis dahin versuche ich möglichst viel auf Autopilot unterwegs zu sein.

Trotz all der Widrigkeiten arbeite ich weiterhin im kleinen und im ganz kleinen Rahmen an meinem SPACOLA-Remake. In genau einem Jahr soll die Monochromversion fertiggestellt sein. Das ist ein sportliches Ziel, wenn man sich vor Augen führt, dass ich seit fünf Jahren an dem Spiel bastle, und mir täglich mehr Dinge auffallen, die ich leider nicht richtig hinbekommen oder komplett vergessen habe. Die To-Do-Liste wird erstaunlicherweise niemals kürzer, nur noch länger und länger. Die aktuelle Version 0.49 vom Oktober 2015 hat die 30000 Zeilen übersprungen. Hier eine kleine, unvollständige Liste der Dinge, die kürzlich hinzugekommen sind:

Kollisionsauflösung

Die Gegnerschiffe im Originalspiel können (bis auf eine einzige Ausnahme) sich im Flug niemals gegenseitig berühren, sie können lediglich mit dem Spieler und den Asteroiden kollidieren, durch andere Entitäten fliegen sie immer hindurch. Auch die Asteroiden selbst fliegen immer durch andere Asteroiden hindurch. Inzwischen habe ich meiner kleinen 2D-Engine einen Algorithmus verpasst, der es erlaubt, unter Spielobjekten wechselseitig auf Kollisionen zu prüfen. Mit steigender Anzahl der Objekte steigt der Rechenaufwand leider enorm, das Spiel wird spürbar langsamer, daher muss gewährleistet sein, dass diese Methode nur auf eine überschaubare Anzahl von Objekten angewandt wird. Hinzu kommt, dass eine Kollisionserkennung bzw. -vermeidung leider nicht ausreicht, wenn die Objekte z.B. von der Schwerkraft permanent in dieselbe Richtung gezogen werden. Schnell ergibt sich so die Situation mehrfacher Überlagerungen, oder von Objekten, die gerade durch Anwendung des Abprallvektors wiederum in ein anderes Spielobjekt hineingeschoben werden.

Es musste eine Methode zur aktiven Kollisionsauflösung gefunden werden, die auch in einer großen Ansammlung von Spielobjekten funktioniert. Einige aufwändigere Algorithmen dazu habe ich mir angesehen, leider waren diese in meinem Fall nicht gut umsetzbar. Im Endeffekt versuchte ich mich mittels Trial and Error selbst an einer Lösung. Im Prinzip werden nun für jeden Frame alle auftretenden Kräfte ausgerechnet und schrittweise auf die Objekte angewandt. Jedes Objekt wird dabei nur so weit bewegt, bis eine Kollision auftreten würde, anschließend wird immer die Richtung korrigiert. Wenn am Ende des Updates doch eine Kollision erkannt wird, die sich trotz aller Vorsicht nicht vermeiden ließ, dann werden auf die „Streithähne“ jeweils Penalty Forces angewandt, also Strafvektoren, die die Objekte mit Schwung auseinanderspringen lassen. Das Ergebnis ist fast vergleichbar mit dem, was etablierte 2D-Physik-Engines leisten können.

spacolaeclipse049

OXYD-Rotoren als Spaßgegner

Um mein kleines 2D-Physik-Experiment zu testen musste ich kurzfristig einen Spaßgegner ins Spiel einbauen, der definitiv miteinander reagiert. Im Dongleware-Klassiker OXYD gab es mit dem Rotor einen solchen Gegner. In ein oder zwei Landschaften gab es die Situation, dass zwei Rotoren gemeinsam die Spielerkugel jagten. Die drehenden Rotoren stießen sich dabei jeweils voneinander ab, wenn sie versuchten, denselben Punkt zu erreichen. Im SPACOLA-Remake werden die drehenden Rotoren nun von den Stationen losgeschickt, und sie werden direkt vom Raumschiff des Spielers angezogen. Die Anzahl gleichzeitig existierender Rotoren habe ich dabei stark erhöht, um zu testen, ob die Abstoßung auch im Pulk einwandfrei funktioniert. Das Ergebnis ist wirklich nett anzusehen und wirkt dank passendem OXYD-„Glas“-Soundeffekt auch sehr authentisch.

Stationsanimationen fertig

Alle zehn Stationsanimationen sind nun komplett fertiggestellt, die bisher bestehenden wurden verbessert. Die Timings habe ich Frame für Frame aus dem Original übernommen, dazu habe ich stundenlang Bildchen im Emulator mitgezählt und jeweils die Anzahl notiert. Dafür kann ich jetzt garantieren, dass das Remake sich in dieser Hinsicht absolut nicht mehr vom Original unterscheidet. Tests mit den jeweiligen Soundeffekten zeigen, dass die Animationen wirklich perfekt passen.

Neues Titel-Artwork und Swing-GUI

Ich habe ein neues Titel-Artwork entworfen, da mir die Abstände zwischen den Buchstaben noch nicht gefallen haben. Wenn ich schon dabei war, wollte ich die Grafik des Schriftzugs diesmal perfekt gestalten, so dass ich daran nie mehr etwas ändern müsste. Der Schriftzug wirkt jetzt plastischer, die Abstände sind optimiert, und sogar der Schattenwurf wurde an die Vorgaben im großen Dongleware-Vorbild OXYD angelehnt. Zusätzlich habe ich den Dongleware-Font invertiert und mit einem schwarzen Rand versehen, damit es ebenfalls näher am Original ist. Die Swing-GUI habe ich mit dem Dongleware-Font und mit einem einheitlichen Hintergrund etwas aufgehübscht. Doch das Ziel ist damit noch lange nicht erreicht. Ein einheitliches Optionsmenü fehlt weiterhin.

spacolaeclipse049_2

Magnetismus-Code verbessert

Den Magnetismus-Code habe ich deutlich verbessern können. Die Lösung des Problems war nicht, den Code physikalisch korrekt zu gestalten, wie ich das zuerst versucht habe, sondern – im Gegenteil – eine eher unlogische Herangehensweise. Objekte, die magnetisch angezogen werden, werden nicht mehr ausschließlich in Richtung des „Magneten“ beschleunigt, sondern vollziehen zusätzlich dessen Bewegung iterativ nach. Dadurch wird eine weichere Anziehungsbewegung ermöglicht, und es wird verhindert, dass Objekte wie Satelliten immer um den Mittelpunkt kreisen. Die exakten Werte versuche ich allerdings weiterhin durch Ausprobieren und Korrigieren herauszufinden.

Monatelang gab es zu meinem Hobbyprojekt SPACOLA Eclipse keine Neuigkeiten. Hauptsächlich deshalb, weil ich lange Zeit nicht mehr daran gearbeitet habe. Nun möchte ich einen winzigen Statusbericht abliefern, der zeigen soll, dass ich im neuen Jahr nicht gänzlich untätig war. Die wichtigste Frage, die es vorab zu beantworten gilt: Gibt es spielrelevante neue Features? Nein, leider nicht. Okay, was habe ich sonst gemacht? Viele neue Artworks entworfen, den kompletten Audiocode modularisiert (einfach austauschbar gemacht), viele Grafiken angepasst, neue Sounds hinzugefügt, ein automatisches Build-Script gebaut, einige spürbare Vereinfachungen unter der Haube, einige hartkodierte Stellen dynamischer gestaltet, solchen Kram eben. Mein Code-Metrics-Plugin zeigt mir, dass ich die 10.000 Zeilen jetzt mehr oder weniger voll habe.

spacolatextedit

Die sichtbarste Änderung wird sein, dass ich zusätzlich zu den bisherigen beiden Schriftarten nun auch einen echten GEM-Font in das Projekt eingefügt habe, den man im Spiel jetzt verwenden kann. Um die neue Funktion zu demonstrieren, habe ich in relativ kurzer Zeit einen kleinen Texteditor gebaut, der den üblichen Editoren auf dem Atari ST nachempfunden ist. Als Bonus gibt der kleine GEM-Texteditor denselben witzigen Click-Sound wie beim guten alten ST von sich, wenn eine Taste gedrückt wird. Und wenn der Click schon dabei ist, dann darf der System Beep-Sound („Bing!“) nicht fehlen, (also CHR$(7), falls sich jemand damit auskennt), wenn man z.B. schon am Textanfang ist, und Backspace drückt. War interessant zu sehen, mit wie wenig Code man grundlegende Textverarbeitungsfunktionen wie Cursorpositionierung, Backspace, Zeilenwechsel etc. hinbekommt, damit es halbwegs gut funktioniert. Aus Spaß an der Freude hab ich den Texteditor dann gleich als Tool ins Spiel eingebaut. Möglicherweise kann man damit später einmal in Echtzeit Levelscripte oder sowas editieren, und das dann sogar auf grafisch authentische Weise.

Für die neuen Artworks habe ich viele neue Schriften generiert, die ich aus dem Spacola Sternenatlas mit hoher DPI eingescannt und in stundenlanger Arbeit pixelgenau rekonstruiert habe. Darauf aufbauend habe ich dann einige neue Designs für mögliche Schriftzüge gebastelt, obwohl da noch viel Platz für Verbesserungen ist. Wo ich dann schonmal dabei war, habe ich gleich das komplette Cover des Sternenatlas mit GIMP digital in hoher Auflösung rekonstruiert. Jede Schrift habe ich möglichst detailgetreu nachgebildet und mich an alle Abstände, Positionen und Größen gehalten. So habe ich jetzt praktisch eine perfekte Vorlage für ein Buch- und Disketten-Cover, sogar bereits mit Rücksicht auf Modifikationen bezüglich des Remakes.

Spacola_Disks1Übrigens fand ich inzwischen meine beiden Spacola-Disketten für den Atari ST in einer Plastiktüte, mit abgegriffenem, vergilbtem Etikett. Eine der Disketten hatte ich leider vor Jahren mit einem Kugelschreiber beschriftet, was mich heute ein wenig ärgert. Zum Glück konnte ich das Label der Diskette nach dem Scannen relativ gut retouchieren, aber der Makel am Original bleibt. Nunja, die vielgenutzten Datenträger waren Mitte der 90er von meinem Diskettenlaufwerk schon nicht mehr 100% lesbar, heute – bald 20 Jahre später – wird darauf sicher nichts mehr zu finden sein.

Daneben tauchte auch mein eigener alter Spacola Sternenatlas in einem verstaubten Karton auf. Den jahrelangen Gebrauch in Kinderhänden sah man dem Buch deutlich an. Ich gab mein Allermöglichstes, den Einband mit etwas angefeuchteten Tüchern von kleinsten Kritzeleien, vom Gilb und sonstigem Schmutz zu reinigen, ohne noch mehr Schaden zu verursachen. Außerdem musste ich dutzende kleinerer und größerer Eselsohren von Hand aus den Seiten entknicken, und das Buch gegenüber der Falz seitdem mit Gewichten beschweren, in der Hoffnung, dass sich die neue Form festigt. Inzwischen sieht es deutlich sauberer, wenn auch längst nicht mehr alpinaweiß aus, aber es ist vorzeigbar geworden. Zur Demonstration eignen sich meine beiden hinzugekauften Atlanten freilich sehr viel besser, denn diese sind in einem absolut makellosen Zustand.

Zum Abschluss bleibt mir nur zu sagen, dass ich wirklich die Hoffnung habe, diese neugewonnene Begeisterung für mein Spieleprojekt über das Jahr aufrechterhalten zu können und dass ich schon bald neue Features vorzeigen kann. Mein Ziel ist es, diesmal am Ball zu bleiben und regelmäßig kleine Neuerungen zu implementieren, ohne dass mal wieder alles monatelang auf Eis liegt. Schließlich würde ich gerne Ende des Jahres eine spielbare Version anbieten können, aber warten wir es mal ab.

Im Moment schreibe ich an einigen Film-Kurzkommentaren über ausgewählte Literaturverfilmungen, die ich mir in letzter Zeit angesehen habe. Diese werde ich in den kommenden Wochen so nach und nach veröffentlichen. Gut Ding will bei mir offenbar etwas mehr Weile haben, daher gibt es zur Zeit wenig Neuigkeiten.

Dafür hatte ich heute wieder einige wenige Minuten meiner (un-)üblichen (un-)kreativen Schaffensphase:

Ich habe das Cover-Artwork für Spacola Eclipse ein wenig modifiziert und so die Stellen korrigiert, die mir bisher nicht gefallen haben, darunter der viel zu dunkle Schriftzug und die Sprites. Auch im (unfertigen) Spiel findet dieses Artwork in Form eines Splash-Screen beim Starten Verwendung, den ich ebenfalls ausgetauscht habe. Wer das Bildchen bisher noch nicht gesehen hat, der hat hiermit die Gelegenheit, genauer hinzusehen. Spacola-Fans dürfen mir gerne ihre Meinung kundtun. Bis ich einen echten Grafiker engagieren kann, bleibt sowieso alles provisorisch.

Was den Entwicklungsfortschritt des Spiels angeht: Die letzte große Sache, die ich erfolgreich implementiert habe, war der Radarschirm. Den habe ich praktisch ohne zu testen als Ganzes runtergeschrieben und das hat auch fast auf Anhieb funktioniert, wenn man mal von dem einen oder anderen Vorzeichenfehler absieht. Das ist jetzt allerdings auch schon wieder über fünf Wochen her, seitdem hat sich der Code kaum verändert. Aber es geht definitiv weiter. Nächste geplante Features: Asteroiden und Explosionen.