| An idea I had a long time ago (I think I posted about it on Slashdot back when that was the hot place to be rather than a shadow of its former self) which I'm sure was not original, was that where many games pop things in and out of existence and (re)generate them purely based on a statically seeded pseudo-random number generator or similar, and then maintain some minimal state, if you take time and decay into account you can do much better. E.g. Elite would bring ships into existence only when you entered a planetary system. If you then shot at police, it'd affect your reputation and impact others reaction to you even after ships have blipped out of existence. But the ships themselves retained no state. Minecraft, on the other hand, maintains state of objects "too well": Once you visited an area, the landscape goes static once you leave: While mobs disappear and are reinstantiated, nothing will grow or decay while you're away. If you want to make a realistic lazy simulation and you also want to minimise computation and storage, you could do this: * For any entity, you assign a function that computes its change over time, including being able to give a result that is effectively "reconverged to base-state of the map at time t".
* When a user re-enters a map location, you 1) generate the map as per that time, which might include whatever effects you want to cause change over time, 2) you apply the functions for any user-affected objects that were present, and let them be affected by map changes since last time-step, 3) you purge any user-affected changes that will have re-converged to the base state of the map. E.g. clear an area of trees? If you come back soon, it'll still be clear; if you come back much later, it will have reverted to the freshly generated state of the biome affected by a time factor so it's not identical. Leave your farm for a while? A bit later it'll be ready to harvest. Too long, and it'll have fallen into disrepair. Build a house? Leave long enough, and there will be damage to it, and cobwebs etc. Leave for really long and it might be ruins when you return. Dug out a tunnel? Wait too long, and things might have fallen and started blocking them. Put another way: A good enough simulation could potentially short-circuit a lot of the need to retain state and simulate what has happened by applying pure function of time decay. You don't need to simulate the process of a house decaying, just the outcome at time t unless it's being observed at a given time. Incidentally, when people don't know/remember the details of something we've done, we're great at just making up the details - we know this from split brain experiments - so even if you instantiate simulations of people in this kind of scenario you could likely work your way around inconsistencies just by decay memories as well and letting people fill in the gaps in a way consistent with the effects they see. I fully agree with you that it won't always be worth it vs. just simulating the full detail in the first place, but I also think you can at least get far closer to realistic even with aggressively pruning what you actually fully simulate. To what extent you can get close enough is another question, and something that's fascinating to think about. |