Jump to content

Galaxy Generation: Difference between revisions

From Starship Simulator
Interaction: added references to Planetary Landings
Gatehouse (talk | contribs)
 
(14 intermediate revisions by 2 users not shown)
Line 6: Line 6:
The system employs several key strategies to manage the immense scale of the galaxy and provide a seamless experience:
The system employs several key strategies to manage the immense scale of the galaxy and provide a seamless experience:


* '''Sector-Based Structure:''' The galaxy is divided into millions of cubic sectors, each 100 light-years on a side (100ly³).
* '''Sector-Based Structure:''' the galaxy is divided into millions of cubic sectors, each 100 light-years on a side (100ly³).
* '''Sub-Sectors:''' Each 100ly³ sector is further subdivided into 1 million cubic sub-sectors, each 1 light-year on a side (1ly³), which serve as locations for content like star systems. Star systems occupy a single sub-sector and cannot exceed 0.5ly in radius.
* '''Sub-Sectors:''' each 100ly³ sector is further subdivided into 1 million cubic sub-sectors, each 1 light-year on a side (1ly³), which serve as locations for content like star systems. Star systems occupy a single sub-sector and cannot exceed 0.5ly in radius.
* '''Unique Seeds:''' Each 100ly³ sector is generated using its own unique seed, allowing for isolated generation and preventing changes in one sector from affecting others. Different classes of sub-sectors also utilize distinct seed pools. An upgraded seed system providing 2<sup>256</sup> unique seeds was implemented in [[Dev Builds|Build 0.225.0.21]].
* '''Unique Seeds:''' each 100ly³ sector is generated using its own unique seed, allowing for isolated generation and preventing changes in one sector from affecting others. Different classes of sub-sectors also utilize distinct seed pools. An upgraded seed system providing 2<sup>256</sup> unique seeds was implemented in [[Dev Builds|Build 0.225.0.21]].
* '''Coordinate System:''' A 64-bit Cartesian coordinate system is used. The system was rebased during development to place the true galactic centre, [[Sagittarius A*]], at coordinates 0,0,0 ([[Dev Builds|Build 0.225.0.14]], 0.225.0.16). [[Sol]] is located at coordinates -26670, 0, 56.
* '''Coordinate System:''' a 64-bit Cartesian coordinate system is used. The system was re-based during development to place the true galactic centre, [[Sagittarius A*]], at coordinates 0,0,0 ([[Dev Builds|Build 0.225.0.14]], 0.225.0.16). [[Sol]] is located at coordinates -26670, 0, 56.
* '''Origin Re-basing:''' To maintain precision, the player's local coordinate origin is continuously re-based relative to the sub-sector they are in, ensuring the player's ship effectively never travels more than 0.5 light-years from its current local origin point.
* '''Origin Re-basing:''' in order to maintain precision, the player's local coordinate origin is continuously re-based relative to the sub-sector they are in, ensuring the player's ship effectively never travels more than 0.5 light-years from its current local origin point.
* '''Seamless Travel:''' This system enables travel across the galaxy, including [[Alcubierre Drive|warp drive]] jumps, without loading screens.
* '''Seamless Travel:''' this system enables travel across the galaxy, including [[Alcubierre Drive|warp drive]] jumps, without loading screens.


