Return to “Technical”

Post

Dynamics and persistence

#1
Dynamics

Since the universe is procedurally generated and infinite, I take it you can't just compute everything that's happening in the rest of the universe.
Say I start a game in universe 4321 and I explore some sector after 10 hours of gameplay, I'll find the factions there in some state of advancement, relationships and status. If my friend plays in the same 4321 universe but goes to that sector only after 200h+, will (s)he find it in the exact same state? Will it be different based on the time at which it's discovered? Will it be more random (in that two people finding the same sector at the exact same time might not find it in the exact same situation)?

Persistence

As for everything that has been discovered. If it's all saved on disk, wouldn't you theoretically run into space problems? If I explore relentlessly for 2000h and the system has to track my personal relationship with every NPC I've met along the line, won't the savegame get impossibly HUGE?
Post

Re: Dynamics and persistence

#2
Atarun wrote:Dynamics

Since the universe is procedurally generated and infinite, I take it you can't just compute everything that's happening in the rest of the universe.
Say I start a game in universe 4321 and I explore some sector after 10 hours of gameplay, I'll find the factions there in some state of advancement, relationships and status. If my friend plays in the same 4321 universe but goes to that sector only after 200h+, will (s)he find it in the exact same state? Will it be different based on the time at which it's discovered? Will it be more random (in that two people finding the same sector at the exact same time might not find it in the exact same situation)?

Persistence

As for everything that has been discovered. If it's all saved on disk, wouldn't you theoretically run into space problems? If I explore relentlessly for 2000h and the system has to track my personal relationship with every NPC I've met along the line, won't the savegame get impossibly HUGE?
Ah, brilliant. You've hit upon some absolutely key questions.

The first question is actually an incredibly deep one. The short answer is that yes, it will be different - universes will slowly diverge based on how long you've played. Naturally, many things will be the same across different players' universes. Factions and stations are likely to stay in existence for quite a while, planets pretty much forever, and of course the systems, system backgrounds, and system layouts will be identical. But smaller, more dynamic things like the actions of individual NPCs, when and where battles are fought, etc, will not be the same unless both players act in precisely the same way.

You're absolutely right - it's impossible to simulate a universe of infinite size in finite time, so LT is going to be pulling some tricks on you to make it look that way without having to really do it. As you might guess, part of those tricks will be that systems you've explored and, in particular, system in which you have many assets, will be simulated at a high LOD while systems you have never explored will hardly be simulated at all. This means that the order in which you discover and explore systems will impact the way your universe works. It's just a fundamental limitation that I see no way of getting around, unfortunately!

As for the second question, it's difficult to say without having worked much on saving. I will certainly have to be clever about what I choose to store, and indeed, it's probably true that after a certain amount of play, your savegame might become too large. But I will strive to make that certain amount impossibly high. The good news is that my saving system is really space-efficient, and I will layer compression on top of it. I don't anticipate this being too much of an issue, even if you play for 2000h. But it's certainly something that I'll have to keep an eye on and solve incrementally.
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Dynamics and persistence

#3
JoshParnell wrote: Ah, brilliant. You've hit upon some absolutely key questions.
:oops:
The first question is actually an incredibly deep one. The short answer is that yes, it will be different - universes will slowly diverge based on how long you've played. Naturally, many things will be the same across different players' universes. Factions and stations are likely to stay in existence for quite a while, planets pretty much forever, and of course the systems, system backgrounds, and system layouts will be identical. But smaller, more dynamic things like the actions of individual NPCs, when and where battles are fought, etc, will not be the same unless both players act in precisely the same way.

