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.
Comments
Post a Comment