WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Interactive electronic games and screen savers with multiple characters    
United States Patent5498002   
Link to this pagehttp://www.wikipatents.com/5498002.html
Inventor(s)Gechter; Jerry (Eight Ridge Rd., Lincoln, MA 01773)
AbstractInteractive, 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5498002
Interactive electronic games and screen savers with multiple characters - US Patent 5498002 Drawing
Interactive electronic games and screen savers with multiple characters
Inventor     Gechter; Jerry (Eight Ridge Rd., Lincoln, MA 01773)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     March 12, 1996
Application Number     08/133,644
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 7, 1993
US Classification     463/31 463/1
Int'l Classification     A63F 009/22
Examiner     Harrison; Jessica J.
Assistant Examiner    
Attorney/Law Firm     Fish & Richardson
Address
Parent Case    
Priority Data    
USPTO Field of Search     273/433 273/434 273/435 273/437 273/438 273/85 G 273/DIG. 28 273/460
Patent Tags     interactive electronic games screen savers multiple characters
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5377997
Wilden

Jan,1995

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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 transistions 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, the 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 system for operation of said character behavior controllers and said game controller on said processing means,

each said character behavior controller including an independent application process as defined by said operating system of said processing means,

said game controller including logic to add new character behavior controllers to said game.

2. The apparatus of claim 1 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 said processing means includes a memory, and said game controller communicates with said character behavior controllers using shared space of said memory.

6. The apparatus of claim 1 wherein said game controller communicates with said character behavior controllers by message passing.

7. 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.

8. 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.

9. The apparatus of claim 1 wherein said input device comprises a mouse or keyboard, and wherein said game controller means performs a user interface function that accepts said user input signals provided by said input device for control of said game.

10. The apparatus of claim 9 wherein said user interface function only selects and initializes said characters.

11. The apparatus of claim 9 wherein said user interface function communicates some of said user input signals to said character behavior controllers.

12. The apparatus of claim 1 wherein said character behavior controllers accept some of said user input signals provided by said input device for control of said game.

13. The apparatus of claim 1 wherein said game controller additionally performs a user display function, so that said game controller provides display signals to said visual display.

14. The apparatus of claim 13 wherein character display signals representing displays for said characters are provided to said visual display by said game controller.

15. The apparatus of claim 1 wherein character display signals representing displays for said characters are provided to said visual display by said character behavior controllers.

16. The apparatus of claim 15 wherein said game controller resolves contention for display resources between said character display signals from different said character behavior controllers.

17. The apparatus of claim 1 wherein said game controller and said character behavior controllers are operated on a single computer.

18. The apparatus of claim 1 wherein said game controller and said character behavior controllers are operated on multiple computers communicating over a network.

19. The apparatus of claim 1 further comprising an audio output device for producing sounds in response to audio output signals generated by said processing means.

20. The method of claim 1 wherein said game controller includes an independent application process as defined by said operating system of said processing means.

21. 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 transistions of its respective game character or characters as presented 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 of controllers so that the state of said game and of said game characters is a consistent game state,

an operating system for operation of said character behavior controller or controllers and said game controller on said processing means,

said game controller and said character behavior controller or controllers comprising distinct processes as defined by said operating system of said processing means,

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.

22. The apparatus of claim 21 wherein said game controller receives character state signals from one said character behavior controller, said character state signals describing states and state transistors of a character controlled by said character behavior controller.

23. The apparatus of claim 21 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.

24. The apparatus of claim 21 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.

25. 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 system 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 an independent application process as defined by said operating system 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.

26. The method of claim 25 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.

27. The method of claim 25 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.

28. The method of claim 25 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.

29. 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 system for operation of said character behavior controllers and said display controller on said processing means,

each said character behavior controller including an independent application process as defined by said operating system of said processing means,

said display controller including logic to add new character behavior controllers to said visual display.

30. A method for adding character behavior control logic to 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 that operates in one of two character behavioral control configurations,

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 both said first and said second character behavior controllers.

31. The method of claim 30 wherein said modifying includes altering character registration information provided at said processing means.
 Description Submit all comments and votes
 


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.

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 startup 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 startup.

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: it 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 startup 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 character (event 604), and updates the position and motion information in the global state data (event 605). This completes the discussion of structure for the game controller.

FIG. 7 describes the structure of a character behavior controller. There are again four components: the user interface 701, the internal state manager 702, the interaction handler 703, and the game state manager 704.

The user interface 701 reacts to user control actions performed on a character instance (e.g. by mouse and keyboard) and provides user feedback on the state of the character instance (e.g. through visual image or sound). As noted earlier, it is a responsibility of the game controller user interface to perform whatever functions (if any) are necessary to see that user interface actions can be passed through. User interface actions provide inputs to the internal state manager 702, as well as the displays associated with the internal state (bidirectional arrow 710). In the preferred embodiment, the user interface 701 is responsible for positioning the character's image on the screen based upon the character's motion and state as influenced by the game controller.

