No Man’s Castle in the Sky

Hype

Long since, if ever, was a game hyped up so much as No Man’s Sky. Even those that didn’t jump on the hype train, expected its world to be interesting, only pointing out how few we know about the actual game itself. When the heat was at the maximum, I predicted the game’s downfall. And not for the possible gameplay issues, which could have turned out good, for all we knew. I predicted that the world will be boring, and nothing like promised. It was easy for me to predict, for what they were set out to do, is not possible.

Promise

No Man’s Sky’s world was supposed to be of blasphemous proportions. A technique called procedural generation (discussed later) was used to generate practically infinite number of unique planets to explore, giving the player the opportunity to be the first ever to see them. The planets were about to be populated by similarly generated wildlife, plants and animals, as well as geography, hills, flatlands and lakes.

For some, it does not sound like much. But there is a kind of person who can spend hours in Google Street View, possibly under the disguise of GeoGuessr, or replay Miazmata the 4th time to get some achievements, the kind of gamer that looks behind every tree, and can’t tolerate white areas on the map. The Explorer type of man.

For an Explorer, No Man’s Sky’s premise was like two hundred megatons of your favorite ice cream.

Procedural Generation

The heart of this universe is procedural generation. Procedural generation is a buzzword that brings in cash these days. Let’s have a look what it does.

The most straightforward way to create a game’s virtual world is to manually build it. You design the map or layout, you place objects of interest in it, you decorate it and fill it with detail. As the world grows and gets more detailed, manually setting up all parts starts to take preventively long time. You need to get help from a computer software.

A lot of tedium can be automated. One can set up an algorithm to generate typical textures like wood or stone. They will all look similar, but will not just be a copy of one another, and also can be tuned for wear, type, etc. One can also generate randomized trees or entire forests. Cities. Mountains with fine detail down to rocks. Maps or floorplans. Or even names.

These algorithms take parameters. Some parameters affects the characteristics of the result. You might be able to change the ratio of water to land, make the terrain more ragged or more flat, make a tree taller or shorter, having more or less leaves, and so on. There is one special parameter called the “seed”. It does not change the average appearance of the object, instead, it just randomizes it. Different seed values leads to different instances of a large class of similar objects. Similarly parametrized mountains will all be roughly equally high, equally rocky, equally traversable. But they will be a different one for each seed value.

Computer-generating landscapes or objects does not necessarily mean they go into the game unchecked. A great many problems can show up with procedural generation. Generated objects might randomly end up being weird. Trees might be lopsided, defying gravity, or otherwise look unrealistic. Terrains might be impassable. The designer might just use the raw objects as starting points, fine tuning or manually fixing as desired.

It is also possible to develop a single, complex algorithm to generate the entire world unattended. The classic game Elite used this strategy in order to save precious bytes of the then scarce RAM memory. It did not store the world. It just stored the algorithm, and regenerated the world on the fly. This of course amplifies the dangers of weird or unrealistic creations. As the rumor goes, during the development, one version of the universe had to be scrapped because a randomly generated name was inappropriate.

But since RAM and disk storage is so cheap now, unless there is some special need for it, modern games usually just dump the world into files, and deploy with the software. Unless we are making No Man’s Sky, which has such a huge world, we can’t even hope storing it all. The game, like Elite did, come with the generating algorithm to its entire universe. It runs on our system to generate the segment we are in. Except while Elite was not so big, 2048 systems total, they at least had a chance to review the entire universe and change the seed until they got an acceptable one, in No Man’s Sky there is no chance of doing that. There are way too many systems to review even a tiny fraction of them. The algorithm has to get it right for every seed. If you want the most unlucky creations to still look okay, you need to tune down the variance. This is one reason why the result is on the duller side. But it wasn’t their biggest problem. The biggest problem is discussed in the next segment.

Content and Information

To cut to the heart of the matter, here is the final conclusion: procedural generation does not generate content. Let me explain.

First we are going to assert that randomness is not interesting. As an example, imagine a large number of dots, randomly distributed in an area. Think of it as a star map in a 4X game. One might assume that the randomness generates all sorts of shapes, kind of like constellations. However, if you try to recall actual constellations, you can see that they in no way resemble what they supposed to look like. They are just a few random dots in no particular arrangement. You are lucky to find anything other than a simple geometric shape. The interesting features of the night sky, nebulae, galaxies, are not random. I know this, because I tried to create this exact “world” as an experiment into procedural generation. I have placed, what a coincidence, 18 quintillion dots in a square, exactly as much as No Man’s Sky boasts. (It is not a coincidence, and you know it if you know the origin of this number.) I can tell you, this Elite on Steroids gigantic star map was just as much a disappointment as No Man’s Sky is. It offers nothing of value. The total amount of entertainment coming out of it is fifteen minutes. Random is boring.

