With the release of Unreal Engine 5.2 earlier this year, Epic Games introduced a number of exciting new features including the Procedural Content Generation framework. Sounds exciting, huh? This new addition allows for procedural generation of content and tools, which can greatly range in complexity — examples range from realistic organic vegetation to dense cityscapes to entire worlds. It can be used to place static meshes, actors, sounds, and more. In this post, we’re going to take a look at the new Procedural Content Generation functionality and why it might be a useful tool for interactive installations.
What is the Procedural Content Generation framework in Unreal Engine?
First, let’s take a look at what the Procedural Content Generation framework is. According to the Unreal Engine documentation, it “is a toolset for creating your own procedural content inside Unreal Engine, [providing] artists and designers the ability to build fast, iterative tools and content”. This can range from assets, like buildings or biomes, up to entire worlds. In examples online, you’ll often see PCG being used in a generative environment capacity, creating organic looking populations of trees, grasses and other vegetation, along with rivers, rock formations, and more. It can even generate mosses on object models! With a handful of nodes and a pretty simple setup process, it’s possible to generate these very complex systems.
Procedural Content Generation Basic Workflow
Building PCG systems is very similar to creating materials and blueprints: you use a node graph, with nodes specific to the framework. As explained by Arran Langmead (a Senior Content Developer at Epic Games) at the GDC ’23 demo of the framework, although the node graphs often appear complex, Procedural Content Generation systems generally work as follows:
Input → Generating Sample Data → Filtering Data → Output Final Result
In practice, here’s what working with the PCG framework could look like:
- A PCG Volume is placed into a level containing a simple landscape mesh.
- In the PCG Graph, a Surface Sampler node is added. It uses the PCG volume to sample the landscape geometry and provide spatial information, which generates point data.
- Next, additional nodes are added to further filter and modify the points. For this example, the Transform Points node is used to add rotation and scaling to the points.
- Finally, the final result is output. In this case, the data is used to spawn static meshes in the scene — a number of trees.
The two images below show this example in action: the first shows the PCG graph, and the second shows the trees that were added to the level.
This is a pretty simple example, but it showcases how simple it can be to utilize the framework. This example used just three nodes in the PCG graph (besides the input) — imagine what you could do with 10!
Although most examples of the Procedural Content Generation framework you’ll see out there are heavily game-focused, it has a lot of potential for use in interactive installations, which we’ll look at next.
What Procedural Content Generation Can Bring to Interactive Installations and Developers
So what about PCG and interactive installations? Well, it turns out that some of the reasons you might utilize procedural content generation for games are just as relevant for interactive developers, even if the outcome looks different. Along with that, the simplicity of integrating the framework into your Unreal Engine projects, the fact that it’s free, and that it uses Unreal’s powerful node-based programming functionality mean that it’s got a lot to offer for any developer.
Replayability and Unpredictability
One of the main reasons that procedural content generation is used in games is for the added replay value. For example, when a player starts a game again, a core component of the game (let’s say the map, or maybe the dungeons within the map) could be generated again with the PCG framework, and thus provide a fresh experience from their last playthrough.
In the same way, regardless of whether or not there are game-like components in an interactive installation, core content could be regenerated at specified intervals, providing a fresh experience for users. As Unreal Engine’s Procedural Content Generation framework can be utilized in the editing stage or during runtime of the final program, content could be regenerated on a daily basis, or every hour, or even when a new user steps up to interact with the work. Exciting stuff!
In terms of unpredictability, the utilization of the PCG framework could also ensure that different users will be supplied with different experiences. If the installation involved puzzle-like elements, for example, watching one person solve the puzzle would not give other users an advantage, because the content would be regenerated when it’s their turn to play. If the installation were generating artworks for every user that stepped up to a screen, the generative content could be designed to include similar variety.
For small teams or independent developers, the framework looks like a great way to offer more variety to the experiences they create, without having to spend extra time creating additional assets.
Get Our 7 Core TouchDesigner Templates, FREE
We’re making our 7 core project file templates available – for free.
These templates shed light into the most useful and sometimes obtuse features of TouchDesigner.
They’re designed to be immediately applicable for the complete TouchDesigner beginner, while also providing inspiration for the advanced user.
As we looked at in the previous section, the PCG Graph will look familiar to Unreal Engine developers. Programming PCG graphs is much the same as working with material and blueprint graphs in Unreal, where nodes of various types can be added to input, filter, generate, and output data. The node-based functionality within Unreal Engine is already a great way to quickly build out complex functionality, regardless of where it’s being used, so it’s great to see (for beginners and experienced developers alike) that this flexible and powerful way of working has been brought into the Procedural Content Generation framework as well.
No Extra Tools or Software Required
Whereas it might have required the use of either third party plugins or additional procedural modelling software for PCG-style functionality in previous versions of Unreal Engine, it’s now as simple as activating the plugin within the Plugin settings dialog. For developers looking to streamline their workflow and potentially save some money on software licenses, the PCG framework is a great addition to the software.
As with most aspects of Unreal Engine, it’s likely that we’ll the functionality of the Procedural Content Generation framework expand and improve over time, but even at this early stage it looks poised to be a very useful tool regardless of where it’s being applied. Hopefully this post has given you a sense of the possibilities the framework has to offer, and a bit of inspiration to try it yourself!