...menustart
...menuend
- Tiles
- Grammars
- Recursively make things from other things
- Tracery and other templating systems (for text)
- Tracery is a super-simple tool and language to generate text, by GalaxyKate.
- L-Systems(for geometry)
- Replacement grammars
- if you have a dungeon, that's a straight line, and you would like it to not be a straight line, this is your Dorman's work where he made Zelda dungeons by taking a straight line and then perturbing it in different ways, put a door and the key, now if you've got a section that has a key, you can hide that key behind another door, you can recursively apply these.
- He recently just published his indie game Unexplored which use this technique.
- Distribution
- Put down some objects
- x = random(100), y=random(100)
- "actual" random looks bad, clumps strangely.
- "real" distributions are hierarchical and clustered, but also maintain spacing.
- Options:
- start with a grid, and offset a bit
- (less obvious with a hex grid)
- Use a voronoi diagram with easing
- do it preperly with a Halton Sequence
- barnacling, greebling, footing.
- start with a grid, and offset a bit
- Parametric
- So I have 32 different parameters and put those through an algorithm and out pops a little flow
- you can actually modle this as an N dimensional cube.
- no man's sky use this to generate creatures.
- An array of floats representing settings, "morph handles"
- modellable as points in an N-dimensional cube.
- any position is a valid artifact!
- You can do genetic algorithms
- or user directed walks through the space
- or "regionize" the space.
- Interpretive
- Start with some input
- Examples:
- Simulations
- Particle trails
- Cellular automata
- Agent-based simulations
- Physics simulation
For more info about grammars, GDC Tech Toolbox 2016 on youtube tracery.io
For more info about user-controlled parametric design, "Petalz: Search-based Procedural Content Generation for the Casual Gamer"
For more info about the Spore pipeline:
- Real-time Motion Retargeting to Highly Varied User-Created Morphologies -- Chris Hecker
- How to Animate a Character You've Never Seen Before
-
Saving seeds
- Seeded random numbers
- Same seed, Same random
- Whitelist a catalog of known good content
- It's faster to verify questionable content than to build a testing function.
-
Generate and test
- If you can write an algorithm to judge "quality"...
- throwaway vs ranking/prioritization
- Test for brokenness/connectivity
- Beware of false function
- beware the "fun equation"
- If you can write an algorithm to judge "quality"...
-
Computationally exploring the possibility space
- Also called "search"
- Brute force search
- Hill-climbing
- Genetic algorithms
- Works best with parametric
- Also called "search"
-
Constraint-solving
- You can describe a possibility space and constraints, just find the valid parameters.
- IK-solving
- Answer set solving
- Potassco Clingo
- Brute force!
- brute force is ok, just pay attention to exponential growth!