Project 2040

Eine Projektarbeit von Patrick Geiger & Lukas Huida, TGI-J1, Schuljahr 2018-19.

 

Motivation

Jeder hat schon einmal Computerspiele gespielt, egal auf dem Computer oder auf dem Gameboy. Daher war es für uns nahe liegend, dass wir in die Richtung Computerspiele gehen wollen, da wir selbst auch begeisterte „Gamer“ sind. Außerdem kann man, wenn man ein Spiel entwickelt, eigenes Grafik- und Sounddesign betreiben, was bei einer Desktopanwendung meistens nicht der Fall ist, weshalb wir uns gegen eine Desktopanwendung entschieden haben. Da wir im vorherigen Jahr schon als Projekt ein Spiel entwickeln mussten, waren wir dieses Jahr sehr motiviert wieder ein Spiel zu programmieren. Ein weiteres Ziel von uns ist es, später das Spiel als Open-Source Projekt auf GitHub zu veröffentlichen.
Da wir mit der Programmiersprache „Java“, welche für dieses Projekt genutzt wird, schon Erfahrung haben, sind wir der Meinung das wir unsere Ziele etwas höher setzen können.
Unser Spiel soll dabei ein futuristisches Aussehen besitzen, woher auch der Name „Project 2040“ kommt, da der Name schon andeutet, dass es im Jahre 2040 spielen wird. Dabei wollen wir uns an dem Film „Tron: Legacy“ inspirieren, welcher ein sehr moderner Look besitzt. Zu Beginn des Spieles soll man als Spieler, in einem Raum Minispiele suchen. Wenn man ein Minispiel gefunden hat, muss man dies spielen. Dabei bekommt man vor und nach dem Minispiel eine sogenannte Cutscene, wo man etwas über die Handlung mitbekommt.

 

Systemarchitektur

Systemarchitektur

Das Spiel wird in einer Java-Runtime gestartet und ausgeführt. Für die Grafikdarstellung nutzen wir das Grafik-Framework JavaFX. Die Java-Runtime läuft innerhalb eines Betriebssystems auf einem Computer.
Der Schnittstelle zwischen Computer und Mensch ist die GUI. Der Spieler kann einen Input mittels Tastatur und Maus machen. Das Programm wird dabei über den Bildschirm (über die GUI) dargestellt und der Sound wird über den Lautsprecher ausgegeben.

 

Entwurf graphische Oberfläche

Flussdiagramm Scenewechsel

In diesem Diagramm kann man ablesen, wie sich die Scenes verhalten sollen. Die grünen Verbindungen stellen dar, dass man wieder zur vorherigen Scene zurückkehren kann. Wenn das Spiel startet kommt man in das Hauptmenü von dort kann man in die Scenes Credits, Optionen oder das Hauptspiel starten. Von den Credits und Optionen kann man über einen Button dann auch wieder zurück in das Hauptmenü. Wenn man das Hauptspiel starten möchte kommt erstmal eine Cutscene dort wird ein Video abgespielt. Nach Ende des Videos wird automatisch die Scene des Startraumes gesetzt. In diesem Startraum kann man sich drei Mini-Spiele aussuchen, wo für jedes Spiel dann auch eine eigene Scene gesetzt wird. Ab dem Startraum kann man mittels der Taste ESC in das Pause Menü gelange und von dort kann man in das Hauptmenü, aber auch in die Optionen, sowie zurück zur vorherigen Scene den Mini-Spielen.

 

Entwurf Startraum

In der Abbildung Entwurf Startraum sieht man unseren Entwurf für den Anfangsraum, in dem man die Minispiele sucht. Die weiße Person soll dabei den Spieler darstellen. Die hellblauen Objekte sind dabei mögliche Hindernisse bzw. beinhalten möglicherweise ein Minispiel. Mit diesen kann man dann interagieren und dabei sieht man dann ob es ein Minispielenthält oder nicht. Die Minispiele sind hier mit den weißblauen Rechtecken dargestellt. Oben links in der Ecke sieht man seine aktuelle Lebenspunkte.

Klassendiagramm

Klassendiagramm Projekt 2040

Veröffentlichung

Da es eines unserer Hauptziele war das Spiel am Ende zu veröffentliche, haben wir uns beschlossen, dass wir das GitHub Repository am Projektende öffentlich stellen werden. Dazu haben wir auch eine Website erstellt, wo man das Spiel per Installer herunterladen kann sich aber auch den Sourcecode anschauen könnte. Auf dieser Website wird auch die JavaDoc hochgeladen so kann man überall die Java Dokumentation lesen, um den Code besser zu verstehen. Denn wir haben, während wir das Projekt umgesetzt haben uns auch die Zeit genommen den größten Teil des Codes mittels JavaDoc zu dokumentieren. Das macht es natürlich Fremden einfach den Code zu verstehen.

 

  

  

Tags