Myth busting on Stellar Forge and the generation of everything from stars to rocks.

Status
Thread Closed: Not open for further replies.
It became apparent at Lavecon that a lot of players are still under the misconception that there's some kind of database of discovered systems and worlds on a Frontier server somewhere and that when another player goes to visit these places the game client downloads this information so they see the same system, planets and surface details as the first player.

I was 99% certain this was wrong but took the opportunity to just double check my understanding with Dav Stott. It is indeed completely wrong.

There is NO database where the physical layout of discovered systems, planets and surface details is stored.

Note: for the purposes of this discussion I'm ignoring all the star systems which have been manually inserted into the game from known astronomical data. These are not generated by Stellar Forge.

Stellar Forge is software which exists in every player's game client (it's not a software service based on some central Frontier server that we have to consult).

Every time we jump into a system (discovered or otherwise) Stellar Forge runs in our game client to generate the layout of that system (its arrangement of stars, planets and moons).

Every time we visit a planet (and as we descend or travel to areas of that planet) it's running to generate the landscape we see right down to the placement of individual rocks (see later).

The question people always come up with at this point is how come we all see the same thing? This is the beauty of procedural generation and its use of a seeded pseudo random number generator.

For those unfamiliar with this stuff, most digital random number generators use a pseudo random number generation algorithm.

On a linux system, each time you echo the $RANDOM variable it spits out a new, seemingly random number:

RANDOM=7864 (I'll come on to this in a minute)
echo $RANDOM
16904
echo $RANDOM
8002
echo $RANDOM
16686
echo $RANDOM
14406
echo $RANDOM
12749
echo $RANDOM
13945
echo $RANDOM
31921
echo $RANDOM
1898
echo $RANDOM
26373
echo $RANDOM
14862
However, these are actually just numbers in an infinite but fixed sequence of "randomly distributed" numbers whose starting point is called the "seed". Reset the seed and you get the same sequence:

RANDOM=7864
echo $RANDOM
16904
echo $RANDOM
8002
echo $RANDOM
16686
echo $RANDOM
14406
echo $RANDOM
12749
echo $RANDOM
13945
echo $RANDOM
31921
echo $RANDOM
1898
echo $RANDOM
26373
echo $RANDOM
14862
Note: there are services which use things like the movement of particles in our atmosphere to produce truly random numbers but for procedural generation we actually exploit the pseudo behaviour to give us our repeatability.

So, imagine the seed is your current galactic coordinates. You jump into a system at coordinates 56.65625 / 82.09375 / 3.09375. Some unique value derived from those numbers is fed into our pseudo random number generator as the starting seed and an infinite sequence of seemingly random (but entirely reproducible) numbers comes out the other end. These numbers are then passed as parameters to the Stellar Forge algorithm which uses them (along with information about our general location in the galaxy to bias things like mass distribution and star type to what astro-physics predicts is appropriate for that area) to generate the system we know as Pomeche.

tfsyckz.png

(note: this isn't actually Pomeche)

If someone else visits that system they will get EXACTLY the same result.

There's no need for Stellar Forge to look anything up on a Frontier server to do this, all it needs are the coordinates.

Oh, and in case you didn't realise quite how far this went or quite how miraculous it (seemingly) is, take a look at the following screenshots.

XniilHM.png


8WVFl3R.png


aIXfhyx.jpg


I have dozens and dozens of these. They're start line screenshots from people's submissions for the Pomeche Ridge Challenge (a standing SRV time trial race which starts at coordinates 13,-60 on Pomeche 2C). Everyone who goes down there and lines up for this race sees that same little group of rocks just ahead of their SRV's front wheels.

So Stellar Forge is using procedural generation to create everything in the game's natural galaxy from the stars down to the rocks and it does it all from little more than the system's coordinates.

It's amazing and one of my favourite things about the game.

For more information on some of the inner workings of Stellar Forge check out the very first episode of Discovery Scanner in which Dr Anthony Ross talked about creating a galaxy.

 
Last edited:
I assume there's still communication with the server/database when you jump into a new system because it has to look up who discovered it first, etc. Maybe that's where some of the misunderstanding came from.

Otherwise nice overview of PG with good visualization.
 
I assume there's still communication with the server/database when you jump into a new system because it has to look up who discovered it first, etc. Maybe that's where some of the misunderstanding came from.

Otherwise nice overview of PG with good visualization.
Yup, there will be some for anything regarding the BGS states as these change. Things like moveable megaships I would have thought would be server based. But I could be completely wrong too.
 
I’ve seen the “Galaxy is too big to fit on our computers so no Offline mode” argument made a few times over the years, I try to gently introduce those posters to the wonders of proc gen.

I mean, David Braben fit 513,982,470 star systems on a floppy disk, atmospheric landings included :)
 
I suppose this generation of systems on-the-fly from random seeds is what takes place on the local PC during the hyperspace "loading screen" animation.

Did FD give any idea about how starports and other bases are generated? From the design and naming of them I guess they were all placed manually afterwards by examining what the stellar forge generated.

ed. It is fascinating to think that during the hyperspace sequence an entire system is actually evolving in simulated billions of years to arrive at its current state, including down to the correct current positions of the bodies in their orbits.
 
I suppose this generation of systems on-the-fly from random seeds is what takes place on the local PC during the hyperspace "loading screen" animation.
I assume there's still communication with the server/database when you jump into a new system because it has to look up who discovered it first, etc. Maybe that's where some of the misunderstanding came from.

Otherwise nice overview of PG with good visualization.
Yes, absolutely. There is stuff that's loaded from a central Frontier database (and people who argue against what I described often used the spike in network traffic when entering a new system as their evidence). This includes First Discovered names, BGS state info, presence of hand placed assets, starports, tourist beacons, etc, etc).

When people insist it all gets saved somewhere, I just let it go. They can believe it if they like, life is too short.
I hear you but misinformation breeds further misinformation and before you know it you've got people sat around the bar at Lavecon spreading It like bindweed. Personally I can't sit idly by and let that happen.

Did FD give any idea about how starports and other bases are generated? From the design and naming of them I guess they were all placed manually afterwards by examining what the stellar forge generated.
My discussion with Dav didn't really get into that sadly but yeah, my assumption would be that the location of starports IS held in a dataset somewhere and downloaded on entry into a system.

ed. It is fascinating to think that during the hyperspace sequence an entire system is actually evolving in simulated billions of years to arrive at its current state, including down to the correct current positions of the bodies in their orbits.
It really is isn't it. I'm not 100% sure if this is still the case (with the FSS changes) but in the old days when the system map was fully populated after a honk there was a time when the system map took a while to open. This delay was Stellar Forge running.
 
Here's one more thing from that Lavecon dev' conversation. I started to begin a question along the lines of "So isn't that a problem when ..." and both Dav and, I think, Adam BW, both laughed and said "yeah ... we can't really change Stellar Forge now without the risk of changing the entire physical nature of the galaxy as we know it!".
LOL
I guess they're stuck with Stellar Forge version 1.1 (I believe there was one small update a while ago where things did change a bit) until we get to the Andromeda galaxy which can be generated by Stellar Forge version 2! :ROFLMAO:
Oh, and re: planet surface based assets - they have a terrain flattening algorithm which is applied to the SF generated area around where they're trying to place the asset to create a reasonably smooth surface for the base to sit on. It can't work miracles tho' (e.g. it coudn't create a believable area on top of Mt Neverest for a base to sit on) so even tweaking the surface generation algorithm presents problems because they wouldn't really want to have to manually check and reposition all those bases.
 
