Who? · Devlog

Tag 3 · Donnerstag, 30. April 2026

Tag 3 — Karten, Antiquar, Anselm hinter der Bar

Aus dem Spiel wird ein Salon

cantinacardsspriteskonstanzdeploy

Spieler-Sicht

Heute ist die Welt richtig erwachsen geworden. Karten sind ein System: Personen, Orte, Items, alle als Sammelobjekte mit eigenem Loadout-Schrein. Du kannst sie anlegen, vergleichen, recyceln.

Antiquar + Anselm

Der Antiquar sitzt im Cantina-Raum und nimmt dir alte Karten ab — gegen Tinte. Mit Tinte kaufst du gezielter, statt blind aus Truhen zu ziehen.

Anselm steht jetzt hinter der Bar. Drink-Karte mit Lieblingen jeder erratenen Figur, plus Briefe und Gerüchte aus der Welt jenseits der Tür.

Galerie

Eine versteckte RosterScene zeigt alle bisher freigespielten Charaktere als Sammlung — Pedestale, Lampen, Decken-Gruppen, Boden, Wände. Wie ein kleines Museum hinter einer Tür.

Konstanz wird konkreter

Die Quest hat jetzt eine ganze Pipeline-Architektur dahinter — Recherche, Cast-Tree, Beats. Jan Hus, Cossa, Mladoňovic und ein Schmuggler haben ausformulierte Topic-Bäume. Zweiter Akt steht inhaltlich.

Cantina wächst mit dir

Welt-Größe ist jetzt dynamisch: kleine Welt am Anfang, ploppt mit jedem Schlafen weiter auf. Diskussionstisch erscheint erst ab Stage 2. Türen bleiben relativ zur aktuellen Welt — kein „Rand der Welt"-Bug mehr.

Macher-Sicht

Was heute gebaut wurde

Cards-System V1 in 9 Wellen durchgezogen (docs/CARD_SYSTEM.md): DB-Tabellen für Personen-, Orts- und Item-Karten, Buff-Resolver, Endpoint-Layer, Migration aus games-Tabelle. Antiquar als Tinte-Wirtschaft (Recycle / Pack / Targeted-Buy), LoadoutDialog als Schrein-Picker mit Buff-Vorschau, Archiv-Tab im InventoryDialog, Frontend-API-Client + reactive Store. Place-Cards an Akt-Visit-Hook.

Quest-Pipeline-Architektur (docs/QUEST_ARCHITECTURE.md): sieben Stage-Skills (research → cast → outline → beats → dialogue → script → validate). V1+V2-Validator prüft Reachability, State-Coverage, Source-Coverage. Konstanz hat jetzt research/-Schicht (lore, timeline, dramatis personae, places, glossary, sources) + design/ (16 Beats, 4 Cast-Files).

Cantina-Wachstum als Pattern E. Welt-Größe dynamisch über Stage-Index, Bezugspunkte (Türen, Tische, Bar) relativ zur aktuellen Welt-Bounds berechnet, Stage-Wechsel triggert Scene-Restart statt in-place Update — kürzer, robuster.

Dossier-Audit für 41 Bestand-Charaktere in 5 Wellen abgeschlossen. Die Charaktere haben jetzt vollständige Personality + KnowledgeHorizon- Daten.

Tradeoffs

Stage-Restart statt Live-Update. Beim Schlafen einen kompletten Phaser-Scene-Restart auszulösen klingt erst grob, ist aber sauberer als eine ECS-Diff-Anwendung — weil sich Welt-Größe, Möbel-Positionen und Spawn-Logik gleichzeitig ändern. 200ms Übergang verstecken das Restart.

Place-Cards an Akt-Hook. Ein Ort kommt nur in die Sammlung, wenn der Spieler dort war — getriggert vom Akt-Visit-Endpoint, nicht aus dem Quest-Outline. Macht Sammeln zu einer Aktivität, nicht zu einem Lese-Akt.

Diff-Stats

77 Commits, +31 245 / -1 766. Sprite-Generierung dominiert immer noch (76 %), Karten-System-Code ~30 KB.

Stats

77
Commits
+31245/-1766
Zeilen
1466
Files
4.4 h
Aktiv
Erster Commit
14:43 (Donnerstag)
Letzter Commit
23:37
Spannweite
8.9 Stunden
Aktiv (ohne Pausen > 30min)
4.4 Stunden
Pausen
2
Längster Fokus
2.6 Stunden