== Data Sources ==
== Data Sources ==
The galaxy simulation incorporates various data sources:
The galaxy simulation incorporates various data sources:
* '''Procedural Generation:''' Algorithms based on astrophysics generate the majority of stars, planets, and phenomena, filling gaps where real-world data is unavailable.
* '''Procedural Generation:''' algorithms based on astrophysics generate the majority of stars, planets, and phenomena, filling gaps where real-world data is unavailable.
* '''Real Star Data:''' Information from real-world astronomical surveys (like the [[wikipedia:Gaia catalogues|Gaia catalogue]] mentioned in development) is integrated, including millions of stars within a significant radius (e.g., 2000ly mentioned in [[Dev Builds|Build 0.225.0.21]]) of [[Sol System|Sol]]. Specific nearby stars (like [[Sirius]], [[Alpha Centauri]], [[Barnards Star|Barnard's Star]], [[Wolf 359]]) and Sol system objects are included ([[Dev Builds|Build 0.225.0.16]], 0.225.0.67). Data is retrieved via SQL database integration during the generation process.
* '''Real Star Data:''' information from real-world astronomical surveys (like the [[wikipedia:Gaia catalogues|Gaia catalogue]] mentioned in development) is integrated, including millions of stars within a significant radius (e.g., 2000ly mentioned in [[Dev Builds|Build 0.225.0.21]]) of [[Sol System|Sol]]. Specific nearby stars (like [[Sirius]], [[Alpha Centauri]], [[Barnards Star|Barnard's Star]], [[Wolf 359]]) and Sol system objects are included ([[Dev Builds|Build 0.225.0.16]], 0.225.0.67). Data is retrieved by means of SQL database integration during the generation process.
* '''Backer Contributions:''' Systems and races designed by backers are integrated into the galaxy via database lookups ([[Dev Builds|Build 0.225.0.39]], 0.225.0.79).
* '''Backer Contributions:''' systems and races designed by backers are integrated into the galaxy using database lookups ([[Dev Builds|Build 0.225.0.39]], 0.225.0.79).
* '''Modding Support:''' A local SQLite file (`stars_modded.db`) allows players to add custom star systems locally ([[Dev Builds|Build 0.225.0.79]]).
* '''Modding Support:''' a local SQLite file (`stars_modded.db`) allows players to add custom star systems locally ([[Dev Builds|Build 0.225.0.79]]).
* '''Custom Content:''' The system allows for specific procedural sectors to be replaced with hand-crafted ones for bespoke content or missions.
* '''Custom Content:''' the system allows for specific procedural sectors to be replaced with hand-crafted ones for bespoke content or missions.


== Galaxy Structure & Stellar Distribution ==
== Galaxy Structure & Stellar Distribution ==
The simulation models the known large-scale structure of the [[Milky Way]] (see [[The Galaxy In Detail]]):
The simulation models the known large-scale structure of the [[Milky Way]] (see [[The Galaxy In Detail]]):
* '''Components:''' Includes representations of the Galactic Core, Bulge, Disc, Stellar Halo, Globular Clusters, Open Clusters, and potentially stellar streams and emission nebulae.
* '''Components:''' includes representations of the Galactic Core, Bulge, Disc, Stellar Halo, Globular Clusters, Open Clusters, and potentially stellar streams and emission nebulae.
* '''Density Map:''' A large-scale greyscale density map defines the overall shape and stellar density distribution, where each pixel represents a 100ly³ sector.
* '''Density Map:''' a large format greyscale density map defines the overall shape and stellar density distribution, where each pixel represents a 100ly³ sector.
* '''Stellar Density:''' Densities within sectors range from 0 up to 8,000 stars, based on the density map value.
* '''Stellar Density:''' densities within sectors range from 0 up to 8,000 stars, based on the density map value.
* '''Vertical Distribution:''' The distribution of stars above and below the galactic plane within a sector is calculated mathematically.
* '''Vertical Distribution:''' the distribution of stars above and below the galactic plane within a sector is calculated mathematically.


== Generation Process ==
== Generation Process ==
The galaxy and its systems are generated dynamically as the player explores:
The galaxy and its systems are generated dynamically as the player explores:


* '''Galaxy Generation (Triggered by Movement):''' When the ship moves significantly (trigger points exist at 100ly and 1ly intervals), the system calculates data for a 3x3x3 grid of sectors around the player. For each sector, it reads the density map, assigns seeds, generates FTL civilizations, retrieves stellar data from databases, determines the sector's political state and galactic region type, generates sub-sector locations (prioritizing larger features first), and creates a textual description. Data from these sectors is combined, filtered by distance (within 50ly for performance - [[Dev Builds|Build 0.225.0.54]]), sorted by distance to the ship, and broadcast (typically several thousand locations) for use by systems like [[Sensors]]. Generation speed optimizations were a focus in development ([[Dev Builds|Build 0.225.0.16]], 0.225.0.21).
* '''Galaxy Generation (Triggered by Movement):''' when the ship moves significantly (trigger points exist at 100ly and 1ly intervals), the system calculates data for a 3x3x3 grid of sectors around the player. For each sector, it reads the density map, assigns seeds, generates FTL civilizations, retrieves stellar data from databases, determines the sector's political state and galactic region type, generates sub-sector locations (prioritizing larger features first), and creates a textual description. Data from these sectors is combined, filtered by distance (within 50ly for performance - [[Dev Builds|Build 0.225.0.54]]), sorted by distance to the ship, and broadcast (typically several thousand locations) for use by systems like [[Sensors]]. Generation speed optimisations were a focus in development ([[Dev Builds|Build 0.225.0.16]], 0.225.0.21).
* '''Star System Generation (Triggered by Arrival/Scan):''' When a player enters a system or scans it deeply, the detailed system generation process begins. This involves:
* '''Star System Generation (Triggered by Arrival/Scan):''' when a player enters a system or scans it deeply, the detailed system generation process begins. This involves:
** Computing stellar data ([[Star types|sub-class]], mass fractions, escape velocity, [[wikipedia:Roche_limit|Roche Limit]], [[Habitable Zone]], etc. - refined in builds like 0.225.0.30, 0.225.0.67).
** computing stellar data ([[Star types|sub-class]], mass fractions, escape velocity, [[wikipedia:Roche_limit|Roche Limit]], [[Habitable Zone]], etc. - refined in builds like 0.225.0.30, 0.225.0.67)
** Creating a proto-planetary disk (considering H/He/Metals, lifespan, Hill radius - implemented [[Dev Builds|Build 0.225.0.32]]).
** creating a proto-planetary disk (considering H/He/Metals, lifespan, Hill radius - implemented [[Dev Builds|Build 0.225.0.32]])
** Calculating stellar temperature regions (determining Habitable Zone, Frost Line (~150K), Dust Sublimation Line (~2000K) - [[Dev Builds|Build 0.225.0.66]], Lava Line (~1200K)).
** calculating stellar temperature regions (determining Habitable Zone, Frost Line (~150K), Dust Sublimation Line (~2000K) - [[Dev Builds|Build 0.225.0.66]], Lava Line (~1200K))
** Iteratively determining planet orbits (using a formulation related to the Titius-Bode Law).
** iteratively determining planet orbits (using a formulation related to the Titius-Bode Law)
** For each potential planet: Core mass accretion -> Determining Rocky vs. Gas Giant (based on escape velocity vs. H2 thermal velocity - [[Dev Builds|Build 0.225.0.32]]) -> Calculating physical characteristics -> Determining atmospheric composition -> Assigning final planet type -> Generating life flag -> Deducting mass from the proto-disk.
** for each potential planet: core mass accretion -> determining Rocky vs. Gas Giant (based on escape velocity vs. H2 thermal velocity - [[Dev Builds|Build 0.225.0.32]]) -> calculating physical characteristics -> determining atmospheric composition -> assigning final planet type -> generating life flag -> deducing mass from the proto-disk
** Generating a Kuiper Belt equivalent once the main disk mass is depleted ([[Dev Builds|Build 0.225.0.67]]).
** generating a Kuiper Belt equivalent once the main disk mass is depleted ([[Dev Builds|Build 0.225.0.67]])


== Planet Characteristics ==
== Planet Characteristics ==
Generated planets have detailed, calculated properties including:
Generated planets have detailed, calculated properties including:
* Orbital Mechanics: Orbital distance, period, velocity ([[Dev Builds|Build 0.225.0.69]]).
* Orbital Mechanics: orbital distance, period, velocity ([[Dev Builds|Build 0.225.0.69]])
* Physical Properties: Mass, radius, volume, gravity, core/mantle/crust densities, Roche Limit, Hill Radius ([[Dev Builds|Build 0.225.0.30]], 0.225.0.69).
* Physical Properties: mass, radius, volume, gravity, core/mantle/crust densities, Roche Limit, Hill Radius ([[Dev Builds|Build 0.225.0.30]], 0.225.0.69)
* Atmosphere: Presence/absence determined by factors like gravity and temperature; composition calculated (e.g., chemicals for gas giants, "tenuous exospheres" for airless bodies - [[Dev Builds|Build 0.225.0.31]], 0.225.0.70).
* Atmosphere: presence/absence determined by factors like gravity and temperature; composition calculated (e.g., chemicals for gas giants, "tenuous exospheres" for airless bodies - [[Dev Builds|Build 0.225.0.31]], 0.225.0.70)
* Temperature: Equilibrium and surface temperatures calculated based on stellar output, Bond Albedo, greenhouse effects, etc. ([[Dev Builds|Build 0.225.0.69]]).
* Temperature: equilibrium and surface temperatures calculated based on stellar output, Bond Albedo, greenhouse effects, etc. ([[Dev Builds|Build 0.225.0.69]])
* Surface Features: Basic surface maps generated for [[Sensors]]/[[Holoprojector]] ([[Dev Builds|Build 0.225.0.48]], 0.225.0.70), incorporating [[wikipedia:Nanite (Unreal Engine)|Nanite]] tessellation for visual detail ([[Dev Builds|Build 0.225.0.70]], 0.225.0.72).
* Surface Features: basic surface maps generated for [[Sensors]]/[[Holoprojector]] ([[Dev Builds|Build 0.225.0.48]], 0.225.0.70), incorporating [[wikipedia:Nanite (Unreal Engine)|Nanite]] tessellation for visual detail ([[Dev Builds|Build 0.225.0.70]], 0.225.0.72)


== Life and Civilization ==
== Life and Civilization ==
The system generates alien life and civilizations:
The system generates alien life and civilizations:
* '''Life Generation:''' A "Has Life?" flag is determined during planet generation ([[Dev Builds|Build 0.225.0.30]]), likely influenced by factors like the [[Habitable Zone]]. Confirmation requires detailed Short Range scans ([[Life and Tech Signatures]], [[Dev Builds|Build 0.225.0.69]]).
* '''Life Generation:''' a "Has Life?" flag is determined during planet generation ([[Dev Builds|Build 0.225.0.30]]), influenced by factors such as the [[Habitable Zone]]. Confirmation requires detailed Short Range scans ([[Life and Tech Signatures]], [[Dev Builds|Build 0.225.0.69]]).
* '''Civilizations:''' Alien civilizations are generated throughout the galaxy.
* '''Civilizations:''' alien civilizations are generated throughout the galaxy
** Their chance of appearing is tied to the sector type.
** Their chance of appearing is tied to the sector type
** Their technology level (ranging 0-100) is determined by the age of their star system ([[Dev Builds|Build 0.225.0.63]]).
** Their technology level (ranging 0-100) is determined by the age of their star system ([[Dev Builds|Build 0.225.0.63]])
** FTL-capable civilizations are generated "in isolation". Non-FTL civilizations occur naturally based on planetary conditions during system generation.
** FTL-capable civilizations are generated "in isolation". Non-FTL civilizations occur naturally based on planetary conditions during system generation
** Random alien race names are generated (with blacklist filter - [[Dev Builds|Build 0.225.0.69]]).
** Random alien race names are generated (with blacklist filter - [[Dev Builds|Build 0.225.0.69]])
** Detection relies on [[Life and Tech Signatures|Tech Signatures]] (Level 1 Knowledge / Long Range Scan - [[Dev Builds|Build 0.225.0.63]]) and [[Life and Tech Signatures|Life Signatures]] (Level 3 Knowledge / Short Range Scan).
** Detection relies on [[Life and Tech Signatures|Tech Signatures]] (Level 1 Knowledge / Long Range Scan - [[Dev Builds|Build 0.225.0.63]]) and [[Life and Tech Signatures|Life Signatures]] (Level 3 Knowledge / Short Range Scan)


== Implementation & Consistency ==
== Implementation & Consistency ==
* '''Isolated Generation:''' Generating sectors independently prevents cascading changes if generation logic is updated.
* '''Isolated Generation:''' generating sectors independently prevents cascading changes if generation logic is updated
* '''Hand-Crafted Content:''' The system allows developers to replace any procedurally generated sector with bespoke, hand-crafted content.
* '''Hand-Crafted Content:''' the system allows developers to replace any procedurally generated sector with bespoke, hand-crafted content
* '''Code Stability:''' The developers aim to lock down the core galaxy-generation code as much as possible once finalized to ensure consistency.
* '''Code Stability:''' the developers aim to lock down the core galaxy-generation code as much as possible once finalized to ensure consistency
* '''Multiplayer Handling:''' Galaxy generation runs locally on client machines for improved performance in multiplayer ([[Dev Builds|Build 0.225.0.60]]).
* '''Multiplayer Handling:''' galaxy generation runs locally on client machines for improved performance in multiplayer ([[Dev Builds|Build 0.225.0.60]])
* '''In-Game Hardware Representation:''' A physical box representing the Galaxy Generation computer exists in the [[Data Centre]] on [[C Deck]] ([[Dev Builds|Build 0.225.0.60]]).
* '''In-Game Hardware Representation:''' a physical box representing the Galaxy Generation computer exists in the [[Data Centre]] on [[C Deck]] ([[Dev Builds|Build 0.225.0.60]])


== Interaction ==
== Interaction ==
Players primarily interact with the generated galaxy via the [[Sensors]] suite, which reveals progressively more detail about systems and celestial bodies based on scan type and achieved knowledge levels. The [[Holoprojector]] provides visual representations like Orrery maps. Navigation data is used by the [[Helm]].
Players primarily interact with the generated galaxy via the [[Sensors]] suite, which reveals progressively more detail about systems and celestial bodies based on scan type, proximity to a target and achieved knowledge levels. The [[Holoprojector]] provides visual representations on orrery models. Navigation data is used by the [[Helm]].


On the [https://www.youtube.com/watch?v=0n3DCsmZ99U dev stream '''Starship Simulator - Random F̶r̶i̶d̶a̶y̶ Saturday! (Planetary Landings)'''] on 2025-12-06 Dan started the background work for [[Planetary Landings]] with the planned feature of the players gain the ablility to take a shuttle from the ship and take it to a planets surface to explore. a basic Proff of conspect feature was created and relaese on the [[Dev_Build#Development_Build_HistoryV0.226_—_VR | Development Build 0.226.0.16]] where players can use a hidden teleport in the bridge to access the planet. This will not be avalible for the Public Patch until it is implimented fully and withing the patch cycle of the [[Roadmap]]. Further development for was made on [https://www.youtube.com/watch?v=1lMms_DZv2g 2025-12-12] where an improved planet genaration surface map code was created in engine to give better surface genaration.
On the [https://www.youtube.com/watch?v=0n3DCsmZ99U dev stream '''Starship Simulator - Random F̶r̶i̶d̶a̶y̶ Saturday! (Planetary Landings)'''] on 2025-12-06 Dan started the background work for [[Planetary Landings]] with a planned feature in which players gain the ablility to take a shuttle from the ship and take it to a planet's surface to explore. A basic proof of concept feature was created and released on [[Dev_Build#Development_Build_HistoryV0.226_—_VR | Development Build 0.226.0.16]] where players can use a hidden teleport in a bridge-adjacent room to access the planet. This will not be available for the public patch until it is implemented fully and falls within the patch cycle of the [[Roadmap]]. Further development was made on [https://www.youtube.com/watch?v=1lMms_DZv2g 2025-12-12] where an improved planet genaration surface map code was created within the engine to give better surface reproduction.


== Future Expansion ==
== Future Expansion ==
Planned additions and refinements to the galaxy simulation include:
Planned additions and refinements to the galaxy simulation include:
* Wormholes
* wormholes
* Rogue Planets
* rogue Planets (added for Demo 4 update)
* Moons and Multi-star systems
* moons and multi-star systems
* Visible Proto-planetary disks
* visible Proto-planetary disks
* Volumetric Planetary Rings
* volumetric Planetary Rings
* Volumetric Gas Giants
* volumetric Gas Giants
* Planetary Nebulae
* planetary Nebulae (added for Demo 4 update)
* Real World Nebulae & Sci-fi Nebulae
* real World Nebulae & Sci-fi Nebulae
* Comets
* comets
* Oort Clouds
* Oort Clouds
* More Stellar Classes
* more Stellar Classes


== Sources ==
== Sources ==
* Fleetyard Studios Pitcon Presentation #2 (April 2025) - Slides available [https://docs.google.com/presentation/d/16hy0FAoNFTbwVr1x0sHxHSVxLT8KET_Dp8sOq7CvOBE/edit#slide=id.g34fb5b24b7f_0_163 Here]. - Fleetyard Studios Pitcon Presentation #2 Video Recording (Segment: 2:46:30 - 3:24:00) - [https://www.youtube.com/watch?v=9XEw_qSheag&t=9990s Link]
* Fleetyard Studios Pitcon Presentation #2 (April 2025) - slides available [https://docs.google.com/presentation/d/16hy0FAoNFTbwVr1x0sHxHSVxLT8KET_Dp8sOq7CvOBE/edit#slide=id.g34fb5b24b7f_0_163 Here]. - Fleetyard Studios Pitcon Presentation #2 Video Recording (Segment: 2:46:30 - 3:24:00) - [https://www.youtube.com/watch?v=9XEw_qSheag&t=9990s Link]
* [[Dev Builds|Development Build Update History]] (Various entries referenced above)
* [[Dev Builds|Development Build Update History]] (Various entries referenced above)
* [[Dev Stream History|Dev Streams]]
* [[Dev Stream History|Dev Streams]]


[[Category:Gameplay Mechanics]]
[[Category:Gameplay Mechanics]]

Latest revision as of 16:15, 3 May 2026

This page is a Work in Progress as much of the lore/Development for the game is yet to be established.


The Galaxy Generation system in Starship Simulator is responsible for creating the vast, explorable 1:1 scale representation of the Milky Way galaxy featured in the game. It uses a combination of procedural generation techniques driven by astrophysical principles and integrated real-world astronomical data.

Core Principles & Scale Management

The system employs several key strategies to manage the immense scale of the galaxy and provide a seamless experience:

  • Sector-Based Structure: the galaxy is divided into millions of cubic sectors, each 100 light-years on a side (100ly³).
  • Sub-Sectors: each 100ly³ sector is further subdivided into 1 million cubic sub-sectors, each 1 light-year on a side (1ly³), which serve as locations for content like star systems. Star systems occupy a single sub-sector and cannot exceed 0.5ly in radius.
  • Unique Seeds: each 100ly³ sector is generated using its own unique seed, allowing for isolated generation and preventing changes in one sector from affecting others. Different classes of sub-sectors also utilize distinct seed pools. An upgraded seed system providing 2256 unique seeds was implemented in Build 0.225.0.21.
  • Coordinate System: a 64-bit Cartesian coordinate system is used. The system was re-based during development to place the true galactic centre, Sagittarius A*, at coordinates 0,0,0 (Build 0.225.0.14, 0.225.0.16). Sol is located at coordinates -26670, 0, 56.
  • Origin Re-basing: in order to maintain precision, the player's local coordinate origin is continuously re-based relative to the sub-sector they are in, ensuring the player's ship effectively never travels more than 0.5 light-years from its current local origin point.
  • Seamless Travel: this system enables travel across the galaxy, including warp drive jumps, without loading screens.

Data Sources

The galaxy simulation incorporates various data sources:

  • Procedural Generation: algorithms based on astrophysics generate the majority of stars, planets, and phenomena, filling gaps where real-world data is unavailable.
  • Real Star Data: information from real-world astronomical surveys (like the Gaia catalogue mentioned in development) is integrated, including millions of stars within a significant radius (e.g., 2000ly mentioned in Build 0.225.0.21) of Sol. Specific nearby stars (like Sirius, Alpha Centauri, Barnard's Star, Wolf 359) and Sol system objects are included (Build 0.225.0.16, 0.225.0.67). Data is retrieved by means of SQL database integration during the generation process.
  • Backer Contributions: systems and races designed by backers are integrated into the galaxy using database lookups (Build 0.225.0.39, 0.225.0.79).
  • Modding Support: a local SQLite file (`stars_modded.db`) allows players to add custom star systems locally (Build 0.225.0.79).
  • Custom Content: the system allows for specific procedural sectors to be replaced with hand-crafted ones for bespoke content or missions.

Galaxy Structure & Stellar Distribution

The simulation models the known large-scale structure of the Milky Way (see The Galaxy In Detail):

  • Components: includes representations of the Galactic Core, Bulge, Disc, Stellar Halo, Globular Clusters, Open Clusters, and potentially stellar streams and emission nebulae.
  • Density Map: a large format greyscale density map defines the overall shape and stellar density distribution, where each pixel represents a 100ly³ sector.
  • Stellar Density: densities within sectors range from 0 up to 8,000 stars, based on the density map value.
  • Vertical Distribution: the distribution of stars above and below the galactic plane within a sector is calculated mathematically.

Generation Process

The galaxy and its systems are generated dynamically as the player explores:

  • Galaxy Generation (Triggered by Movement): when the ship moves significantly (trigger points exist at 100ly and 1ly intervals), the system calculates data for a 3x3x3 grid of sectors around the player. For each sector, it reads the density map, assigns seeds, generates FTL civilizations, retrieves stellar data from databases, determines the sector's political state and galactic region type, generates sub-sector locations (prioritizing larger features first), and creates a textual description. Data from these sectors is combined, filtered by distance (within 50ly for performance - Build 0.225.0.54), sorted by distance to the ship, and broadcast (typically several thousand locations) for use by systems like Sensors. Generation speed optimisations were a focus in development (Build 0.225.0.16, 0.225.0.21).
  • Star System Generation (Triggered by Arrival/Scan): when a player enters a system or scans it deeply, the detailed system generation process begins. This involves:
    • computing stellar data (sub-class, mass fractions, escape velocity, Roche Limit, Habitable Zone, etc. - refined in builds like 0.225.0.30, 0.225.0.67)
    • creating a proto-planetary disk (considering H/He/Metals, lifespan, Hill radius - implemented Build 0.225.0.32)
    • calculating stellar temperature regions (determining Habitable Zone, Frost Line (~150K), Dust Sublimation Line (~2000K) - Build 0.225.0.66, Lava Line (~1200K))
    • iteratively determining planet orbits (using a formulation related to the Titius-Bode Law)
    • for each potential planet: core mass accretion -> determining Rocky vs. Gas Giant (based on escape velocity vs. H2 thermal velocity - Build 0.225.0.32) -> calculating physical characteristics -> determining atmospheric composition -> assigning final planet type -> generating life flag -> deducing mass from the proto-disk
    • generating a Kuiper Belt equivalent once the main disk mass is depleted (Build 0.225.0.67)

Planet Characteristics

Generated planets have detailed, calculated properties including:

  • Orbital Mechanics: orbital distance, period, velocity (Build 0.225.0.69)
  • Physical Properties: mass, radius, volume, gravity, core/mantle/crust densities, Roche Limit, Hill Radius (Build 0.225.0.30, 0.225.0.69)
  • Atmosphere: presence/absence determined by factors like gravity and temperature; composition calculated (e.g., chemicals for gas giants, "tenuous exospheres" for airless bodies - Build 0.225.0.31, 0.225.0.70)
  • Temperature: equilibrium and surface temperatures calculated based on stellar output, Bond Albedo, greenhouse effects, etc. (Build 0.225.0.69)
  • Surface Features: basic surface maps generated for Sensors/Holoprojector (Build 0.225.0.48, 0.225.0.70), incorporating Nanite tessellation for visual detail (Build 0.225.0.70, 0.225.0.72)

Life and Civilization

The system generates alien life and civilizations:

  • Life Generation: a "Has Life?" flag is determined during planet generation (Build 0.225.0.30), influenced by factors such as the Habitable Zone. Confirmation requires detailed Short Range scans (Life and Tech Signatures, Build 0.225.0.69).
  • Civilizations: alien civilizations are generated throughout the galaxy
    • Their chance of appearing is tied to the sector type
    • Their technology level (ranging 0-100) is determined by the age of their star system (Build 0.225.0.63)
    • FTL-capable civilizations are generated "in isolation". Non-FTL civilizations occur naturally based on planetary conditions during system generation
    • Random alien race names are generated (with blacklist filter - Build 0.225.0.69)
    • Detection relies on Tech Signatures (Level 1 Knowledge / Long Range Scan - Build 0.225.0.63) and Life Signatures (Level 3 Knowledge / Short Range Scan)

Implementation & Consistency

  • Isolated Generation: generating sectors independently prevents cascading changes if generation logic is updated
  • Hand-Crafted Content: the system allows developers to replace any procedurally generated sector with bespoke, hand-crafted content
  • Code Stability: the developers aim to lock down the core galaxy-generation code as much as possible once finalized to ensure consistency
  • Multiplayer Handling: galaxy generation runs locally on client machines for improved performance in multiplayer (Build 0.225.0.60)
  • In-Game Hardware Representation: a physical box representing the Galaxy Generation computer exists in the Data Centre on C Deck (Build 0.225.0.60)

Interaction

Players primarily interact with the generated galaxy via the Sensors suite, which reveals progressively more detail about systems and celestial bodies based on scan type, proximity to a target and achieved knowledge levels. The Holoprojector provides visual representations on orrery models. Navigation data is used by the Helm.

On the dev stream Starship Simulator - Random F̶r̶i̶d̶a̶y̶ Saturday! (Planetary Landings) on 2025-12-06 Dan started the background work for Planetary Landings with a planned feature in which players gain the ablility to take a shuttle from the ship and take it to a planet's surface to explore. A basic proof of concept feature was created and released on Development Build 0.226.0.16 where players can use a hidden teleport in a bridge-adjacent room to access the planet. This will not be available for the public patch until it is implemented fully and falls within the patch cycle of the Roadmap. Further development was made on 2025-12-12 where an improved planet genaration surface map code was created within the engine to give better surface reproduction.

Future Expansion

Planned additions and refinements to the galaxy simulation include:

  • wormholes
  • rogue Planets (added for Demo 4 update)
  • moons and multi-star systems
  • visible Proto-planetary disks
  • volumetric Planetary Rings
  • volumetric Gas Giants
  • planetary Nebulae (added for Demo 4 update)
  • real World Nebulae & Sci-fi Nebulae
  • comets
  • Oort Clouds
  • more Stellar Classes

Sources