Spacola

SPACOLA Eclipse ist ein 2D-Weltraum-Ballerspiel mit 360° Bewegungsfreiheit und monochromer Pixelgrafik. Es handelt sich um ein originalgetreues Retro-Remake von SPACOLA, das 1991 von Dongleware für den Atari ST veröffentlicht wurde. Das Remake ist momentan noch in einem frühen Entwicklungsstadium und wird von mir vollständig in Java für moderne Betriebssysteme geschrieben. Da mir der Original-Quellcode leider nicht zur Verfügung steht, muss ich zwangsläufig alles vollständig aus der Beobachtung nachimplementieren. Meinolf Amekudzi, einer der beiden Programmierer des Originals, wurde insbesondere bekannt durch seine fantastischen Spielreihen Bolo und OXYD.

Diese Spiele zeichneten sich durch detailreiche, für damalige Verhältnisse hochauflösende Monochromgrafik aus, durch witzigen Sound, durch anfangs sehr 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 verurteilt. Schade eigentlich, dabei hatte gerade dieses Spiel seinen ganz eigenen Charme, weil es ausnahmsweise kein Geschicklichkeits- oder Knobelspiel war, sondern viel nervenaufreibende Action bieten konnte.

Als intergalaktischer Handelsreisender beliefern Sie die irdischen Raumstationen in den Galaxien mit lebensnotwendigen Waren. Eigentlich ein langweiliger Job, wenn da nicht überall im Universum diese gierigen Piraten wären, die es auf Ihr teuer bezahltes Schmugglergut abgesehen haben. Da Sie aber daran interessiert sind, den Empfang Ihres Rentenbescheides noch zu erleben, setzen Sie sich mit äußerst wirkungsvollen Mitteln zur Wehr! Und da auf die Piraten ein Kopfgeld ausgesetzt ist, können Sie so manche Spacedollars mit dem Einsammeln schiffbrüchiger Besatzungen machen.

Test Test

Video Preview – Version 0.39


Features

  • Originalgetreue Monochrom-Grafik in 640 x 400 Pixeln
  • Spacige Titelmusik und 6-KHz-Sound wie beim ST-Original
  • Optionale Ingame-Musik
  • Kampagne mit 64 Levels
  • 27 verschiedene Gegner
  • 8 verschiedene Warentypen
  • 12 Original-Powerups
  • Intuitive Maussteuerung zum Drehen, Beschleunigen und Schießen
  • Animierter Radarschirm
  • Schiffbrüchige Piraten, Asteroiden, Fracht, Schwarze Löcher, Minen
  • HUD-Anzeige für Koordinaten und Punktezahl
  • Pixelbasiertes Partikelsystem für Schub und Explosionen
  • Komplettes Intro mit Titeln, Highscore, Kurzanleitung, Level-Ende-Screen
  • Menüleiste für die wichtigsten Funktionen, zusätzlich zum Hauptmenü
  • Multilingual, Deutsch und Englisch bereits integriert, problemlos erweiterbar
  • Lauffähig auf jedem Betriebssystem mit Java
  • Geringe Hardwareanforderungen

Weiterhin geplant

  • Originalgetreue Gegner-KI
  • 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.73 alpha
  • Nächster Schritt: Originalgetreue Gegner-KI (ab 0.75)
  • Danach: Vollständiger Kampagnenmodus (ab 0.80)
  • Beta-Release, erste spielbare Version (v0.8) (2018)
  • Finale Monochrom-Version (Classic) (v1.0) (Oktober 2021 oder so)
  • Kolorierte Farbversion mit höherer Auflösung (v1.1) (Ende 2021)
  • Spielbarer Multiplayer-Modus (v1.2) (when it’s done)
  • HD-Version mit hochauflösender Grafik (v2.0) (when it’s done)

Statistiken

Version: 0.73 alpha / Build 612
Datum: 22.04.2018
Grafikdateien: 1074
Audiodateien: 62
Codezeilen: 45.542
Pakete: 26
Klassen: 273
Größe Quellcode: 2,5 MByte
Größe JAR/EXE: 5,3 MByte

Development Screenshots

2014
Das Remake stellt sich vor.

WIP-Version 0.32: Das Remake stellt sich vor.

Einen eigenen GEM-Texteditor bringt das Spiel auch mit.

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

2013
WIP-Version 0.22: Komplettes HUD

