Woher kam die 18.446.744.073.709.551.616 Nummer?

Lesen über No Mans Sky, und das Hören über die 18.446.744.073.709.551.616 Planeten gibt es, ich bin neugierig, woher kam diese Nummer? Heißt das, es gibt 18.446.744.073.709.551.616 einzigartige Planeten, und wenn 1 sie alle gefunden werden, wäre der nächste Planet eine Wiederholung? Oder bedeutet es, dass sie irgendeine Art "harte Grenze" im Code für diese Nummer platzieren? Oder etwas ganz anderes

Meine aktuelle Vermutung, können sie berechnen, dass ihre Welt Generation Algorithmus hat 18.446.744.073.709.551.616 einzigartige Ausgabewerte, und alle neuen Planeten danach wäre Wiederholungen.

1 Ich weiß, dass das nie passieren wird

Update: Ich habe auf Hallo Games ausgegangen, und wenn sie antworten (ich stelle mir vor, sie sind immer noch ein wenig beschäftigt im Moment!) Ich werde diesen Beitrag mit dem, was sie sagen, aktualisieren.

18,446,744,073,709,551,616 ist 2 ^ 64. Ich gehe davon aus, dass dies bedeutet, dass der Planetenerzeugungsalgorithmus auf einem zufälligen Seed basiert, der eine 64-Bit-Zahl ist (zB der long Typ in vielen Programmiersprachen). Ich weiß nicht wie (oder auch wenn, wie würde jemand überprüfen?) Sie garantieren, dass alle möglichen Eingaben verwendet werden und dass keiner wiederholt wird.

Ich bin neugierig, woher kam diese Nummer?

18,446,744,073,709,551,616 ist 2 ^ 64 . In Programmiersprachen ist 18.446.744.073.709.551,61 5 die Obergrenze eines unsigned long long , aber das hängt von der Implementierung ab. 18,446,744,073,709,551,61 6 sind alle möglichen Zahlen für eine unsigned long long , einschließlich 0 (dh 18.446.744.073.709.551.615 + 1).

Im Wesentlichen wird es sehr wahrscheinlich durch die Grenzen eines Datentyps verursacht. In diesem Spiel erscheint der Datentyp der Planetensamen.

Ein Samen ist eine Variable zur Erzeugung (Pseudo) zufälliger Daten in einem Algorithmus. Unter der Annahme, dass der Algorithmus unverändert bleibt, erzeugt der gleiche Samen dieselben Daten.

Deshalb, mit dem gleichen Planeten Samen geben Ihnen den gleichen Planeten. Wenn du Minecraft gespielt hast, wirst du wahrscheinlich das allgemeine Konzept der Wiederverwendung von Samen verstehen, um die gleiche Karte zu bekommen.

2 ^ 64 für einen Samen scheint gewählt zu werden, um die Illusion von unendlichen Welten zu geben. Technisch kann es nur 18.446.744.073.709.551.616 Welten über diesen Samen geben. Funktionalität, es würde 584 Millionen Jahre dauern, wenn man eine neue Welt alle 1 Sekunde besuchen könnte , oder aus demselben Artikel zu zitieren:

Es würde etwa 7,3 Milliarden Menschen dauern, alle arbeiten von der Geburt bis zum Tod und besuchen einen Planeten jede Sekunde ihres Lebens in diesem Spiel, um 18.4 Quintillion Welten zu sehen. Die gegenwärtige Bevölkerung der Erde ist 8 Milliarden Menschen. Also, ja, der Himmel des Mannes hat ein unendliches Universum, jeden vernünftigen Menschen.


Heißt das, es gibt 18.446.744.073.709.551.616 einzigartige Planeten

Nein, es gibt keine Garantie, dass 2 einzigartige Samen 2 einzigartige Planeten geben werden. Zum Beispiel können Saatgut 1 und 90.000 denselben Planeten erzeugen. Das hängt alles vom Algorithmus selbst ab.

Damit der Algorithmus einen einzigartigen Planeten für alle Samen erzeugt:

  1. Es gibt 18.446.744.073.709.551.616 oder mehr einzigartige Kombinationen von Planeten Eigenschaften
  2. Der Algorithmus ordnet Samen zu jedem dieser einzigartigen Zustände nur einmal

Ohne jede Analyse über den Algorithmus können wir nur spekulieren, ob dies geschieht.

Alles, was ich über den Algorithmus erfahren konnte, ist, dass es 14.000 Zeilen hat und in einer Weise geschrieben wurde, um schiffbare Welten zu schaffen. Wenn man sie schiffbar macht, gibt es eine gewisse Vereinfachung, um komplexe Strukturen zu verhindern. Der gesunde Menschenverstand würde vorschlagen, dass dies die Einzigartigkeit der Planeten begrenzt.

Funktionell scheint es wahrscheinlich, dass jeder Planet, den du besuchst, einzigartig sein wird. Technisch, so gut wie ich schon sagte, wird es von dem Algorithmus abhängen.


Meine aktuelle Vermutung, können sie berechnen, dass ihre Welt Generation Algorithmus hat 18.446.744.073.709.551.616 einzigartige Ausgabewerte, und alle neuen Planeten danach wäre Wiederholungen.

Der Algorithmus würde nur einen Samen von 0 bis 18.446.744.073.709.551.615 erlauben. Wenn Sie irgendwie einen Wert hinzufügen könnten, der größer als 18.446.744.073.709.551.615 ist, würde ich davon ausgehen, dass Sie entweder einen Absturz, einen Fehler oder einen Überlauf zu einer gültigen Nummer sehen würden. Beispielsweise kann 18.446.744.073.709.551.616 nur auf 0 überlaufen.

Im Wesentlichen bin ich fast sicher, dass 18.446.744.073.709.551.616 die maximale Saatgut ist, unabhängig von irgendwelchen Tricks, um einen höheren Saatwert zu erzwingen.