I haven't discussed my own research in this column yet, but you may know that I'm interested in automating the process of game design in its entirety. At the highest level, game designers produce mechanics that connect to our understanding of reality - gravity makes you fall, projectiles hurt things they hit, touching food heals you - and through this convey meaning that can be anything from representational to metaphorical and artistic. Can machines do this? This week on The Saturday Paper: a system that tries to connect the real world to game mechanics.
We're reading Towards Automated Game Design by Mark Nelson and Michael Mateas (you can also read Mark's excellent summary of some elements of the work here). The paper contains a lot of interesting discussion about game generation and the nature of game design - and I recommend flicking through the whole thing as a result - but we'll be focusing on a section describing a simple system for generating WarioWare-like minigames from open-ended textual inputs. We'll look at the kinds of resources leveraged to make this happen, the pitfalls of the approach, and what other resources developers might find useful.
The system described in the paper takes a verb and a noun as input, such as shooting ducks and then attempts to generate a short, simple minigame based on the input. The minigames are inspired by the game WarioWare, which tasked players with completing a series of quickfire minigames that all lasted just a few seconds each. Each one has a simple core action the player has to complete, and a strong theme for each one that relates to the mechanic somehow. In the example at the top of the article, the player must press an action button repeatedly to make the athlete squat a certain number of times within a short time limit.
The main focus for this system is not generating the game mechanics themselves. Instead, it relies on a small collection of existing game mechanics, and focus on intelligently relating the noun/verb pair with one of the mechanics that already exist. They identify a few abstract game ideas:
These abstracts are implemented through a few concrete game templates, with specific roles that the player can take on, starting configurations of objects (such as an Avoid game with one avoider and three dangers to avoid) and so on. So you give your input phrase - shoot ducks - and the system now has to decide two things: which mechanic is most appropriate, and what objects are included in the game in which roles?
In order to start solving these problems, the authors call on two great resources for this kind of thing: ConceptNet and WordNet. You might have heard of these before in various contexts, but if not: WordNet is a vast database of linguistic information that's organised in a way that makes it extremely useful for software and AI applications. ConceptNet is a similar idea, but for general knowledge and information about the world. ConceptNet is particularly interesting to me. Ask it about ducks, for instance, and it'll tell you that they can quack, that they have feathers, and that they can be shot.
How does this help us? Well, the system the authors write about in the paper associates a set of verbs with each mechanic and game template. So an Avoid game where the player is the attacker might be related to verbs like injure, or attack. If any of these verbs match, it's easy to make the connection between the input data, and a particular game mechanic.
The chances are it won't match exactly, however, and when that happens the system tries to calculate the distance between the input verbs and nouns and each type of game template it has in its database. It does this using both WordNet and ConceptNet. WordNet can help make connections between similar nouns, thanks to its data on synonyms and hypernyms, and ConceptNet can make connections between verbs by examining links in the graph, in a similar manner to how Argument Champion worked.. From shoot pheasant the system makes the connection with the Avoid mechanic, where the player tries to target a pheasant.
This is something of an ideal example, of course, but if you're concerned that a completely open input might be too unpredictable, you can always try and restrict inputs, or only generate games when you have a minimum level of confidence in your results. A game like Scribblenauts doesn't claim to be able to show you everything - but what it can do is incredibly entertaining. A simple implementation of this minigame generator with a restricted input language (instead of all nouns, maybe restrict it to jobs? Animals?) could add a lot of interesting content to the right kind of game.
One of the reasons I wanted to discuss this work is because it's a very clean example of how to use ConceptNet in a procedural generation system, and tools like ConceptNet have a huge potential to generate interesting content for games. As a footnote here, I'd like to mention Metaphor Magnet - a tool by Tony Veale that I've brought up in the past on this site. Metaphor Magnet can take a word as input, and provide you with metaphorical properties that word has. You can dive into these properties too, and get even more information - the emotions that a particular property evokes in people, for instance. Ask it about war, and it'll tell you that war is a raging disease. How does this particular property of war make people feel? Threatened. Disturbed.
It's not a perfect tool. It has some crazy potential outputs. But there's a lot of data tucked away in there, and a lot can be done with it. I prototyped a very silly demo in half an hour that uses Metaphor Magnet to generate patron animals for RPG heroes. It does this through a very straightforward lookup of a noun and returns metaphorical interpretations, but also takes advantage of Metaphor Magnet's positive/negative spin to provide different angles on a particular noun.
WordNet, it's hip cousin Wordnik, ConceptNet and Metaphor Magnet are just a few examples of amazing web resources that can be leveraged for new and unusual procedural content generation - content that isn't abstract levels or weapons, but content that is based on knowledge of the real world and the culture we live in. That's the kind of off-the-wall procedural generation I want to see more of.
Where to Find More
Mark Nelson is now Assistant Professor at the legendary ITU Copenhagen Center for Computer Games Research - he's also very active on Twitter. Michael Mateas is Associate Professor at the equally legendary UC Santa Cruz. Both are very approachable chaps and doing extremely interesting research right now. Get in touch with them if you want to know more!
A little announcement besides: I'm going to be talking at Indievelopment in Utrecht this April. I'm probably going to be talking about some of the things in this week's column, as well as general things I've learned through ANGELINA that might be useful to people making games today. It's going to be a lot of fun - please say hi if you see me there!