At the time of writing this article I am on hole two thousand, eight hundred and forty two ofÂ Desert Golfing.Â
Desert Golfing is a mobile game about punting a tiny white golf ball across the screen and into a hole. When you do this the hole pushes the ball up, the screen scrolls to the right, and a new hole reveals itself. This goes on for… well, I actually don’t know how long for. It goes on for at least two thousand, eight hundred and forty two holes. Like most people who play this game pastÂ the first hundred holes or so, I play Desert Golfing because it’s relaxing, because it’s easy to open up for a few minutes wherever I am, because it’s fun to knock a ball around and play with a physics system. Most of all, though, I play Desert Golfing because it seems to go on forever. Whenever I need a new level, there it is.
For a long time I wasn’t sure whether the gameÂ was procedurally generated, as I knew very little about it. Then I began to consider whether it might be a combination of generated and designed, whether the occasional hole that seemed too perfect might be an indicator of a guiding human designer. Over time I came to accept that it probably was entirely generated, but even this left questions like whether it would ever end, or whether its designer intended you to go past the first thousand holes. These questions might seem bizarre to some people – I told a friend the other day that it would be a ‘spoiler’ to discuss the appearance of a cactus on one of the holes – but I use Desert Golfing almost like a meditativeÂ aid. I sit, I zone out, I think about procedural generation, and I wonder whether the desert ever ends.
Three Word Story
If you’ve played Desert Golfing you might be thinking this is a bit heavy for such a simple game, so let me pull back a bit and talk about procedural generation as a whole for a while. Julian Togelius, one of the most wonderful procedural generation researchers out there, wrote a blog post this week about what AI could mean for games if all those academic research dreams came true. He painted a picture of a sort of infinite Grand Theft Auto, capable of writing and rewriting its narrative, mechanics and setting, and able to be used as an intelligent game design tool on top of all of that. It’s a good post, and you should read it, but I found myself feeling a familiar sense of depression while reading it. Describing the game’s ability to generate new areas, he writes:
“The game makes up the landscape as you go along, and you end up in a new city that no human player has visited before. In this city, you can enter any house, talk to everyone you meet, and involve yourself in a completely new set of intrigues and missions.”
When Julian mentions places that ‘no human has visited before’ it instantly brings to mind one particular example of procedural generation which lately has me thinking a lot, andÂ is emblematic of an ongoing trend that concerns me a bit – Hello Games’Â No Man’s Sky. Before I go on, I want to emphasise that I’m really excited about NMS, and I’m looking forward to exploring its worlds – my interest in the game is very similar to that of Desert Golfing, in fact. What I’m about to say may come across as critical, and I really have had trouble expressing it properly, so I hope no-one will take offence and will understand it as the well-meaning discussion that it is.
From the outset, No Man’s Sky was marketed as a game that defined itself in terms of itsÂ procedural generation. It was described almost as the end point of procedural generation as a technique, the ultimate dream: a universe of trillions of planets to explore, with ‘every planet unique’ and ‘every atom procedural’. Every atom.
If you read any press or coverage of the game, the emphasis is on itsÂ uncontrollable scale. “How To Play A Game With 18 Quintillion Worlds” chirps PC Gamer, while the PlayStation blog explains how it would take 585 billion years to see them all (note that what constitutes as ‘seeing’ here is irrelevant – the important thing is the big number). No Man’s Sky’s universe is presented as unknowable and terrifying – even the technology behind it is reduced to ‘maths’, as if the knowledge of what is going on might cause a RaidersÂ Of The Lost Ark-style face melting. “Everything exists for a reason, and is governed by maths.” the PlayStation blog explains. Polygon runs a similar line, cringe-inducing for anyone who’s ever written a line or code or worked on tech communication: “How did Hello Games build No Man’s Sky? In short, math. How will it keep it running? More math.”
Setting aside the problem of communicating technology to people, all of theseÂ things lead towards the same issue: the phrase “Every Planet Unique”; the 18 quintillion stat; the mystical ‘math’ idea. It boils down toÂ a vision of procedural generation that we’ve always used, and it can be described in three words:
MORE UNPREDICTABLE STUFF
I’ve chosen these three words really carefully, andÂ I think they sum up something like 90% of procedural generation applications in games right now. Let’s go through them from last to first:
- Stuff because we often don’t really care much about what’s being generated. No Man’s Sky produces beautiful planets, but they’re just data – the system doesn’t need to know what a planet is or what it does. It chews up the data as we tell it to, and spits it out in the shape of a big ball of rock.
- UnpredictableÂ – note that crucially this is not the same asÂ novel. Procedural generators don’t have to produce things that surprise people, they just have to be hard to predict. EvenÂ Spelunky, a game I hold up as probably the best use of procedural generation in history, uses the technology simply to keep the player on their feet.
- More because that is always the watchword – we use procedural generation so we can press a button and find another thing. And another. And another. Always and forever.
This is everything people love and everything people hate about procedural generation, and it defines a trench thatÂ the field has been stuck in for a very, very long time. I think it’s time to get out.
The Flaw Of Large Numbers
I play a lot of games with procedural generation in. I’m currently playing Vagante, a delightful side-on platformer-cum-roguelike that generates its levels and items procedurally. I actually really love the More Unpredictable Stuff mantra, it works for me, it hits all my buttons. Remember – I am on hole 2842 of Desert Golfing. They haven’t all been rip-roaringly entertaining works of art. They’ve mostly been More Unpredictable Stuff.
The problem is that our dream of what procedural generation can be – the same dream that Julian expresses in his blog post, and the dream that people are currently having about No Man’s Sky – has a dark twist for those who follow it too far. For No Man’s Sky, the problem will probably be that second word – unpredictable. They began by declaring that the game’s 18 quintillion planets would be “unique” but that word has a million different interpretations. Let’s talk for a minute about how that works.
A few years ago there was a crowdfunding campaign for a console that claimed it would generate games. The console claimed it could generate over a quadrillion games and levels, which sounds like a big number and (temporarily) gained it a modicumÂ of press coverage. Like No Man’s Sky, the number works on us because weÂ can hold two things in our head at once: the number, and a single example. How we multiply the two together in our heads is up to us.
To give you an idea of why this canÂ cause problems,Â let’s explore a quick example from a much smaller game:Â Civilisation IV. The standard map size in Civ IV is 84 tiles by 52 tiles (that’s 4368 tiles in total), and each tile can be one of 8 different terrain types. 8 possibilities for each of the 4368 tiles means that Civilisation IV can represent 8^4368 maps (for a more verbose explanation of this, you can read the original post here). It’s hard to visualise how big that number is, so let’s compare it to No Man’s Sky’s quintillion. A quintillion is a one followed by eighteen zeroes, a nineteen digit number. 8^4368 hasÂ over 3,900 digits.
There are so many caveats here, of course – most of those maps aren’t valid, like the map that’s 4368 water tiles. Most of those maps would never be output by the generator. But at the same time, if you take a randomly generated map and change one tile from plains to grassland, both of those maps are valid. Do they both count? Are they both unique? You’d probably argue, rightly, that they weren’t. They’re unique on paper, they’re technically distinct from each other, but to our human eyes they’re too similar to pass the test. I don’t know how No Man’s Sky generates its planets, and I don’t know what 99.9999% of them look like, but I imagine many people will be disappointed come launch day when they realise the game they had in their heads is not the one that appeared on their screens.
Before I move on, I want to stress two things: I don’t think No Man’s Sky has been marketed dishonestly at any point, and I think it will be an enjoyable and remarkable game. My point is not that ‘every planet unique’ is a lieÂ – but that the way gamesÂ culture understandsÂ procedural generation and the way we discussÂ the technology leads us to misinterpret these ideas, and that leads us to read too much into claims of big numbers, huge scales and infinite content.
I’m looking forward to No Man’s Sky, but not because I thinkÂ each of its 18 quintillion worlds is unique and equally beautiful. I’m looking forward to it because,Â like Desert Golfing’s endless, barren sand dunes, it will enable me to sink into a feeling of complete insignificance, to be small in a vast universe. It’s whatÂ Tom Betts, procedural generation expert at Big Robot Games, likens toÂ the Victorian ‘sublime’.Â It’s the one aesthetic, besides More Unpredictable Stuff, thatÂ we have got good at usingÂ procedural generation to express.
A New Language
PROCJAM, the procedural generation jam, happens next month (you can stillÂ get tickets to our live talk day, by the way).Â I started the jam last year as a kind of focal point for the procedural generation community, but also to hopefully provide a place for new folksÂ to come and learn about the techniques of making things that make things, perhaps for the first time. Lots of people are missing from the procedural generation and games community, and it’s hard for newcomers to get involved too, so PROCJAM is a small attempt to help alleviate these problems by being friendly and welcoming.
One big group of people who I think are missing are designers and critics, and I think there are very good reasons for whyÂ this is. For one thing, procedural generation can be complex, and there are not many good resources or tutorials to help people get started, particularly at the deep end of things. By comparison, adding physics to your game requires writing no code at all these days, if you’re using the right toolset.Â I also think thatÂ for designers there’s a feeling that procedural generation means giving up control over part of your creation. It’s easy to see why we might think this – More Unpredictable Stuff is usually just that,Â stuff, and soÂ we don’t care if Spelunky’s caves are beautiful or crafted or leading somewhere, we just care that you can reach the exit.
I think this belief is a misconception, of course – I think that procedural generation can be a powerful tool for designers, and that if we understood it better and talked about it more, we could think of procedural generation as another part of the designer’s toolkit. I think that procedural generation can be an exciting way to hand over control to a piece of sofware, but I also think it can be seen as a new level of control, a layer of abstraction that allows us to wonderful, weird new things. I think every assumption we have about procedural generation – evenÂ the idea that it should be infinite – can be challenged and experimented with. But in order to do this, we need better discourse on the topic. And in order to get that we probably need more designers and critics to get involved. We need to elevate this area out of technological obscurity and share it with everyone, to define a new language that we can use to talk about generative systems, and the many ways they can be used in games (and beyond).
I hope you’ll join PROCJAM’sÂ live talks stream on November 7th. Our speakers come from academia, from the Twitterbot community, fromÂ tiny one-person projects with big dreams, and from bustling indie businesses. Our jammers are vibrant artists, programmers and designers looking to do new things with a cool idea – the idea that we can make things that make things. It’s an idea that has been loaded with preconceptions, assumptions and trends for decades, but it’s time to shake them off, to grab our bag of clubs, and to head off into the desert in search of glory. I don’t know what’s over those dunes, but I do know it’ll be something new.