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.

  1. 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.

  2. 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.

  3. 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.

  4. Procedural Brainstorming:

    Use procedural generation to spark creativity.
    Whenever possible, let the algorithm spark your creativity.

  5. Content Injection:

    Inject hand crafted content into procedurally generated content.
    Whenever possible, let the designer inject handmade content into the procedural pipeline.

  6. 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.

  7. Template Instantiation:

    Load various copies of things into memory given space allowed.
    Ex: Load instances of rotations or variances into memory.

  8. Content Lists:

    Be a data whore.
    Have huge lists of data to use as names for things. Let content be pulled from these lists.

  9. Mad-Libs:

  10. 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.

  11. Constraints

    Say what you want the content to have.
    Ties in well with procedural recipes.
    Creates limits and ranges.

  12. 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.

  13. Exemplars:

    Human creates "good" content, then algorithm can:
    Make more like this (ex. Markov chains)
    Fill in the missing bits (ex. Wave Function Collapse)

  14. Training:

    Inject human designs into ML processes.
    Genetic algorithms (make a thing, rate it, then do more stuff, keep the best ones)

  15. 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

Popular posts from this blog

Online Multiplayer Networking Solution Tutorial Using Unity and Mirror - Tutorial by: Jason Weimann

Exporting FBX from Houdini with Color

Houdini Assignment - Fuse and Group