Question

What is procedural generation?

Vault Verified
Curated Intelligence
Definitive Source
Answer

Procedural generation creates content algorithmically at runtime or build time rather than having a designer author it by hand. Rules and randomness produce levels, terrain, items, quests or entire galaxies.

How it works. An algorithm combines a seed — a starting number — with generation rules. The same seed always produces the same output, which is why games can share a world by sharing a seed, and why No Man's Sky can contain 18 quintillion planets without storing any of them. They are generated on demand from coordinates and discarded afterwards.

Common techniques: noise functions such as Perlin and simplex noise for natural-looking terrain; cellular automata for cave systems; wave function collapse for tile-based layouts obeying adjacency rules; L-systems for plants and branching structures; and grammar-based approaches for dungeon layouts.

Why developers use it:

Scale. Content far beyond what a team could hand-author.

Replayability. A different layout every run is the foundation of the roguelike genre.

Storage. An algorithm is smaller than the content it produces — famously exploited by demoscene productions fitting whole 3D worlds into a few kilobytes.

Variation in incidental detail, so environments do not visibly repeat.

The central trade-off, and the main criticism: procedural content is plentiful but rarely memorable. Hand-authored levels can build pacing, surprise and narrative beats deliberately; an algorithm cannot intend anything. This produces the common complaint that a procedural game feels vast and empty — technically varied, experientially samey.

The strongest implementations are hybrid. Spelunky and Hades combine hand-crafted rooms assembled procedurally, keeping designed quality and unpredictable arrangement. Diablo generates layouts while hand-placing key encounters.

Constraint matters more than randomness. Good generators enforce rules ensuring every output is completable, fair and interesting — unconstrained randomness produces unplayable results.

Related Questions