navigateleft navigateright

So you want to build a generator…

  1. Write down what you want to make, as specific as you can ("The easiest generators to make are the ones where you can describe “good” artifacts as sets concrete properties")
  2. What makes a good one of these? A bad one?
  3. List constraints: things that absolutely must not happen

Methods that make a good generator allow the computer/machine to:

  • Encapsulate knowledge of options (skill A)
  • Create some structure (skill B)
  • Encode conditional rules for options (A2)
  • Create variability in structure (B2)
  • Be able to ask itself questions about its constraints (have I solved this?) (skill C)

Types of generator methods

  • Distributive: distribute a collection of items over space and/or time
  • Parametric: tweak an already well-made object
  • Tile-based: equal divisions of space/time/whatever, pre-made items randomly fill that space (think Settlers of Catan)
  • Grammar: making something large and complex out of smaller items, perhaps several layers of these (example)

Constraint solvers

  • Brute force solving: creating every possible option for the generator to pick through
  • General purpose solvers: plug in some values for constraints etc and it will help you find shortcuts
  • Steering behaviors (don't really understand what this is, need to look more into it)
  • Genetic algorithms


  • 10,000 Bowls of Oatmeal problem: "I can easily generate 10,000 bowls of plain oatmeal, with each oat being in a different position and different orientation, and mathematically speaking they will all be completely unique. But the user will likely just see a lot of oatmeal..."
navigateleft navigateright