Dackelhündin Daisy blickt bei Nacht auf Grauholz

Python · Storytelling · Game Systems

Das Abenteuer
des Rache-Dackels.

Eine vollständige Text-RPG-Kampagne über Daisy, ihre Gefährten und den Weg zu Hubertus Snickers – spielbar im Terminal und in einer illustrierten Desktop-Oberfläche.

StatusKampagne vollständig spielbar
RolleEigenprojekt · Konzeption & Entwicklung
RepositoryÖffentlich auf GitHub ↗
Verifikation76/76 Tests · 0 Ruff-Befunde
19verbundene Orte
9wiederholbare Dungeons
3mögliche Enden
76automatisierte Tests

Die Idee

Eine Geschichte, die zum System wurde.

Daisy begann als klassisches Textadventure. Mit jeder neuen Figur, Entscheidung und Region wurde klar: Die Geschichte braucht Regeln, die wachsen können, ohne dass jeder neue Pfad den bestehenden Ablauf zerlegt.

Heute sind Welt, Storyknoten, Bedingungen und Effekte in JSON beschrieben. Die Python-Engine wertet sie aus; Terminal und Desktop-GUI präsentieren denselben Spielzustand. Neue Inhalte bleiben dadurch von der Darstellung getrennt.

01 · STORY ENGINE

Entscheidungen mit Folgen

Bedingte Optionen reagieren auf Quests, Party, Level, Freundschaft und gesetzte Story-Flags. Daisys letzte Entscheidung führt zu drei unterschiedlichen Enden.

02 · KAMPFSYSTEM

Mehr als Trefferpunkte

Rundenkämpfe verbinden skalierende Gegnergruppen mit Lähmung, Schwächung, Vergiftung, Team-Boni und eigenen Bossphasen.

03 · PERSISTENZ

Spielstände mit Rettungsleine

Drei manuelle Slots, Autosave, Vorschau, Versionsnummern und atomare Schreibvorgänge schützen den Fortschritt. Der vorherige Stand bleibt als Backup erhalten.

Die Kampagne

Von Grauholz bis zum Thronsaal.

Daisy reist durch eine verbundene Welt, rekrutiert Leika, Bruno, Jack und Leo und öffnet neue Wege durch Fortschritt, Freundschaft und gemeinsam bestandene Kämpfe.

GrauholzFinsterwaldWater-CityWolkenstadtFeuerreichThronsaal

Architektur

Ein Kern, zwei Oberflächen.

story.py, combat.py und der gemeinsame Spielzustand setzen die Regeln um. Die Terminal-Ausgabe und die Desktop-GUI bleiben Präsentationsschichten und greifen auf dieselbe Spiellogik zu.

Welt- und Gegnerdaten liegen editierbar außerhalb des Codes. Inventare behalten aus Kompatibilitätsgründen ihr einfaches Format, während optionale Metadaten und Ausrüstung das System erweitern.

CONTENTWelt & StoryJSON
GAME CORERegeln & ZustandPython
INTERFACESTerminal & GUITkinter

Verifizierter Stand

Die Kampagne ist vollständig spielbar.

  • 76/76Tests lokal bestanden
  • 0Ruff-Befunde
  • Python 3.10+ohne Laufzeit-Abhängigkeiten
  • CLI + GUIauf demselben Kern

Unter der Geschichte

Content wird zu ausführbaren Regeln.

Die Engine trennt erzählerische Inhalte von technischem Verhalten. Orte, Begegnungen und Storyknoten beschreiben, was passieren kann; der gemeinsame Spielzustand entscheidet, was in diesem Moment tatsächlich verfügbar ist.

CONTENT MODEL

Daten statt hart codierter Wege

JSON-Dateien halten Welt, Gegner und Storyelemente editierbar. Neue Inhalte müssen dadurch nicht in Terminal- oder GUI-Code eingebaut werden.

STATE MACHINE

Eine Entscheidung verändert die Welt

Queststatus, Party, Level, Freundschaft und Story-Flags wirken als Bedingungen. Effekte schreiben kontrolliert in denselben Spielzustand zurück.

COMPATIBILITY

Speicherstände dürfen altern

Versionierte Saves, Vorschau, atomare Schreibvorgänge und ein Backup des vorherigen Standes schützen längere Kampagnen vor Datenverlust.

QUALITY

Regeln werden automatisiert geprüft

76 Tests decken zentrale Pfade, Zustandsübergänge und das Zusammenspiel der Systeme ab.

Technischer Lerngewinn

Daisy war der Schritt von einem linearen Skript zu einer kleinen datengetriebenen Engine. Eine wachsende Geschichte braucht dieselbe saubere Trennung von Domäne, Zustand und Oberfläche wie klassische Anwendungssoftware.