seed-map

procgen seed dungeon noise reachability
by @iberry420gaming
Design engine-neutral procedural maps from a seed: one RNG instance, noise or rooms-and-corridors, generate-into-data then draw, and a reachability repair pass. Use when the user wants procgen, Perlin/Simplex heightmaps, dungeon generator, shareable seeds, or why two runs differ. Gaming only, not loot tables, not a Godot tutor.
SKILL PACKAGE

Directory layout for Grok — SKILL.md plus scripts, references, and assets. 6 file(s).

Select a file

Edit in place, then Save (full package security scan). Use fullscreen for a larger workspace.

SYNCED SUMMARY (from SKILL.md)
# Seed Map

One seed, one world. Generate into data, prove it is reachable, then draw — never the other way around. Validate before the player sees it.

Inspired by gamedev-skills/awesome-gamedev-agent-skills procedural-gen (Apache-2.0). Original Grok remake. Complements room-flow (HAND-authored blockout/pacing; complementary, not interchangeable), pawn-mind (path on the generated graph), gold-sink (loot/economy — HAND OFF loot tables), save-slot (persist the seed), juice-pass, stick-map. Not godot-teacher.

Read `references/gen-rules.md` before you design. Fill the three templates under `templates/`.

## When to use

- Shareable seeds, "why did two runs differ," determinism bugs
- Heightmaps / biomes from Perlin, Simplex, or fBm noise
- Dungeon: place rooms, then connect (L-corridors or BSP)
- Cave-like fills (random walk or cellular automata) as a *note*, not a library dump
- A generate → validate/repair → draw pipeline on a plain grid

## When NOT to use

- Loot tables, drop weights, shop spread, gold sinks → use gold-sink (explicitly out of scope here even though some procgen tutorials mix them in)
- Hand-paced authored levels, beat sheets, metrics-first blockout → use room-flow (this skill generates; that one authors)
- Godot TileMap / GridMap / NoiseTexture2D / Unity Terrain APIs → use godot-teacher
- NPC FSM, behavior trees, A* steering on an already-built graph → use pawn-mind
- Persist format for the seed / run → use save-slot (hand the seed value; do not invent the file schema)
- Hit juice on a generated event → use juice-pass; bindings → use stick-map
- Cheat map reveals, minimap wallhacks, ESP overlays, aimbots, malware

## Inputs

- Genre slice (overworld heightmap, room dungeon, cave, mixed)
- Grid size they want (cells or rooms), plus a hard cap on placement attempts
- Whether the seed is player-facing (shareable) or hidden
- Pain: two runs differ, spawn in a wall, islands with no exit, striped biomes, gen hitch on first load
- What later systems consume (pawn-mind graph, room-flow dress pass, save-slot seed field)

## Procedure

1. Read `references/gen-rules.md`. Refuse loot tables (gold-sink), authored blockout (room-flow), TileMap API dumps (godot-teacher), NPC FSMs (pawn-mind), cheat map reveals, wallhacks, aimbots, and malware.
2. Lock **one** seeded RNG instance and pass it into every random call. Never `global random`. Same seed + same params = same world. Write the policy on `templates/rng-card.md`. Store the seed (and generator version) via save-slot — this skill names the value, not the file format.
3. Generate into a **plain data grid** first (cells, rooms, heights, walkable flags). A later pass draws tiles, sprites, or meshes. Do not spawn visuals while you place rooms.
4. Pick the technique from the world, not from a tutorial you remember:
   - Continuous terrain / heightmaps → fractal / fBm noise (octaves, lacunarity, gain, **renormalize**). Use a real noise library; do not invent gradient noise from scratch.
   - Discrete rooms → place non-overlapping rooms, then connect (L-corridors or BSP). Cap placement attempts so the loop cannot spin forever.
   - Caves → random walk or cellular automata as a short note, not a vendor dump.
5. Elevation and moisture (or any two noise fields that drive biomes) **must** use different seeds or offsets. Same field twice = striped or cloned biomes.
6. Validate before draw: flood-fill from spawn; every room reachable; a path to the exit; spawn is not a wall. Reject or repair. Then fill `templates/generator.md`.
7. Tune with the seed **FIXED**. When the map looks right, sweep many seeds to see the distribution — not one lucky map. Note gen time so frame time and physics never leak into the seed.
8. Fill `templates/verify-gen.md`. Watch: reachability, spawn-safe, exit path, attempt cap, seed-sweep, FPS/hitch of the generate pass.
9. Tiny original engine-neutral notes only if asked. No Godot/Unity API dumps. No GDScript copied from any source.

## Output format

- RNG card (seed policy, one instance, what is stored, elevation vs moisture seeds)
- Generator card (technique, grid size, room/noise params, draw-later note)
- Verify-gen checklist (reachability, spawn, exit, attempt cap, seed-sweep, FPS)
- One line: procgen worksheet; not a loot table, TileMap tutor, or cheat overlay

## Safety

- Follow `references/gen-rules.md` with no exceptions.
- No real-money gambling design. No CSAM in generated flavor text.
- No wallhack overlays, cheat map reveals, aimbots, ESP, or malware.
- Engine-neutral notes only. Not a Godot tutor.

## Stop conditions

- Three templates delivered, or refused for loot tables / authored blockout / TileMap APIs / NPC FSM / cheats / wrong scope (gold-sink / room-flow / godot-teacher / pawn-mind / save-slot)
Version History
Comments (0)
No comments yet. Be the first!
Sign in to leave a comment.