As another example, consider a bunch of independent attributes, like color, shape, size pattern. Let us have five to ten of each. Then create a lot of objects having randomly chosen attributes. Such a system offers a large number of possibilities, but do you think it is interesting? Nope. Our brain quickly realizes that the different attributes are independent, and handles them as such, different things that have a small variance on their own. You will not see a red big circle with stripes etc. You will see the color red, you will see a circle, and you will look for some better things to do with your life.

Second, we are going to argue that order is not interesting either. Imagine your star map as a rectangular grid. How does that work? What if all the planets are rich in exactly one mineral, and it can be sold for a good price in the system just three stars to the left? What if you find that the best loot is always in the basement of houses, or the highest points of islands? What if all orcs always lie, and all elves are always honest? Does these ideas sound like a game you want to play?

Third, we posit that having anything interesting coming out of an algorithm is either really hard or impossible. An obvious counterexample would be the famous Mandelbrot set. Its mathematical formula is extremely simple, yet the resulting image is full with spirals, circular shapes, flowers, more spirals, and … yep, that’s pretty much it. Let’s be honest, nobody spends hours looking at the Mandelbrot set. Yes, it is amazing how complex its shape is compared to the simplicity of its formula. But as a source of entertainment, it fails. You can consume all of its offerings in an hour, maybe a few if you do it in small batches. And this is a one of a kind function, you don’t come across one like it too often.

Fourth, we conclude that your game has as much content (read, interesting things) as you put in it. What is interesting after all? The right amount of complexity. Complexity is the number of rules necessary to describe a system. If the number of rules necessary is too few, we understand it quickly, and move on. If the number of rules necessary equals to the number of observable parameters of the system, like its color, pattern, arrangement, parts, and so on, then we don’t have anything to understand, we can only memorize the whole phenomenon. We can’t make sense of it, it is random noise. To be interesting, there has to be a lot of rules to discover, but once we discovered them, we should see the patterns and see the structure. That is satisfying.

In case of procedural generation, rules are, roughly speaking, the algorithm itself. Therefore we can’t expect a simple algorithm to generate a complex world. You need to work for each and every notable feature. You pay for playtime with worktime, as it used to be, and as it should be.

So how does all this tie in with No Man’s Sky? The sad fact is that the game simply does not have enough content. It barely has any, our brain has nothing to chew on. Despite the lot of stuff, the game has no meat. And it is not just a mistake, an error or an incorrect choice in its algorithm. Meat is not there, because they didn’t create it, and didn’t put it there. They didn’t think they have to. When they realized they had to, it was way too late. Way too late, and also an entirely different task then they were prepared for. They were about to make an algorithm, not figure out what makes a geologic structure or an animal’s anatomy interesting. Heck, they couldn’t even hire a help, as nobody has any clue about these things.

Okay, but what about existing games using procedural generation? If you think about it, they do produce more of the same, pretty much that’s the point to them, isn’t it? The purpose of procedural generation in these games is not to create interesting content. The content is all hand made. The purpose is to give us a different instance of the same game when played a second time. Things are mixed up just enough so we can’t learn what’s next. We can’t memorize the order of rooms, enemies and loot. So procedural generation is there, in fact, to give us the same experience every time. And this is what No Man’s Sky gives you with every planet. The same experience.

Scale

The size of this universe in No Man’s Sky is more a problem than a feature. The more planets you visit, the more obvious their emptiness becomes. Why have such a big universe in the first place? Thinking about it, every planet we don’t visit, is exactly like a planet that is not there. Even the most hardcore players will not visit more than a few thousand planets. So what difference does it make if there are a thousand or a quintillion planets remain unseen? The question will be answered in this section.

One of the most spectacular features of our universe is its scale. The universe is so big and so full of stuff that we have no hope to grasp, not even close. All we can do is to create better and better aids that try to help us grasping it, and fail miserably. With each failed attempt, the glimpse of infinity slowly makes a lasting impression in our minds. And what a good impression that is! Almost like a zen meditation. It helps understanding that you are not the center. It helps understanding that things will move on, with or without you. It helps putting things in their place, and reduces anxiety over irrelevant minutia. Everyone should practice it every now and then.

You can start by downloading Celestia. It is a free software that shows the solar system and some surrounding stars in real proportions, Something that No Man’s Sky promised. Except it is only one system (ours), plus a few thousand nearby stars, but without planets. One striking feature of the solar system is that planets are so small. As you travel from one to another, you see the planet’s disk very quickly reducing to a dot, and then you just fly in cold, empty, black space for the majority of the journey, just to see the other planet’s disk appearing in the last moment. Our neighborhood is mindnumbingly empty. You can try to visualize distances like 100 million kilometers, but it’s hopeless. Then you go to the closest star.