WIP-Version 0.22: Komplettes HUD

WIP-Version 0.22: Statusmeldungen und Gegnerhorde

WIP-Version 0.22: Statusmeldungen und Gegnerhorde

2012 / Neue Architektur

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

WIP-Version 0.15: Splash-Screen

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

WIP-Version 0.19: Spielfortschritt auf der Karte sichtbar

WIP-Version 0.15: Hauptmenü

WIP-Version 0.15: Schutzschild zu Beginn

2010 / Alte Architektur

WIP-Version 0.06

WIP-Version 0.03


Ältere Videos – Version 0.29 / 0.21


Q & A

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. Auch unter Linux wurde erfolgreich getestet. SPACOLA Eclipse sollte problemlos auch unter Mac OS laufen, sowie anderen Betriebssystemen. Entsprechende aussagekräftige Tests sind geplant, sobald das Spiel veröffentlicht werden kann.

Java? Wieso ausgerechnet Java? Wieso tust du uns das an?

Die aktuelle Anti-Java-Hysterie in den Medien kann von niemandem geteilt oder nachvollzogen werden, der selbst in Java entwickelt. Meist werden Sicherheitslücken in den obsoleten Java-Browserplugins mit Sicherheitslücken in Java verwechselt. Java ist nicht sicherer oder unsicherer als die konkurrierende Microsoft .NET Laufzeitumgebung, dennoch wird gerade unter Laien eine Hexenjagd auf alles was mit Java zu tun hat veranstaltet. Ich setze bewusst auf Java, weil ich täglich damit zu tun habe, weil die Arbeit damit Spaß macht, und weil es mir eine gewisse Plattformunabhängigkeit ermöglicht.

Wann wird SPACOLA Eclipse veröffentlicht?

Das finale Veröffentlichungsdatum der ersten komplett spielbaren Version habe ich auf den Oktober 2021 festgelegt, also pünktlich zum 30-jährigen Jubiläum des Originals. Bis dahin möchte ich aber noch einige Beta- und Milestone-Releases zum Download freigeben, die schon weitgehend spielbar sein werden. Leider ist noch nicht absehbar, wann dies soweit sein wird. Möglicherweise noch 2017.

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 denn 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 Brachland, außerdem schätze ich es als die etwas 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 – und dann auch nur in dafür ausgewählten Spielmodi, nicht in der Kampagne. Das wäre meine erste 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 sieht die Grafik 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, 1. die Fans SPACOLA gar nicht anders kennen – 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. Nur Geduld.

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 das Dekodieren 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, Buffering, Animationen, sowie Maus- und Tastatur-Handling. Mit einem Game-Framework wäre die Arbeit vermutlich leichter und das Spiel bestimmt 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

