16 KiB
Traumwandler
Ein 3D-Spiel in Godot 4.7 (GDScript). Alle Objekte bestehen aus Godot-Primitiven (Box, Zylinder, Kugel, Kapsel) — kein externes Asset.
Du bist ein Wesen aus der Traumwelt. Menschen tragen Träume mit sich herum, die sie allein nicht bewegt bekommen. Du wirst zu ihnen geschickt.
Starten
godot --path .
Steuerung: WASD bewegen · Q Kamera drehen · Mausrad Zoom · Klick auf einen Menschen folgen · E interagieren · F folgen · R notieren · J Journal · 1/2/3 Tempo.
Die Kamera ist fest wie in Diablo: schräg von oben, diagonal über den Bezirk, zwei Zoomstufen, Drehen in 90°-Schritten. Die Maus ist immer frei. Menschen sind klein, Häuser groß — die Stadt soll groß wirken und der Geist entrückt.
Die Oberfläche ist um den Tag gebaut. Unten über die ganze Breite liegt die Zeitleiste: 24 Felder, eines je Stunde, die laufende steht heraus. Grau heißt unbekannt, gelb „hier stimmt etwas nicht, noch nicht benannt", rot ein benannter Blocker, grün ein gebautes System. Links darüber die Ursachen, rechts die Momente; bricht einer auf, pulsiert die laufende Stunde und rechts läuft die Uhr. Ein Klick auf eine Stunde öffnet ihre Karte direkt darüber — was passiert, Auslöser, Belohnung, welche Technik passt.
Das Journal (J) ist eine Seitenleiste rechts, die Welt bleibt sichtbar: Techniken und Missionen als Karten mit Farbkante, Details auf Klick. Karten sind Daten, Knöpfe sind Aktionen — es gibt je Panel höchstens eine hervorgehobene. Fenster in der Mitte gibt es nur an Orten: Brett, Hörsaal, Aushang schreiben. Esc geht eine Ebene zurück, nicht gleich ganz zu.
Oben links stehen nur Zeit und Mission. Alles Weitere steht im Journal. In der Traumwelt springt Leertaste. Auf der Erde gibt es keinen Sprung: der Geist geht zu Fuß.
Spielschleife
Journal (Taste J, in beiden Welten dabei)
Das Journal führt Buch — es lehrt und vergibt nichts.
- Techniken — was du gelernt hast, mit Stufe und Erfahrung. Besser werden sie nur draußen.
- Akten — je Mensch mit Mission ein Blatt Papier: Person und Traum, was im Weg steht, der Befund aus Spuren und Beobachtungen, der Tag, die Notizen mit Uhrzeit, ein Stempel, wenn der Traum erfüllt ist. Und der Knopf Hinfahren, der dich vor seine Tür setzt. Keine Patientenakte: die Leute sind nicht krank, sie haben Gewohnheiten.
- Missionen — die Menschen, für die du dich entschieden hast, jeweils mit ihrem Tagesablauf: der Tag von 0 bis 23 Uhr, in Abschnitte geteilt. Es gibt keine Wochentage; jeder Tag ist derselbe. Zu Beginn steht in jedem Abschnitt nur ein Strich — der Tag ist leer, bis du dabei warst.
Zwei Ebenen — Gewohnheiten und Momente
Ein Mensch wird von zwei verschiedenen Dingen aufgehalten, und beide brauchen eine andere Art zu spielen.
Gewohnheiten sitzen im Tagesablauf planend laufen ohne dich weiter
Probleme sitzen in Momenten reagierend du musst dabei sein
Eine Gewohnheit hat einen Platz im Tag: um zehn räumt sie auf, statt anzufangen. Du findest den Platz, pflanzt eine Ersatzhandlung ein, und sie läuft von allein. Ein psychisches Problem hat keinen Platz — es bricht in Situationen auf, wann es will. Solange eine läuft, kommt der Traum nicht voran; du kannst sie aussitzen oder mit der passenden Technik beenden.
Dreimal die richtige Technik im richtigen Moment, und das Problem ist überwunden — dieser Moment kommt nicht wieder. Bis dahin umgehst du ihn jedes Mal aufs Neue.
Eigene Menschen — Aushang schreiben
Am Schwarzen Brett lässt sich ein Mensch selbst schreiben: Name, Alter, Beruf, Traum, Geschichte — und Wörter. Fünfundfünfzig Alltagswörter, wie Leute über sich reden: aufschiebend, konfliktscheu, nachtaktiv, hadert mit sich. Mindestens sechs. Sie sind das Einzige, was die Mechanik liest: aus ihnen schließt das Spiel die Ursachen, die Blocker im Tag, die Klemmen und acht Verhaltenswerte — wie leicht ein System sich setzen lässt, wie gut es trägt, wie stark die Abwehr ist, wie oft Momente aufbrechen, wie lange sie dauern, wie schnell der Traum von sich aus vorankommt, wie gut soziale Techniken greifen, wie leicht man ihm ansieht, was dahintersteckt. Ein Wort zieht an mehreren Stellen, oft in beide Richtungen: perfektionistisch lässt Systeme besser tragen und den Anfang schwerer fallen.
Der Beruf gibt den Tagestyp: Heimarbeit, Frühschicht, Büro, Studium,
Werkstatt. Jeder eigene Mensch hat so einen eigenen Alltag, in dem seine
Blocker an ihren Tageszeiten stehen — und jede seiner Ursachen mindestens
einmal, sonst wäre sie nie zu erkennen. Ein Zufall-Knopf füllt das Formular
so, wie der Generator Menschen macht. Eigene Aushänge liegen unter
user://aushaenge.cfg, überleben den Neustart und ersetzen die letzten
erzeugten Einwohner; ein Aushang lässt sich wieder abnehmen.
Diagnose und Routinen — der Kern des Spiels (im Code heißen Routinen „Systeme“)
Ein Traum scheitert an Ursachen: kein Anfang, keine Zeit, keine Kraft, kein Halt, kein Grund. Jeder Mensch hat zwei bis drei davon, nie alle. Die stehen nirgends — du findest sie nur, indem du dabeistehst.
Dabeisein füllt den Abschnitt im Ablauf: du siehst, dass sie um zehn aufräumt. Ob das ihren Traum aufhält, entscheidest du — mit R. Bis dahin steht dort ein Fragezeichen.
Sichtbar wird eine Ursache an den Tätigkeiten, die sie hervorbringt. Wer nie in Gang kommt, räumt auf statt anzufangen, recherchiert oder schreibt Später-Listen. Wer keine Kraft hat, schaut abends eine Serie und bleibt danach wach. Jede dieser Tätigkeiten hat einen Auslöser und eine Belohnung.
Gegen eine erkannte Ursache baust du eine Routine in den Tag:
Einführen Ein System, das fehlt — in einen freien Slot.
Ändern Eine Tätigkeit, die schadet — mit gleicher Belohnung ersetzt.
Liefert die Ersatzhandlung dieselbe Belohnung, hält sie besser. Das ist Duhiggs goldene Regel: Auslöser und Belohnung bleiben, nur die Handlung dazwischen wird getauscht. Manche Techniken ersetzen nichts, sie nehmen dem Verhalten den Auslöser.
Der Fortschritt ist keine Kette von Einzeltreffern, sondern ein Tempo:
Tempo je Tag = Grundrate × Faktor je Ursache
nichts gelöst 4 % je Tag → der Traum steht praktisch still
eine gelöst 18 % je Tag → er kommt voran
alle gelöst 61 % je Tag → in gut zwei Tagen erfüllt
Ungelöste Ursachen bremsen multiplikativ. Zwei Bremsen sind viel schlimmer als eine — deshalb lohnt es, alle zu finden.
So laufen die zwei Schleifen:
Techniken lernen → Systeme bauen → Traum läuft schneller
Träume erfüllen → Dorf wächst → neue Wege entdecken
Ein erfüllter Traum bringt ein Wesen mit seinem Haus ins Dorf, und in diesem Haus wird ein neuer Weg gelehrt. Zu Beginn kennt das Dorf nur einen.
Nach jedem Einsatz braucht eine Technik 30 Sekunden Ruhe. Ein Einbau gelingt nicht immer — Übung entscheidet.
Traumwelt — eine schwebende Insel, die ein Hügel ist
- Fest sind nur drei Dinge: der Hörsaal der Wege, der Dorfplatz um den leuchtenden Traumbaum und das Tor zur Erde. Alles andere entsteht beim Wachsen.
- Die Insel beginnt kahl und eben. Ab dem Dorfplatz steigt sie an; jeder erfüllte Traum bringt einen Bewohner mit seinem Haus, und wer später kommt, wohnt weiter außen und damit höher. Das Dorf wächst den Hügel hinauf — vom Platz aus sieht man, wie weit man gekommen ist.
- Jedes Haus steht auf einer Terrasse in Höhe seiner Tür, die als Böschung in den Hang ausläuft. Dach, Laterne an der Tür, Licht innen. Die Wege folgen dem Hang und tragen Laternen. Spieler und Bewohner laufen auf dem Boden, den ein Höhenfeld trägt.
- Häuser suchen sich ihren Platz selbst — mit Nachbarn, Weganschluss und dem Dorfplatz in erträglicher Nähe — und meiden das Tor. Ein Weg führt nie durch ein Haus; findet die Suche keinen, wird feiner gesucht und notfalls woanders angedockt.
- Die Wesen helfen. Jeder erfüllte Traum bringt ein Wesen ins Dorf, und es trägt, aus wessen Traum es kam. Sprich es an (E): es flüstert, was in der Wohnung des Menschen liegt, um den es gerade geht — eine Spur, ohne dass du hingehen musst.
- Schwarzes Brett am Dorfplatz — hier hängen die Menschen aus, die nicht weiterkommen. Mission annehmen.
Erde — ein Stadtbezirk nach japanischem Vorbild
- Arterien in einem groben, leicht versetzten Raster spannen Blöcke auf. Am Blockrand stehen die Häuser direkt an der Straße, ohne Vorgarten. Ins Blockinnere führt eine schmale Sackgasse — roji —, an der die hinteren Parzellen hängen. Der mittlere Block bleibt Park.
- Hier wächst nichts. Alle 16 Menschen sind von Anfang an da und leben ihren Tag: schlafen, arbeiten, grübeln, essen, spazieren. Wer wo wohnt, arbeitet in der Nähe; das Café liegt in der Mitte.
- Wege kommen vom Navigationsnetz. Beim ersten Betreten wird aus allen Kollisionsformen ein Navigationsnetz gebacken (unter einer Sekunde): Straßen, Türlücken, Möbel, Klötze — auf der Insel genauso. Menschen und der Geist fragen es nach Pfaden; Türen und Treppen finden sie von allein. Das Straßennetz zeichnet nur noch die Wege.
- Beide Welten bleiben bestehen. Wer aus dem Traum zurückkehrt, findet dieselbe Stadt; die Menschen haben derweil ihren Tag weitergelebt. Jede Welt liegt auf ihrer eigenen Kollisionsebene mit eigener Navigationskarte.
- Passanten. Zwölf Leute ohne Geschichte laufen stündlich zu einer anderen Straßenecke oder in den Park: kein Name, kein Schild, keine Mission, nur damit die Straßen nicht leer sind.
- Die Stadt ist einstöckig. Wohnhäuser und Sonderbauten sind geschlossene Häuser: ein Raum mit Tür, Fenstern, Möbeln und den Spuren seines Bewohners. Alles andere steht als Klotz da, unterschiedlich hoch, damit die Stadt eine Silhouette hat.
- Du bist ein unsichtbarer Geist, der eine Handbreit über dem Boden schwebt, sich aber bewegt wie ein Mensch: Wände halten, Türen sind die Wege, Schwerkraft gilt. Bist du in einem Haus, verschwinden Dach und die Wände zur Kamera hin, wie bei den Sims. Ein Haus, das zwischen Kamera und dir steht, wird durchsichtig.
- F oder ein Klick hängt dich an einen Menschen: du gehst seiner Spur nach, durch dieselben Türen und Treppen, so schnell wie nötig — auch bei Tempo 3, wo du ihm zu Fuß nie folgen könntest. Steht er weit weg, planst du den Weg zu ihm über die Straßen, aus deinem Haus heraus und in seines hinein. Bleibst du hängen, zieht die Leine dich nach; wer sich mit gedrückter Taste zwei Sekunden lang nicht rührt, steht wieder auf der Straße. F noch einmal — oder ein Schritt mit WASD — lässt ihn wieder los.
- Schilder tragen nur die Mission, der Fokus, der Verfolgte und wer unter der Maus steht. Sonst überdecken sich im Café acht Namen.
- Spuren in der Wohnung. Von jeder Ursache liegt etwas in der Wohnung des Menschen herum: das Handy auf dem Boden, der vollgeschriebene Kalender, leere Dosen am Bett, ungeöffnete Briefe, der verstaubte Koffer. Geh hinein, sieh hin, E liest die Spur. Die Ursache steht dann im Journal und ihre Stunden werden in der Zeitleiste verdächtig — du weißt, wann du dabei sein musst.
- R notieren. Was den Traum aufhält, steht nirgends geschrieben. Du siehst nur, was der Mensch tut, und musst selbst entscheiden: läuft hier etwas schief? Triffst du den Moment, steht die Ursache im Journal und der Slot wird bebaubar. Greifst du daneben, schaust du sechs Sekunden umsonst hin. Zusehen allein deckt nichts auf — das Bemerken ist der Zug.
- Nah herangehen, E drücken, Technik wählen. Das Panel nennt für jede Technik nur, ob Thema und Moment passen — keine Zahl.
- Wer mit Mission zur Erde reist, landet vor der Tür seines Ziels. Der Fußweg quer durch den Bezirk war Leerlauf; das Gehen zählt in der Wohnung und beim Folgen. Aus der Akte heraus bringt Hinfahren dich jederzeit dorthin.
- Die Säule im Park bringt dich zurück in die Traumwelt.
Ob es gelingt
Ein System einzurichten ist kein Selbstläufer:
20 % + 13 % je Fertigkeitsstufe
− 25 % wenn der Mensch gerade abwehrt
begrenzt auf 5 … 95 %
Gelingt es, steht das System im Slot. Wie gut es trägt, entscheidet nicht der Wurf, sondern die Passung: eine Ersatzhandlung mit derselben Belohnung wie der Blocker — oder eine Technik, die ihm den Auslöser nimmt — hält deutlich besser als eine, die nur den freien Platz füllt.
Im Moment einer Situation wird nicht gewürfelt. Entweder die Technik trifft das Problem oder nicht. Jeder Einsatz sperrt die Technik für 30 Sekunden.
Eine Technik wird nur besser, indem du sie anwendest. Der Lehrort gibt sie dir, mehr nicht: kein Üben, kein Trainieren, keine Währung, die man dagegen eintauschen könnte. Ein Erfolg bringt 2 EP, ein Fehlversuch 1 — auch der zählt.
Aufbau
project.godot Projekt, Autoload `Game`
scenes/main.tscn Einstieg
scripts/game.gd Zustand, Diagnose, Systeme, Momente, Tempo, Uhr (Autoload)
scripts/technique_db.gd die zwölf Techniken mit ihren Hinweisen
scripts/human_db.gd Bezirk: Arterien, Blöcke, roji, Parzellen, Menschen
scripts/dream_db.gd Traumdorf: wachsende Häuser, Wege, Bewohner, Lehrorte
scripts/netz.gd Wegenetz: Knoten, Kanten, Andocken, kürzester Weg
scripts/orte.gd Orte, Türen, Wege, Etagen, Treppenhaus (beide Welten)
scripts/bewohner.gd Bewohner mit Tagesablauf, Hut nach Beruf, Haltung nach Klemme
scripts/main.gd Weltenwechsel, Fokus, Interaktion
scripts/player.gd Geist: feste Kamera, Schwerkraft, Spur-Leine, Schleier, Funken
scripts/dream_world.gd Insel mit Dorf
scripts/earth_world.gd Stadt mit Stockwerken, Treppen, Etagenschnitt, Tag-Nacht-Wechsel
scripts/ursachen.gd Ursachen, blockierende Tätigkeiten, Belohnungen
scripts/probleme.gd Psychische Probleme und die Momente, in denen sie aufbrechen
scripts/woerter.gd Alltagswörter und was das Spiel daraus schließt
scripts/aushaenge.gd Eigene Aushänge: speichern, laden, prüfen
scripts/ui.gd HUD, Journal, Tagesablauf, Hörsaal, Brett, Panels
scripts/prims.gd Bausteine aus Primitiven, Etagenschnitt
Prüfen
tests/run.sh # Parse-Vorlauf, dann die ganze Suite (Zeitraffer 8×)
tests/run.sh schnell # ohne die langen Simulationen, für den Loop
Der Parse-Vorlauf lädt nur alle Skripte: ein Parse-Fehler ließe die Suite
sonst bis zum Timeout hängen. Die Suite läuft mit Engine.time_scale, dazu
misst sie jeden Abschnitt und nennt am Ende die langsamsten. Jede ERROR:-
Zeile im Log lässt den Lauf durchfallen.
Mit Display laufen zusätzlich der Rauchtest (das echte Spiel samt eigener Aushänge-Datei, ein paar Sekunden spielen, Log muss sauber sein) und die Flimmer-Probe (stehende Szene, Kamera um Millimeter gerückt, Bilder verglichen: deckungsgleiche Flächen fallen so auf). Der Zufallslauf in der Suite läuft 90 Sekunden kreuz und quer durch die Stadt und prüft, dass der Geist nie hängen bleibt, nie unter den Boden und nie über die Dächer gerät. godot --path . tests/shots.tscn # 28 Screenshots nach user://shots/
verify fährt das echte Spiel: leeres Traumdorf, einziehende Wesen mit ihren
Tagesabläufen, gewachsenes Dorf und erzeugter Bezirk,
Häuser betreten, Journal in beiden Welten, im Hörsaal lernen,
Verbessern allein durchs Anwenden, Mission am Schwarzen Brett annehmen,
Ursachen benennen, Systeme bauen, Momente abfangen, Probleme überwinden,
Tempo messen, zur Erde reisen,
Tagesabläufe über einen ganzen Tag, Wirkung der Technikwahl, Cooldown,
verdeckte Erfolgschance, keine Passungshinweise,
Tempo und Nachtsprung,
nur lösbare Aushänge, Mission abschließen,
Insel wachsen lassen, Tastensteuerung. Beendet sich mit Code 1, wenn etwas
fehlt.
Mehrere Prüfungen messen statt zu behaupten. Über 24 Ausbaustufen darf sich kein erzeugtes Gebäude mit einem anderen berühren und keines über den Inselrand ragen; jeder Weg eines Bewohners muss in sein Zeitfenster passen — auch in einem Dorf mit 24 Häusern und einer Stadt mit 27 Menschen. Und der erste Traum muss mit dem einen Startweg allein zu schaffen sein: über fünf Zufallsläufe vier bis acht Tage, ohne dass der Spieler eingreift. Ohne das hinge Loop 2 fest, denn ohne ersten Traum gibt es keine zweite Technik.