To briefly recap part one, one way to create a random story generator is to write a whole lot of story fragments, arrange a subset of the fragments into a list, and count on your player’s sense of closure to assemble the list into a coherent story. In this part I’m going to look at how GearHead-1 did this.
It isn’t really correct to describe the GearHead-1 Plots as story fragments; instead, each one is a complete (though usually quite short) story. For now I’m going to skip talking about the basic Plots (which comprise most missions and random events) and instead just concentrate on the core story plots.
The core story is the series of Plots leading from the player’s introduction in Hogye to the eventual battle with Typhon. The choice of plots is based on three variables: the identity of the PC’s enemy, the mystery that confounds the PC, and the bad thing that happened to the PC. The possible states are:
- Unknown (Or, no enemy yet)
- Unknown (Or, no mystery yet)
- Family Secret
- PC has Amnesia
- PC is not Human
- Searching for Item
- Unknown (Or, no misfortune yet)
- PC’s Family Died
- PC is Incriminated
- PC is Seeking Revenge
- PC is Former Member of Enemy Faction
- PC has a Lost Love
The PC’s starting scenario sets the initial values for these variables. For instance, if the player starts as a defector from Luna, the enemy is set to Faction, the mystery is set to Unknown, and the misfortune is set to Former Member of Enemy Faction. These three variables are collectively referred to as the context.
Only one core story Plot exists at a time. When a new core story Plot is needed, the master list is checked for Plots that match the current context. One of the matches is chosen at random. To continue the example above, from the Lunar defector beginning there are five possible first episodes: the PC could be pursued by a bounty hunter (which requires that the enemy be a faction), a price could be placed on the PC’s head (which has the same requirement), the PC could be sent to rescue a kidnapped professor (which requires that the enemy be a faction and the mystery be unknown), the player could be sent to intercept a secret plan (which requires that the mystery be unknown and the PC an ex-member of the enemy faction), or the PC could be accused of being a member of the enemy faction (which requires that the PC be an ex-member of the enemy faction).
Completion of a core story Plot will result in at least one of the context variables changing. For instance, completing the “Accused!” plot will change the misfortune variable to Resolved. The next Plot will be generated from the new context. This story generation method is similar to a Markov Chain, though I’ve been told that it isn’t exactly one.
There are several problems with the GearHead-1 core story generator. First off, there’s nothing to prevent the story from repeating itself. It can get trapped in a loop, and Plots which don’t alter the context can appear several times in a row. Second, it may be possible to arrive at a dead end- a context which has no available plots. Third, the context variables don’t hold a lot of information- having Aegis Overlord as your enemy is identical to having a local bandit gang or a supposedly law-abiding corporation as your enemy. Next time I’ll talk about how GearHead-2 solved some of these problems… and made one of them much worse.