/ GDC, PROCEDURAL, VISUAL-ARTS, LEVEL-ART, LEVEL-DESIGN

Notes for "Procedural World Generation of 'Far Cry 5'" GDC2018

Reading time: 6 minutes

TLDW Summary: This talk is about how FC5 developers created a pipeline for generating a realistic game world using procedural recipes. The talk contains a high-level overview of the pipeline with two deep dives into the details of the tools.

Key Terms

  • procedural workflow
  • an ecosystem of procedural tools
  • Houdini Engine
  • biome recipes
  • determinism
  • terrain
  • 2d mask

Presentation Time Stamps

Key Concepts

  • biome : an area of a game world with distinct terrain, vegetation, and animal life. slide 71 sub biome

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #71.

  • map : parts of a game world that are not loaded at the same time
  • section : a part of a map (256m X 256m)
  • sector : a part of a section (64m X 64m), the smallest part of a world that can be baked slide 34 sector

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #34.

  • recipe : a set of rules that given a set of inputs determines what entities need to be placed at a given location
  • points of interest : a map location reserved for user input and editing

The Problems/Challenges

  • Filling up empty space is easy, but filling it up so it looks natural is a big challenge.
  • The workflow required to fill up large open spaces beautifully, quickly, while maintaining the flexibility for applying user input.
    • The workflow had to allow fine-tuning of smaller locations to deliver tight gameplay experiences.
  • Terraforming can’t be locked at the start of the project
    • The terrain of the game would be constantly changing, and the biomes would need to be constantly updated. Updating the biomes by hand wasn’t an option.
    • The asset placement needs to be consistent with the terrain topology.
  • The pipeline needs to run without human intervention to regenerate the content in a build farm setting.
  • The pipeline needs to generate small sections of the world separately.
  • The parts of the world should be generated deterministically to enable stitching parts together.

Propositions

  • The biomes procedural system should be able to simulate natural phenomena. slide 80 natural phenomena

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #80.

    slide 99 natural phenomena

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #99.

  • Build biome recipes that react to the physical features of the land to ensure coherence throughout the world slide 89 natural phenomena

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #89.

  • The iterative process is vital to the quality of the game

  • Use Houdini Engine to run the full map generation in a nightly build
  • same input = same result (determinism matters)
  • The ecosystem of tools needs to be user friendly
    • shelf tools
    • be able to override procedural results
  • User must be able to bake data as they work

Key Points

  • They developed a sophisticated procedural pipeline for creating a realistic game world using Houdini and Houdini Engine
  • Originally they just wanted to develop the biome tool, but they ended up developing a suite of tools.
  • The heart of the pipeline is the data exchange between the Houdini Engine and the Game Engine slide 70 importing 2d data

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #70.

  • They developed an ecosystem of procedural tools, where one tool would provide the input to the next tool slide 38 high-level pipeline overview

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #38.

  • They regenerate the entire game world every night on special build machines.

Notable parts of the talk


User Iteration Workflow

timestamp: 6 minutes into the presentation

  1. Terraforming pass
  2. Define freshwater slide 22 high-level pipeline overview Carrier, Etienne. Procedural World Generation of ‘Far Cry 5’. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #22.
  3. Run the cliff generation tool to create cliffs on steep terrain
  4. Use Biome painter and run procedural generation to spawn the vegetation
  5. Setting up Points of Interest (a.k.a. location) slide 26 high-level pipeline overview Carrier, Etienne. Procedural World Generation of ‘Far Cry 5’. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #26.
    1. Paint an area with the grass Biome
    2. Laying down a road spline
    3. Bake roads and refresh biome
    4. Add buildings, props
    5. Apply terrain texture
    6. Add more Trees with the forest sub-biome
    7. Bake/refresh biome
    8. Add fence spline
    9. Add power line spline
      1. Snap power line connector to house
      2. Bake/refresh biome

User Non-Destructive Workflow

timestamp: 11 minutes into the presentation

  1. Update level of terrain
  2. Bake/refresh biome slide 35 high-level pipeline overview

    Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #35.

How the pipeline is working under the hood

