Beiträge mit tag "Spieleentwicklung

spacolabooks_sidebar

SPACOLA Eclipse WIP 0.34

0

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.

Softwareentwicklung

Spacola Eclipse WIP v0.19

0

spacoleclipse019So viel zu tun, so wenig Zeit. Irgendwie finde ich es traurig, dass ich im Prinzip zu überhaupt nichts mehr komme, wenn ich nicht manchmal einfach ein Stoppschild aufstelle (und Leute enttäusche). Die Wochenenden sind bereits komplett verplant, bevor sie überhaupt angefangen haben, und unter der Woche geht ja sowieso nichts, wenn man erst um 21 Uhr sein täglich zu absolvierendes Alltagsprogramm abgespult hat. Aber genug Geheule für heute. Der nächste Urlaub kommt bestimmt.

Trotz allem ist es mir ein großes Vergnügen, die neuesten Fortschritte bei meinem kleinen Feierabend-Hobby-Projekt vorzustellen: Mein Dongleware-Remake Spacola Eclipse ist jetzt praktisch “spielbar” in der Version 0.19. Das letzte Mal als ich nennenswert am Code arbeitete, war Anfang Juli. Vor einer Woche packte es mich dann endlich wieder, als ich mich der alten Sound-Problematik annahm. Nach langem Herumgebastele und mit der Unterstützung eines Indie-Spieleentwicklers konnte ich es zu meiner Zufriedenheit hinbiegen. Es geht tatsächlich, allerdings muss man sich um das Abspielen selbst kümmern. Der Sound funktioniert seitdem besser denn je und es sind viele Ingame-Samples dazugekommen. Dadurch hatte ich die nötige Motivation um auch andere Dinge anzupacken.

Im Anschluss schrieb ich lässig den Code für die Asteroiden und die Kollisionserkennung runter. Asteroiden kann man nun zerstören und mit dem Schiff an ihnen abprallen. Zugegeben, die Mathematik hinter dem “Abprall”-Effekt von Asteroiden, die wollte ich mir nicht mit dicken Mathebüchern herleiten. Da geht es um Drehung von Koordinatensystemen, damit man eine eindimensionale Kollision berechnen kann und den Abprallwinkel und die Abprallgeschwindigkeit beider Objekte bekommt. Gruseliges Zeug wenn man schnell fertig werden will. Für die Methode ließ ich mich bei anderen intelligenten Programmierern inspirieren. Es funktioniert noch nicht perfekt, aber immerhin.

In der Folge kamen weitere Powerups hinzu, so z.B. alle Schuss-Powerups und die Extraleben. An Stationen kann man jetzt andocken, so dass man entweder wüst beschimpft wird, oder das Sonnensystem vom Spiel als erfolgreich abgeschlossen beendet wird. Ja genau, endlich kann man im Spiel vorankommen und die Levels zumindest gewinnen. So kann man nach und nach alle Sonnensysteme auf der Übersichtskarte abhaken. Verlieren kann man bisher noch nicht, da das Sterben noch nicht implementiert ist und es weiterhin noch keine Gegner gibt (kommt, kommt!). Die Sektoren sind bisher alle zufallsgeneriert, was leider nicht ganz richtig ist, da das Original-Spacola hier gewisse Konfigurationen kennt, die in die Levelgenerierung mit einfließen. Auch der Zielsektor ist fest nach einem bestimmten Schema berechnet und nicht komplett dem Zufall überlassen. Für den Moment muss es aber so gehen.

Die Preis-, Fahndungs- und Bonuslisten sind fast fertig. Die Preise stimmen alle und die Screens sind alle eingebaut, aber bisher sind eben nur die Sprites für die Lieferartikel eingebunden – die Sprites für Gegner und andere Hindernisse fehlen noch. Ebenfalls fehlen die animierten Sprites für das Beschleunigen des eigenen Raumschiffs. Zur Vereinfachung habe ich stattdessen zwei Partikelstrahler-Objekte bei den Triebwerken platziert, die beim Beschleunigen Pixelpartikel emittieren. Sieht eigentlich sehr viel besser aus als im Original, aber es bleibt am Ende natürlich nicht so. Vermutlich lasse ich diesen Effekt für spätere Versionen drin.

Spiel

Neues Grundgerüst für Spacola Eclipse

