PCG Core Framework

PCG Landscape Biome Test

PCG Landscape Biome Test

PCG Landscape Biome Markup

PCG Landscape Biome Markup

PCG Landscape Biome Debug

PCG Landscape Biome Debug

Regeneration Example

Biome Falloff Setting Example

Biome Tagging Example

Propagation Along Road Splines and Meshes

Propagation Along Rivers and Lakes

PCG System Diagram

PCG System Diagram

PCG System Rulesets

PCG System Rulesets

PCG Core Node Graph

PCG Core Node Graph

PCG Biome Generation Node Graph

PCG Biome Generation Node Graph

PCG Recursive Ruleset Node Graph

PCG Recursive Ruleset Node Graph

PCG Data Layout

PCG Data Layout

PCG Core Framework

These images and videos are from an unreleased project that I had the pleasure of being a PrincipleTechnical Artist for. They represent a work in progress PCG (Procedural Content Generation) tool meant to act as a re-usable framework for generating actor placements in levels while abstracting away graph language into more manageable data assets that non-technical artists and designers could easily utilize. Similar in nature the material -> material instance relationship.

This project had a very small team with ambitious content goals involving generating a number of large non-linear maps with randomized gameplay per session. Runtime randomization of gameplay content was already being handled by engineering, but the world team of 2 was handling the authoring of these large maps with traditional foliage painting tools and terrain sculpting. Progress on these maps was slow and detracted from focus on more gameplay impactful moments. Large portions of these maps could be denoted as "filler" space that did not need hand authorship.

This is where Epic's new PCG toolset came into play. After an initial tech review the team was all for leaning into this solution. The biggest hurdle though was that while powerful the node based graphing system was complex enough to still required tech art time for creation, setup and iteration of any new content. As the only tech artist on the team with many other responsibilities it wasn't feasible for the team to expect I would always be available as they were iterating. The other issue was that while it was possible to have standalone PCG tools talk to each other it was difficult to consistently manage priorities and relationships between them with no management layer. This is where the PCG Core Framework came into play.

Taking inspiration from Epic's own early explorations via their "Biome Plugin" I set about creating a system that would manage all PCG content generation within a map via simpler and safer data assets combined with intuitive and re-usable ruleset logic. The data assets specify a specific group of content (meshes, actors or prefabs) along with simple weighting/priority values and combined them with ruleset logic that would specify how the system was to place that content. Above all of this was the PCG Core actor that would gather, sort and implement each set of content one after the other across the map taking into account any content that had come before when placing new layers.

This allowed for powerful relational effects between different content types. Assets have the ability to mask and be masked by previous content placements during propagation. They can also recursively spawn child assets with their own rules to create hierarchical relationships such as a tree spawning smaller bushes nearby or a lamppost spawning park benches on either side of.

Even more important this framework made it much easier to establish guardrails and iterate on scalability. Because all logic derived from the same handful of core rulesets it was easy for myself as a tech artist to manage complexity and prevent unreasonable behavior while empowering content artists and designers to create content.

Another notable feature was the concept of a global layer of data called "Biomes" that could be manipulated via splines and other tools to provide masking of specific rulesets. The biome layer is pre-processed as an optimization allowing each new set of assets and rulesets to sample from the pre-existing masks to know where they could or could not be spawned before running more complex logic. Water bodies such as rivers, lakes and oceans were also sampled in this pass.

Most examples of PCG tools utilize actor tagging as a method for searching for various actors in the scene. This is extremely powerful, but also, unfortunately, very issue prone. It relies on the users ability to remember and spell out various string values that correspond to values elsewhere that could be modified at any time. In simple cases this may be fine, but for complex systems this would be extremely brittle. One of the primary reasons I wished to make my own version of this system separate from Epic's was so that I could utilize Gameplay Tags instead. Unlike actor tags this system allows for pre-defined tag types that can be easily queried, added and removed without having to worry about matching spelling and case. All rules and actors utilize these tags to allow PCG Core to match rulesets with specific targets.

World Director - Carl Shedd
Level Artist/Designer - Michael Drummond
Prop Artist - Jonathan Fawcett