Advertisement

Maintaining multiple plotlines

Started by May 14, 2003 01:17 PM
1 comment, last by Estok 21 years, 8 months ago
The situation: In an RPG game, the player is presented with choices that affects the subsequent developments of the story. What kind of subsequent plot changes are reasonable to implement in the game? Or, how do I create maximize the variety of the plotlines with minimum development cost (time and complexity)? Several implementations: TBS style: each main characters/enemy has a goal of its own, and they make decisions during major game cycles (as in shogun and other turn based strategies games), while the game runs in real time. The player is informed about the changes, and make decisions so that his home base does not get destoryed. The player can level himself in the traditional perkill style, and can group with members from the homebase. The goal of the game is to discover with lords are consipring to destory you, and to defeat their consipricy either by force or diplomacy. The rules for decision makings should not be very complicated, and, to avoid maintaining the whole world, may be the player will need to declare his action, and have the game engine generates the corresponding environment and enemies based on the state of the game world. However, since the decisions are probably based on some threat/diplomancy values, the outcomes are unique but may be very similar (think about a game of warcraft against AI). Plottree: Each node of the tree represents a game state which contains choices and lists of modifications (triggers) pertaining to the choices. A node maybe arrived from one or more nodes, but the progress is not backward in general. The number of nodes are finite, and are predefined. In this case, the reasons and storylines of each node can be very developed and customized. Disadvantage is that the total number of paths from the root to a leave is limited, and to increase variety, the tree height has to be long, and cross-edges be introduced to merge some paths (when two sub paths are merged, the storyline at the merging node must be general enough so that is applies to a player coming from either ancestor node). TimeBoundPlotGraph: similar to the last one, but the entire graph is less connected. Each vertex contains a list of conditions, a plot description, objectives, and lists of outcome modifiers. Each vertex is a choice that the player can make as long as the conditions of the vertex is satisfied. For example, the player can choose to go to the temple of wind to train his skills with wind magic, as long as (condition) the temple has not been attacked and destoryed. This structure still supports the Plottree described. In this case, the storyline of each vertex maybe more independent, and can be added to the plot without as complex consideration as the Plottree implementation. In effect, the game "generates" the tree for you (as the designer) instead of you editing the paths and linkages of the tree yourself. However, this implementation does not gurantee that the ultimate goal of the game can be reached (since the entire tree is not planned out, execution of some vertices may have a combineded effect that none of the ending vertices can be reached. It is probably the designer''s duty to ensure those situations don''t occur. Or, the game engine, before presenting a choice, verify that the effect of the vertex leaves at least one path from it to an ending vertex. (Note that this is not the same as checking whether the effects of the vertex leaves no conditions of the ending vertices satisfiable.) Is it okay to have a "game over" in an RPG? SeamlessChoices: This further decentralizes plot structure by binding "plot triggers" to physical locations and agents. For example, the "trainning art of wind" trigger maybe bind to a wind archmage at the temple of wind. If the temple is attacked and the archmage killed, the trigger is gone from the game world with her, making the player impossible to activate it. Each Agent that the plot depends on have a set of objectives and rules. For example, a warlord might have a simple objective of "attack the closest town", with a rule "mobilize with troops proportional to defenders (with types and heros considerations), if troop size required > maxvalue, pretent to be friendly." A field commander who hates a certain NPC might have the AI: "kill nearest enemy, if NPC X is within y meters, kill*(%hatred) him first." During each major cycle, an agent reevaluates its objective list based on its state, and reprioritize based on importance of the objectives and chance of success (how to calculate?). This sounds similar to the TBS implementation, and depends on emmergency for variability. I think that it is hard to have complicated (dramatic) plotline or objectives in this implementation. Probably do a hybrid of the TimedGraph and agent triggers. Such that vertices in TimedGraph handles more involved game state changes (with good pre-made descriptions) and AgentTriggers handle the microbehaviors and attitudes. Since TimedGraph is not very "open", the game can give the player informations and hints, which is harder to do with AgentTriggers. What do you think? How would you design? What kind of dramatic plot changes should a game able to handle? Do you favor a linear plot?
I just use the Eastman Fate Standard

--------------------------------------------
"What you think you see is only as real as your brain tells you it is."

if (foo (CSituation *sit))
pity(foo);
With love, AnonymousPosterChild
Advertisement
I think the easiest version to implement is the plot tree. Its all predefined and requires a lot of work, but requires less programming and complex AI.

On the other hand, if you have the capability to implement multiple pre-defined AI agents with pre-defined beliefs that can make logical decisions, form new beliefs, and make short- and long-term goals, then it is theoretically possible to build a unique story by placing those agents in specific roles in the story and letting them act upon the story both in response to and independant of the player's actions.

It would take a lot of work though, and I don't recommend it unless you have a lot of experience with Artificial Intelligence development.

****************************************

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?
brian@foreverdreamstudios.com

"I create. Therefore I am."

[edited by - irbrian on May 15, 2003 4:44:28 PM]
---------------------------Brian Lacy"I create. Therefore I am."

This topic is closed to new replies.

Advertisement