How to play GeoGuessr correctly? For those that are not familiar with it, it is a game that randomly drops you somewhere on Google Street View, but with no access to the map. You can walk around. Your goal is to find out where you are. Now of course you can be the slacker, identify the continent, and be satisfied with the 2700km error. But to really enjoy the game, you should go for 10m precision. At one point, you will find your location in another browser window with a full featured Google Maps in it, zoomed to street level. And then comes part when you need locate the same spot on the ingame map. You zoom out until you recognize the greater area. Then repeatedly zoom in to both maps in parallel, finding some notable feature that guides you. At that point you realize how overwhelmingly huge even smaller countries or country-parts are. How overwhelmingly huge this planet is.

So, screw you, Ridley Scott! How dare you make movies without understanding the world you are about to show? Remember that part in Prometheus when they arrive to the planet? Goes as this: they approach the planet right after arriving. They descend, and go from seeing the planet disc to flying over rocks in two seconds. If you tried GeoGuessr as I suggested, you know how wrong this is. They missed a lot of descending. The planet feels tiny! Normally, they should enter low orbit, and observe the planet’s surface for many weeks, to even see it all. Then, after choosing the most interesting target, go down to investigate. It would give the planet the right proportions. What we saw in the movie is weak and does not impress at all, a toy planet to host one artifact.

And screw you, No Man’s Sky! You did that too. The game does many things to destroy the feeling of scale. The world feels small. The planets are in fact small. They are way too close to each other. You can not go from one star system to another in actual space, the systems are separated boxes. The sky is obscured by clouds and some kind of fog that makes distant objects invisible. Despite having trillions upon trillions of systems, the world feels claustrophobic. What a missed opportunity.

Etc

We have largely covered our two main topics, the lack of content and the lack of scale. A few smaller points are left to be mentioned. Now we will attempt to show that some other grievances many people have with the game are also the consequences of the main design flaws.

A frequent complaint is the multiplayer, or the lack thereof. It was promised that players, in theory, can meet each other, albeit the chances are negligible. I assume due to some bug, it happened almost immediately with two players. They managed to get to the same place at the same time. However, they didn’t see each other, the game didn’t bother to render the other player, or otherwise acknowledge their presence. One gets the impression that the multiplayer code is entirely omitted. In hindsight, we should have guessed it is not there. It makes no sense for it to be there. Why would you waste precious developer hours to develop a feature that nobody will ever see? In fact, if the players could see each other, that would have warranted outrage. That time could have been used to develop some actual features that average players can encounter and experience.

This is a direct consequence of the game’s main premise, the enormous size of this virtual universe, which was supposed to be a feature. But as we discussed, it turned out to be a non-feature. A possible solution would have been to start all players at the same location, and give them real multiplayer options, like trade, teamwork, guilds, roles. Those that feel like it, could wander out to the cold, hostile, uncharted world, make it known, claim it, mine it. But to do this, you need to develop an entire new game that benefits very little from a grand scale universe, the very thing they were about to sell. A few billion stars is more than enough. Also, probably you want to make the galaxy to have a structure, interesting places to go. We are thousands of developer hours short of this. And you want a galaxy map to see how little you have advanced so far.

Another issue is the grind. It is not a stretch to call the game a progress bar manager. You can’t do what you want to do, because you need to refill the tool you use to get resources to refill other things, while you sometimes need to wait for the tool to cool down. You are managing interlocked status bars all the time. One easily gets the impression that the game wants to stop you, prevent you from advancing. Like it is hiding something. This is exactly the case. Do you honestly think that if you remove or redesign these game mechanics, it will improve the experience? Think again. Without these, the game would be reduced to a walking simulator on very similar and very boring planets. The sheer boredom would make you quit in minutes. The game gives you pointless busywork in order to divert your focus away from the featureless desert you are in. It lets you experience the planet only in small doses, stolen seconds between recharging things or running back to the ship before your personal heat shield melts away. It is entirely necessary in order to maintain some of the illusion.

Conclusion

No Man’s Sky is not a failure in game design nor it is a scam. It is a gross misunderstanding of how procedural generation is, and what it gives. The developers accomplished what they wanted, only to discover that the it isn’t worthwhile. They reached out for the Holy Grail, to realize that it is actually a cheap tin cup. The game you can buy is this tin cup with a rushed paintjob over it to sell better.

Advertisements
No Man’s Castle in the Sky

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s