You're absolutely right - it's impossible to simulate a universe of infinite size in finite time, so LT is going to be pulling some tricks on you to make it look that way without having to really do it. As you might guess, part of those tricks will be that systems you've explored and, in particular, system in which you have many assets, will be simulated at a high LOD while systems you have never explored will hardly be simulated at all. This means that the order in which you discover and explore systems will impact the way your universe works. It's just a fundamental limitation that I see no way of getting around, unfortunately!
Well, sure, it's an unavoidable pitfall of infinite universes. It's not a bad thing in and of itself either, since two people coming to the same universe would still have slightly different experiences (so, yeah, your playthrough really is just your own). Actually, I think it's über-cool, because most games have the whole universe stand completely still (despite it being finite) and most often the order in which you discover things doesn't change anything at all. Heck, you can meet a guy who tells you he's going to die the next day if you don't find some cure for him, go do something else for 200h and when you come back he's still exactly in the same position (of dying tomorrow if you don't bring a cure)... Having a universe where the time at which you discover things impacts them and the path you take through the universe influences it sounds much more like a selling point than a flaw to me. :ugeek:
As for the second question, it's difficult to say without having worked much on saving. I will certainly have to be clever about what I choose to store, and indeed, it's probably true that after a certain amount of play, your savegame might become too large. But I will strive to make that certain amount impossibly high. The good news is that my saving system is really space-efficient, and I will layer compression on top of it. I don't anticipate this being too much of an issue, even if you play for 2000h. But it's certainly something that I'll have to keep an eye on and solve incrementally.
One thing you could do is have NPCs progressively lose interest if you don't contact them for a long time. I mean, realistically, if you stay 10 years without contacting someone you had just traded with for a while, they won't remember your name at all. That way, you could drop parts of the history without losing anything gameplay-wise. If anything, it would add more realism to NPC reactions.

Same thing with the stuff the player did. After a while, only the big things leave any kind of memory, right? So your log could feature every detail for the past in-game month or so, and then gradually faze out the little details. If I totally save a faction's ass, I'd expect them to remember it for decades if not centuries, but if I trade a ton of ore with a merchant, I'd expect him to remember my name for a month or so, nothing more. If anything, it's weird that in most games everybody knows what you (as a player) did and they never ever forget about it.

Again, just throwing random ideas. I hope that if they're not useful directly, at least they'll help you get some better ones. ;)
Post

Re: Dynamics and persistence

#4
Atarun wrote: Same thing with the stuff the player did. After a while, only the big things leave any kind of memory, right? So your log could feature every detail for the past in-game month or so, and then gradually faze out the little details. If I totally save a faction's ass, I'd expect them to remember it for decades if not centuries, but if I trade a ton of ore with a merchant, I'd expect him to remember my name for a month or so, nothing more. If anything, it's weird that in most games everybody knows what you (as a player) did and they never ever forget about it.

Again, just throwing random ideas. I hope that if they're not useful directly, at least they'll help you get some better ones. ;)
I really like that - what an elegant solution to part of the savegame bloat problem! I think you're right - that would actually enrich the sense that the AI represents living, breathing people with more to do than obsess over the player 24/7.

I agree that big things, like saving an individual's or a faction's ass should never be forgotten, whereas more minor interactions can be culled from memory. Perhaps even the big things you do should gradually fade in importance to an NPC or faction - but unless the game is simulating actual decades of real time, the major things you do for people shouldn't appreciably fade.
Post

Re: Dynamics and persistence

#5
insolent wrote:I really like that - what an elegant solution to part of the savegame bloat problem! I think you're right - that would actually enrich the sense that the AI represents living, breathing people with more to do than obsess over the player 24/7.

I agree that big things, like saving an individual's or a faction's ass should never be forgotten, whereas more minor interactions can be culled from memory. Perhaps even the big things you do should gradually fade in importance to an NPC or faction - but unless the game is simulating actual decades of real time, the major things you do for people shouldn't appreciably fade.
Gosh, I never thought I'd miss the "Like" feature. But really, I just would like to say I agree with your post, man. :)
Post

Re: Dynamics and persistence

#9
I agree, Atarun, that is a great idea. I'm sure I (well, "we," I suppose!) will develop many such tricks for compressing the save files while retaining as much universe persistence as possible. Again, it's not worth worrying about until we know exactly how much of a problem it will be. Definitely an example of one of the age-old mistakes in programming..thinking prematurely about optimizations that aren't actually necessary. After all, you can store a huge amount of binary data in a few MB, *especially* if each asset is only represented by a single seed number!

As for the question of time scale, I really don't know...although it seems kind of arbitrary, I mean, what metric would there be for measuring the passing time? IMO it's kind of a moot point, because I don't know how you would tell (unless I implemented, for example, seasonal planet vegetation or something like that..)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Dynamics and persistence

