that would only save CPU for systems the player never visits again, no? You still have to do the simulation, it's just bunched up instead of spread over time. To use your planet position example, calculating positions by moving them in real time or in one big bunch is the same computational cost (unless you do dumb things in one of those, but lets not
Not quite. I'm suggesting a way -- I'll call it "suspending" a star system -- in which the game can avoid doing any direct* simulation of some star systems at all. And I'm proposing it as a computational optimization that might be needed for game universes that get extremely large, since that's been asserted as an argument against infiniteness via edge-expansion.
* "direct" meaning that there's some LT code that performs some amount of active LOD simulation of a star system itself. That's in contrast to what I earlier called "indirect" simulation, which is when connected systems save a few key bytes of info about a connected system that has been suspended and use that data to fake sources and sinks that the suspended system otherwise would have provided.
It's completely fair to note that this really does mean a suspended star system would become static: it would cease to change while saved out to disk and no longer being directly simulated. Only when a player-faction ship once again gets near enough that a suspended system needs to be directly simulated again -- for its active influence on nearby systems -- would the data for the suspended system be read from disk and local changes extrapolated from its saved state plus the difference in time between when it was suspended and when it was awakened.
But again, I would not expect this technique to be needed when a new game starts. It would only be useful to put part of the game universe to sleep once the player has explored enough to considerably expand (through procedural generation) the original universe and then retreated to the opposite "corner."
Dinosawer wrote:Also, is simulating what a system would provide to other systems not already a simulation of the system (albeit it at a lower LOD)?
Well, I did
freely admit that this was a bit of a handwave.
Obviously if the size and complexity of the locally saved data about a connected system that has been put into suspension is too large, then this suggestion would be counterproductive. It only works if there's a small subset of data that lets a system (which, remember, is otherwise at the lowest LOD itself) simulate the most important functions of what a suspended system would otherwise have provided.
I might work this up as a diagram -- because I never tire of cranking out PowerPoint charts at my day job
-- but for now here's a sort of text version of the various stages of LOD I'm imagining, shown as a hierarchy of star systems from those nearest the player's ship to those farthest away:
- system contains player's ship (star system is fully realized, including visually)
- system contains ship belonging to player's faction (system is fully or mostly realized, with little-to-no simulation, but with zero graphics)
- system contains ships that player faction ships have interacted with (system is lightly simulated; NPC ship effects are probabilistically accumulated)
- system has never had any interaction with player faction ships or player (system is fully simulated but active; all system outputs are chunked)
- system is Very Far Away from nearest player faction ship (system is put into suspension; nearby connected systems simulate the system's behavior)
This is how things would look at any one moment in time (a "snapshot").
As the player's ship and player-faction ships move between star systems, star systems would switch into and out of these different levels of simulation and, in extremely large universes (whose edges have been extended through procedural generation of new systems), suspension.
As usual, I'll caveat all this by acknowledging that it's just an idea for how phenomenally huge universes might work; these latest comments are not to dogmatically defend the idea (a behavior/attitude I find annoying) but to explain it more since people seemed interested enough to ask questions about it; there are almost certainly better ways to do it; it's probably blindingly, laughably wrong in some places; and it's probably nothing at all like what Josh himself has dreamed up.