Spacola

spacola splash web

Drei Spiele, die mich in meiner Kindheit ganz besonders begeistert haben? Da würde ich bestimmt Super Mario Bros. auf dem NES nennen, und Cadaver auf dem Atari ST, und sowas wie Test Drive II auf dem Amiga. Würde ich bestimmt, wenn da nicht vorher ganz andere Spiele gewesen wären, die mich auf eine völlig andere Weise begeistern konnten. Drei Spiele, die ich in einem Atemzug nennen kann: Bolo, OXYD und Spacola. Drei Spiele für den Atari ST, die alle zufällig von einem Entwickler sind: Meinolf Amekudzi.

Diese Spiele zeichneten sich durch detailreiche, hochauflösende Monochromgrafik aus, durch witzigen Sound, durch anfangs unglaublich simples, aber trotzdem schnell komplexer werdendes Gameplay. Bolo war ein Breakout-Klon. OXYD selbst war ein Murmelspiel, das Dongleware damit perfektioniert hatte. Spacola war dagegen ein Asteroids-Klon, allerdings deutlich aufwändiger, und mit wesentlich mehr lebendigen Gegnern als Asteroiden. Von Bolo gab es später noch einige Umsetzungen, unter anderem für den PC. Von OXYD gab es Umsetzungen, Fortsetzungen und Remakes für alle möglichen Systeme. Einzig Spacola war zum Sterben mit dem Atari ST verdammt. Schade eigentlich, dabei hatte gerade dieses Spiel seinen ganz eigenen Charme, weil es kein typisches Geschicklichkeitsspiel war, sondern auch viel Action bieten konnte.

Spacola Eclipse ist ein von mir derzeit entwickeltes Remake von Spacola, also eine möglichst detailgetreue Nachbildung für moderne Betriebssysteme, und da mir der Original-Quellcode leider nicht zur Verfügung steht, muss ich zwangsläufig alles vollständig aus der Beobachtung nachimplementieren. Das Remake wird in Java entwickelt und wird somit theoretisch unter jedem System lauffähig sein. Sobald es denn mal fertig ist.

Test Test

Video Preview – Version 0.29


Features

Bereits implementiert

  • Originalgetreue Monochrom-Grafikengine (Classic-Modus)
  • Titelmusik und Sound wie beim ST-Original
  • Intuitive Maussteuerung zum Drehen, Feuern und Beschleunigen
  • Animierter Radarschirm
  • 7 Powerups, 2 Gegnertypen, Raumstationen
  • Schiffbrüchige Piraten, Asteroiden, Fracht
  • HUD-Anzeige für Koordinaten und Punktezahl
  • Parallaktischer Sternenhintergrund
  • Pixelbasiertes Partikelsystem für z.B. Explosionen
  • Komplettes Intro mit Titeln, Highscore, Level-Ende-Screen
  • Drei verschiedene Mauszeiger im ST-Stil (TOS-Biene, Zielvisier, Rakete)
  • Dongleware-typisches Titel-Fading mit Dithering
  • Menüleiste für die wichtigsten Funktionen, zusätzlich zum Hauptmenü
  • Fake-TOS-Ladebildschirm und Splashscreen
  • Lauffähig auf jedem Betriebssystem mit Java
  • Geringe Hardwareanforderungen

Weiterhin geplant

  • Schwarze Löcher, Minen, mehr Gegner
  • HUD-Anzeige ausblendbar und Spielbildschirm im Vollbildmodus
  • Wechsel zwischen Classic-Modus, Enhanced-Modus (Farbe) und HD-Modus
  • Verschiedene Schwierigkeitsgrade
  • Multiplayer-Modus mit Duell- und Coop-Kampagne oder Schnellrunde
  • Spiel jederzeit Laden und Speichern
  • Farbversion auf Basis der Originalgrafik (koloriert)
  • HD-Version mit hochauflösenden, besseren Sprites
  • Einfach wechselbare Spritesets
  • Zusätzlich erweiterbar, z.B. andere Gegner, andere Fracht, andere Effekte

