Practical procedural generation (for everyone!)

Game dev and AI researcher Kate Compton breaks down the "IKEA catalog of design strategies" that typically dictate proc gen habits, and explores how to direct randomness to create strong game design.

I first heard of Kate Compton through Train Jam. In addition to her game for the jam, Travels in Od, she also distributed a zine outlining her radical philosophy for AI: that it should be “opulent,” generating its own extravagant, unrealistic sense of fashion and self-adornment beyond the whims of its human creators. 

Her other zine, which also wound up all over the Train Jam train, was an instruction manual for Tracery, her language for generative text that has now spawned over three thousand bots. The user-friendly manual underscores her belief that AI is for everyone, and that infused her talk as well, which went over the basics of designing a generator.

She began by showing the gathered audience several examples of procedurally generated content, going from obvious examples like No Man’s Sky to the way procedural generation has been used to develop things like clothing. She even showed off a procedurally generated skirt she made.

Compton listed five important steps for developing a generator:

  • Understand your design space
  • Enumerate your constraints
  • Understand the process
  • Pick a generative method
  • Iterate! (and be flexible)

There is freedom in limits, she seemed to say. “I can’t make a novel generator, but I can make a trashy urban fantasy romance novel.” Narrowing the scope of what you want to generate and how is an important first step--and that, she argued, was what was most important in understanding a design space. One must clearly delimit the borders of that space.

She then went over the “IKEA catalog of design strategies,” from Civilization-style tiles that generated something different in each narrowly defined space, to the variety of “grammars” that use language to reconstitute itself, to the random distribution model. She emphasized that there was always value in curating your “random” distribution, creating a sense of naturalness through category hierarchies (placing medium sized things next to big things, for instance--a technique known as “barnacling”). Procedural generation need not be entirely scattershot, then. You can add your own flourishes to it, both to leave a mark, and to place constraints on the explosions of senselessness that sometimes result from randomisers.

Having worked on Spore, it featured prominently in her examples for a variety of techniques, such as how creatures were generated in the world using parametric sliders to create a good blend of uniqueness and personal control. She also related the story of how she “hacked” Spore’s planet generation by going through as many of the generated planets as she could, whitelisting the seed numbers that were tied to “good” planets, and ditching the many that were failed or unappealing. This brute force technique, she said, was nevertheless faster than writing a ‘proper’ algorithm for the planets. “You don’t need to ‘do it right’, just do what works.”

She then tackled the “ten thousand bowls of oatmeal problem”: the question of whether it matters if you have a million mathematically unique objects if your players cannot perceptually distinguish them. It’s more important to have a smaller number of distinct items than a nonillion items that most players can’t tell apart; it’s okay, she said, if all your trees aren’t mathematically distinct. Often, things like that can be safely repeated.

Compton said that a good rule of thumb for whether a player would notice the distinction of a randomly generated object or creature was to ask the cheeky question: “Would you write fanfic about this generated object?”

She clearly wanted to get the audience away from overemphasizing huge numbers of items and looking, instead, to create art through procedural generation that could be meaningful to outside observers.

Latest Jobs

Sucker Punch Productions

Bellevue, Washington
Combat Designer

Xbox Graphics

Redmond, Washington
Senior Software Engineer: GPU Compilers

Insomniac Games

Burbank, California
Systems Designer

Deep Silver Volition

Champaign, Illinois
Senior Environment Artist
More Jobs   


Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter


Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Follow us


Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more