304 lines
16 KiB
Markdown
304 lines
16 KiB
Markdown
# 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 flacher Klotz da, ebenfalls nur Erdgeschoss.
|
||
* 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 Schild, und
|
||
alle Wände werden zu kniehohen Stümpfen gekürzt, wie bei den Sims. Nichts
|
||
wird durchsichtig; bei drei Meter hohen Häusern verdeckt kein Nachbar den
|
||
Blick.
|
||
* **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.
|