Entwicklungsfortschritt

  • Derzeitige Version: v0.34
  • Nächster Schritt: Übrige Powerups, mehr Gegner (v0.35)
  • Danach: echter Kampagnenmodus (v0.40)
  • Beta-Release, erste spielbare Version (v0.5) (Winter 2014)
  • Komplett spielbare Milestones (v0.6 – v0.9) (2015)
  • Finale Monochrom-Version (Classic) (v1.0) (2015)
  • Kolorierte Farbversion mit höherer Auflösung (v1.1) (2016)
  • Spielbarer Multiplayer-Modus (v1.2) (when it’s done)
  • HD-Version mit hochauflösender Grafik (v2.0) (when it’s done)

Statistiken

Version: 0.34 alpha
Datum: 19.06.2014
Codezeilen: 12213
Pakete: 15
Klassen: 114
Bilddateien: 490
Audiodateien: 45
Größe Quellcode: 559 KByte
Größe JAR/EXE: 8,33 MByte

Development Screenshots

2014
spacolaeclipse032 200x140

WIP-Version 0.32: Das Remake stellt sich vor.

gem texteditor 200x140

WIP-Version 0.32: Einen eigenen GEM-Texteditor bringt das Spiel auch mit.

2013
spacolaeclipse022 200x141

WIP-Version 0.22: Komplettes HUD

screenshot022 200x141

WIP-Version 0.22: Statusmeldungen und Gegnerhorde

2012 / Neue Architektur
wip019 1 200x140

WIP-Version 0.19: Preis- und Fahndungslisten sind fast fertig

spacoleclipse015 1 200x142

WIP-Version 0.15: Splash-Screen

wip019 3 200x141

WIP-Version 0.19: Schub mit Partikeleffekten und Extraleben-Powerup

wip019 4 200x140

WIP-Version 0.19: Spielfortschritt auf der Karte sichtbar

spacolaeclipse015 4 200x140

WIP-Version 0.15: Hauptmenü

spacolaeclipse015 7 200x140

WIP-Version 0.15: Schutzschild zu Beginn

2010 / Alte Architektur
wip006 1 200x133

WIP-Version 0.06

wip003 200x133

WIP-Version 0.03


Video Previews – Version 0.21 (alt)


Q & A

In welcher Programmiersprache wird Spacola Eclipse programmiert?

Das Remake Spacola Eclipse wird komplett in Java geschrieben. Auf dem Atari ST wurde Spacola soweit mir bekannt mit dem Megamax Modula-2-Compiler entwickelt, die zeitkritischen Teile (Grafik, Sound) direkt in 68k-Assembler.

Für welches Betriebssystem wird das Remake entwickelt?

Software, die in Java geschrieben ist, läuft im Prinzip auf jedem Betriebssystem, auf dem eine Java VM läuft. Primär entwickle und teste ich unter Windows 7. Spacola Eclipse sollte aber problemlos auch unter Linux und Mac OS laufen, sowie anderen Betriebssystemen. Entsprechende aussagekräftige Tests sind geplant, sobald das Spiel veröffentlicht werden kann.

Wann wird Spacola Eclipse veröffentlicht?

Leider kann ich Spacola Eclipse erst veröffentlichen, wenn es spielbar ist. Im Moment läuft es, und es macht auch so einiges, aber es sind keine Gegner da, man kann nicht gewinnen oder verlieren. Das vorliegende Programm eignet sich nicht als Demo. Im Moment ist noch nicht absehbar, wann es soweit sein wird. Mit etwas Glück möglicherweise noch 2013.

Seit wann ist das Remake in Entwicklung?

An dem Remake arbeite ich inzwischen fast exakt genau so lange wie es Success Denied gibt. Genauer gesagt seit dem 19. August 2010. Seitdem arbeite ich mit mehr oder weniger langen Pausen daran (leider meistens längere). Neben meinem Beruf finde ich außerdem nicht immer die Zeit, um mein Hobbyprojekt nennenswert voranzutreiben. Meist packt mich das Thema erst wieder, wenn ich eine entsprechende Inspiration gefunden habe.

Sind Apps für Android und iPhone bzw. iPad geplant?

