This is the first in a short series of posts about No Man’s Sky and the future of procedural generation.
Procedural generation has been around for a long, long time now. We are approaching the 40th anniversary of Rogue, Elite has already had its 30th birthday, and even sprightly young Spelunky is coming up to double digits. We’ve seen old ideas refined and polished over those decades, and new ideas experimented with and tested out. But throughout this evolution and growth one area has remained largely the same, swept under the rug every time it caused problems, hoping that we could forget about it for a little longer. With the release of No Man’s Sky this month, I feel like it simply can’t be ignored any longer. We need to talk about how we talk about procedural generation.
The first trailer for No Man’s Sky caused an incredible stir when it launched, showing vivid planets with diverse organic life on it, implying all manner of space adventures. It also included several interesting phrases which stood out to me, including Every Atom Procedural and Every Planet Unique. On its own, this language was not a surprising angle for a game to take in its marketing. The Binding of Isaac’s Steam page, for example, promises ‘you never play the same game twice‘ but no-one so much as raises an eyebrow when they sit down and discover that they are, shockingly, playing The Binding Of Isaac every time. What was surprising about No Man’s Sky’s first trailer was the degree to which people were buying into its claims, before almost anything was known about the game (before even the developers were truly sure what they were making, I imagine).
Procedural generation has a vocabulary that you’ll most likely be familiar with. It uses words like discover, unique, endless, forever, replayable. It talks in numbers and powers of ten, and bigger is always better. These words are not necessarily used falsely (although I’m sure they are in some instances, but I’m not here to cast aspersions), but intentionally or not they do mislead people, because they are very easily interpreted in a lot of different ways. ‘Every Planet Unique’ might mean that each planet has a complex sci-fi backstory rich enough to fill a two-part Star Trek episode. It might also mean that, mathematically speaking, there’s a rock somewhere on the planet that doesn’t look like any other rock in the universe. Uniqueness is almost always is used in the weakest, most technically correct way possible. As Kate Compton quipped in her amazing post about procedural generators, every bowl of oatmeal is unique.
We rarely interrogate such language, and as a result we are not accustomed to discussing these concepts and thinking critically about whether they make sense in a game. By this I don’t just mean figuring out if developers are making sense, I mean also that as developers we are not good at evaluating whether our claims are sensible before going public with them. Does a sense of ownership over named planets make sense if we are also claiming players are unlikely to meet each other? Does an aesthetic of “true discovery” make sense if we are also claiming every planet is unique and wondrous? It’s not that these ideas are contradictory by definition, but we’re barely even considering the questions at all, much less drawing conclusions about them. We can’t examine these claims for their contradictions, because we lack a shared, well-understood language to communicate in about procedural generation. We are stuck with our own interpretations and mental models and the hope that they match up with the journalist whose article we are reading, or the developer whose game we are following.
Could we do better? When we use extreme language to talk about procedural generators (or any other kind of technology), we encourage people to draw extreme conclusions. Perhaps we need a different way of talking about procedural generators, one that shies away from making grand sweeping statements about its size. Lately, I’ve been wondering if procedural generators would do better to focus on the exact opposite, to take a single piece of content and explain how it is made. Here’s how my generator decides where to hide goodies. Here’s how it painted that particular shade of sunset. Here’s where that joke corporation name comes from. We can get people to connect to what our generators are doing, to make them seem less fantastical and unknowably complex.
That’s not to say I think everyone should take this approach. Some generators benefit from their vastness, like Desert Golfing‘s mystically unending golf course, and talking about its scale helps get across those feelings. Other games benefit from not saying anything at all. I don’t need to know how Proteus‘ islands are generated, and I kind of like not knowing. For many other generators, you might think that explaining how its processes work would be kind of… boring? You’d probably be right. A lot of generators are boring, and I think that’s one of the reasons why we reach for the big numbers and strong statements, to cover up this fact. Instead, we should be confident as designers and artists that we are using it for a desired effect, and if it isn’t worth mentioning in great detail, we can simply not mention it. Your game probably includes graphics shaders and a physics system, too. They’re part of making games.
That’s why I think this approach might be helpful, because by telling stories about what our generators do to make a single piece of content, it helps us ask ourselves what bits of our generator are most interesting. Most of the coverage of No Man’s Sky is focused on its planets and universe, which draws the wildest claims, but turns out not to be wildly new or innovative. Compare that with this New Yorker article about how its animal calls are generated. No wild claims. No ambiguous language. A focused story about interesting work on a cool generator, told in a way that I felt was accessible to me even with no audio background at all. Ambiguity doesn’t help anyone, and often it can lead to us brushing over the really good stuff.
It’s fair to ask why any of this matters – developers can say what they want, only they have to deal with the consequences of their marketing. But no game developer is an island, and how we talk about technology informs the understanding of the players and critics who will go on to read about the latest research or a preview of the next procedural game. If we speak with clarity, explain how our games work, encourage them to be excited about the same things we are, then we help them understand not just our games, but all games that use these ideas. If we reinforce the idea that procedural generation is magic, if we say it is governed by complex, nameless “maths”, if we raise people’s expectations with ambiguous language, then we encourage people to feel othered, and to treat with suspicion and pessimism the next game that comes along with a similar attitude.
The old language of procedural generation needs to be done away with, and in its stead we need a new way of communicating about what we do, and why it’s interesting. We need to debunk the idea of procedural generation as a dark art, and show people that it is accessible, understandable and interesting. It might feel scary at first, it might feel like we’re making our work vulnerable and pointing out all the cracks, but people won’t mind. They love the cracks. They love the stupid stuff generators do. They don’t expect all the answers right now, I don’t think, they just expect us to be honest and clear with them.