It's August of 2016 and I just finished playing Batman: Arkham Knight. What a great game. I, being a late gamer, will only get to play No Man's Sky a year from now, when the prices and hype are much lower. But I want to talk about space exploration games now because I really like the subject.
This game let's you explore a galaxy almost twice the size of the milky way, also allowing you to land and walk on the surface of any of its billions of planets with exception of gas giants. No, I am not talking about No Man's Sky. I'm talking about Noctis IV, a free game released in 2000. NMS biggest selling point is nothing new. Procedural generation really is an amazing tool but it has been around for many years, and application to space exploration is no different from dungeon generation.The problem, which Noctis didn't solve and I'm willing to bet NMS didn't solve as well, is how to make the generation interesting enough to justify exploring even a tiny portion of the galaxy.
Here's how procedural generation for planets work in very loose terms. You create a system that generates a planet based on parameters. A parametric planet, we shall call it. Let's say it has a radius, surface color and sky color. That's 3 float number parameters, and it already allows for an infinite amount of unique planets to be generated, mathematically speaking. Sure, it won't take long for any human being to completely see through the system and think he's seeing the same planet over and over again with slightly different parameters. So to solve this we usually do two things, the first and more obvious one being adding more parameters. For example, let's make our parametric model more sophisticated with terrain displacement by 2 layers of perlin noise. Each having 2 parameters (frequency and amplitude). And there you have it! Look at such improvements and tell me we can't fool the player for a little longer now.
Clearly we can't keep adding more and more parameters indefinitely. The number of parameters reflect the complexity of the generator which is related to the technology available. I mentioned earlier there were two things we can do to extend the life of our perception of uniqueness of the universe, and the second is to create completely different set of parameters, planet types. This is where your desert-like planets, with specially made dust particle effects, come in. This exchanges the complexity of a parametric planet so powerful that could create a desertic planet just as likely as an ice planet with two simpler parametric planets where you create by hand the variations you would like to see.
Now I'm going to make a bold guess here. I think adding different types, while definitely increasing the possibilities, highlights the lack of variation within each type. Seeing the differences between each planet of the same type becomes a lot easier when you have vastly different looking planet types also available. Let me illustrate that. Say you just started playing a space simulator game and you only saw planets with forests. It takes a few instances to get the pattern, but you are still not sure whether it's possible to have a planet with some trees, separated by blocks of water. Then you encounter ocean planets! now you almost immediately know there are forest planets and ocean planets and you won't expect anything too far from these two types except a new type.
Space exploration is fascinating. Creating our own universe is the next best thing while we can only look at ours from a distance and send robots to the nearest planets. So I am 100% certain that we will see many more attempts in the future, regardless of NMS's reception. I myself have considered making one so I have many thoughts and ideas. I believe the path to better procedural generation lies in not just more parameters and getting rid of types but on the process to create a planet based on these parameters. It may help by looking at the way nature does it. It uses very complex rules applied on very small building blocks and then grouping a very large number of these building blocks, letting the rules of interaction create all the interesting variations we see. Which is totally cheating. Screw you, nature.
But I think there is a lesson to be learned there. Our procedural generation system focus on end results. We have parameters for color and shape, but the outcomes we expect from a vast universe are too many and too wild to be feasibly accounted directly by parameters. If we instead create our own simplified dynamics rules and use the parameters as initial values for these interactions, the outcomes could actually be unexpected. The exchange we make (because nothing is free) is less parameters with more computation time, or as many parameters we want with the extra variations provided by means of more computation.
Imagine a fluid and erosion simulation. We could get amazingly different, unique and organic results by simply placing spheres of water on a sphere of land. Please, don't take this example to the letter, it's extremely computationally expensive and unfeasible for a game to do this level of geological simulation, I'm making a more broad argument here. Fewer parameters, more computation, richer results. However, except for specific cases here and there, we are not able to simulate the universe, obviously, so I'm guessing this path would require us to throw realism out the window and visit a more abstract universe, maybe even 2D. But you know what? I would rather explore a doughnut shaped planet with a cluster of particles floating energetically at the center that I have never seen before rather than a beautiful and realistic desert planet exactly like the one I saw earlier. What makes exploration awesome is the unexpected.
Meanwhile, I think our attempts at space exploration are better off keeping the exploration element on the second plane. I hear MNS has multiplayer and survival elements, which seems like great dishes to go with a side of space exploration. I can't wait to play it in 2017.