Auf jeden Fall. Über eine Umsetzung für Android denke ich bereits seit dem ersten Tag nach. Da die Dalvik VM für Android-Betriebssysteme ähnlich wie die Java VM funktioniert, dürfte das mit recht geringem Portieraufwand machbar sein. Eine iOS-Version ist ebenfalls machbar, wenngleich der Aufwand etwas höher sein dürfte. Genaueres lässt sich sagen, wenn die Dinge konkret werden.

Wieso ausgerechnet ein Spacola-Remake? Warum nicht gleich OXYD?

Von OXYD gibt es viele Fortsetzungen und Neuauflagen und bis zum heutigen Zeitpunkt zwei(!) unabhängige Remakes, die auf aktuellen Betriebssystemen, sowie Smartphones laufen. Welchen Wert hätte ein weiteres Remake? Spacola ist insofern Neuland, außerdem schätze ich es als die einfachere Implementation ein, was ich angesichts meines ersten kleinen Spieleprojekts, an dem ich in meiner knappen Freizeit arbeite, eher begrüße. Obwohl ich selbst wahrscheinlich auch viel mehr Zeit mit OXYD verbrachte, hat mir Spacola ebenfalls sehr viel Freude bereitet. Warum also nicht?

Brauche ich wieder den “Spacola Sternenatlas” (Spacola-Codebuch) wie im Original?

Nein, der Spacola Sternenatlas wird NICHT benötigt, schon allein da er heute sehr selten und kaum noch zu bekommen ist, und weil er bei vielen Spacola-Fans sicher auch schon vor Jahren auf dem Dachboden verschollen ist. Das Spiel soll grundsätzlich jeder in vollem Umfang spielen können, daher werden für den Spielfortschritt keine Buch-/Code-Abfragen eingebaut. Ich überlege allerdings, ob ich als witziges Gimmick ein kleines Cheatmenü o.ä. in das Remake einbauen soll, das sich z.B. nur bei korrekter Eingabe eines Codes aus dem Sternenatlas öffnen wird. Das wäre meine Idee gewesen, wie man die Besitzer des Originals auf humorvolle Weise belohnen könnte, ohne das Spiel für den Rest unzugänglich zu machen.

Warum sehen die Screenshots so hässlich aus? Warum ist alles nur schwarzweiß?

Nun, Schönheit liegt im Auge des Betrachters. Manche finden diesen ganz besonderen Stil der Monochromgrafik sehr reizvoll, da sie nur wenig Spielraum lässt und die Kreativität daher auf eine ganz eigenartige Weise fordert. Ich für meinen Teil bleibe (vorerst) bei Schwarzweißgrafik weil ich: 1. Spacola nicht anders kenne – das Original IST einfach so, und 2. weil es mir die Entwicklung einfacher macht und ich nicht mehr Zeit mit Grafikbearbeitung verbringen muss als das sowieso schon der Fall ist. Dennoch: Eine Farbversion und eine hochauflösende HD-Version sind längst geplant.

Welche speziellen Game-Frameworks bzw. Libraries werden im Code verwendet?

Tatsächlich verwende ich bisher KEINE Game-Frameworks, und nur eine einzige externe Library (für die Wiedergabe von OGG-Vorbis-Audio). Mir ist es im Moment aus autodidaktischer Sicht wichtiger, möglichst viele der üblichen essentiellen Mechanismen zur Spieleentwicklung selbst zu erarbeiten und zu entwickeln, darunter so Dinge wie Timing, Animationen, sowie Maus- und Tastatur-Handling. Mit einem Game-Framework wäre die Arbeit vermutlich leichter und das Spiel womöglich am Ende auch performanter, aber ich möchte derzeit möglichst unabhängig von externen Bibliotheken sein. Es mag nicht die intelligenteste Entscheidung sein, aber es ist meine Entscheidung.

Development Log

0.32 – March 2014

  • replaced the old application icon and exe icon with the corrected ones
  • made the classic graphics library dynamically construct the TOS bombs overlay from icon
  • removed now obsolete tos bombs overlay PNG image
  • combined the dongleware + SD software screens
  • started including the GEM text editor into the game window
  • designed a new presentation artwork for the website

