Reading
Mike's entry on two anime series, I was struck by what turns me off of so much anime. Namely, the substitution of story happening at that moment with either a) mysterious backstory or b) mysterious current events, both handed out in small doses over many, many hours. My favorite anime (among them Paranoia Agent, Tokyo Godfathers and Totoro) all dive right into things with characters defined in the moment and by their actions, not as some mystery nut the writer cracks for you after twenty episodes.
In roleplaying games, this anti-Story Now manifests itself as vastly detailed character backgrounds written before the game starts, for example. Or a GM's richly detailed secret plot of which only a part is ever revealed to the players (let alone their characters), often over a months-long campaign.
Maybe some people who kept up with
The Forge for longer than I did can tell me an already-coined term for this. For now, I'll call it the Hidden Story: The creator believes that a pre-written or hidden story is a substitute for the audience's experience of a real story.
Couple this with my current low-time-sink hobby of working on a
Roguelike game (progress is very slow). I'm looking into the design, and I want to somehow generate quests for the player. Only it occurs to me that most video game quests are a variant on the Hidden Story: Somebody asks you to do X for them, and you will get Y in return. Where is the story in that? The quest could be, "My wife has been kidnapped by wolfmen, and she is the only warrior capable of leading the charge against the Empire!" This still boils down to a story that occurs outside of the player experience. The player is not causing story, but merely dealing with the effects of a story (prefixed by a kidnapping, post-fixed by leading a charge). Sure, fighting a bunch of monsters and reaching a talking head (or even a party addition) is fun, but it's doesn't make for story.
What am I saying? That, in order to provide a compelling game experience, Story Now needs to trump Hidden Story. To retool the example above, the player is present at the point of the kidnapping and then reacts to this situation with the player's actions directly affecting the result. Even inaction results in something (kidnapping proceeds, husband and community are no longer friendly). Failure to prevent the kidnapping would, say, endear you to the locals but result in the possibility of a rescue. In a roleplaying game, this is easily handled. The participants set up the situation and run it through. Of course, with video games, it's never as simple as "describe it, then do it."
It is the logic of the if/then statement which shoehorns computer games into Hidden Story providers.
If (player talks to husband)
{
If (RESCUE-WARRIOR quest is NOT in player's quest list)
{
Offer RESCUE-WARRIOR quest to player.
If (player accepts quest) then
{
Add RESCUE-WARRIOR to player's quest list.
}
Else if (player does NOT accept quest)
{
Keep asking. (this single line of logic is the cause of countless rolling eyes)
}
Else if (RESCUE-WARRIOR quest is in player's quest list) then
{
If (RESCUE-WARRIOR quest is NOT complete)
{
Show HAVE-YOU-RESCUED-HER dialogue.
}
Else if (RESCUE-WARRIOR quest is complete)
{
Show THANK-YOU-FOR-RESCUING-HER dialogue.
Add WARRIOR to player's party.
Transition to CHARGE-ON-EMPIRE level.
}
}
}
That's some simple code! No twisted logic, no multiple paths, just a series of if/then's. The player completes the quest or never continues game progression (or, in the case of an optional quest, completes it or doesn't get the reward). Simple = easier on programmers and scripters = less time = why wouldn't you use this in a game!? Answer: It's promotes Hidden Story, which isn't as rewarding for the audience.
At its simplest, Story Now in a video game would be the following:
- Present an emotionally compelling situation which allows for a response.
- Accomodate different responses.
- Allow these responses to have different effects on ensuing gameplay.
Hidden Story stops at step 1, and often doesn't even proceed to step 2. In those rare cases it does, due to a programmer's love affair with binary (if/else, yes/no), there tends to be only two responses. So the issue for adding Story Now to a game becomes: How do I program different responses and their results?
One way would be to provide extensive branching dialogue for the designer, with the option for each dialogue to change further dialogue options and cause post-dialogue ramifications. Combine this with the aforementioned Quest system and you have a fairly open system. To return to the kidnapping example, the husband offers you the following options:
- Agree to rescue the warrior
- Add RESCUE-WARRIOR quest.
- increase Husband friendliness by 10 points
- increase player's Compassion score by 5 points
- Offer to rescue the warrior for money
- Add RESCUE-WARRIOR quest,
- add EARN-MONEY to RESCUE-WARRIOR quest
- reduce Husband friendliness by 10 points
- reduce player's Compassion score by 2 points
- increase player's Barter score by 1 point
- Decline to rescue warrior
- Remove possibility of RESCUE-WARRIOR quest
- reduce Husband friendliness by 50 points
- reduce player's Compassion score by 10 points
This is still very programmable, simple enough for a designer to work with, and would result in a much more robust player experience. However, not only is this still driven entirely by dialogue, but it consists of choices predicated on revealed Hidden Story (kidnapping of warrior). To bring this entirely into a Story Now experience, you would need to perform the following logic:
- CONDITION: Player enters Stronghold when WOLFMAN-KIDNAP scenario is enabled.
- EVENT: Wolfmen appear, assign them KIDNAP-WARRIOR goal.
- EVENT: Play WE-INTED-TO-KIDNAP script (dialogue, in-game, however).
- CONDITION: If the player stops the Wolfmen
- EVENT: increase Husband friendliness by 5 points
- EVENT: increase Warrior friendliness by 5 points
- EVENT: increase Wolfmen fear by 10 points
- EVENT: Allow for Warrior to join in Charge Against Empire event
- EVENT: End WOLFMAN-KIDNAP scenario.
- CONDITION: If the Warrior is kidnapped by the Wolfmen
- EVENT: decrease Wolfmen fear by 10 points
- EVENT: Assign PLEASE-RESCUE-WIFE dialogue to Husband
- EVENT: End WOLFMAN-KIDNAP scenario.
- EVENT: Enable RESCUE-WARRIOR scenario
- CONDITION: If the Warrior is killed
- EVENT: decrease Wolfmen fear by 10 points
- EVENT: Assign WIFE-SORROW dialogue to husband
- EVENT: Assign RETREAT behavior to Wolfmen
- EVENT: End WOLFMAN-KIDNAP scenario.
- CONDITION: If the player damages the Warrior
- EVENT: decrease Wolfmen fear by 2 points
- EVENT: decrease Husband friendliness by 2 points
- EVENT: decrease Warrior friendliness by 5 points
- EVENT: increase Wolfmen friendliness by 1 point
- CONDITION: If the player KILLS the warrior
- EVENT: decrease Wolfmen fear by 10 points
- EVENT: decrease Husband friendliness by 50 points
- EVENT: increase Wolfmen friendliness by 5 points
- EVENT: End WOLFMAN-KIDNAP scenario.
- EVENT: Enable JOIN-WOLFMEN scenario.
Programmatically, this means you need to support:
- Scenarios: A grouping of conditions and events. Scenarios should open other Scenarios depending on the conditions met.
- Conditions: In-game conditions, such as DEATH of NPC.
- Events: One or more of these is called when a condition is met. (examples: Enable QUEST, Adjust CHARACTER STATISTIC)
Computer Roleplaying Games need to move towards this kind of behavior. Without it, we're stuck performing dialogue-prompted quests with no end in sight. Is it tough to implement? Much more difficult than dialogue-trees, for sure, but do we really want to stick with "interactive movies?"
Now I need to work out a Scenario randomization scheme for my Roguelike ...