227 lines
11 KiB
Markdown
227 lines
11 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 · **Maus** umsehen · **E** interagieren ·
|
||
**F** folgen · **R** notieren · **J** Journal · **1/2/3** Tempo ·
|
||
**Esc** Maus freigeben.
|
||
|
||
Der Tagesablauf steht im **HUD**: 24 Felder, eines je Stunde, die laufende
|
||
hervorgehoben. Grau heißt unbekannt, gelb „hier stimmt etwas nicht, aber du
|
||
hast es noch nicht benannt", rot ein benannter Blocker, grün ein gebautes
|
||
System. Darunter steht, was gerade läuft.
|
||
In der Traumwelt springt **Leertaste**; auf der Erde steigt sie und **Umschalt**
|
||
lässt sinken.
|
||
|
||
## 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.
|
||
* **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. Beides steht im HUD, bewusst verschieden gezeichnet: der Tag
|
||
als 24-Felder-Streifen, die Momente als Liste mit dem, was gerade aufbricht.
|
||
|
||
**Diagnose und Systeme** — der Kern des Spiels
|
||
|
||
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 ein System 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 mit einem Dorf, das wächst
|
||
|
||
* Fest sind nur drei Dinge: der **Hörsaal der Wege**, der **Dorfplatz** und das
|
||
**Tor zur Erde**. Alles andere entsteht beim Wachsen.
|
||
* **Die Insel beginnt kahl.** Ein Gebäude, kein Bewohner, ein einziger
|
||
gelehrter Weg — und den bringt dein Wesen schon mit. Am Brett hängt also vom
|
||
ersten Moment an eine Mission.
|
||
* Jeder erfüllte Traum bringt einen Bewohner mit seinem Haus. **In jedem Haus
|
||
wird ein Weg gelehrt, den es vorher nirgends gab.**
|
||
* Das Haus setzt sich nicht auf einen Ring, sondern **sucht sich seinen Platz**:
|
||
gewertet werden Nachbarschaft, Nähe zu einem Weg, Nähe zum Dorfplatz und wie
|
||
leer die Himmelsrichtung noch ist. Der beste von 64 Probepunkten gewinnt.
|
||
* Der Weg dorthin **dockt an der nächsten Stelle des bestehenden Netzes an** —
|
||
nicht an der Dorfmitte. Kreuzt die Gerade ein Haus, sucht ein Raster einen Weg
|
||
darum herum. Liegt ein Knoten nah, ist aber im Netz weit weg, kommt eine
|
||
Abkürzung dazu. Daraus entstehen Gabeln, Schleifen und krumme Gassen.
|
||
* Die Insel dehnt sich mit, Bäume füllen nach Poisson-Regel die freie Fläche.
|
||
Vorbild: Emilien et al., *Procedural Generation of Villages* (2012).
|
||
* **Schwarzes Brett** am Dorfplatz — hier hängen die Menschen aus, die nicht
|
||
weiterkommen. **Ausgehängt wird nur, wem du mit dem, was du kannst, auch
|
||
helfen kannst:** mindestens eine gelernte Technik muss ihr Thema treffen und
|
||
in ihrem Tag einen Moment dafür finden. Die anderen bleiben verdeckt, bis du
|
||
den passenden Weg gelernt hast.
|
||
|
||
**Tempo** — **1**, **2**, **3**
|
||
|
||
Drei Stufen wie in Die Sims. Die Stufe ist nicht der Faktor:
|
||
|
||
Stufe 1 1× ein Tag in 6:00 Minuten
|
||
Stufe 2 3× ein Tag in 2:00 Minuten
|
||
Stufe 3 7× ein Tag in 0:51 Minuten
|
||
|
||
Über der Nacht des Menschen, dem du gerade hilfst, springt das Spiel von allein
|
||
auf Stufe 3 und fällt beim Aufwachen auf deine zurück — Schlafende erreicht
|
||
ohnehin keine Technik. Beschleunigt wird die ganze Simulation samt Cooldown und
|
||
Abwehr. Am Ausgang ändert sich dadurch nichts, nur an der Wartezeit.
|
||
|
||
**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.
|
||
* Du bist ein unsichtbarer Geist, schwebst und gehst durch Wände.
|
||
* **F** hängt dich an einen Menschen: du treibst hinter ihm her, durch Türen
|
||
und über den ganzen Tag, ohne ihm nachlaufen zu müssen. **F** noch einmal —
|
||
oder ein Schritt mit **WASD** — lässt ihn wieder los.
|
||
* **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.
|
||
* 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, Tätigkeiten (beide Welten)
|
||
scripts/bewohner.gd Bewohner mit Tagesablauf und Slots
|
||
scripts/main.gd Weltenwechsel, Fokus, Interaktion
|
||
scripts/player.gd Läufer in der Traumwelt, Geist auf der Erde, Verfolgung
|
||
scripts/dream_world.gd Insel mit Dorf
|
||
scripts/earth_world.gd Stadt mit Tag-Nacht-Wechsel
|
||
scripts/ursachen.gd Ursachen, blockierende Tätigkeiten, Belohnungen
|
||
scripts/probleme.gd Psychische Probleme und die Momente, in denen sie aufbrechen
|
||
scripts/ui.gd HUD, Journal, Tagesablauf, Hörsaal, Brett, Panels
|
||
scripts/prims.gd Bausteine aus Primitiven
|
||
|
||
## Prüfen
|
||
|
||
godot --headless --path . tests/verify.tscn # Prüfungen der Spiellogik
|
||
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.
|