0.31 – February 2014

  • Near-perfectly recreated the complete cover artwork of the Spacola space atlas
  • created a new (MUCH better!) text character artwork for Spacola Eclipse
  • starting to create a new cover artwork for Spacola Eclipse splash & website
  • replaced ingame SE 2013 title with a new 2014 one
  • removed unused old title image with crappy font
  • finally also transcribed the blurb of the Sternenatlas (manual)
  • created new spacola artwork fonts: slim (from floppy disk) and standard (used in the book)
  • cut out and added 13 border sprites for the extended border class
  • added Atari ST GEM font image and declared constants for using it
  • put each audio library implementation into its own package
  • finally got the game to compile again after rewriting the whole audio subsystem
  • shortened the intro title delays about a second each
  • tried to fix the accelerate sound effect loop points since they magically turned wrong somehow
  • added german characters as an enhanced Atari ST GEM font image to the resources
  • wrote a simple GEM font class and a small test program
  • shortened the fading time to better fit the music to some of the titles
  • wrote a typewriter GEM font test class using the font
  • added GEM sound effects for pressing a key and the system bell
  • implemented GEM sound effects for the text editor
  • fixed the GEM typewriter test class to create a window with the correct size
  • implemented a better way to specify only the size of the the drawing area of the game window
  • fixed an NPE in the music library when stopping a song
  • implemented a security check to make sure Java created a correctly sized window
  • now using the GEMTextEditor as a core class
  • fixed the accelerate sound loop points and put it in an extra class for sound constants
  • fixed the hotspot of the crosshair windows cursor
  • implemented some missing drawing functions for the GEM font class
  • introduced text alignments with the GEM font
  • put all font drawing related classes into their own package
  • made the classic graphics library dynamically construct the TOS loading screen
  • removed the obsolete TOS loading screen image file
  • prepared a graphics filter class for realtime inverting, scaling etc.
  • introduced inverted text drawing for the GEM font
  • ingame debug text can now optionally be drawn in GEM font for authenticity
  • replaced the SD Software logo with another design

0.30 – December 2013

  • added utility function to safely delete a folder
  • added several utility functions for memory usage
  • fixed a problem with the pause functions where an exception was rethrown unnecessarily
  • simplified pause functions, deprecated old code
  • simplified code to generate solar system Hex coordinates, deprecated old code
  • added unfinished dongleware sprite definition format loader to the project source
  • implemented a spritesheet loader which creates a spriteset from a specified spritesheet image
  • readded old vortex code as a comment for backup purposes
  • readded all three old (deprecated) audio libraries as fallback implementations

0.29 – August 2013

  • fixed exceptions caused by pausing the game for changing the menu bar
  • added launch4j configuration to the project
  • added windows exe icon to the project
  • wrote a fully working ant build script for compiling, jar and exe file creation
  • added eclipse jar-in-jar classloader to the libraries for the ant script
  • changed minimum java version to 1.7 in the ant script and launch4j config
  • introduced build numbering with the ant script
  • added more information to the jar manifest file
  • moved particles into the level class because they’re placed in the level
  • started implementing a special vortex effects class for level intro and gameover
  • ant build script now changes the version number in source files
  • changed the way the stars in the background are drawn
  • changed the version number format displayed in the game client

0.28 – July 2013

  • fixed an issue with short instructions margins and line heights
  • fixed a final issue with button controls on the short instructions module
  • renamed the title bar to “SPACOLA Eclipse” rather than lowercase Spacola
  • added new menu to the menubar for all original main menu commands
  • added six little icons from the game’s original art to the menubar
  • added six more icons for the menubar
  • created ant build file with eclipse
  • added auxiliary name prompt to the highscore class
  • implemented safer way to add and remove highscore entries
  • fixed too early log output of solar selector module execution
  • implemented highscore functions for safely extracting entries
  • implemented auxiliary dialog for entering new highscore
  • started implementing Controllable functions for entering and showing highscore
  • added four new icons (GEM window icons and a music icon)
  • added the Atari ST GEM hand as icon and added hand and mouse pointer as cursor images
  • added all five Atari ST cursor images as real OS usable cursors (e.g. for dialog boxes)
  • fixed an NPE where I missed to comment out a single line
  • implemented basic top level logging, so in the future no uncaught exceptions remain unlogged
  • added GEM hand icon to the menu bar

Show complete changelog

nach oben