Skip to content

Example Workflows

Gerard Martin edited this page May 29, 2026 · 2 revisions

This page explains and compares the different ways Mutable can be used to generate customizations for a project. Every project has different needs, and Mutable can be adapted to fulfill them. Here are some common examples:

Player Customization

This is the most common scenario, in which the game lets the players customize their character (or other assets) by changing parameters. This happens in-game at realtime in gameplay-specific scenarios (like a customization lobby), or just at runtime when loading into a level.

This setup is usually achieved by instantiating a single cooked Customizable Object into multiple dynamically created Customizable Object Instances, one for each player. Then each player can control their own Instance parameters through a UI.

Gameplay Effects

This setup is very similar to Player Customization, but the Instance parameters are only exposed to gameplay code. Keep in mind that the customization is not instantaneous and in heavy scenarios it may take a fraction of a second to show up. For critical gameplay effects we recommend implementing those outside Mutable.

Predefined Instances

In this scenario, we want the artists or designers to create the different Instances whose parameters will not change in-game. This can be used to create NPCs, or all the different versions of the player character. Since assets are still generated at runtime, you can also use these Instances as a starting point for runtime customization.

This setup can be achieved by cooking both the Customizable Object and the Customizable Object Instances. In game, assign an already cooked Instance to each Actor you want to customize.

Baked Instances

Unlike the previous setups, this setup cooks neither the Customizable Object nor the Customizable Object Instance. Assets are generated at Editor time by an artist or a script. This completely removes all the performance impact from Mutable, at the cost of zero runtime customization.

Comparison

Here is a quick comparison of the different ways Mutable can be used:

Player Customization Gameplay Effects Predefined Instances Baked Instances
Who Customizes Player Gameplay Code Artist Artist
Who Sets Parameter Values Player (Game UI) Gameplay Code (C++) Artist (Editor) Artist (Editor)
Asset Generation Runtime Runtime Runtime Editor
Cook Impact Compilation Compilation Compilation -
In-game Impact Generation Generation Generation -
Editor Impact - - - Compilation + Generation
Quality Normal Normal Normal High

Clone this wiki locally