v0.72 – March 2018

  • renamed class SpacolaCodes to Spacodes to adapt it to own naming conventions
  • fixed several log output lines for several classes
  • added utility methods to find and test the system dependant path separator character
  • removed adding old debug text to save some performance
  • removed redundant visible property from playership class
  • all the game objects mileage will now be recorded in the game engine
  • fixed mileage recorder reset when starting the game
  • added a method to „calculate“ travelled space distance in „light years“
  • fixed F9 and F10 not working in the intro module
  • fixed debug text option active/inactive status unused throughout all the modules
  • created blackhole shapes and reshaped the mono and colored blackhole sprites
  • created monochrome inactive blackhole sprite
  • added mono and colored inactive blackhole sprite to the resources
  • it is now possible to enable and disable black holes in the level
  • added methods to remove all or single black holes
  • changed travelled space distance unit to au (astronomical units)
  • wrote toString method for sector class which shows their hex coordinate
  • added convenience methods to fill all or single sectors with black holes
  • enabled level modification through the level generator during actual gameplay
  • moved black hole removal methods into the level generator class
  • fixed maforians not drawing thrust particles when targetting the station
  • wrote ship decorator method to create shieldmaforian spriteset
  • the ship selector dialog now contains two full rows of ships to choose from
  • added timer digit font to the resources and created a timer digit class
  • the timer will now be drawn onto the game screen
  • the enum gfx library can now create colorized versions of monochrome images
  • created a colorized timer for the enhanced version
  • wrote ship decorator method to draw rocket drives and create rocket cycle spriteset
  • identified an unknown enemy code in the level script: SL = StarLaser
  • wrote ship decorator method to draw shield mother maforians and create its spriteset
  • added timer enabled/disabled option to the menu bar
  • the timer can now be enabled and disabled during the game
  • added menu bar options to allow selecting the border for the game window
  • 4 different borders can now be selected: Eclipse, Bolo, Oxyd, Oxyd Color
  • added a classic spacola border to allow setting monochrome border in enhanced mode
  • added several more enemies to the ship selector window
  • changed the way how animated buttons will appear and its hover effect
  • implemented some more ship decorator methods to generate spritesets for special enemies
  • added some more enemies to the ship selector window
  • created 8 tricore sprites from the original designs and the pricelists
  • added the tricore sprites to the resources and implemented them in the ship selector
  • fixed the dongleware copyright small number font digit 8 from an Esprit screenshot
  • added colored shield powerup container sprite
  • added colored double shot powerup container sprite
  • refined some icons in the colored hud for better emboss effect
  • created and added 16 colored peashooter sprites
  • created and added 10 more colored powerup container sprites for all powerups
  • created and added 5 shockerrotor sprites from the Hintzen & Verwohlt game „Shocker“
  • added the shockerrotor to the ship selector window and restructured the animated buttons
  • changed the colored shield powerup container sprite again
  • added some information to the levels txt parser class for the DCS modifier
  • added original german names for the powerups to the levels txt parser class
  • created a manually colored cigarette cargo bay sprite
  • created a manually colored toilet paper cargo bay sprite
  • created a manually colored candy cargo bay sprite
  • fixed wrong pixel on mono candy cargo sprite and changed all three resource files
  • fixed wrong pixel on colored candy cargo bay sprite
  • created manually colored scissors and hair dryer cargo bay sprite
  • fixed colored cola and toilet paper cargo sprites

v0.71 – February 2018

  • added new dongleware title with new original developer name
  • replaced the dongleware title in the application window background image
  • removed spacola classic title image from the resources since it was unused
  • added dongleware copyright small font to the resouces
  • the copyright number will now be generated and drawn dynamically into the title image
  • added a new 2018 build splash image to the project
  • removed dithering fading for the closing credits module

v0.70 – November 2017

  • removed unused unfinished magic test class
  • turned sparkle particles into private inner class
  • improved 6 colored ship sprites
  • created a spacola small font from the status images and the radar text artwork
  • defined spacola small font constants
  • added graphics utility method to recolorize an image
  • added a utility method that removes german umlauts from any text
  • the smooth text scroller will now also use the spacola small font
  • added some more special characters to the spacola small font
  • created and added all digits to the spacola small font
  • changed the internationalized intro texts for the original game programmers
  • added Franko Elmaro to the special thanks block in the closing credits
  • fixed magic stars not reset after engine shutdown
  • moved add linebreaks method from log utilites to game utilities class
  • fixed too wide warning dialogs in the game by adding auto generated linebreaks
  • fixed error in add linebreaks method which didn’t respect preset linebreaks
  • created and added many more special characters to the spacola small font
  • started also adding ingame fonts to the fontloader class
  • renamed fontloader class to gamefontloader to avoid naming collisions
  • fixed text scroller classes to keep references to used fonts
  • simplified flap display initialization and removed keeping font references
  • removed keeping font references in the hud class
  • removed keeping font references in the solar selector class
  • removed keeping font references in the hud class
  • moved tos loading screen drawing into the fake tos module class
  • removed dependency on gem font in the enum gfx library class
  • removed all remaining kept font references in all remaining classes
  • fonts will now only be instantiated and updated in the gamefontloader class
  • fixed wrong and/or doubled sound effect being played when destroying mines
  • created enhanced ’surf‘ sound effect from the beach boys song and added it to the game
  • implemented playing enhanced surf sound effect in eclipse game mode
  • fixed the loudness of enhanced surf sound effect which was too low
  • added enhanced DAPDAPDAP and FALSCALL sound effects to the resources
  • implemented playing enhanced DADAPDAP and FALSCALL sound effects in the game
  • fixed black background in GEM texteditor module

