Lifeling

Eine Projektarbeit von Magnus Dorra, TGI-J1, Schuljahr 2017-18.

Alle Grafiken sind selbst gezeichnet. Die hinterlegte Musik wurde selbst komponiert und auf dem Klavier gespielt.

 

Motivation

Als ein Kind des 21. Jahrhunderts, bin ich mit der Videospiel-Branche aufgewachsen. Schon bevor Ich gehen konnte, war ich vom Einfallsreichtum und den Fähigkeiten der Spieleentwickler beeindruckt. Nun, durch die Revolution von Indie-Games, welche die 2010er prägen hat jeder, der ein wenig Verständnis für Programmlogik hat, die Möglichkeit ein Spiel zu schaffen. Deshalb habe Ich die Gelegenheit am Schopf gepackt und mich dazu entschieden im Rahmen meines Software-Projekts ein Computerspiel zu entwickeln.

Inspirationen

 

Undertale

Undertale ist ein Indie-Game Klassiker von 2015 und war eine große Inspiration für mich. Auch wenn sich das Gameplay und das Spielprinzip unterscheiden, motivieren mich der Pixelart-Stil und einige der Story-Elemente.

Das Schloss im Himmel

Die Idee mit dem verlassen Schloss im Himmel stammt aus dem Film von Hayao Miyazaki. Mein Schloss soll aber nicht fliegen sondern auf einer unrealistisch hohen Säule stehen. Einige Story- und Soundtrack-Elemente basieren auch auf diesem Film.

Limbo

Limbo ist ein Horrorspiel von 2010. Auf seine sehr düstere und atmosphärische Art hat es schon viele Inspiriert. Ich habe mir daraus einige Konzepte für Stilmittel und Gegner entnommen.

Analyse

Der Spieler steuert einen Jungen namens Noah. Er versucht in einem verlassenen U-Bahn Tunnel etwas zu finden. Dabei ist er nur mit einer Taschenlampe ausgestattet und wird von gefährlichen Kreaturen verfolgt.
Das Spiel soll wie ein altmodisches RPG (Role Playing Game) aufgebaut werden. Das heißt, der Spieler bewegt sich auf einer zweidimensionalen Karte und wird aus der Vogelperspektive betrachtet. Dabei kann er mit diversen Objekten interagieren um Rätsel zu lösen und voran zu kommen.
Die Welt besteht aus mehreren Räumen, in denen der Spieler sich bewegt. In den Räumen befinden sich unbewegliche Objekte wie Säulen, Wände etc. und interaktive Objekte wie Hebel oder Items. Außerdem befinden sich dort eine Reihe von Gegnern die dem Spieler Schaden zufügen wollen.
Zusätzlich soll es ein Inventar, ein Hauptmenü und eine Speicherfunktion geben.
Das Spiel wird mit der Tastatur gesteuert. Dabei haben die Tasten je nach Menü oder Spiel unterschiedliche Funktionalität.

Design

Systemarchitektur

Systemarchitektur

Das System von Lifeling besteht aus 8 wesentlichen Elementen:

  • Initialiserung
  • Archiv
  • Timer
  • Subtimer
  • Raum
  • Objektarchiv
  • KeyListener
  • Speicherdatei

Initialisierung

Die Initialisierung passiert in einer Methode. Sie wird nach dem Programmstart ausgeführt. Darin werden alle benötigten Objekte für das Archiv initialisiert. Außerdem werden am Anfang die Daten aus der Speicherdatei gelesen. Der KeyListener wird ebenfalls instanziiert.
Im Anschluss an die Initialisierung startet der Timer. Der Timer ist hierbei ein JavaFX AnimationTimer.

Archiv

Das Archiv ist eine statische Util-Klasse mit allgemeinen Spiel-Daten. Die meisten Objekte und Variablen darin werden bei Programmstart initialisiert, können aber von den Timern gelesen und geschrieben werden. Darin befinden sich auch die Flags (Booleans) für den KeyListener.

Timer

Er ruft zyklisch die Methoden vom Controller auf, liest und schreibt Daten im Archiv und gibt an den Checkpoints Daten an die Speicherdatei weiter. Er startet auch alle SubTimer.

SubTimer

Die SubTimer sind Objekte die zu bestimmten Zeitpunkten zusätzliche Algorithmen parallel ausführen. Sie sind für Animationen verantwortlich.

Raum

Die Räume sind die Objekte auf denen der Spieler sich tatsächlich im Spiel bewegt. Sie erben von der Klasse Group und können zahllose Objekte beinhalten. Sie befinden sich wie die meisten Objekte im Archiv.

Objektarchiv

Die Objekte die im Spiel zu sehen sind, erben alle von dem selben Grundobjekt: WorldObject, dieses erbt von der JavaFX Klasse ImageView. Sie haben gewisse gemeinsame Eigenschaften wie: Hitboxen um den Spieler aufzuhalten oder eine Textur, die sich selbst löschen und laden kann. Dies passiert wenn der Spieler einen Raum verlässt bzw. betritt um Speicherplatz zu schonen. Sie befinden sich ausschließlich in den Räumen.

KeyListener

Der KeyListener wird bei der Initialisierung gestartet und läuft automatisch im Hintergrund. Er gibt Daten über die Eingaben des Spielers an die Flags im Archiv weiter.

Speicherdatei

Die Speicherdatei ist ein Textdokument, das Zahlen beinhaltet und darüber Auskunft über die Position und Anzahl der Items des Spielers gibt. Sie wird bei Programmstart gelesen und während des Spiels vom Timer aktualisiert.

Entwurf der grafischen Oberfläche

Ebenen der grafischen Oberfläche (Raumebene)

Der Spieler bewegt sich auf einer Raumebene, die in sich noch einmal in weitere Ebenen aufgeteilt ist. Ganz unten befindet sich die Bottomlayer. Auf ihr werden Hintergrund-Objekte wie der Boden dargestellt . Darüber befindet sich die Midlayer, auf welcher die Sprites dargestellt werden, wie der Spieler selbst. Auf der Toplayer befinden sich Vordergrundobjekte, die vor den Sprites zu sehen sein sollen, zum Beispiel Säulen oder Wände. Darüber liegt nur noch die Schattenebene. Sie ist eine leicht transparente Alpha Ebene, die den Raum in Dunkelheit hüllt, mit Lücken für Lichtquellen und dem Schein der Taschenlampe. Um die Midlayer herum befinden sich noch die Flextoplayer und die Flexbottomlayer. Sie beinhalten Objekte die sowohl hinter als auch vor dem Spieler zu sehen sein sollen, abhängig von seiner Position.

Gestaltung

Skizzen von Noah

Entwurfsskizze von Noah
Noah mit Taschenlampe und Teddy Monday

Noah ist der Protagonist von Lifeling. Er ist in der Dystopie aufgewachsen und hat alle seine Eigenschaften die er zum Überleben nicht braucht abgelegt. So ist er meist kalt, direkt und misstrauisch.
Monday ist der Teddy, den Noah auf seinem Rücken herum trägt. Er lebt und redet natürlich nicht wirklich, Noah projiziert eine Persönlichkeit in ihn. Er stellt das Gegenteil zu Noah dar. Er ist emotional und neugierig.

Räume

Die Räume sollen natürlich nicht nur funktional sein, sondern auch optisch ansprechend. Hier kommt die artistische Note ins Spiel. Um die Räume zu dekorieren und die Atmosphäre einer verfallen Postapokalypse zu vermitteln sind die Räume größtenteils mit Geröll und kaputten/verrosteten Objekten voll gebaut.

Raumobjekte
Tags