The internal state manager 702 controls the state of the character as embodied in the character behavior controller. A character's internal state is reflected through the user interface 701 to the user and through the game state manager 704 to the rest of the game. Changes in state initiated by the game (e.g. through action messages 216) will be communicated through the game state manager as indicated by arrow 711. (Note that since the game state involves both character states and global states, "saving" a game for subsequent play means saving not only the global state data, but also a representation of the internal states for all characters.)

The game state manager 704 is responsible for input/output functions for participation in the game. It reads the global state data 103 (arrow 715), it sends and receives action messages associated with character states and motions (arrows 215 and 216), and it directs (arrow 712) interaction handler 703 to initiate interactions with the game controller 101. The game state manager retains the identity of the character instance as assigned by the instance manager 202. Typically, the game state manager's internal logic would include a timing mechanism that would determine when the global state must be checked. Like the user interface, game state manager 704 provides input to the internal state manager (arrow 711) and reflects an externally visible substate--in this case the substate relevant to the rest of the game.

Finally, the interaction handler 703 is the local counterpart of the interaction manager 203 in the game controller 101. It receives interaction requests (arrow 712) from game state manager 704, generates interactions to be passed through to interaction manager 203, and receives interaction results (passed through from an action message 216) to be presented to the game state manager for further influence on the character's state.

Operation

To initiate the game, the user interface of the game controller provides the means to establish an initial game configuration. This includes creating instances of all of the selected characters, assigning an initial state to each, and propagating an initial version of the global state data.

The process of game initialization is depicted in FIG. 8. In the first step 801, the game user invokes user interface 201 of game controller 101 to create instances of the desired character types. This involves interaction of user interface 201 with the instance manager 202, as described above in the discussion of FIG. 2.

In the next step 802, the user initializes each character instance. This may be trivial if the character has a well-defined initial state. Otherwise, this relies upon the ability of user interface 201 to pass through user control actions to the character behavior controller, as described in the discussion of user interfaces 201 and 701.

Subsequently in step 803, each character behavior controller sends an action message with initial motion and state data. The action message reflects the character's initial state as embodied in the internal state manager 702 and translated to the game substate in game state manager 704. The message is sent by game state manager 704.

Finally in step 804, the global state manager 204 receives all action messages and defines an initial global state. Any interactions at this stage are resolved through the interaction manager 203. The initial global state is then written as global state data 104 and the character behavior controllers can draw and position each character's image accordingly. At this point the initial local and global state data are complete, and the game can proceed.

Note that additional instances of character types can be added to a game in progress by the same initialization process. The new instance is positioned and initialized by user interface 201 (step 801) and then by interaction with the character's character behavior controller (step 802). When the character's character behavior controller initiates execution, it sends an action message with motion and state information to the game controller (step 803), and its presence is then reflected in the global state data (step 804).

Following initialization, the game controller 101 and the character behavior controllers 102 interact via independently-dispatched messages and the global state data 103. In the preferred embodiment, each character behavior controller and the game controller will have a defined update interval. At the expiration of this interval, a timer will cause an update to each of the control components based upon the elapsed time, the global state data, and the messages received.

For the game controller, the sequence of actions follows the information flows in FIG. 2:

1. Motion and state action messages are processed by global state manager 204. Global state interactions are identified and communicated to the interaction manager 203.

2. Interaction manager 203 resolves interactions from the character behavior controllers as well as interactions received from global state manager 204.

3. Through communication with the interaction manager 203, the global state manager establishes a new global system state. The new state is propagated in the form of an update to the global state data 103.

4. All game objects are brought into consistency with the new global system state. This may include creation or deletion of character instances by the instance manager 202, as well as changes to the user interface 201. It may also include adjustment to the individual character motions and states. In the preferred embodiment, such adjustments to the character objects are achieved by action messages sent from the game controller 101 to the individual character behavior controllers 102. The character behavior controller reacts to these action messages according to its own logic to complete the update sequence.

For the character behavior controllers the actions follow the information flow described in FIG. 7. The sequence is as follows:

1. The game state manager 704 reads the global state data 103 and processes any outstanding action messages from game controller 101. Each character's image is presented on the screen based the character's game state as corrected by any action messages.

2. Changes in game state are provided by game state manager 704 as an input to the internal state manager 702. The character's internal state is synchronized with the global state data and any other game input or user interface actions. The internal state is updated for the next time interval.

3. The new internal character state is communicated to the game state manager 704.

