Coding Stube
← Alle Projekte

Abgeschlossen · April - Mai

Shadowloot

Ein JavaFX basiertes Text/Click Game mit Fokus auf RPG Elemente

  • Java
  • JavaFX
  • MariaDB
ShadowLootTitle

Highlights

  • SQL-Abfragen, Enums, JavaFX, Abstrakte Klassen und objektorientierte Grundlagen praktisch vertieft

Shadowloot ist ein textbasiertes JavaFX-Spiel, das sich an klassischen RPGs und Dungeon-Crawlern orientiert. Das Projekt verbindet Account- und Charakterverwaltung mit einer zufallsbasierten Spiellogik, einem Shopsystem und administrativen Funktionen.

Der Backend-Code und die Spiellogik wurden überwiegend von mir entwickelt. Bei der Gestaltung und Umsetzung des Frontends habe ich unterstützend mit KI gearbeitet. Im Folgenden stelle ich einige der wichtigsten Funktionen vor.

Registrierung und Anmeldung

Nach dem Start landet der Spieler zunächst auf der Login-Seite. Dort kann er sich mit einem bestehenden Account anmelden oder direkt einen neuen Account erstellen.

LoginPage

RegisterPage

Account- und Charakterverwaltung

Nach der Anmeldung öffnet sich die zentrale Übersichtsseite. Von hier aus lassen sich die hinterlegte E-Mail-Adresse, das Passwort und der Benutzername ändern. Außerdem können die eigenen Account- und Charakterinformationen eingesehen oder der aktuelle Charakter zurückgesetzt werden.

Spieler mit den entsprechenden Berechtigungen erhalten zusätzlich Zugriff auf einen Administrationsbereich. Dort können sowohl Accounts als auch Charaktere verwaltet werden.

LandingPage

AdminAccount

AdminChar

Spielübersicht und Shop

Über den Button „Spielen“ gelangt der Spieler zur Hauptansicht. Dort kann er den Dungeon betreten oder den Shop besuchen. Im Shop lassen sich mit dem erspielten Gold verschiedene Gegenstände erwerben.

Zusätzlich gibt es eine Rangliste sowie weitere Möglichkeiten zur Verwaltung des eigenen Charakters.

PlayView

ShopView

RankingView

Der Dungeon

Der Dungeon bildet den eigentlichen Kern des Spiels. Beim Betreten wartet zunächst immer ein Monster. Danach wird für jede weitere Ebene zufällig bestimmt, welches Ereignis eintritt.

Mögliche Begegnungen sind unter anderem:

  • normale Gegner
  • leere Räume
  • Fallen
  • Schatzkisten
  • Bosse
  • Lootgoblins

PlayViewMobDead

PlayViewChest

Bosse besitzen mehr Lebenspunkte, verursachen höheren Schaden und belohnen den Spieler entsprechend besser. Lootgoblins funktionieren etwas anders: Sie können mit einer bestimmten Wahrscheinlichkeit Gegenstände fallen lassen, aber auch vor dem Spieler fliehen.

PlayViewBoss

Rückblick auf das Projekt

Shadowloot ist ein vergleichsweise kompaktes Projekt, in das ungefähr 30 bis 40 Arbeitsstunden geflossen sind. Während der Entwicklung habe ich regelmäßig neue Lösungswege entdeckt, bestehende Funktionen überarbeitet und mein Verständnis für objektorientierte Programmierung weiter vertieft.

Das Projekt ist während meiner Umschulung entstanden. Zu dieser Zeit habe ich beinahe täglich neue Methoden, Entwurfsmuster und Möglichkeiten kennengelernt, mit denen ich bereits geschriebenen Code besser hätte strukturieren können. Genau das macht Shadowloot für mich zu einem interessanten Zwischenstand meiner Entwicklung.

Warum ist der Quellcode nicht auf GitHub?

Der aktuelle Code bildet nicht mehr den Stand ab, auf dem ich heute entwickle. Viele Bereiche würde ich inzwischen anders strukturieren, stärker voneinander trennen und an einigen Stellen performanter umsetzen.

Anstatt ein älteres Projekt lediglich aufzuräumen, möchte ich die gewonnenen Erfahrungen lieber in kommende Anwendungen einfließen lassen. Shadowloot bleibt deshalb vorerst ein privates Projekt – und gleichzeitig ein ziemlich guter Beleg dafür, wie viel man innerhalb kurzer Zeit dazulernen kann.

CodeView

Fazit

Was ich aus dem Projekt mitgenommen habe

  • JavaFX erstmals bewusster für eine grafische Oberfläche eingesetzt
  • Abstrakte Klassen und Interfaces gezielter in die Architektur eingebunden
  • Ein deutlich besseres Verständnis für Enums entwickelt
  • Gelernt, größere Softwareprojekte früher zu planen und sauberer zu strukturieren