Here's one more thing from that Lavecon dev' conversation. I started to begin a question along the lines of "So isn't that a problem when ..." and both Dav and, I think, Adam BW, both laughed and said "yeah ... we can't really change Stellar Forge now without the risk of changing the entire physical nature of the galaxy as we know it!".
LOL
I guess they're stuck with Stellar Forge version 1.1 (I believe there was one small update a while ago where things did change a bit) until we get to the Andromeda galaxy which can be generated by Stellar Forge version 2! :ROFLMAO:
Oh, and re: planet surface based assets - they have a terrain flattening algorithm which is applied to the SF generated area around where they're trying to place the asset to create a reasonably smooth surface for the base to sit on. It can't work miracles tho' (e.g. it coudn't create a believable area on top of Mt Neverest for a base to sit on) so even tweaking the surface generation algorithm presents problems because they wouldn't really want to have to manually check and reposition all those bases.

They changed the seed around Gamma, can’t remember if planet positions changed, stations vanshied though, all my trading routes vanished. Obviously this is before horizons.

I had a really nice Homebase in the bubble, completely disappeared
 
I’ve seen the “Galaxy is too big to fit on our computers so no Offline mode” argument made a few times over the years, I try to gently introduce those posters to the wonders of proc gen.

I mean, David Braben fit 513,982,470 star systems on a floppy disk, atmospheric landings included :)
i am not contesting the OP at all, it is spot on and i too find it wonderous.
however IF you want to keep stuff like 1st discovered etc i am pretty sure FD have said it is still many terrabytes of data.

now as an aside.
given this is how ed is made from the foundations up, I wonder what this means for those amazing ice formations which were (are???) the target renders for the new planetary surface update........ will FD be able to create some truly unique and striking features or will it have to stay an incredibly simplified and some what bland creation even after the update?

hopefully we will know within the next 18 months or less.

Presumably it was believed at least back in Saptember 2017 it was possible.... either that or they knew they were blowing smoke up our exhaust pipes.
 
Last edited:
i am not contesting the OP at all, it is spot on and i too find it wonderous.
however IF you want to keep stuff like 1st discovered etc i am pretty sure FD have said it is still many terrabytes of data.
The last info I read about the discovery database was in 2016, at which point it had grown to 67 million entries.

If we were to double or triple that as an estimate for today, they’d have to be fairly hefty individual entries to get up into the terabyte range.
 
Yeah, the delay on opening the system map had more to do with finishing up the visuals for the bodies than with the original system generation. Basically, "okay, we know what's in the system, but now we need to generate how exactly they look".

What we also know is that the system's name is also at least part of the system's seed (if not it entirely). There were a few cases when Frontier renamed a system, and its contents changed. The most infamous example was Beagle Point, which for a short time had all its original bodies gone. What they do now to preserve the original system and its seed is to just use an override system name to display to players. (There are also other overrides - for example, all the system names that contain "Sector" are such.) If you search for Ceeckia ZQ-L c24-0, it'll still take you to BP.

Well, they could come up with new galaxy generation, it's just that everything would change - and players would likely grab pitchforks and torches. The first, and so far only, Stellar Forge update only had to do with re-classifying planets based on their parameters. For example, a planet which used to be an ELW with a 325 K surface temperature would turn into a water world, but otherwise, all its parameters would be the same.
Then they also updated the visuals of water worlds, to the current situation where they are almost entirely covered in water. Here's how they used to look, on a more extreme example:


Otherwise, with Horizons and later, it was only planetary surfaces that changed. Quite necessary when the airless barren worlds were made landable, after all.
 
Status
Thread Closed: Not open for further replies.
Top Bottom