4. Game state manager 704 generates action messages reflecting the change of character state. State and motion action messages are sent directly from game state manager 704 to game controller 101; interactions are communicated via interaction handler 703. Since the character instance controls its own internal state, it may choose to make some state and motion transitions dependent upon acknowledgment from the game controller 101 so as to avoid race conditions. This acknowledgment may be received either via action message or by inspection of the global state data 103.

FIG. 9 gives a representation of the global state data 103 in the preferred embodiment. In the figure the global state data has three parts: global data 902, state and motion data 903, and derived data 904. The global data are descriptive of the game as a whole; in the figure it is the number of initialized characters. The state and motion data 903 are in the form of a matrix with a row for each character instance in the game. The data in each row are divided into three sections. The first of the sections contains identity information for the object, namely its instance and character behavior controller identities, as assigned by the instance manager 202. The second section is descriptive of the motion of the object, including as examples the components of position, velocity, and acceleration for the object in question. The third section describes the characteristics and externally-observable state of the object. The specifics of the observable state will depend upon the special features of individual games. As examples, the observable state may indicate the fearsomeness of a monster or the military value of a soldier. The number of components of this third section will depend upon the specifics of the game.

Derived data 904 refers to data that can be calculated from the state and motion data 903, but is included for efficiency because it would need to be recalculated by each character behavior controller individually. The example in FIG. 9 is the matrix of distances between character instances. This can be derived from the motion data, but in some cases it will be more efficient for the global state manager 204 to calculate it once and for all, and distribute it with the global state data 103.

FIG. 10 describes the action messages sent between the character behavior controllers 102 and the game controller 101 in the preferred embodiment. Messages from the character behavior controllers to the game controller (FIG. 10A) include the character-initiated changes in state or motion. These are of the same type as the state and motion data in the global state data 103, but they have not yet been resolved for possible conflicts between characters. In addition the character behavior controllers may user action messages to communicate interactions. These may be of two types:

1. Character-to-character interactions, such as an attraction or an attack, are communicated by identifying the other character or characters and the interaction type.

2. Character-to-game controller interactions can include, for example, spawning of additional characters or deletion of the character itself.

Messages from the game controller to the character behavior controllers (FIG. 10B) represent fewer types and result from resolved interactions. As noted above, the resolution of an interaction may result in changes to a character's state, motion, or both. The interaction result message allows a character to react directly to the result of an action it initiates.

It should be noted that for any particular game, the specific realization of the global state data of FIG. 9 and the action messages of FIG. 10 determine the interface between the character behavior controllers and the game controller. Hence, given that a character behavior controller supports the basic communications paradigms of a given game, the requirements for compatibility are

ability to interpret and react to action messages

ability to read and understand global state data

understanding of character states, motions, characteristics, and interactions

Any character behavior controller that meets these requirements, regardless of its other behavioral logic or screen appearance, can participate in the game. Thus once the interface characteristics are set, new characters can be conceived and implemented by any developer. Similarly, new game controllers can be implemented to work with existing characters.

Example Game Implementation

This section illustrates the operation of the invention by concentrating on a particular example game implemented using Microsoft Visual Basic Version 3.0. A complete program listing is attached as an Appendix. While the listing is self-contained, this section describes the operation of the game and indicates how the implementation realizes the structures of the invention. To simplify implementation, these structures are not always broken out as independent modules of the code. For example, user interface actions are frequently invoked where they arise, rather than being collected into a separate code module. This example game has been demonstrated on a Gateway 2000 PC, model 4DX-33V, with DOS version 6, Microsoft Windows 3.1, and the Visual Basic runtime libraries.

The example game includes a game controller 101 and two character behavior controllers 102, for an elephant and a mouse. To the user, the game controller 101 appears as the background of the game with a menu bar allowing the user to introduce new characters and to exit the game. For this sample application, the behavior of the characters is quite simple: both characters move so as to stay within the frame area defined by the client display, and the elephant is afraid of mice. Specifically, if the mouse gets too close to the elephant, then the elephant attacks it. The attack is resolved by the game controller so that the mouse either escapes or is deleted. If the mouse escapes, then the elephant retreats; the mouse retreats whenever under attack. The character behavior controllers have been designed so that multiple instances of each character can be created through the client user interface and managed independently by the character behavior controllers. In this example game it is simple to verify that the game controller and the character behavior controllers are independent processes: they all appear as independent items in the Windows 3.1 Task List.

The underlying communication between character behavior controllers and game controller is based upon Microsoft Windows Dynamic Data Exchange (DDE). This is a facility of Microsoft Windows 3.1 which is designed specifically for application-to-application messaging. It is described, for example, in the Microsoft Visual Basic Programmer's Guide (Version 3.0), Chapter 21. The game controller 101 is implemented as a DDE destination application, which accesses the services provided by the