Procedural Personas

Project lead: Christoffer Holmgård

Procedural Personas are low fidelity representations of players that can be used by game developers to understand and test game content.

More formally, they are generative player models.

They represent how different kinds of players care about different things in games – playing the game in different styles. The idea is that this can be helpful for game designers building content for a game.

For instance, in a platform game, one player might prefer to play rashly, taking a lot of risks, but completing levels quickly, while another player prefers to play cautiously, collecting all the items in the level.

Demonstration

The video here shows procedural personas used for the game MiniDungeons inside the level design tool Sentient Sketchbook by Antonios Liapis: A game designer comes up with a level design. Then, using personas, different ways of playing the level are displayed, and personas are used as critics to computationally evolve alternative level designs that fit each persona better

Utility Functions

The preferences of the personas in the video are defined by different utility functions. The video shows:

  • A Baseline pragmatic player that just wants to reach the exit.
  • A Monster Killer that wants to kill every monster in the level.
  • A Treasure Collector that wants to collect every treasure in the level.

The utility functions used are simple and award points to various event occurrences in the game, listed in the table below. Once a persona completes a level, the total sum of utility points across all events that occurred in that level are summed.

Persona Move Kill a Monster Collect a Treasure Die Reach the Exit
Baseline -0.01       0.5
Monster Killer -0.01 1     0.5
Treasure Collector -0.01   1   0.5

These simple utility functions implementing different weights create variation in persona behaviors.

Evolving Controllers

In order to turn the utility weights into actual actions, allowing the personas to play(test) the game, we use an A*-based controller that tells the personas about distances to various elements in the level.

The controller takes the form of seven linear perceptrons that select between possible next destinations, and make a new selection for each turn in the game. The controller network is illustrated below.

An image showing a seven linear perceptrons, each given eight inputs.

In order to configure each persona, an evolutionary algorithm is applied. Each persona plays multiple MiniDungeons levels thousands of times, until the best weights for the network are identified. The evolutionary algorithm is shown here.

A figure showing a steady state evolutionary process with 100 individuals and 2% elitism.

Other Uses of Personas

While the main purpose of personas is to give designers a quick way of seeing different play styles in action within their game, we're also experimenting with other uses. We've previously used personas to classify individual players, by comparing them to the personas and finding out which one they resemble the most.

Ongoing and Future Work

We are currently implementing personas for the successor to MiniDungeons, the aptly named MiniDungeons 2, which is a more complicated game.

Publications

 

 

Events

No Upcoming Events