On this page

Making Things Up: The Power and Peril of PCG (GDC)

The talk's lessons, in short

  1. Four families of generators, each with a trade-off. Constructive (Spelunky's hand-made tiles plus a decoration pass): cheap and tailored, but players spot its patterns quickly. Grammars: much from little, but they overgenerate regular structures and need a filter that throws bad results away. Constraint solvers (Refraction, Tanagra): guarantees such as playability, but every common-sense rule must be written down, and a conflicting set fails without saying why. Search or evolution: general, slow, and only as good as the fitness function; defining it as fun is a trap.
  2. Combining families often works best (an evolved grammar for Mario levels, constraints plus a grammar in Tanagra).
  3. Choose by building blocks (authored chunks versus small components), speed (online or offline), and the control players and designers get: parameters (a Civilization map setup), indirect control (Galactic Arms Race evolving the weapon you use most), experiential control (Tanagra's pacing timeline) or compositional control (50% ocean).
  4. Mixed-initiative tools let a designer and a generator take turns: Tanagra, Sentient Sketchbook (suggestions and balance meters for strategy maps), Ropossum (generates and solves Cut the Rope levels).
  5. Pressing generate a few times is not a sample of the generator's space: a hundred coin flips can come up 90 heads.
  6. Expressive range: define numerical metrics, generate a lot (overnight for slow generators), "score each piece of content that you create and map out with a 2D histogram that can be visualized as a heat map". Their platformer metrics: leniency (each piece weighted by the harm of failing it; a gap kills, a Goomba costs a power-up), linearity, challenge density, and pattern density and variation (closeness to the original Mario levels).
  7. Maps of different generators show some reach regions others never can; maps of one generator under different parameters uncover biases nobody intended.

What the kit took, and where

Not taken

Measured (10 x 10 bins over 0..1)

Generator Occupied bins Fullest bin Means (x / y)
Row, each level rolls its own danger and roughness (0 to 2 times the chances) 36% 9.1% 0.83 / 0.72
Row, the same chances on every segment 21% 30.8% 0.82 / 0.69
Maze 6x6x3, grow from any room, 1000 seeds 6% 59.7% 0.31 / 0.24 dead ends / junctions
Maze 6x6x3, grow from the newest room 3% 63.2% 0.12 / 0.10