0

Zur Zeit gibt es leider gar nicht soviel Neues zu berichten, daher gebe ich einfach mal einen kurzen Update-Bericht zum besten, über mein kleines Hobby-Spieleentwicklungs-Projekt Spacola Eclipse, dem Java-Remake des Ur-Spacola von 1991. Ich will ja nicht, dass noch Leute denken, dass das Projekt gestorben wäre, was es definitiv nicht ist. Hier kamen bisher eigentlich drei Probleme zusammen: Zum einen wenig Zeit. Dann noch eine komplett unkreative Phase, die mich immer sofort ins Schwitzen brachte, wenn ich die Entwicklungsumgebung auch nur versehentlich mit der Maus streifte.

Zuletzt war da ja noch die Sache mit der Neuimplementierung des kompletten Grundgerüstes, die ich vor einigen Monaten ankündigte. Das Spiel war in seiner Form einfach nicht mehr erweiterbar, weil ich einen Turm auf einem Fundament aus Designfehlern baute, der ins Wanken geriet, sobald man den Code anfassen wollte. Daher hab ich kurzerhand einfach alles abgerissen. Tja, und dann war das Spiel natürlich kaputt. Blöde Sache.

Diese Woche habe ich angefangen einige neue Designs für das Spiel zu basteln, darunter Splashscreens, ein neues Titelbild, und ein witziges Logo für eine fiktive Softwarefirma. Und auf einmal war die unkreative Phase weg. Ich habe mir das Trümmerfeld, das sich mal Quellcode nannte, vorgenommen, und beinahe innerhalb einer Nacht das neue Grundgerüst fertiggestellt, mit seiner eigenen kleinen komplett monochromen 2D-Grafikengine. Dazu viele nette Gimmicks, z.B. eine FrameStopWatch-Klasse, die nur dafür zuständig ist, die Framerate und die Anzahl der Spielweltupdates zu überwachen und dynamisch an die Leistung des Rechners anzupassen.

Endlich ist das Grundgerüst richtig objektorientiert und das Programm besteht nun aus deutlich mehr Klassen als vorher, so dass jede Klasse ihre eigene ganz spezielle Aufgabe übernimmt. Nun, bei aller Geilheit für Objektorientierung, optisch hat sich an dem Spiel logischerweise fast gar nichts geändert, außer, dass es jetzt eben in der Theorie deutlich effizienter bzw. schneller läuft. Erwähnenswert ist vielleicht noch, dass ich die hässliche Java-Kaffeetasse durch ein provisorisches Icon ersetzt habe. Spielbar ist es daher noch nicht, aber immerhin bewegt sich schon wieder was:

spacolaeclipse008

Schule

Tutorials über Java-Entwicklung

1

java smallerDa ich bekennender Fan der Programmiersprache Java bin (aber nicht ausschließlich), möchte ich den Zeitpunkt der Veröffentlichung des JDK7 nutzen und ankündigen, dass wohl in Zukunft auch ein paar Beiträge über Java-Entwicklung folgen werden. Ich bin noch nicht wirklich sicher worüber genau, aber mir wird da schon was einfallen.

Themen, die ich mir vorstellen könnte, wären meine Erfahrungen mit dem JDK7, außerdem diverse Tricks und Techniken, die ich bei meinen zahlreichen kleineren Gamedev-Versuchen (z.B. Spacola Eclipse) gelernt habe. Womöglich profitiert nochmal jemand davon, dann hätte es sich schon gelohnt, darüber zu schreiben. Wenn alles gut läuft, werden sich die Tutorials nicht auf Java beschränken, sondern auch andere Programmiersprachen umfassen, mit denen ich mich befasse. Auch mathematische Probleme, denen man früher oder später zwangsläufig begegnet, könnte ich dabei ansprechen und einen Lösungsansatz aufzeigen.

Was Spacola Eclipse angeht: Die Entwicklung steht nicht still, aber das Spiel ist derzeit nicht meine Top-Priorität, daher geht es verständlicherweise nur langsam voran. Ich habe definitiv neue Ideen, die ich demnächst umsetzen werde. Zunächst will ich eben einige private und berufliche Dinge geklärt wissen, bevor ich mich wieder mit vollem Eifer meinem Hobbyprojekt widmen kann.

nach oben