18,446,744,073,709,551,616 is a pretty big number. It’d take a fair while to count to it. That number was one of the biggest selling points of No Man’s Sky – it’s the number of unique planets the game’s universe purportedly contains.
Wow! Imagine that! How could you ever get bored of a game with so much to explore?!
By now, we’re all aware that No Man’s Sky, one of the most hyped games in years, was, frankly, a bit of a disappointment (putting it mildly). Even most of those that are still enjoying it aren’t heralding it as the second coming – the vast majority of opinions (based on Steam reviews and other assorted feedback) range from absolutely terrible to somewhat OK.
I’m not here to talk about No Man’s Sky (much) – there have been enough articles written about it. Instead, I want to talk about the silliness of using big numbers to make people impressed about your game.
A project I’ve just started work on has a lot of NPCs onscreen at once, and I want to make sure players don’t see the same NPC twice too often. In one afternoon, I made a system to randomly generate the appearance of every NPC that would give me 268,618,275,000 possible variations of NPC. A pretty impressive number, right? Especially for only an afternoon’s worth of work, right? Er… not really. It’s pretty simple: NPCs can have one of (deep breath) three different body shapes, three different skin colours, ten different hair styles, five different logos on their shirts, three different shirt style variations (collar, no collar, v-neck), four different hat styles, three different facial features (beard, glasses, plain), and any shirt colour on the RGB spectrum. That gives me 3 x 3 x 10 x 5 x 3 x 4 x 3 x 255 x 255 x 255 total variations, which is 268,618,275,000. Say I added a second shoe colour to the mix – that number immediately doubles to become 537,236,550,000 variants of NPC.
You can see how easy it is to exponentially grow the number of variants of something with just the tiniest of tweaks. Going back to No Man’s Sky, it’s likely that they have one fairly simple procedural terrain generator (something a million other games also have). The terrain generator likely has a number of variables that determine things like maximum mountain height/valley depth/cave frequency/etc. By changing these numbers, the devs can create vastly different terrains in seconds. Other numbers will dictate things like the colour of the terrain/water/atmospheric hue/flora spawning/fauna spawning, etc. Yet more numbers determine which of the premade base animal and plant assets will get stuck together to form that flora and fauna.
Given that No Man’s Sky isn’t actually a simulated universe of any sort, and instead is just the same skybox bound play area in which the planet generation algorithm gets rerolled when you warp-jump, the number 18,446,744,073,709,551,616 is likely just the total number of possible answers the planet generation algorithm can produce. My NPC generator could almost reach this number if I just added trousers in any shade of the RGB spectrum.
Another example (an example of proc gen done right this time) – The Binding of Isaac: Rebirth. How many levels does it have? Probably way more than NMS has planets, when you try to figure out all possible grid combinations, room variations, and floor variations. That’s not even counting item placement. The actual number would likely be near impossible to write down. But that’s the beauty of procedural generation – you get near infinite variation with relatively little work. The real work comes from making sure that the procedural generation consistently produces fun, engaging levels (which it does in BoI: Rebirth, and doesn’t in NMS). Or maybe adding some great hand-crafted content in amongst the procedurally generated stuff, and making it fit seamlessly into the gameword (Spelunky is a good example of this – its levels are made up of smaller ‘sectors’, initially handcrafted, that can have dozens of variations and thousands of layouts). This is the real challenge of game design; not creating a fancy algorithm that can churn out seventy quintillion billion squillion (totally a real number) variations of something.
I love procedural generation. I also love quality, unique, hand-crafted content. And I think the truly great games of the future will combine the two. But I guess what I’m trying to say is this: don’t get fooled by big numbers, or claims of ‘infinite’ content on the back of a game box (or online store page, or whatever). It’s meaningless. It’s easy to create a bazillion variations of something, if they’re all effectively the same in the end. Lots of games do it, but add nothing else on top of that, and that’s boring. It’s like throwing bucket after bucket of paint at a giant canvas and then claiming your painting is better than the Mona Lisa because it uses more paint.