kliffy/causality.txt
2011-03-03 22:42:48 -08:00

35 lines
2.3 KiB
Plaintext

TIME TRAVEL:
actions -- things that the player has explicitly done. They generate nevs, but are not necessarily the only source of them.
nev -- narrative event -- a moment in time. nevs contain some text to display to the user to communicate what is happening, some handles with which she may generate actions, and some consequences to the state of the world.
CHANGING THE PAST:
in my game, a nev can be inserted in the past as a result of a later action, in direct violation of causality. I do this because it is interesting.
ways we could deal with this:
- try to calculate a stable loop to determine whether or not the action is legal
- cons: hard for the author to reason about (?), hard to write code to deal with, high time complexity
- split the timeline
- cons: the player may be able to perform an action which has consequences in the past which will prevent him from performing the action. The player will then see the consequence but not the action.
- model this problem as inserting an action at the earlier point to begin with
- pros: the system should probably be able to model things this way anyway
causality is not violated
- cons: maybe somewhat fragile from the author's POV
how to specify where the nev goes?
UI for undoing should be on the nev following the player's actual action, not the modelled one
same problems as timeline splitting, actually -- just giving the author the tool rather than baking it into the engine
these are important questions regardless of whether we implement things this way or not though
OK
ACTIONS:
- happen in response to nevs!
- nevs have [generated?] stable IDs, and appear at most once in the text. (nevs can also be parameterized?)
MULTIPLE ACTORS:
- soooo it makes sense to have multiple actors generating actions! the player-character is merely one such actor, with a simple "AI".
- other actors can generate nevs according to other criteria.
- so we could model a TimeLord actor which generates a nev in response to the player's future action? No, because the only way to tell if future actions are valid is to simulate the world!
- could provide a world-simulating primitive that action validity calls could run
GAME IDEAS:
"I'm thinking of a number"
irreversible actions (that you can, of course, reverse)