Skip to content

Commit 4768deb

Browse files
committed
Merge world expansion phase1
2 parents a6f074f + 84d2725 commit 4768deb

102 files changed

Lines changed: 3398 additions & 91 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ These are persistent preferences for Codex agents working in this repository.
1919
- OpenRouter key is available locally via `OPENROUTER_API_KEY` (exported in `~/.zshenv`, sourced from 1Password item `OPENROUTER_AGENTS`).
2020
- Postgres CLI (psql) is not installed; use Prisma/Node scripts for DB inspection until installed.
2121

22+
- ImageMagick (`magick`) is installed (`/opt/homebrew/bin/magick`) and used for trimming/resizing pixel-art asset PNGs.
23+
2224
## Skill Inventory Additions
2325

2426
- Global skill `session-self-update` is installed at `/Users/omisverycool/.codex/skills/session-self-update`.
@@ -44,3 +46,9 @@ These are persistent preferences for Codex agents working in this repository.
4446
- Use `npm run dev:perf:world-state` to baseline `/api/world-state` latency (hot/cold + parallel) and catch perf regressions.
4547
- Dev-only synthetic load mode: /?synth_agents=<n>&synth_status=<0..1>&synth_party=<0..1>&synth_only=1&... (wired through SpectatorShell and /api/world-state)
4648
- Headless render perf harness: npm run dev:perf:map-render (samples requestAnimationFrame deltas under synthetic load)
49+
50+
- Biome decor overlay PNGs live in `public/assets/decor/` and are loaded best-effort by `src/components/spectator/WorldMap.tsx` (fallback: procedural textures).
51+
52+
- Demo populater supports `DEMO_LOCATIONS` (defaults to 24 on large worlds) to spread agents across more POIs.
53+
54+
- Generic POI icon PNGs live in `public/assets/poi/icon-*.png` and override the procedural fallback when present.

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ Then open `http://localhost:3000`.
2727
## Useful scripts
2828

2929
- `npm run dev:seed` — idempotent seed (locations, connections, items)
30+
- Default seeds the large world (`data/world/world-v1-large.json`).
31+
- Use `SEED_WORLD=small npm run dev:seed` for a tiny 5-POI world.
32+
- `npm run dev:world:gen` — regenerate deterministic world datasets in `data/world/`
3033
- `npm run dev:demo -- --party` — creates demo agents + starts quests
3134
- `npm run dev:smoke [--party] [--guild]` — API smoke runner against `BASE_URL` (default `http://localhost:3000`)
3235
- `npm run dev:llm` — OpenRouter smoke test (requires `OPENROUTER_API_KEY`)

ROADMAP.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,3 +153,41 @@ Latest assessment (2026-02-05):
153153
- Depends on: core backend flows
154154
- Health checks + admin endpoints (optional) (**medium**)
155155
- Depends on: deployment target
156+
157+
---
158+
159+
## Phase 5 — World Expansion & Visual Content (V1 “Large World” Pass)
160+
161+
Goal: move from a 5-POI demo map to a **kingdom-scale world** with diverse biomes/POIs and enough visual anchors to feel like “Majesty structure + cozy Stardew pixel vibe”.
162+
163+
Source of truth:
164+
- `docs/plans/2026-02-05-clawcraft-v1-updated.md` (target: ~100 POIs, location taxonomy, quest refresh cadence)
165+
- `docs/plans/2026-02-05-clawcraft-design-technical-specification.md` (visual direction + asset pipeline approach)
166+
- `docs/plans/2026-02-04-visual-assets-pipeline.md` (AI asset + background removal workflow)
167+
168+
### 5.1 World data + seeding (large POI graph)
169+
- Add deterministic world generator + committed world dataset (**medium**)
170+
- Deliverable:
171+
- `scripts/dev/generate-world.mjs`
172+
- `data/world/world-v1-large.json` (>= 100 POIs)
173+
- `data/world/world-v1-small.json` (fast dev fallback)
174+
- Wire `npm run dev:seed` to seed either small or large world (**simple**)
175+
- Acceptance: `SEED_WORLD=large npm run dev:seed` creates 100+ `Location`s + a connected `LocationConnection` graph.
176+
177+
### 5.2 Map readability at scale (100+ POIs)
178+
- Tune label declutter thresholds for large-world zoom levels (**medium**)
179+
- Acceptance: at default fit zoom, **major cities + landmarks** are visible; towns/dungeons appear as you zoom in.
180+
- Add generic POI icon set per `LocationType` as a placeholder until unique sprites exist (**medium**)
181+
- Acceptance: every POI renders with a stable icon even if it doesn’t have a bespoke sprite.
182+
183+
### 5.3 Biomes + art pipeline (incremental)
184+
- Expand biome tags used in the seeded world (plains/forest/desert/snow/mountain/ruins/water + cave dungeons) (**simple**)
185+
- Acceptance: seeded POIs are clustered so biome patches overlap into readable regions.
186+
- Replace procedural placeholder overlays with real sprites over time using the pipeline docs (**complex**)
187+
- Deliverable: a growing set of transparent PNG overlays in `public/assets/` with consistent style.
188+
189+
### 5.4 Demo + load harness updates
190+
- Update demo population scripts to distribute agents across more POIs (**simple**)
191+
- Acceptance: `npm run dev:demo -- --party` creates visible activity in multiple biomes.
192+
- Keep performance harnesses up to date under large-world conditions (**medium**)
193+
- Acceptance: `/api/world-state?synth_agents=2000&synth_only=1` remains interactive; record baselines in `docs/plans/*`.

0 commit comments

Comments
 (0)