v0.69 – October 2017

  • completed all 64 colored ship drive images and added them to the resources
  • improved 4 colored ship sprites
  • created string constants for developer and original developer urls
  • used the url constants in the closing credits module and about window
  • changed the text scroller text to show basic game credits and info
  • changed the test panel to allow drawing colors
  • the particles test module now draws colored particles exactly as seen in the game
  • fixed a bug in the particles class where particles would flicker after burning out
  • implemented switching between color and monochrome particles test
  • created two HQ sound effects from Dark Star for DAPDAPDAP and FALSCALL

v0.68 – September 2017

  • improved calculation of time durations to allow displaying months and years as well
  • refactored timer string and duration string utility methods to make clearer what they do
  • created a dithering method to create an image with a given dither phase
  • implemented dither-fading the credits in the closing credits module
  • fixed closing credits module using the wrong font in enhanced mode
  • fixed text prompt core element using the wrong font in enhanced mode
  • fixed billing tag height to allow drawing bigger sprites for enhanced mode
  • implemented methods to maximize, minimize and to remove all asteroids setups
  • implemented menu bar options to modify asteroids setups for the sectors
  • seems i got the billing screen pixel identical again. something got changed there
  • created a small image showing the atlas and original floppy to select as a button
  • the application name will be written in all upper case from now on
  • added a stylized application name using greek letters and numbers
  • added a method to stylize strings in the same way as the application name
  • recreated the manually colorized cola sprite that i seem to have deleted
  • added a simpler title artwork for the splash module and intro titles
  • added an application splash floppy image with a dark border
  • fixed short instructions windows content not being updated on language change
  • added a shorter menu and window text for the short instructions window
  • fixed instructions window not returning to page 1 when reopened
  • improved a few colored ship sprites
  • colorized the trademark and copyright symbols in the intro title artwork
  • fixed target sector being set in the enhanced version before game starts
  • the solar selector will reset the target sector in the enhanced version
  • the coordinate decoder will now only control the target sector flap display
  • added enhanced state to the solar progress savegame objects
  • fixed lower case game name in the text resources
  • added extreme asteroids debug options for the menu bar
  • fixed stylized letter A to make it look more like in the „RADAR“ hud text
  • fixed enhanced hud title artwork which was too narrow and used the wrong letter ‚E‘
  • fixed enhanced hud title artwork height positioning of the eclipse part
  • implemented a method to unload cargo and refill with another ware type
  • added german and english cargo identifiers to the text resources
  • fixed realistic bonbon cargo image width which was not correct
  • added menubar options and debug commands to select the ships cargo type
  • switching to another cargo type now considers the previous cargo bay load amount
  • implemented real cargo bay handling code which allows carrying different ware types
  • fixed wrong order for collected and lost cargo displayed in the cargo bay
  • fixed enemies carrying the wrong ware types after stealing from the player
  • measured and added billing sprite height offsets as variables
  • fixed billing for mixed cargo bay items and rewrote score calculations
  • fixed billing titles result width which was always too small
  • all billing titles sprite positioning is pixel perfect in respect to the original now
  • removed dithered background from enhanced cargo bay
  • fixed cantina flight enemy behaviour not respecting the player ship motion
  • readded enemies reducing the distance to the player automatically during cantina flight
  • fixed piraton enemies not showing acceleration during cantina flight
  • fixed calculation of nearest game objects now using reference object and max distance
  • fixed cantina flight not working for maforian and peashooter enemies
  • reimplemented pursuit and collecting of free floating aliens and cargo for piratons
  • implemented coloring of particles for the enhanced version of the game
  • improved coloring of particles to make them go from white to yellow to red to black
  • particles will now always live until they are burnt out
  • fixed direction markers to powerups to appear in the same colors as the glowing particles
  • started work on a ship selection window where all the different ships are displayed
  • rewrote piraton targetting code which allows better control over what objects to chase
  • fixed a bug in piraton intercepting speed calculation which made them go too fast
  • fixed a bug which made piratons intercept items instantly instead of waiting randomly
  • piraton item interception finally starts working really well
  • changed the application name in the build script
  • replaced shorten name utility function with two more generic shorten text functions
  • fixed message of piratons losing their target after they just collected it
  • reset speed warnings and pixel speed for the player when using full stop command
  • reset highscore message event flag if the players score has been reduced below top score
  • the invisible player ship won’t collide with asteroids anymore when the level is won
  • reduced the amount of particles emitted during acceleration thrust
  • made some particles burn out quicker
  • piratons will wait longer until they intercept aliens and ware

Show complete changelog

nach oben