April 23rd, 2018
Using Procedural Generation Techniques in Game Design Effectively
GDC Talk – Math for Game Programmers: Semi-Procedural Content Pipelines – Squirrel Eiserloh
Link to GDC Vault (May be locked content)
2nd of 6 talks on semi-procedural content generation for games by Squirrel Eiserloh at GDC 2018. In this video he goes over many techniques and how to use them effectively.
- Variants:
Have multiple versions of things. Multiple colors for grass, dirt tiles. Multiple different sounds when running through grass.Do I need a tile to be the same forever?Whenever possible, let the designer provide multiple alternatives.
- Blueprint Definitions:
Don’t make an orc, create “orcness”. This blueprint has many ranges of values for different characteristics of a character.“Do I need an int, or an int range? Do I need a float or a float range?” Use these types of questions for every trait/parameter.Whenever possible, let the designer provide number ranges.
- Procedural Detailing:
I paint important parts, algorithms fill in tedious boring labor.Example: Unreal fills in grass where designer says to put grass.Whenever possible, let the algorithm do the dirty work.
- Procedural Brainstorming:
Use procedural generation to spark creativity.Whenever possible, let the algorithm spark your creativity.
- Content Injection:
Inject hand crafted content into procedurally generated content.Whenever possible, let the designer inject handmade content into the procedural pipeline.
- Stitching:
Create ways for your things to go together.Example: Speleunky – Has many map grid templates with connection points, so they connect in a sensible way.
- Template Instantiation:
Load various copies of things into memory given space allowed.Ex: Load instances of rotations or variances into memory.
- Content Lists:
Be a data whore.Have huge lists of data to use as names for things. Let content be pulled from these lists.
- Mad-Libs:
- Abstract Compositions:
Allow designer to paint out abstract designs, and procedurally generate based on that.Ex: Lay out city design with 3 colors depicting residential, commercial, and industrial areas which can then be filled in appropriately.
- Constraints
Say what you want the content to have.Ties in well with procedural recipes.Creates limits and ranges.
- Nested Constraints:
Be consistent with terminology so that data can string together nicely from large encompassing objects/ideas down to the simplest singular objects that are generated.
- Exemplars:
Human creates “good” content, then algorithm can:Make more like this (ex. Markov chains)Fill in the missing bits (ex. Wave Function Collapse)
- Training:
Inject human designs into ML processes.Genetic algorithms (make a thing, rate it, then do more stuff, keep the best ones)
- Outputs as Inputs:
Anything you generate in general can be an influencer in another thing that is generated.Generated content helps create more generated content.