How...?

I would assume that after a system is generated it will have to be recorded not regenerated the next time someone visits

Nope, the entire point of procedural generation is to only store the seed used to create the system. Maybe a byte or a word, and use it to recreate the system every time. Otherwise there'd be no point in using PG. I imagine the galaxy will eventually accumulate some non-procedural changes though, but it's unlikely this will happen to all 4B systems.
 
sigh...

nevermind forget i made the thread..

i know how procedural generation works, I get that most of the 400B solar systems will never get visited thats a simple reality even with a million players playing non stop it would take more than 76 years of non stop play to have every system visited, however if you think about it the amount of data to have even a tenth of the entire galaxy recorded will be stupendious.

I would assume that after a system is generated it will have to be recorded not regenerated the next time someone visits

I also assume that once the advanced features are inplace like landing on planets, exploreing stations ect will lead to a little more than a 2kb text file for each system and so on

it was more of a thought experiment, but meh off to the stars

The only storage will be for the game state. Player actions, active missions.. That living galaxy that we've heard about more than seen so far.

The stars are procedurally generated from a few basic facts by Stellar Forge. The planets are generated using data about the star, the landscape and atmospherics of a planet will not need further stored data. That's the magic of PG.
 
I would assume that after a system is generated it will have to be recorded not regenerated the next time someone visits

This is the wrong assumption – it can always be generated again from the same “seed”, and does not need to be stored. (This is also how the original Elite managed to fit on early home computers.)

Only the “changes” need to be stored; this could include changes to the market, etc, but certainly less data than, say, the shapes and positions of individual asteroids in the system. Of course all the human players could visit and “change” a large number of systems and cause this data to grow quite a bit as well, but it's still constrained by the rate of human exploration, and systems only visited long ago could be “forgotten” if need be.

As for humans and NPCs in the system, they could be stored in a look-up table that only has an entry for a system if it currently has humans or “memorable” NPCs (e.g., ones that a human could still follow from another system). The size of this lookup is only affected by the number of humans and such NPCs and the number of systems they currently occupy – a lot less than they've explored.
 
sigh...

nevermind forget i made the thread..

i know how procedural generation works, I get that most of the 400B solar systems will never get visited thats a simple reality even with a million players playing non stop it would take more than 76 years of non stop play to have every system visited, however if you think about it the amount of data to have even a tenth of the entire galaxy recorded will be stupendious.

I would assume that after a system is generated it will have to be recorded not regenerated the next time someone visits

I also assume that once the advanced features are inplace like landing on planets, exploreing stations ect will lead to a little more than a 2kb text file for each system and so on

it was more of a thought experiment, but meh off to the stars

Actually procedural generation uses a seed, and if you simply base seeds of off a system number, all systems will be slightly different, but can be regenerated on the fly.

You had back to a system that is number 2300 on the list, it uses 2300 to generate it's seed, it recreates the system you were in before which is brand new, but looks like the last time you were there.
Level of storage required - 0

Even if a player is saved there, player file saved - system 2300, blahblah spaceship and other player save data that is persistent anyway. Player logins - player in system 2300, seed generates system again. It's exactly as you last saw it.
There is no reason that each system needs to be generated completely random, just procedureally, which is the magic.
 
Galaxy map. 100 billion systems. That data (so at a minimum position and star composition for an undiscovered system) is stored because we all see the same galaxy map. If a gigabyte is one billion bytes. Then the galaxy map is 100Gb per byte you use to store that information. Please be kind if you rip apart my logic. But from that I take that the vast majority of an offline galaxy (had there been such a thing) would of had to of procedural generated on first launch. It then would of needed to of been stored or the galaxy map experience of offline would of had to of been very different.
 
Galaxy map. 100 billion systems. That data (so at a minimum position and star composition for an undiscovered system) is stored because we all see the same galaxy map. If a gigabyte is one billion bytes. Then the galaxy map is 100Gb per byte you use to store that information. Please be kind if you rip apart my logic. But from that I take that the vast majority of an offline galaxy (had there been such a thing) would of had to of procedural generated on first launch. It then would of needed to of been stored or the galaxy map experience of offline would of had to of been very different.

The whole point of PG is that you generate what you need, when you need it. This removes the otherwise tedious requirement to carry around several inconveniently sized buildings full of hard disks.
I played Elite on an Acorn Electron that had 32Kb of RAM. It had 8 galaxies with 256 planets in each. Each planet had position in 2D, a name, an economy, a government, tech level...
1) Assume it was all just stored in ASCII
2) Do the maths
3) Disprove your assumption.

