No Man's Sky taking off June 2016

As far as I'm aware there is no multiplayer, other than the players are part of the same universe so some things may overlap, i.e. if someone discovers a planet first they can name it, which other players will see once they find it for themselves.

As for the persistent procedural state, sure it could be done, but the amount of data required seems very high. Say a planet had a conservative 100 trees, each tree has a health value 0 -255 (1 byte) at different health values it looks different and is destroyed at 0. For one planet you'd need 100 * 1 byte = 100 bytes. For the entire universe with each planet having up to 100 trees that would be (in raw form) 100 bytes * 2^64 = 1.8 × 10^9 terabytes.. (potentially) per player..
This is of course a naive approach and without compression but it does put it into perspective of how much data could be required for a persistent universe.


its not quite that though is it..
the way they explained it its just a series of algorithms which are a constant. then the place you arrive at is also a constant in the same basic terms they explained it as the algorithm is 100 and each "place" is a constant differing value.. so place 1 could be 1 and subsequent ones would be 2 or 3 etc meaning that the world would be generated as a 101 or 102 etc.. so a tree at 1/2 health at point 1 could simply add a variable of - 0.000000003001000 to the end of the place constant and that is what the algorithm works off. this would not increase in numbers of bytes. essentially it just changes the place constant 1 from "1.00000000000~" to "0.999999996998999" or similar, so the size would remain a constant. and if the planet was ever totally destroyed would be 0.0000000000000 and nothing would get generated in that place any more.

That is incredibly simplified but because it is all a mathematical equation that creates the worlds based off of 1 unchangeable algorithm, the only variable that has to change is the place constant. there is always a place constant so changing it would not increase the size, also a person does not have to do the maths involved. if the system understands what to create off of the base values then any changes would automatically change the place constant (which would now become a variable). and then all it has to do is remember that instead of the initial constant + variable, so size never changes..

hope that makes sense.
 
Last edited:
its not quite that though is it..
the way they explained it its just a series of algorithms which are a constant. then the place you arrive at is also a constant in the same basic terms they explained it as the algorithm is 100 and each "place" is a constant differing value.. so place 1 could be 1 and subsequent ones would be 2 or 3 etc meaning that the world would be generated as a 101 or 102 etc.. so a tree at 1/2 health at point 1 could simply add a variable of - 0.000000003001000 to the end of the place constant and that is what the algorithm works off. this would not increase in numbers of bytes. essentially it just changes the place constant 1 from "1.00000000000~" to "0.999999996998999" or similar, so the size would remain a constant. and if the planet was ever totally destroyed would be 0.0000000000000 and nothing would get generated in that place any more.

That is incredibly simplified but because it is all a mathematical equation that creates the worlds based off of 1 unchangeable algorithm, the only variable that has to change is the place constant. there is always a place constant so changing it would not increase the size, also a person does not have to do the maths involved. if the system understands what to create off of the base values then any changes would automatically change the place constant (which would now become a variable). and then all it has to do is remember that instead of the initial constant + variable, so size never changes..

hope that makes sense.

I know what you're getting at but how do you change a set of constants, without storing one per tree so that tree ID 63 is spawned at 201 health instead of 255? Or a herd of animals has moved half way across the planet due to your actions where you've attacked them. It's one thing creating a procedural algorithm that takes a set of constants such as landscape, atmosphere, planet size, etc to generate a terrain, spawn locations, densities, etc; but to then be able to tweak these initial constants to be able to re-generate a planet due to players' actions seems a little farfetched without being able to store some persistent data per section/object. Maybe I'm wrong, procedural generation isn't my expertise.
 
but there isnt a "tree id" with the way its procedurally generated its just an algorithm.. a mathematical equation like they use to create fractals.
so changing any variable in the equation would have an effect. just like changing the algorithm for a fractal even slightly would have a constant change.

it seems to me they have all the foundation laid out, and anything that happens to the planets could be permanent.

i think the problem is (the only reason i could think of is) that they have a lot of the algorithms interlinked so if they let something happen to Tree A on planet A because trees use a single algorithm that would happen to all trees every where.
(i think they have 1 algorithm for trees. and 1 for animals and 1 for surfaces etc. which would make what i say impossible)
but as i outlined above i think the way i have it would work better. although i could never do it. and its probably a LOT more work to make a single base algorithm that could have that much variance.
 
Last edited:
if your algorithm is designed to make things the same time, every time and then you say it needs a modifier per tree that completely defeats the purpose of having it generated in that way, because then each planet becomes unique in it's own uniqueness. storing that in the algorithm is probably less efficient than just having the algorithm create the initial state, then grabbing the modifiers from a regular database

(plus the probability of every one of the 2^64 -1 planets seeing people and having effects applied is nil) while your dataset will increase potentially exponentially, it's still going to be more efficient than needing to bake it into and changing a core algorithm as it would require just as much storage to have to re-create it all the time.

(my opinion at least)
 
its not a single algorithm
But i think the issue does come from using a multitude of base algorithms..

lets say they have 7-8 of them..
one for basic solar system creation and all it does is place markers in areas all around space based off the algorithm which defines where planets COULD form and where they could not. (does not mean it will make a planet every where one could form)

then they have one that will generate the land mass or composition of the planet depending on its position.

then they have one that generates water on planets that can have water

And another one that will generate fauna on planets that are in the correct distance from the sun depending on its size extc

And so on and so forth..

Thinking about it the algorithm that creates fauna would just be one algorithm.
same for the one that creates land mass.. So the only way to do what i want would be to add a variable to the place marker. and that would just exponentially grow.
the variable could always just change. but you couldn't attribute the variable directly to the algorithm or it would effect every planet every where..

I still think it would be a better more immersive game. but you would have to make the game a LOT smaller and limit it to 10-20k planets..
And if they are being procedurally generated then you could easily end up with 90% of the planets being barren and lifeless.
 
Back
Top