Wo wurde gearbeitet

  • 76% apps/web/static/sprites
  • 5% apps/web/src/lib
  • 2% apps/web/quests/konstanz
  • 1% apps/server/src/cards
  • 1% apps/web/static/audio

Commits (77)

Volle Liste aufklappen
  • 63c461f feat(devmode): God-Mode-Toggles + F3-HUD + Shift+\` Scene-Picker
  • 87288e1 feat(sprites): --add-anim Extend-Modus + ID 7/25 Walk auf 8-Richtungen
  • 7db0399 feat(sprites): ID 2 (Tesla) Walk auf 8 Richtungen via --add-anim
  • 77230a1 feat(cantina): Gang-Sektion rechts mit Char-Türen (additiv, Pivot 1/5)
  • 7ef2602 feat(cantina): Items-Carousel raus, Items leben jetzt im Char-Zimmer (Pivot 2/5)
  • 6df86c6 refactor(cantina): Mini-Räume entfernt, Char-Zimmer nur über Gang (Pivot 3/5)
  • e97ca3d feat(sprites): Curie/Cleopatra/Diogenes Walk auf 8 Richtungen
  • 0c4f620 feat(cantina): Trophäenwand + thematische Quadranten weg (Pivot 4/5)
  • 75ce967 feat(cantina): Stimmungs-Layer — Mood-Mix + Deck-Banner (Pivot 5/5)
  • 0e9079b feat(cantina): Pop-In-Reveals für neue Trophy-Slots + Banner
  • 7fee815 feat(cantina): Owner-Critter im Char-Zimmer
  • 1fbccbb feat(cantina): Tiere erst nach CritterArrived sichtbar
  • 2457b6f feat(cantina): NPC-Tagesrhythmus — nachts schlafen die Chars in ihren Zimmern
  • 4d5e17c feat(cantina): NPC-Sichtbarkeit refresht beim Sleep — live Tag/Nacht-Wechsel
  • 23e9cc5 docs(cantina): Status-Update für 10 Pivot-Wellen
  • 9741696 feat(cantina): Hotspot-Pool pro Tagesperiode — NPCs wechseln tagsüber Aktivität
  • 9f527ba feat(cantina): Bay-Reveal live beim Quest-Win — Banner poppt sofort
  • 79916ad feat(cantina): Renown-Tier-Polish — Vorhänge / Tischdecke / Kronleuchter
  • e67760b docs(cantina): Status-Update für Pivot-Welle 11-13
  • 43f8b94 feat(sprites): 38/39/40 Idle + Walk auf 8 Richtungen + frame_count-Validation
  • 81ca9b1 feat(audio): Cantina-Playlist + 8 neue CC0-Tracks, Musik-Seite gruppiert
  • 88e6035 feat(cantina): Cantina wächst räumlich mit Char-Anzahl (Camera + Fog)
  • 1e4e0cd docs(cantina): Status-Update für Welle 14 (räumliches Wachstum)
  • c09e0e3 feat(cards): Welle 1 — Schema + statische Library
  • d54b27c feat(cantina): Animierter Fog-Rückzug beim Aufwachen
  • e87ddd5 feat(cards): Welle 2 — Endpoints, grantCard, Buff-Resolver-Stub
  • 67e3733 feat(cantina): Trophy-Slot ist klickbar — Shortcut ins Char-Zimmer
  • bf8d503 feat(cantina): Renown-Polish live — Pop-In + Toast bei Tier-Übergang
  • b29c38c docs(cantina): Status-Update für Welle 15-17
  • 4b19581 feat(cards): Welle 3 — Personen-Karten + Migration aus games
  • fa853cb feat(sprites): Edison + 38 idle ALL + 95/96/97 walk ALL
  • dc9a515 feat(cards): Welle 4 — Item-Karten + Drop-Hook + Backfill
  • 7735831 feat(cards): Welle 5 — Orts-Karten + Akt-Visit-Endpoint
  • 4a33e38 feat(cards): Welle 6 — Buff-Resolver-Integration
  • 7e260f0 feat(quests): Pipeline-Architektur + 7 Skills + V1+V2-Validator
  • 6246524 feat(konstanz): research/ + design/ Schichten — 6 Recherche-Files, 16 Beats, 4 Cast
  • 6d189fa feat(konstanz): Topic-Trees Hus+Cossa+Mladoňovic+Schmuggler + Akt 2 inhaltlich + Map-Triggers
  • a944603 feat(cantina): Truhen wandern aus Cantina ins Char-Zimmer
  • 6bbaef2 feat(cards): Welle 9 — Antiquar (Tinte-Wirtschaft)
  • 4568115 feat(cantina): RosterScene — versteckte Galerie aller 15 Charaktere
  • 34515b6 feat(cards): Welle 7 — Frontend-API-Client + Reactive Store
  • 70fd6aa feat(cards): Archiv-Tab im InventoryDialog
  • 42f0f42 feat(cards): LoadoutDialog — Schrein-Picker mit Buff-Vorschau
  • d54e36a feat(cards): AntiquarDialog — Recycle / Pack / Targeted-Buy
  • 9a584f7 feat(cantina): RosterScene Polish — Boden, Wände, Pedestale, Lampen, Decken-Gruppen
  • 1162ea2 docs(cards): Status-Update für Wellen 1–11
  • 5aec9f7 feat(cantina): DEMO_FALLBACK raus, demo-Cheat als Ersatz
  • 699b60f docs: Vision-Alignment + Quest-Entry-Pattern + Barkeeper-Plan
  • 12f8473 feat(tavern): Server — Drink-Roster, Briefe-Hub, Gerüchteküche
  • 15ddcc2 feat(cantina): Animus-Tür-Schwelle + Bar-NE-Move + Anselm-UI
  • 1c5d678 feat(sprites): Anselm — PixelLab-Sprite (id 90)
  • c726c44 chore(deploy): gitignore Mac-Mini-Deploy-Doku
  • c7a66c6 feat(cards): Pipeline-Foundation — Architektur, 6 Skills, Knowledge-Graph, 2 Beweise
  • f2e28fe feat(cards): Audit-Welle 1+2 — IDs 1, 3-10 (mit Tesla = 10/10)
  • 16d7cac fix(server): db:migrate lädt .env, Test-User-Seed wird per env gegated
  • f88fa91 feat(cards): Audit-Welle 3 — IDs 11-20 (Triage-Pass)
  • ec2e1fc feat(cantina): Welt-Größe wirklich dynamisch (Pattern E + Variante 2, Welle 1/3)
  • 8f6b1ca feat(cantina): Bar als zentrale Insel + kritische Türen relativ (Welle 2/3)
  • d8545fc feat(cards): Audit-Welle 4 — IDs 21-30 (Triage-Pass)
  • 9a4b3fe feat(cantina): Diskussionstisch relativ + erst ab Stage 2 (Welle 2c-i)
  • 75573f4 feat(cantina): Türen + Polish + Lights + NPC-Sitze relativ (Welle 2c-ii bis 2c-iv)
  • 830c0a7 chore(deploy): commit Mac-Mini-Wrapper-Scripts
  • 8aeb636 feat(cards): Audit-Welle 5 — IDs 31-41 (Bestand komplett: 41/41)
  • 237651c feat(cantina): Stage-Wechsel-Restart beim Sleep (Welle 3/3)
  • 9d6a146 docs(cantina): Status-Update für Welle 18-22 (Pivot + dynamische Welt)
  • 7161065 fix(cantina): hardcoded Möbel-Spawns gated auf volle Welt
  • 2104872 fix(cantina): DailyBearer + Anselm relativ zur dynamischen Welt
  • da5b6cf feat(cantina): Bar-Sitz-Ring + Mystery zur zentralen Bar + Foyer-Marker
  • aea5e6f feat(cards): Persona-Welle + Konfuzius-Duplikat-Aufräumung
  • 3c94bac feat(cantina): Bar 4-seitig + Welt-Stage-Drift-Check (Welle 4+5)
  • 4ce7cb5 feat(cantina): Bar-Deko — Hängelampe + Flaschen + Schildchen
  • 548a05e feat(cantina): Critter-Charme — Hund + Spatzen reagieren auf Spieler (Welle 5/5)
  • c1cceba feat(cantina): NPC-Spawn-Refresh komplett aus gameState (Welle 4/5)
  • cca946c feat(cantina): kinematischer Stage-Wechsel mit Diff-Toast (Welle 1/5)
  • 3d64d40 feat(cantina): Tier 5 Loft-Galerie (Welle 2/5)
  • aaaf783 feat(cantina): programmatische Möbel-Platzhalter pro Char (Welle 3/5)
  • 28be5d1 docs(cantina): Status-Update Welle 23-30
Geschrieben mit Claude Opus 4.7 (1M context) — Hand veredelt