The thing to remember is that the 'random' sequence of numbers used by the generation algorithm will be the same every time, as they start from the same seed number.
 
Last edited:

Mu77ley

Volunteer Moderator
I just had a thought

400,000,000,000 star systems
1 MB of storage each
400,000,000,000 MB
1000MB to 1 GB
400,000,000GB
1000GB to 1 TB
400,000 TB
2TB Drives
200,000 x 2 TB Drives @ 1 MB data per system.
thats a lotta HDD's
May also explain why you cant have it offline......

That's not how procedural generation works. You don't need to store everything you generate as it can be regenerated on the fly. All you may need to store is a delta for any changes to the system.
 
I just had a thought

400,000,000,000 star systems
1 MB of storage each
400,000,000,000 MB
1000MB to 1 GB
400,000,000GB
1000GB to 1 TB
400,000 TB
2TB Drives
200,000 x 2 TB Drives @ 1 MB data per system.
thats a lotta HDD's
May also explain why you cant have it offline......

- - - - - Additional Content Posted / Auto Merge - - - - -

and as i posted in another thread

At 10 minutes per stop your looking at 27,777,777,777.78 days (76,103,500.76 years) of non stop play to visit each one for 10 minutes lol

I'm not for one moment starting an argument but I have to say that filesize has little to do with it. Procedural generation is the key.
don't forget, they got eight galaxies full of planets into under 32kb of memory on the BBC. filesize is pretty much a non-issue imo.
 
You'd only need id tables:

System xy: 2 x double = 8 bytes
Stars 1-10 xy: = 80 bytes
Stars types 1-256 = 1 byte
planets/moons 1-20 xy: 160 bytes
planets/moons types 1-256 = 1 byte
stations/other 1-20 xy: 160 bytes
stations/other types 1-256 = 1 byte

station ships/market/prices is a bit more, i'd say: id, 3 prices, storage = 32 bytes *50 = 1600 bytes

2000 bytes up here, let's say 5kB per system would make up to 1800 TB needed total.

But if you start exploring with 100,000 players, each exploring 20 systems a day, it's 730 Million a year = 3,4 TB. (I'd say it won't be 20 systems per player a day but far less on an average.)
 
Galaxy map. 100 billion systems. That data (so at a minimum position and star composition for an undiscovered system) is stored because we all see the same galaxy map. If a gigabyte is one billion bytes. Then the galaxy map is 100Gb per byte you use to store that information. Please be kind if you rip apart my logic.

If they were to store data for the systems, then your logic would be sound. But it seems to me that it would break the purpose of procedural generation. The names, bodies, government, etc can all be generated for each system on the fly. For example, the logic for querying the server for the info of a system could be:

• Client supplies some identifier (e.g., location) of the system
• Server checks if there are exceptions for that system (to handle hand-written special cases)
• If not, server runs the “generate system” program given the system id and the current date - this provides all the details of the system, probably based on a pseudorandom number generator seeded with the system id, and the time is used to obtain the positions of planets on their orbits
• Server checks the index of changes for that system and applies them on top of the data (i.e., changes to the market, factions, whatever – these only need to be stored for systems that are changed by player action, and if storage space runs out they can always “forget” old changes in systems that haven't had human visitors for a while)

(Note that the index of changes can be recorded in a sparse data structure where only the systems that actually have changes are stored, not the “no changes” status for all other systems.)

While the above concerns a single system, the galaxy map can similarly be generated with a different algorithm, e.g., based on the region of space. Similarly there are regions where real data is used instead of random generation, and for these exceptions the data of course needs to be stored, but I would expect the special cases to number at most in the low millions, not billions.

But from that I take that the vast majority of an offline galaxy (had there been such a thing) would of had to of procedural generated on first launch. It then would of needed to of been stored or the galaxy map experience of offline would of had to of been very different.

The whole galaxy would not need storing for offline play on the client any more than on the server, but the galaxy generator algorithms would need to be on the client side so that the client could generate the systems offline (just like the original Elite did, only fancier). And the special cases would of course need to be stored. One argument from Frontier against offline mode was the potential “cheating” (or spoilers) this would allow, since people could run the algorithms on their own computers and produce lists of profitable systems without actually exploring them in game.
 
You'd only need id tables:

System xy: 2 x double = 8 bytes
Stars 1-10 xy: = 80 bytes
Stars types 1-256 = 1 byte
planets/moons 1-20 xy: 160 bytes
planets/moons types 1-256 = 1 byte
stations/other 1-20 xy: 160 bytes
stations/other types 1-256 = 1 byte

station ships/market/prices is a bit more, i'd say: id, 3 prices, storage = 32 bytes *50 = 1600 bytes

2000 bytes up here, let's say 5kB per system would make up to 1800 TB needed total.

But if you start exploring with 100,000 players, each exploring 20 systems a day, it's 730 Million a year = 3,4 TB. (I'd say it won't be 20 systems per player a day but far less on an average.)

You don't even need that for most of the systems, there are some manually placed systems because we actually know about them, most of the galaxy can be completely procedural and thus might require 0bytes / solar system.
 
The whole point of PG is that you generate what you need, when you need it. This removes the otherwise tedious requirement to carry around several inconveniently sized buildings full of hard disks.
I played Elite on an Acorn Electron that had 32Kb of RAM. It had 8 galaxies with 256 planets in each. Each planet had position in 2D, a name, an economy, a government, tech level...
1) Assume it was all just stored in ASCII
2) Do the maths
3) Disprove your assumption.

