CaseyLoufek wrote:If you want a truly multi-linear of non-linear game you need to stop following the flow of event to event and instead look at each event as a separate discrete occurance with certain requirements and results.
+1
This is probably even more flexible than you think: You can easily simulate a linear narrative with this structure by "Next event: E
XYZ" being the result of previous events or by "All the events 1 to
x happened" being the requisite for event
x+1, chaining them together this way. Then you can gradually break the structure apart by adding events as alternatives (same requirements, other results, but still ultimately leading to the same chain eventually), "random" flavour events (just a few requirements which are easy to miss, a chance to happen rather than 100%, no or relatively minor results), additional paths (multiple events becoming possible after one is done, which one becomes active depending on the sum of previous results) and whatever else overarching structure you like.
Going the other way, simulating such a free-form event pool with pre-prepared paths, leads to a tangled web of paths, since a lot of the "random" events you can easily insert lead to small loops in the path structure which can happen (and as such repeat) at a ton of places.
------------------------------------
EDIT: To add my usual structure for such events, it looks like this:
Name This should be obvious. It also should be short, easy to guess or remember the content of, and unique.
Type The usual types are "plot start", "plot relevant", "optional", "background", "side story start", "random encounter", "continuation" (of a previous event) or "story end"
Weight How important is this event. Can be dynamic.
Chance to happen Usually 100%, but less so for random events.
Conditions What conditions have to be fulfilled for this event to be valid. Valid events at any given moment are put in a list and sorted by weight, and the first one picked. If the event picked has a non-100% chance to happen, it'll only be picked at this probability, else the next one down the list is considered.
Triggers In a more free-roaming environment, arriving at a situation which matches the trigger (f.e. arriving at a specific spot at midnight) re-evaluates the whole event list and can even break an ongoing event if it is of a lower weight than the triggered event.
Blocking status Can this event be broken by another triggered event, and if so, what happens next (usually one of: event gets discarded, event continues as before after the triggered one if the conditions are still true else gets discarded, event has a special "broken event" sequence of actions, event continues as before after the triggered one if the conditions are still true else uses its special "broken event" sequence of actions)?
Situation What's the set-up at the beginning of the event, before anything happens? Where does the event take place? What's the prevailing mood?
Participants Who's in the event?
Purpose What should the event accomplish, in terms of "... to the story", "... to the characters" and ".. to the player"?
Action What happens during the event? What can be changed?
Variables Which part of the event are variable, and what do they change during it?
Following events Which events follow this one (and under which conditions)? There are three types of follow-up possible: "soft" one, where other events can happen inbetween, "hard" ones, where the next event happens immediately (and is thus of the continuation type), but can be broken up by an uneventful transition ("You take the last train home ..."), or "immediate", where no such transition happens.
State changes How does the world state change after the event, depending on what exactly happened in it? For a computer game, this also includes details like which conversation topics become available.
Notes Any random rambling not covered by the above
I usually group events by "chapters" (which are a kind of condition), with some of them being able to happen or get triggered in multiple chapters.