# Where did the 18,446,744,073,709,551,616 number come from?

Reading about No Mans Sky, and hearing about the 18,446,744,073,709,551,616 planets there are, I’m curious, where did that number come from? Does that mean there are 18,446,744,073,709,551,616 *unique* planets, and if^{1} they’re all found, the next planet would be a repeat? Or does it mean they’ve places some kind of “hard limit” in the code for that number? Or something else completely?

My current guess, is they can calculate that their world generation algorithm has 18,446,744,073,709,551,616 unique output values, and any new planets after that would be repeats.

^{1} I know that this will never happen

Update: I’ve reached out to Hello Games, and if they reply (I imagine they’re still a little busy at the moment!) I’ll update this post with what they say.

### 2 Solutions collect form web for “Where did the 18,446,744,073,709,551,616 number come from?”

18,446,744,073,709,551,616 is 2^64. I assume that this means the planet generation algorithm is based on a random seed that is a 64-bit number (e.g. the `long`

type in many programming language). I don’t know how (or even if; how would anyone check?) they guarantee that all possible inputs are used and that none are repeated.

I’m curious, where did that number come from?

**18,446,744,073,709,551,616 is 2^64**. In programming terms, 18,446,744,073,709,551,61**5** tends to be the upper limit of an ** unsigned long long**, but this depends on the implementation. 18,446,744,073,709,551,61

**6**will be all of the possible numbers for an

`unsigned long long`

, including 0 (i.e. 18,446,744,073,709,551,615 + 1).Essentially, it is very likely brought about by the limits of a data type. In this game it appears the data type is the planet seed.

A **seed** is a variable for generating (pseudo) random data in an algorithm. Assuming the algorithm remains unchanged, the same seed will generate the same data.

Therefore, using the same planet seed will give you the same planet. If you have played Minecraft, you will probably understand the general concept of re-using seeds to get the same map.

2^64 for a seed appears to be chosen to give the illusion of infinite worlds. Technically, there can only be 18,446,744,073,709,551,616 worlds via this seed. Functionality, it would take **584 million years if you could visit a new world every 1 second**, or to quote from the same article:

It would take about 7.3 billion persons, all working from birth until death, visiting a planet every second of their lives in this game, to see 18.4 quintillion worlds combined. The current population of Earth is 8 billion people. So, yeah, No Man’s Sky has an infinite universe, to any reasonable person, anyway.

Does that mean there are 18,446,744,073,709,551,616 unique planets

No, there is no guarantee that 2 unique seeds will give 2 unique planets. For example, seed 1 and 90,000 may generate the same planet. This will all depend on the algorithm itself.

In order for the algorithm to generate a unique planet for all seeds:

- There are 18,446,744,073,709,551,616 or more unique combinations of planet properties
- The algorithm maps seeds to each of these unique states once only

Without any analysis on the algorithm involved we can only speculate if this occurs.

All I could find out about the algorithm is that it has **14,000 lines** and was written in a way to create **navigable worlds**. Making them navigable suggests there is some simplification applied to prevent complex structures. Common sense would suggest that this limits the uniqueness of planets.

Functionally, it would seem likely that each planet you visit will be unique. Technically, well like I said above, it will depend on the algorithm.

My current guess, is they can calculate that their world generation algorithm has 18,446,744,073,709,551,616 unique output values, and any new planets after that would be repeats.

The algorithm would only allow a seed from 0 to 18,446,744,073,709,551,615, inclusive. If you could somehow add a value greater than 18,446,744,073,709,551,615 I would assume that you would either see **a crash, error or an overflow** to a valid number. For example, 18,446,744,073,709,551,616 may just overflow to 0.

Essentially, I am almost certain that 18,446,744,073,709,551,616 is the maximum seed, regardless of any tricks to force a higher seed value.