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