U.S. Patent No. 5,805,784: Computer story generation system and method using network of re-usable substories
Issued September 8, 1998, to Christopher C. Crawford
Priority Date September 28, 1994
U.S. Patent No. 5,805,784 (the ‘784 Patent) describes a method and system for creating procedurally generated storylines. The system ties together a bunch of substories to create a larger throughline. A key aspect of the ‘784 Patent is that each substory is reusable meaning that every substory can be executed by any character and involve any character. For example, substory #1 could be about Character A looking for Character B, or vice-versa, Character B looking for Character A. Substory #1 could also involve Character B looking for Character C. There are an initial set of substories that all the characters start in. After completing the initial substory, the character moves to the next substory. The computer system generates a plan list that maps out the substory path the character follows. The plan list can change depending on actions taken by the player. Creating a generated plan which can change results in dynamic storytelling where a player could play the same character twice and experience two different stories.
The storyline of a dynamically generated entertainment program, such as a video game, is generated using a matrix of reusable storyline fragments called substories. A set of characters that participate in the storyline is established and a set of reusable substories is defined. Each substory represents a “fragment of a story”, usually involving an action by a subject, where the subject is one of the characters. Most substories can be reused multiple times with different ones of the characters being the subject and different ones of the characters being the direct object of the substory. Each substory has a set of possible reaction substories, which are a subset of the defined substories. A plan list stores plan data indicating ones of the substories to be performed at specified times. An initial “seed story” in the form of an initial set of substories is stored in the plan list. The substories stored in the plan list are executed at times corresponding to their respective specified times. For at least a subset of the executed substories, the end user of the system is either shown a video image representing the executed substory or is otherwise informed of the executed substory. In reaction to each executed substory, plans to perform additional ones of the substories are generated. The additional substories are ones of the set of possible reaction substories for each executed substory. Each plan to perform an additional substory is assigned a specified time and plan data representing the plan is stored in the plan list.
1. A method of generating a sequence of images representing a dynamically generated story line, comprising: establishing a set of characters; defining a set of re-usable substories, a multiplicity of the substories representing an action by a subject comprising a selectable one of the characters where the action is performed with respect to at least one object comprising at least a selectable one of the characters; for each substory, establishing a set of possible reaction substories comprising a subset of the set of re-usable substories; establishing a plan list for storing plans indicating ones of the substories to be performed; storing in the plan list an initial set of plans, each of the stored plans representing a substory to be performed; executing ones of the substories represented by the plans stored in the plan list; establishing a physical position for each of the characters and updating the characters’ physical positions during the executing step; establishing a current time and advancing the current time during the executing step; generating, in reaction to each executed substory, additional plans to perform additional ones of the substories wherein the additional substories comprise selected ones of the set of possible reaction substories for the executed substory; and storing the generated plans in the plan list; the plan list at times storing a multiplicity of the generated plans; the generating plans step including receiving, in reaction to at least a subset of the executed substories, input from an end user and selecting at least a subset of the additional substories in accordance with the end user input; the plan generating step including assigning each generated plan an earliest execution time and a set of associated characters including a subject and an object, wherein the subject and object are each a specified one of the characters; each stored plan in the plan list including the assigned earliest execution time, subject and object, such that at various times at least a subset of the plans in the plan list have respective earliest execution times that are later than the current time; at least a subset of the generated plans comprising deferred plans, where each deferred plan’s execution is deferred because its earliest execution time is later than the current time and/or its associated characters are not physically proximate each other; the executing step including selecting for execution one plan from those of the stored plans in the plan list whose associated earliest execution time is at least as early as the current time and that meet opportunity availability criteria, the opportunity availability criteria including a requirement that the characters associated with the one plan have physical positions that are proximate to one another; wherein the generated plans are executed in a different order than those generated plans are added to the plan list by the generated plans storing step.