timestamp: 12 minutes into the presentation

  • At the heart of the pipeline is the data exchange between the Houdini Engine and the Game Engine
  • Inputs for the pipeline are sent from the Game Engine to Houdini via a Python Script
    • world information
    • spline & shapes
    • file paths
    • Terrain Sectors (Main input that the generation is linked to)
    • heightmaps
    • Biome painter
    • 2D terrain masks
    • Houdini Geometry (that might have been generated by another procedural tool)
  • Outputs of Houdini
    • List of outputs
      • Entity point could slide 37 high-level pipeline overview

      Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #37.

      • Terrain texture layers
      • Terrain heightmap layers
      • 2D terrain data
      • Geometry
      • Terrain logic zones
    • The data is saved onto a disk using temp “buffers”
  • The output of one tool influences the output of another tool
    • The tools use masks to communicate with each other

Examples of tools

Cliffs tool

timestamp: 16 minutes into the presentation

slide 65 cliff tool

Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #65.

Biomes Tool

timestamp: 25 minutes into the presentation

slide 69 biome tool

Carrier, Etienne. Procedural World Generation of 'Far Cry 5'. Mar. 2018, GDC, GDC Vault Slide Location. Presentation Slide #69.

Lessons Learned

timestamp: 46 minutes into the presentation

  • Making the steps of the pipeline simple. Don’t require knowledge of when the underlying data is generated or how it affects the downstream tasks.
  • The blending of biomes is a complicated feature for the users to use and the developers to debug.
  • This level of customization and generation at this scale can impact the gameplay.
  • This is just a taste of what is possible to produce using this type of procedural technology.
  • You won’t get it right on your first try. Keep iterating and simplifying the pipeline. Be flexible - plans and requirements change.
  • Pay attention to how the users use the tools. If you think a feature will be useful it doesn’t mean that the users will use it.

Thoughts


Solved Problems/Challenges

Did they solve what they set out to solve?

  • They shipped FC5
  • They developed suite of tools:
    • The freshwater tool
    • Fences & power line tool
    • Cliff generation tool
    • Biome tool (to spawn vegetation)
    • Fog tool
    • World map tool (scatter trees on the world map)
    • Power line tool
      • Auto snapping if a user made an error (with-in a given threshold distance)
  • The pipeline is automated and runs nightly
  • The workflow allowed for quick iteration and the ability to “bake as you work”
  • Use biome recipes to define what vegetation will be placed in different parts of the map (near water, near cliffs, at high altitude)

Practical Truths

General Tools Development Wisdom

  • “At first you won’t understand the problem”. - You won’t get a system design “right” from the first attempt.
  • “You are not your users”. - If you think something is a good feature, it doesn’t mean that the users will think so.
  • “Users don’t have to know the implementation details”. - Users will not remember complicated cause-and-effect scenarios.
  • “Watch out for Hidden Cascade Effects”. - In a fully automated system, a user might not see/ suspect that their changes are affecting another system that is out of view.
  • “The speed of iteration is vital to the quality of the game”. - Don’t let the tools be the bottleneck of the iteration process.

Practical Principles

General Tools Development Principles

  • Enable user input and customization inside a procedural generation system.
  • Observe users to understand what is important for them.
  • K.I.S.S.: Keep It Stupid Simple
  • Search for the balance between control and automation.

Questions that came to mind

  • What are some websites/resources about good Digital Content Creation tool architecture/patterns? Maybe even some checklists?
    • Like :
      • “Don’t forget to make a headless client for your tool”
      • “Don’t forget to add python scripting”
      • “Don’t forget to think about determinism when saving
  • Is there any alternative to Houdini? (not counting rolling your own)
  • How do they edit the road network that spans multiple maps (parts of the world)?
  • How long into the future when level art for second class points of interest will be fully defined by recipes? When will it be mainstream?

These notes are just the main ideas of the talk. They don’t contain anecdotes and examples. If you want to learn more, I would advise watching the talk on the GDC Vault.

The Toolsmiths

The Toolsmiths logo

I took these notes as part of our little “Book Club” for GDC Vault Videos The Toolsmiths #vault club

Join us on Slack.

Join us on Twitter.

Credits

Post cover image by Pexels from Pixabay