The thing to remember is that the 'random' sequence of numbers used by the generation algorithm will be the same every time, as they start from the same seed number.

I understand how is was done back in the day. With ED I imagine the entire galaxy (to the detail I mention) is generated in advance and when we look up the galaxy map we are querying an online database that was populated long ago by procedural generation rather than using that procedural generation on the fly. To view the galaxy map in original elite the procedure whirred out the map when it was needed. So then you had a cpu of the day producing 256 data points. I may be wrong but I don't think a standalone procedure, for ED, would produce the equivalent results in a timely manner. I think cpu power has increased by the order of, say, a thousand. The number of data points has increased by the order of a billion. The procedure itself is far more complicated. We now have the search function. That is why I suggested it might of been done once at start up or the nature of the galaxy map might of been entirely different. I just don't think the original technique would solve this problem for a game experience as we play it online.
 

Marsman

Banned
radomly generated numbers do not take up any space.

a program generating 100 or 10000000000000000000 variations doesn´t make a difference, it´s just dice rolls.
 
radomly generated numbers do not take up any space.

a program generating 100 or 10000000000000000000 variations doesn´t make a difference, it´s just dice rolls.

It's not dice rolls, procedural programs do the generation based on deterministic values.

Edit: the initial value could be random ...
 
Last edited:
I suspect that as well as Procedural Generation only needing to store seed and changes since, they probably don't start generating economic data til you first visit. That'd certainly explain why I've visited certain out of the way systems that were unexplored and seen the sort of stock levels you find at core stations, but also others that were partially explored with millions of units of supply/demand. The latter was probably visited by a player early in beta and not visted since.

I suspect there may be limits, like say, 32 bodies in a system, so only 64 bits per system are needed for exploration (1 for normal, 1 for detailed), and only then after it has been visited. Economic data is per station, so much fewer than systems, unless it's mostly inhabited and they've kept that quiet!
 
I understand how is was done back in the day. With ED I imagine the entire galaxy (to the detail I mention) is generated in advance and when we look up the galaxy map we are querying an online database that was populated long ago by procedural generation rather than using that procedural generation on the fly. To view the galaxy map in original elite the procedure whirred out the map when it was needed. So then you had a cpu of the day producing 256 data points. I may be wrong but I don't think a standalone procedure, for ED, would produce the equivalent results in a timely manner. I think cpu power has increased by the order of, say, a thousand. The number of data points has increased by the order of a billion. The procedure itself is far more complicated. We now have the search function. That is why I suggested it might of been done once at start up or the nature of the galaxy map might of been entirely different. I just don't think the original technique would solve this problem for a game experience as we play it online.

But the number of data points needing to be stored hasn't increased by the order of a billion.

The number of variables for a given system may have increased, lets say it was 50 in original Elite, and now its 500 (guessed numbers) - that doesn't mean it needs to store 400 billion * 500 values in memory.
 
With ED I imagine the entire galaxy (to the detail I mention) is generated in advance and when we look up the galaxy map we are querying an online database that was populated long ago by procedural generation rather than using that procedural generation on the fly.

Nah, it's not like that. Don't think of procedural generation of a star system as a lengthy process, it isn't; it requires a tiny fraction of a second of processor time.
 
Back
Top Bottom