
Procedural Gen
Generate game content procedurally, seeded deterministic RNG, value/Perlin/ Simplex...
Install
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill procedural-gen -g -a claude-code -y- Repository
- gamedev-skills/awesome-gamedev-agent-skills6.4k
- Category
- Engineering
- Updated
- 8d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 2,032 tokens
- Runs scripts
- No, instructions only
What it does
Generate game content procedurally, seeded deterministic RNG, value/Perlin/ Simplex noise for terrain and heightmaps, grid dungeon generation (rooms + corridors, BSP, random walk, wave function collapse), and weighted loot/drop tables. Engine-neutral algorithms. Use when the user mentions procedural generation, perlin/simplex noise, random seed, dungeon generator, WFC, heightmap/terrain, or loot tables.
Procedural generation
Generate levels, terrain, and loot from compact rules and a seed. The throughline
of good procgen is determinism: a single seed reproduces the same world, so
bugs are repeatable and players can share seeds. This skill owns the core
algorithms, noise, seeded RNG, dungeon layout, weighted tables; genres like
roguelike and survival-crafting consume it.
When to use
- Use to generate maps, dungeons, terrain heightmaps, item drops, or any content you do not want to author by hand.
- Use when results must be reproducible from a seed (debugging, daily challenges, shareable worlds).
- Use to pick weighted random outcomes (loot rarity, spawn tables).
When not to use: for the engine's tile API to paint the result, use
godot-tilemap or unity-tilemap-2d. For routing AI through the generated map,
use game-ai. For carefully hand-paced levels, use level-design, procgen and
authored design are complementary, not interchangeable.
Core workflow
- Own your randomness. Create one seeded RNG instance and pass it everywhere. Never call the global/static random in generation code, it makes results irreproducible and order-dependent.
- Pick the technique for the content. Continuous terrain/heightmaps → noise. Discrete rooms/corridors → space partitioning or agent-based carving. Outcomes with rarities → weighted tables.
- Generate into a plain data grid/array first, decoupled from rendering.
Generation fills
int[][]or a dict; a separate pass draws it. - Validate before shipping the result to the player. Is every room reachable? Is the spawn safe? Is there a path to the exit? Reject or repair layouts that fail; do not hand the player a broken map.
- Tune with the seed fixed so each parameter change is visible in isolation, then sweep seeds to check the distribution, not just one lucky map.
