Procedural content generation isn’t just about bits of code that run silently and invisible inside games while players play them. The power of procedural generation, exploring a huge, near-infinite space of content, is also a great way to build effective tools that can help designers (or players) quickly accomplish creative tasks. This week on The Saturday Paper we look at one such tool that uses procedural generation to help people tackle deep, detailed design problems in an elegant and flexible way.
We’re reading Sentient Sketchbook: Computer-Aided Game Level Authoring by Antonios Liapis, Georgios Yannakakis and Julian Togelius. The paper describes the eponymous Sentient Sketchbook, a tool for helping people design detailed levels using high-level plans. The powerful idea behind this tool is that the user produces abstract sketches of what a map should look like, which the tool can quickly work on to produce alternative versions, suggested improvements, and detailed renditions for final output. It’s a tool that should not only be exciting to game designers, but to anyone who relies on user-generated content in their games. Check out a video of the tool being used here.
There’s a lot of really interesting technology at work behind Sentient Sketchbook, and as usual we won’t be able to go deeply into all of it, but we’ll get a good overview. Let’s start by talking about how the tool is actually used. The user starts off by sketching a very low-resolution abstract map for whatever domain they’re working in. The examples used throughout the paper are Starcraft maps, so I’ll continue that here, but the tool is more general than that, and can show how a map would look as a dungeon, or a heightmap, or more. In the Starcraft design case, the user can place passable and impassable terrain (brown tiles in the maps above), player starting locations (white tiles) and resources (blue tiles).
Sentient Sketchbook can be given playability constraints that it can use to evaluate both the user design and any others it comes up with in the course of being used. For example, the Starcraft map design includes the notion of resource safety, which tags resources as ‘safe’ for a player if they are close to their base and far from others. The user of the tool can view these metric scores for any map, and visualise them across the sketches too. Here are a few examples from the tool for a particular sketch:
At any time the user can take a map, whether one they sketched or an alteration from the tool, and ask to see a detailed version of it. These detailed versions can be in a number of different formats. Below is a shot from a recent build of the tool (thanks to Antonios for sending these over) showing a map interpreted as a 3D heightmap. Notice how the conversion adds detail and variation to the low-resolution map – if you want more details on how this process works, take a peek at this paper from EvoMusArt 2013, which describes how they gradually increase map detail.
Sketching at a low resolution, viewing metrics about the map, and automatically converting the sketch to a detailed map already makes Sentient Sketchbook a useful workflow for level design. However, what’s really interesting about the tool is its ability to suggest alterations to user-provided map sketches. The tool provides a list of suggested maps, which the user can click on to view, see metrics about, or further expand with more suggestions based on the target map. It’s a little similar to interactive evolutionary tools, if you’ve ever seen anything like Petalz before.
Map suggestions are evolved  to optimise the various metrics associated with the current map, such as resource safety, but some suggestions are evolved specifically to increase diversity in the pool of suggested maps. This latter process is called novelty search – where solutions are evolved not to optimise some value, but simply to be as different as possible to what’s been evolved before. Novelty search is a really powerful tool for increasing diversity and surprise in the output of an evolutionary process, and in Sentient Sketchbook it plays a vital role in providing unusual or unexpected design possibilities. It starts by taking the user-made design, and then slowly making mutations and changes to it to maximise novelty and diversity. By starting near the user’s original idea, the novelty search produces new directions without being completely arbitrary.
To me, this is one of the important things that sets the Sketchbook apart as a tool – by providing suggestions that might be totally different to what the user is currently looking at, the Sketchbook is more like a creative assistant than a simple tool. It doesn’t just listen to what the user is saying they want. If you’d like to know more about novelty search, or the evolution techniques at work within Sentient Sketchbook, I highly recommend either taking a peek at the paper itself, or this paper by the same authors about novelty search, which uses the Sentient Sketchbook as its example case.
The paper also includes a user study, which is a great touch, where the tool was used by several people from the games industry. The authors noticed that suggestions were taken perhaps a little less frequently because of this – if you give an experienced level designer a design tool they not only know what they want quite specifically, but they’re also fairly likely to nail it on the first try. So I’m most interested in what’ll happen once the tool is in front of novice designers, which they plan for a future study.
However, the study showed some interesting behaviours. Novelty search was a popular selection early on in the design process, when the user’s goals were perhaps less set in stone and they were interested in sweeping changes to the design. As time went on, small optimisation suggestions were more likely to be taken. There was a lot of praise for the different metric visualisations too, and to me this also speaks to the effectiveness of the abstract sketch format as well. The simplified version of the map is not only quick to evaluate for computers, but quick to process visually for humans.
The Sentient Sketchbook has obvious applications to game design, and would slot perfectly into many existing development processes. Rapid prototyping of game levels, with the opportunity to embed knowledge about the game’s balance or design goals, is a really exciting prospect. But what excites me about this kind of tool is the prospect of using it with novice designers or the players themselves. The initial resolution is so low the tool could even work on mobile or console interfaces, allowing players to quickly sketch out an idea for a level, and work with an intelligent tool to expand this into something that is playable, balanced and still faithful to the player’s original intention.
This last week I purchased Shadowrun Returns and started working with its editor. As design tools go, it’s pretty great, and there’s already a great community springing up around it. But user-generated content on this level has always been quite a difficult thing to get into. No matter how good the tools get to use, they never get any more intelligent. Pair Sentient Sketchbook with some intelligent narrative tools, and bundle it into a CRPG like Project Eternity, and you have the beginning of a new generation of user content generation tools. As they say – work smarter, not harder.
Where To Find More
Antonios Liapis is a PhD student at ITU Copenhagen, being supervised by Georgios Yannakakis who is now Associate Professor at the University of Malta. Julian Togelius is Associate Professor at ITU Copenhagen. Both Georgios and Julian supervise brilliant work, including the Procedural Procedural Content Generator Generator we looked at a few weeks back. Antonios has done huge amounts of work on this project this year, so expect exciting progress and results in the near future too.