Schlagwort-Archive: Sprites

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.

Mein treuester „Spacola Eclipse“-Fan hat sich soeben bei mir erkundigt, wie es denn mittlerweile um mein kleines Remake steht. Wie es der Zufall wollte, konnte es kaum einen besseren Zeitpunkt geben, mich das zu fragen. Nach mehreren Wochen fauler Abstinenz gelang es mir gestern und heute tatsächlich für ein paar Stunden einige Dinge am Code zu ändern und Kleinigkeiten von der To-Do-Liste zu streichen. Zeit für mich, meinen ereignislosen Blog mit Dev-News zu füttern.

spacolabrechnungAuf der linken Seite kann man dazu eine Abbildung sehen. Was auf den ersten Blick wie zweimal exakt derselbe Screenshot aussieht, ist in Wirklichkeit eine Gegenüberstellung von Original (oben) und Remake (unten). Ja genau, dieser kleine Aspekt hat mich bestimmt drei Stunden meines Lebens und so einige Nerven gekostet. Es handelt sich im Spiel um den Teil der „Kontoabrechnung“, also die Grafik, die man zu sehen bekommt, sobald man einen Level erfolgreich beendet hat. Hier werden jeweils gelieferte Waren in bare Münze umgerechnet und anschließend kann man schon den nächsten Level beginnen.

Es waren die vielen kleinen Dinge, die die Arbeit so langwierig machen. Pixelgenaue Abstände, Schriftzeilenhöhe, richtige Zentrierung, originalgetreues Timing, Sounds, HUD-Events während der Animation (Highscore!), sukzessives Entfernen der Sprites aus dem Inventar, dabei gleichzeitiges Hochzählen des Punktestands. Und nein, ich habe nicht einfach nur eine große Grafik eingebunden, alles wird dynamisch gezeichnet. Die Unterschiede sind marginal, aber sie sind (leider) da.

Falls sich jemand wundert, wieso auf dem unteren Screenshot das Abrechnungsergebnis nicht mit dem tatsächlichen Score übereinstimmt: Die Berechnung ist leider noch hartkodiert. Ein Fake, ein Test, nur zum Vergleichen. Alles andere ist echt.

Die zweite größere Neuerung ist, dass die Highscore jetzt vollständig in eine Datei gespeichert und beim nächsten Spielstart auch von dort wieder ausgelesen wird. Jetzt fehlt eigentlich „nur“ noch der Dialog zur Eingabe des Namens, dann wäre auch der ganze Highscore-Kram fix und fertig. Aber den Spaß hebe ich mir vermutlich doch für ein anderes Mal auf.

Bereits mit Version 0.23 kam der zweite Gegnertyp hinzu, der zwar komplett eigenständige Sprites hat, sich aber (Copy & Paste sei dank) fast genauso verhält wie der erste Gegnertyp. Ist im Moment eben noch work in progress. Außerdem gibt es jetzt die Geschwindigkeitsstufen für Hyperspeed und natürlich „Ridiculous Speed“ in Anlehnung an den Filmklassiker Spaceballs. Anfang April habe ich noch die komplette Vektorarithmetik zusammengefasst, umgeschrieben und in eine eigene Klasse ausgelagert. Damit habe ich drei Dinge erreicht: 1.: eine konsistente Implementierung der Bewegung von Spielobjekten. 2.: jede Menge überflüssiger oder redundanter Code, der jetzt rausgeflogen ist. 3.: um die 20 Klassen mussten angepasst werden, damit der Code seit der Änderung wieder kompilierbar wurde.

Achja, wir haben jetzt Ingame-Musik und die lässt sich in der Konfiguration sogar an- und abschalten. Der Song ist zwar nicht optimal, aber er ist so ziemlich der passendste, den ich bisher finden konnte. Ich werde da mal noch weitersuchen. Zuletzt kann ich noch erwähnen, dass die Raketentriebwerke der Piratenschiffe jetzt auch Partikel sprühen, wenn sie Schub geben. Das sieht deutlich wuseliger aus als noch in der letzten Version. Vor einigen Wochen hatte ich mal ein neues Preview-Video angekündigt. Ich denke, ich werde meine Ankündigung daher etwas relativieren und mit dem Video warten, bis es wieder spektakuläre Änderungen gibt.

Nachtrag vom 02.06.: Heute war ich ebenfalls ein bisschen fleißig: Der Spieler kann jetzt mit aktiviertem Schildgenerator von gegnerischen Schiffen abprallen (so wie bei Asteroiden bisher schon) oder sich von den Piraten bestehlen lassen, wenn er ohne Schild unterwegs ist. Allerdings fehlt den Piraten noch die nötige Intelligenz um das Diebesgut auch abzuliefern. Wenn der Spieler keine Ware mehr im Inventar hat, kann er den Level jetzt nicht mehr beenden. Mal sehen, vielleicht kümmere ich mich heute noch darum, dass die Gegner auch zurückfeuern können.

Nachtrag vom Nachtrag: Keine drei Stunden später ist es dann soweit: Die Gegner können jetzt aus allen Rohren zurückballern. Und als Spieler muss man sich ganz schön in Acht nehmen. Das macht das Gameplay nun tatsächlich um einiges hektischer als zuvor. Vor allem aber macht es das Gameplay um einiges sinnvoller, denn so nähert sich das Spiel langsam einem ansatzweise vorzeige- und spielbaren Zustand. Hurra!

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.