#10
JoshParnell wrote:I agree, Atarun, that is a great idea. I'm sure I (well, "we," I suppose!) will develop many such tricks for compressing the save files while retaining as much universe persistence as possible. Again, it's not worth worrying about until we know exactly how much of a problem it will be. Definitely an example of one of the age-old mistakes in programming..thinking prematurely about optimizations that aren't actually necessary. After all, you can store a huge amount of binary data in a few MB, *especially* if each asset is only represented by a single seed number!

As for the question of time scale, I really don't know...although it seems kind of arbitrary, I mean, what metric would there be for measuring the passing time? IMO it's kind of a moot point, because I don't know how you would tell (unless I implemented, for example, seasonal planet vegetation or something like that..)
Well then it means there is no game-time, if there's no way to tell. Time, after all, is a concept entirely and solely dependent on one's ability to measure its passing. The number of hours of play before you discover a sector would thus just be a random seed, not a reflection of a time that would make sense inside the universe itself.

It's interesting, but it might make the universe much harder to relate to. It also begs the question of how to track things if there is no time. How do you stamp the logs? How do you track your teams to make sure they aren't going on vacation on company's dime and nothing bad happened to them? Do people make appointments at all? How?

I think it'd be a lot easier to factor time in your model. Game-time, I mean. But of course, if centuries go by in-game, then it brings the question of how long exactly can those people live? Are they all immortal? If they are, why can they die of some things (like their ships exploding with them inside, I assume) but not age?
Post

Re: Dynamics and persistence

#12
If the universe is generated continually the deeper you go with no end procedurally with enough differences and given the infinite number of monkeys scenario, could each universe generally contain death stars. Maybe a space station or ship will be the size of a death star and ball shaped, somewhere....
Post

Re: Dynamics and persistence

#13
I'm not quite following you guys. I assuming the universe is created at once and not built as you move along. (I could be very wrong though) Therefore you already have its extents, so if you nominate a maximum speed, you then have an idea how "long" it will take to traverse points. So there is indeed an element of time, it's an element of time based on you the player. It's up to game creator to decide to show time as a factor or not. For example: 2 worlds, millions of lights years apart. I'm on planet A, then I choose to goto planet B The game can show me fall asleep and then wake up, or do some sort of millenium falcon warp 'jump', so only moments have passed for me as the player, but behind the scenes a gazillion years has passed for me to get there. Does the player care? Do we need the game to show that vast amounts of time has passed? If we head back to Planet A again. Do we need to show the little city we left on Planet A is now a metropolis that covers the entire planets surface? You could do it procedually, no problems, but it would confuse the hell out of players.
Post

Re: Dynamics and persistence

#15
Deej wrote:I'm not quite following you guys. I assuming the universe is created at once and not built as you move along. (I could be very wrong though) Therefore you already have its extents, so if you nominate a maximum speed, you then have an idea how "long" it will take to traverse points. So there is indeed an element of time, it's an element of time based on you the player. It's up to game creator to decide to show time as a factor or not. For example: 2 worlds, millions of lights years apart. I'm on planet A, then I choose to goto planet B The game can show me fall asleep and then wake up, or do some sort of millenium falcon warp 'jump', so only moments have passed for me as the player, but behind the scenes a gazillion years has passed for me to get there. Does the player care? Do we need the game to show that vast amounts of time has passed? If we head back to Planet A again. Do we need to show the little city we left on Planet A is now a metropolis that covers the entire planets surface? You could do it procedually, no problems, but it would confuse the hell out of players.
Two things:
1) The universe cannot be created at once. It is infinite. It has to be generated progressively as you explore. But because it's generated from a given seed, without any tricks, it will always produce the same things in the same places. Josh already said (first answer in this thread) that there would be tricks pulled to tweak that a little so that if player A and player B discover the same sector at two completely different time (in terms of how many hours of gameplay they put beforehand and what path they took through the game), they will not find the exact same situation. If they did, it would mean that the "unknown" universe doesn't exist at all until the player character discovers it... which is admittedly what will happen technically (again, infinite universe), but there's no reason why the engine cannot attempt to hide that.

2) I care about time. More specifically, I care about how time will impact the relationships between my characters and factions and NPCs as well as factions' relationships and status. I'm not saying there's a better way to do things, just that I would like to know how it will be in LT and it matters to me.

Online Now

Users browsing this forum: No registered users and 4 guests

cron