Expanding on my last idea, I'd like to write some more on events and viewpoints.
When a tree falls in the forest, and nobody is there to listen, does it make a sound? In the the pseudo-random or algorithmicly generated world, the answer should be no, because the tree doesn't fall. It only falls if someone is there, or when someone arrives and "observes" the past.Expanding on my last idea, I'd like to write some more on events and viewpoints.
When a tree falls in the forest, and nobody is there to listen, does it make a sound? In the the pseudo-random or algorithmicly generated world, the answer should be no, because the tree doesn't fall. It only falls if someone is there, or when someone arrives and "observes" the past.
The point is this: If your world is generated algorithmically in a way that allow you to "visit" any point in space and time, then why waste computing power calculating something that isn't observed? If you need the information later (say your game has a "history book" somewhere, you can calculate it then).
Notice that "observed" here is a fairly wide term. Someone "observe" an event if they are directly affected by it, for instance because they're there, and watching, but they also observe it if they see the effects indirectly: They get the news relayed etc.
So events are only generated if observed. How do you determine if they would be observed?
Thats where viewpoints come in. You generate events based on viewpoints. Viewpoints are points in space and time. To generate events, you would take a set of viewpoints and move them through time, calculating changes in the world according to the algorithms you want to use, and use a rule set to emit events according to those changes.
A rule might say that a government change from democracy to military dictatorship happens only with the use of military power, so such a change will emit a set of events corresponding to a military takeover.
What about details?
In the real world, think about what you know, and how it corresponds to level of detail. You can likely see the room around you, and describe objects in it in detail, and conversations in it as well. You may hear noises from outside. You may see news on TV, or in a local newspaper. News about your local area may include details about the shop around the corner, but from other countries you only get events of importance or interest to a larger audience: Major political events, like an election, disasters and so on.
In other words, the level of detail drops of dramatically with distance, and this is important, since otherwise you'd be swamped.
Translated to a game, that would mean that you use the viewpoints not only to decide what parts of the world to actually calculate, but also what level of details the events should have. There's no reason to simulate the full level of details about a military coup on a planet lightyears away. It might be noted in the news, if the planet is important, or the coup bloody enough, but thats it.
But an attack on the planet the viewpoint is on would be noteworthy, and the event generator would need to expand, both by increasing the resolution of advances in time - smaller changes to the timeline must be done, and more events emitted -, but also by splitting events into stream of events, and handling deviations if someone interfere. It might include simulating troop movements, or introducing AIs to simulate individual objects, as well as generating more meaningful news.
A viewpoint can essentially be there for anything from passively observing the world, to an AI player, to a human player, or anything else that require information about the world at a time period at a given point in space.