|
|
|
| United States Patent | 5498003 |
| Link to this page | http://www.wikipatents.com/5498003.html |
| Inventor(s) | Gechter; Jerry (Eight Ridge Rd., Lincoln, MA 01773) |
| Abstract | Interactive, electronic game apparatus including a visual display, an input
device, a plurality of character behavior controllers containing logic for
determining the behavior of respective game characters, and a game
controller containing logic to determine consistent game states for the
game and the characters, each character behavior controller including an
independent application process. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5498003 |
|
|
Interactive electronic games and screen savers with multiple characters |
|
|
|
|
|
| Publication Date |
March 12, 1996 |
|
|
|
|
|
| Filing Date |
December 16, 1993 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This application is a continuation in part of U.S. patent application Ser.
No. 08/133,644, filed Oct. 7, 1993, which is hereby incorporated by
reference. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5377997 Wilden
Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5239463 Blair 463/3 Aug,1993 |      Your vote accepted [0 after 0 votes] | | 5200890 Pionchon 463/11 Apr,1993 |      Your vote accepted [0 after 0 votes] | | 5193818 Leeson
Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5190285 Levy 463/36 Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5120057 Kitaue 463/2 Jun,1992 |      Your vote accepted [0 after 0 votes] | | 5083800 Lockton
Jan,1992 |      Your vote accepted [0 after 0 votes] | | 5083271 Thacher
Jan,1992 |      Your vote accepted [0 after 0 votes] | | 4858930 Sato 463/23 Aug,1989 |      Your vote accepted [0 after 0 votes] | | 4856787 Itkis 273/237 Aug,1989 |      Your vote accepted [0 after 0 votes] | | 4738451 Logg 463/2 Apr,1988 |      Your vote accepted [0 after 0 votes] | | 5137277 Kitaue 463/2 Dec,1969 |      Your vote accepted [0 after 0 votes] | | 4926327 Sidley 463/13 Dec,1969 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. Interactive, electronic game apparatus for playing a game in which game
characters appearing on a display are responsive to inputs from a game
user, said apparatus comprising:
a visual display presenting an observable state of said game and of said
game characters to said game user in response to a display signal,
an input device for interactively entering user input signals
representative of user interaction with game characters, and
processing means receiving said user input signals from said input device
and generating said display signal and outputting said display signal to
said visual display, said processing means including
an extensible plurality of independent character behavior controllers for
determining the behavior of respective said game characters, each said
character behavior controller containing independent behavior logic to
determine states and state transitions of its respective game character as
represented to said user by said display means, said character behavior
controllers being responsive to said user input signals and to game
control signals for adjusting the behavior of said respective game
characters,
a game controller for coordinating the behavior of said game characters,
said game controller containing logic to determine consistent game states
for said game and said characters, and communicating said game control
signals to said character behavior controllers so that the state of said
game and of said game characters is a consistent game state,
an operating application for operation of said character behavior
controllers and said game controller on said processing means,
each said character behavior controller including an independent
dynamically-linked procedure invoked by said operating application,
said game controller including logic to add new character behavior
controllers to said game.
2. The apparatus of claim i wherein said game controller receives character
state signals from said character behavior controllers, said character
state signals describing the observable state of characters controlled by
said character behavior controllers.
3. The apparatus of claim 1 wherein said game control signals include a
global game state signal, describing the observable states of said
characters controlled by said character behavior controllers.
4. The apparatus of claim 3 further comprising plural said global game
state signals, and wherein one said global game state signal is accessible
to one but not another of said character behavior controllers.
5. The apparatus of claim 1 wherein at least one of said character behavior
controllers generates an interaction with a character defined by another
said character behavior controller, said interaction requiring resolution
to determine subsequent behavior of a character controlled by said
character behavior controller, and wherein said game controller determines
the resolution of said interaction.
6. The apparatus of claim 1 wherein said game controller includes an
instance manager function which directs the creation and deletion of
characters controlled by said character behavior controllers.
7. The apparatus of claim 1 wherein said game controller and said character
behavior controllers are operated on a single computer.
8. The apparatus of claim 1 wherein said game controller and said character
behavior controllers are operated on multiple computers communicating over
a network.
9. The apparatus of claim 1 wherein said game controller includes a
dynamically-linked procedure invoked by said operating application.
10. Interactive, electronic game apparatus for playing a game with
replaceable game controller logic for game characters appearing on a
display and responsive to inputs from a game user, said apparatus
comprising:
a visual display presenting an observable state of said game and of said
game characters to said game user in response to a display signal,
an input device for interactively entering user input signals
representative of user interaction with game characters, and
processing means receiving said user input signals from said input device
and generating said display signal and outputting said display signal to
said visual display, said processing means including
one or more character behavior controllers for determining the behavior of
respective said game characters, each said character behavior controller
containing independent behavior logic to determine states and state
transitions of its respective game character as represented to said user
by said display means, said character behavior controllers being
responsive to said user input signals and to game control signals for
adjusting the behavior of said respective game characters,
a game controller for coordinating the behavior of said game characters,
said game controller containing logic to determine consistent game states
for said game and said characters, and communicating said game control
signals to said character behavior controller or controllers so that the
state of said game and of said game characters is a consistent game state,
an operating application for operation of said character behavior
controller or controllers and said game controller on said processing
means,
said game controller and each said character behavior controller or
controllers including a distinct dynamically-linked procedure invoked by
said operating application,
whereby said game controller can be used with one or more different
character behavior controllers, and said one or more character behavior
controllers can be used with a different game controller.
11. The apparatus of claim 10 wherein said game controller receives
character state signals from one said character behavior controller, said
character state signals describing states and state transitions of a
character controlled by said character behavior controller.
12. The apparatus of claim 10 wherein at least one of said character
behavior controllers generates a character action causing an interaction
with another character requiring resolution to determine subsequent
behavior of a character controlled by said one character behavior
controller, and said interaction is resolved by an interaction manager
function provided in said game controller.
13. The apparatus of claim 10 wherein said game controller includes an
instance manager function which directs the creation and deletion of
characters controlled by said character behavior controller or
controllers.
14. A method to coordinate the actions of a plurality of characters
appearing on a visual display in an interactive computer or video game,
said method comprising:
presenting the observable state of said game and of said game characters to
said game user in response to a display signal,
providing an input device for interactively entering user input signals
representative of user interaction with game characters,
receiving said user input signals from said input device and generating
said display signal and outputting said display signal to said visual
display at a processing means,
executing control logic for said characters and said game by an operating
application at said processing means,
controlling the behavior of said plural characters by character behavior
controllers determining states and state transitions for respective
characters and each including independent dynamically-linked procedure
invoked by said operating application of said processing means,
coordinating the behavior of said game characters by a game controller
executing as part of said control logic for said game,
for said game controller, determining consistent game states for said game
and said characters, and
communicating game control signals to said character behavior controllers
so that the state of said game and of said game characters is a consistent
game state,
for each said character behavior controller, responding to said user input
signals and said game control signals by responsively determining a
current state of its respective game character for representation to said
user by said display means.
adding a new character to said game by adding a new character behavior
controller.
15. The method of claim 14 further comprising communicating character state
signals from said character behavior controllers to said game controller,
whereby said game controller is informed of states and state transitions
of characters controlled by said character behavior controllers.
16. The method of claim 14 further comprising communicating an interaction
signal from one said character behavior controller to said game
controller, whereby said game controller is required to respond to
determine subsequent behavior of a character controlled by said one
character behavior controller.
17. The method of claim 14 further comprising communicating creation or
deletion signals from said game controller to said character behavior
controllers for creating and deleting characters controlled by said
character behavior controllers.
18. Electronic display apparatus for multiple independent display
characters, said apparatus comprising:
a visual display presenting an observable state of said display characters
in response to a display signal,
processing means generating said display signal and outputting said display
signal to said visual display, said processing means including
a plurality of character behavior controllers for determining the behavior
of respective said display characters, each said character behavior
controller containing independent behavior logic to determine states and
state transitions of its respective display character as represented to
said user by said display means, said character behavior controller being
responsive to display control signals for adjusting the behavior of said
respective display characters,
a display controller for coordinating the behavior of said display
characters, said display controller containing logic to determine
consistent display states for said display and said characters, and
communicating said display control signals to said character behavior
controllers so that the state of said display and of said display
characters is a consistent display state,
an operating application for operation of said character behavior
controllers and said display controller on said processing means,
each said character behavior controller including an independent
dynamically-linked procedure invoked by said operating application,
said display controller including logic to add new character behavior
controllers to said visual display.
19. A method for incorporating new characters in an interactive, electronic
game with game characters appearing on a display and responsive to inputs
from a game user, said method comprising:
presenting the observable state of said game and of said game characters to
said game user at a visual display in response to a display signal,
providing an input device for interactively entering user input signals
representative of user interaction with game characters,
receiving said user input signals from said input device and generating
said display signal and outputting said display signal to said visual
display at a processing means,
executing control logic for said characters and said game at said
processing means,
controlling the behavior of said characters by independent character
behavior controllers determining states and state transitions for
respective characters and executing as part of said control logic for said
characters,
coordinating the behavior of said game characters by a game controller
executing as part of said control logic for said game,
for said game controller, determining consistent game states for said game
and said characters and communicating game control signals to said
character behavior controllers so that the state of said game and of said
game characters is a consistent game state,
for said character behavior controllers, responding to said user input
signals and to said game control signals by responsively determining a
current state for its respective game character as represented to said
user by said visual display, and
modifying said character control logic at said processing means from a
first character behavior control configuration including a first but not a
second of two distinct character behavior controllers to a second
character behavior control configuration including said second character
behavior controller.
20. The method of claim 19 wherein said character logic extension means
performs addition of a new logic procedure.
21. The method of claim 19 wherein said character logic extension means
performs substitution of procedure logic.
22. The method of claim 19 further comprising communicating a global game
state signal, describing the observable states of said characters
controlled by said character behavior controllers.
23. The method of claim 19 further comprising communicating character state
signals from said character behavior controllers to said game controller,
whereby said game controller is informed of states and state transitions
of characters controlled by said character behavior controllers.
24. The method of claim 19 further comprising communicating an interaction
signal from one said character behavior controller to said game
controller, whereby said game controller is required to respond to
determine subsequent behavior of a character controlled by said one
character behavior controller.
25. The method of claim 19 further comprising communicating creation or
deletion signals from said game controller to said character behavior
controllers for creating and deleting characters controlled by said
character behavior controllers.
26. The method of claim 19 wherein said modifying includes altering
character registration information provided at said processing means.
27. The method of claim 19 further comprising executing said game
controller and said character behavior controllers on a single computer.
28. The method of claim 19 further comprising executing said game
controller and said character behavior controllers on multiple computers
communicating over a network.
29. A method for changing game control logic in an interactive, electronic
game with game characters appearing on a display and responsive to inputs
from a game user, said method comprising:
presenting the observable state of said game and of said game characters to
said game user at a visual display in response to a display signal,
providing an input device for interactively entering user input signals
representative of user interaction with game characters,
receiving said user input signals from said input device and generating
said display signal and outputting said display signal to said visual
display at a processing means,
executing control logic for said characters and said game at said
processing means,
controlling the behavior of said characters by independent character
behavior controllers determining states and state transitions for
respective characters and executing as part of said control logic for said
characters,
coordinating the behavior of said game characters by a first or a second of
two distinct game controllers executing as part of said control logic for
said game,
for each said game controller, determining consistent game states for said
game and said characters and communicating game control signals to said
character behavior controllers so that the state of said game and of said
game characters is a consistent game state,
for said character behavior controllers, responding to said game control
signals for adjusting the behavior of said respective game characters, and
modifying said game control logic at said processing means from a first
game control configuration including said first game controller to a
second game control configuration including said second but not said first
game controller.
30. The method of claim 29 further comprising communicating a global game
state signal, describing the observable states of said characters
controlled by said character behavior controllers.
31. The method of claim 39 further comprising communicating character state
signals from said character behavior controllers to said first or second
game controller, whereby said game controller is informed of states and
state transitions of characters controlled by said character behavior
controllers.
32. The method of claim 29 further comprising communicating an interaction
signal from one said character behavior controller to said game
controller, whereby said game controller is required to respond to
determine subsequent behavior of a character controlled by said one
character behavior controller.
33. The method of claim 29 further comprising communicating creation or
deletion signals from said game controller to said character behavior
controllers for creating and deleting characters controlled by said
character behavior controllers.
34. The method of claim 29 wherein said modifying includes altering
character registration information provided at said processing means.
35. The method of claim 29 further comprising executing said game
controllers and said character behavior controllers on a single computer.
36. The method of claim 29 further comprising executing said game
controller and said character behavior controllers on multiple computers
communicating over a network. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
This invention relates to interactive computer and video games and to
screen savers.
In interactive computer and video games, the user employs various input
devices to control animated characters on a video screen, to influence
their behavior, and to attempt to achieve the objectives posed by the
game. There are many examples and forms of such games, which are
distributed either as software permitting playing of the game on a
personal computer or as combined software/hardware video game devices.
These include arcade and Nintendo-style games, combat and flight
simulation games, adventure games, sports strategy games, and others.
The characters in these games are specified at the time the game is
developed. A single application program is used to define each game, which
can include the option for playing the game with single or multiple
characters controlled by one or more users. Some games allow new visual
elements or game scenarios to be added to a preexisting game. This is the
case with SimCity (which adds new cities and graphics) or with Microsoft
Flight Simulator (which adds new airplanes and terrains). These additions
are implemented by adding new data that are then acted upon by the
preexisting program logic of the game.
In a somewhat related area, some screen savers, which provide a changing
display for an inactive computer screen, permit user interaction to select
combinations of display items to be presented whenever the screen saver is
invoked.
SUMMARY OF THE INVENTION
This invention features a computer or video game in which new characters
can be added to the game and still participate fully in interactions with
prior characters and with the game environment. This is achieved by
providing independent control logic for each character in the form of a
character behavior controller. A game controller coordinates the various
character behavior controllers, mediates their actions, and assures that
the resulting visual display appears consistent to the game user. The
invention drastically alters the relation that computer and video games
can have with their users. Instead of merely following preset rules of a
game, a user can employ the game as a framework to assemble his or her own
fictional world. New characters can vary enormously in their appearance,
patterns of behavior, and user control modes, so long as they subscribe to
the paradigms established for interaction with the other entities in the
game. These characters may be highly interactive, or merely configurable
as in a screen saver display.
The invention allows computer games to assume characteristics that have
until now been restricted to other kinds of toys. Play sets and
construction toys, such as Playmobile and Lego, have always been
extensible, and various kinds of dolls (particularly based upon movies and
television programs) have been offered as an expanding family of related
toys. This is a particularly appealing paradigm for computer games,
because the characters can actually move, interact, and evolve following
the behavioral logic embodied by the characters and the modes of
interaction set by the game. Multiple instances of the same character can
easily be created, and the same characters can be used with different game
controllers.
A character can be a person or animal with its own behavioral
characteristics: it knows how to move, how to change its appearance, and
how to react to other characters in the same game. A character can also be
an inanimate object that changes state and participates in interactions,
e.g., thrown balls, walls placed as barriers, etc. A character can even be
an active background, i.e., a screen area (e.g. falling rain) that changes
state based upon game conditions and influences other characters
accordingly. Any type of character can be added independently according to
the capabilities of this invention.
Preferably the game controller executes four basic game control functions:
1. Providing the user interface to play the game. This provides the user
the ability to set up and manage the game as a whole, as well as an
ability to interact as necessary with the individual applications that
control the characters.
2. Managing the creation and deletion of character instances. Creation and
deletion may be caused either through the user interface (as during the
initial setup of the game) or by interactions of characters during the
game.
3. Resolving the interactions of the characters (e.g. collisions, battles,
etc.).
4. Maintaining a consistent global state for the game. This also includes
disseminating the global state to all of the characters and to the user
interface entity of the game controller.
For each particular game, the interactions of the characters with the game
control are reflected in the specifics of the interfaces between them, as
described below.
This invention has an additional aspect in which an application process
(the "operating application") takes over the role of the operating system,
and the character behavior controllers and/or the game controller are
embodied as separately loadable procedures for that application. With this
aspect, new character behavior controllers and new game controllers can be
incorporated into a single game application process.
In the preferred embodiment of this aspect, the game controller and the
character behavior controllers are embodied as procedures in dynamic link
libraries. A new game controller or character behavior controller is added
by loading its DLL and invoking its procedures in the operating
application. A game controller or character behavior controller can be
replaced by substituting another DLL with new logic. It should be noted
that the program logic for the operating application must include a
reference to a DLL procedure in order for that procedure to be invoked for
the game.
DESCRIPTION OF THE PREFERRED EMBODIMENT
Drawings
FIG. 1 is a block diagram showing elements of an interactive electronic
game according to the invention.
FIG. 2 is a block diagram showing the components of the game controller of
the FIG. 1 game.
FIG. 3 is an example of a screen display of the FIG. 1 game illustrating
the user interface to the game controller.
FIG. 4 is an example of a screen display of the FIG. 1 game illustrating
the instance manager of the game controller during the start-up of the
game and indicates how the user can invoke multiple instances of the
characters.
FIG. 5 shows examples of screen displays of the FIG. 1 game illustrating
the function of the interaction manager of the game controller.
FIG. 6 shows examples of screen displays of the FIG. 1 game illustrating
the function of the global state manager of the game controller.
FIG. 7 is a block diagram showing the components of the FIG. 1 game
involved in display of a game character.
FIG. 8 is a flow chart describing the communication between the game
controller and the character behavior controllers at start-up.
FIG. 9 is a representation of the global data accessed by each of the
character behavior controllers in determining its behavior.
FIG. 10 is a diagram illustrating the communication between the game
controller and the character behavior controllers during the game.
FIG. 11 is a table showing the global state data for an example
implementation of the invention.
FIGS. 12A-12D are screen displays showing the sequence of screens for
initialization of characters in the example implementation.
FIGS. 13A-13D are screen displays showing the sequence of screens for
interaction of characters in the example implementation.
FIG. 14 shows implementation options for communication between the game
controller and the character behavior controllers.
Structure
Referring to FIGS. 1 and 2, an electronic interactive game according to the
invention employs the components shown on FIGS. 1 and 2. These figures
show a single game controller 101 and two character behavior controllers
102, with interactions indicated by arrows 110/111 and 112/113. Game
controller 101 and character behavior controllers 102 are implemented as
independent processes on a computer system having a visual display, a user
interaction device (e.g. a keyboard and mouse), and a central processing
unit and operating system.
The electronic game according to the invention achieves its objective of
extensibility by allowing multiple characters controlled by multiple
character behavior controllers 102 to participate in the game. These
character behavior controllers 102 are independently executing programs,
i.e. independent processes as defined by the operating system. For Windows
3.1 and Windows NT, independent processes have separate entries in the
Task List display; for Unix they are separately listed by the ps command
(with --e flag). For Unix and Windows NT, independent processes also have
independent address spaces (see Maurice J. Bach, The Design of the Unix
Operating System, p. 10 and Helen Custer, Inside Windows NT, p. 84).
Character behavior controllers 102 provide the independent behavioral logic
for the characters, whereas game controller 101 coordinates the activities
of the characters. Game controller 101 interacts with the character
behavior controllers 102 through global state data 103 or through direct
interactions 110/111 and 112/113.
The first kind of interaction is through the global state data 103. As
shown by arrow 110, the global state data are written by the game
controller 101. From there, information is extracted by the individual
character behavior controllers (arrows 111) as a basis for their behavior.
In the preferred embodiment, the global state data are represented as a
shared-memory object that can be accessed by each of the character
behavior controllers. Each character behavior controller can thus
independently check the contents of the global state data to know the
externally-observable state information about all other objects in the
game. Further in the preferred embodiment, the game controller assigns a
character type identifier to each character behavior controller, so that
it can recognize its own characters in the global state data. The content
of the global state data is described in FIG. 9 and discussed in detail
below.
The other kind of interaction with the character behavior controllers is
via action messages (arrows 112-113). Action messages from the character
behavior controllers to the game controller (arrows 112) communicate
changes in character states and motions, and initiate interactions with
other characters. Action messages from the game controller to the
character behavior controllers (arrows 113) cause the characters to change
state or motion (including possibly to enter a pause state awaiting
resolution of interactions) and present interaction results. The role of
game controller 101 is to maintain a consistent global state for the game
by resolving all inputs (e.g. arrows 112), updating the global state data
103 (arrow 110), and communicating with each of the character behavior
controllers 102 to force state changes where necessary (arrows 113).
FIG. 2 shows how this is done. This figure gives the internal structure of
game controller 101. There are four components reflecting four functions
of game controller 101: the user interface 201, the instance manager 202,
the interaction manager 203, and the global state manager 204.
The user interface 201 manages the interactions of the game as a whole with
the user and provides a mechanism to pass user control actions for
individual characters. Game-level interactions start and stop the game,
introduce new characters, and change overall game characteristics (e.g.
speed). In this function the user interface interacts with all of the
other game controller components: initiates and reflects instance creation
(arrow 210), it modifies and reflects the global state (arrow 212), and it
may initiate or provide for resolution of character interactions (arrow
211).
User control of individual characters is achieved either by direct
interaction with the character behavior controllers or by messaging
between the game controller and the character behavior controller. The
result, as seen by the user, is shown in FIG. 3. The user is presented
with multiple characters images 301-303 on the screen. In the preferred
embodiment, the user will click on characters and then use mouse and
keyboard actions to control an individual character according to that
character's character behavior controller logic. This is achieved, for
example, by allowing the selected character behavior controller to present
a pop-up window which offers control options to the user. (Other methods
for user control of characters are described in the example game
implementation presented below.) Game controller actions may be performed
by the screen menus 304, 305 or by user interaction with other
game-control objects 306 on the user screen.
Returning to FIG.2, the instance manager 202 manages the creation and
deletion of instances of characters through interaction with the
appropriate character behavior controllers. At creation, each character
instance is assigned a unique identifier which is communicated to the
character behavior controller, so that it can recognize that character in
the global state data. Instances of characters may be created at start-up
as well as in the course of the game. For example, instances of game
characters may be created or destroyed as a result of interactions between
characters (e.g. a collision may cause an object to be destroyed) or as a
result of decision logic in an individual character (e.g. a character may
spontaneously replicate itself). Consequently, as noted above, the
instance manager has a two-way interaction the user interface (arrow 210).
It also provides output to the global state manager and receives instance
management input as a result of global state resolution (arrow 213).
Depending upon the specifics of particular games, the instance manager may
also initiate and terminate execution of character behavior controllers as
they are or are not required for control of active characters. Also, one
instance of a character behavior controller may manage multiple character
instances, or additional instances of the character behavior controller
may be created.
FIG. 4 shows an example of how the services of the instance manager could
be used at the start of a game. At the upper left of the screen is a
selection box 401 showing the names of character types available to the
user. The user clicks on an character type name and then clicks on another
location on the screen. In response, the instance manager causes a
character instance for the appropriate character behavior controller to be
associated with a display object in that location. The figure shows three
different character instances 405-407 of the character type represented by
name 403. The individual character instances can then evolve according to
the logic of the character behavior controller for that character type.
Again returning to FIG. 2, the interaction manager 203 resolves all
character conflicts as needed to maintain a consistent global state for
the game. Interactions may be initiated by individual characters (as an
action message--arrow 215) or by the global state manager in the course of
attempting to maintain global state. For example, characters may touch,
speak to, or attack other characters, causing character-to-character
interactions to be passed by the global state manager (arrow 214) to the
interaction manager 203. A character behavior controller may also request
the creation of another instance of a character, or may simply request a
change of state which causes an inconsistency trapped by the global state
manager. The logic of the interaction manager may use specific
interaction-control data (described as an interaction table) and well as
any other game controller data to resolve interactions for consistent
global state. Execution of the outcome of an interaction is handled
through the global state manager (arrow 214).
FIG. 5 gives an example of an action taken by the interaction manager. In
this case the interaction 501 is a collision of objects. There are three
possible results 502-504. The first is an elastic collision with new
motions for each of the objects. The second is a collision in which one of
the objects is destroyed (causing an input to the instance manager). The
third is a collision in which one of the objects splits into two smaller
ones. This causes a new object to be created and one of the original
objects to change form. The interaction manager determines which of the
possible results actually occurs (in this case 503), and communicates that
result to the global state manager.
The final component in FIG. 2 is the global state manager 204. This
component has the responsibility to maintain a consistent global state for
the game. As inputs it takes the current states and motions, as well as
any changes initiated by the character behavior controllers (arrow 216) or
the other game controller elements (arrows 212-214). It then attempts to
represent a global state according to the underlying principles of the
game. For example, it takes the current positions and motions of the
characters and attempts to describe their new positions. It contains logic
to identify inconsistencies and generates inputs to the interaction
manager where they occur. These inconsistencies are resolved by the
interaction manager (arrow 214) before it accepts other inputs, so as to
quickly determine a consistent state. This requires that the global state
manager and interaction manager be designed to avoid excessive iterations
to reach a consistent global state. The global state is then expressed
(arrow 217) in the global state data 103. It is also communicated to the
user interface (arrow 212) as necessary.
FIG. 6 shows an example. In this case the global state manager is
responsible for the motions of all the characters on the screen. It
recognizes a collision 601, which is resolved by the interaction manager
(event 602). It then updates the state of the single remaining character
(event 603), calls the instance manager to delete the other | | |