|Publication number||US6015348 A|
|Application number||US 08/733,578|
|Publication date||Jan 18, 2000|
|Filing date||Oct 18, 1996|
|Priority date||Oct 18, 1996|
|Publication number||08733578, 733578, US 6015348 A, US 6015348A, US-A-6015348, US6015348 A, US6015348A|
|Inventors||Patrick B. Lambright, David M. Gedye|
|Original Assignee||Starwave Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (13), Referenced by (119), Classifications (10), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Technical Field
This invention relates generally to a computer hardware and software architecture which supports interactive multi-player computer games. More particularly, the invention provides a scalable system which efficiently distributes computer program components constituting a game across multiple computers.
2. Related Information
Interactive multi-player computer games such as a DOOM game, a QUAKE game, a DUKE NUKEM game, and others are well known. (DOOM and QUAKE are registered trademarks of Id Software, Inc., and DUKE NUKEM is a trademark of Apogee Software, Ltd.) In such games, players can navigate through various "rooms" requiring player interaction in the form of uncovering clues, answering questions, and making selections. In certain versions of these games, each player is provided with a dedicated personal computer which interacts with a central computer over the Internet or other communications medium. New players can enter a game already in progress, while others can exit at their choosing.
As one example, a game might provide a "submarine" room which can hold a limited number of people at a time, wherein each player controls certain activities in the room. Based on the skills of each player, the submarine can be made to move toward various destinations and, upon successful arrival at a particular location, one or more players can move from the submarine into a different room. The players can play the game from different geographic locations and yet, because of coordination in a central computer program, each player is made aware of the actions of the other players. When a new player attempts to enter a room which has reached its capacity limit, a new copy of the room can be created to allow additional players to participate.
FIG. 1 shows a conventional arrangement of hardware and software components for implementing an interactive game as described above. Each of three game players (PLAYER #1, PLAYER #2, and PLAYER #3) is provided with a corresponding computer 101, 102 and 103, each of which is coupled to Internet service provider such as an AMERICA ONLINE service provider or a COMPUSERVE service provider through respective servers 104 and 105. (AMERICA ONLINE and COMPUSERVE are registered trademarks of America Online, Inc., and Compuserve Inc., respectively.) Player actions and displayable information can be transmitted over the Internet 106 to a game server 107 which coordinates the game. While the Internet 106 is depicted as a bus in FIG. 1 for the purposes of discussion, it will be appreciated that the Internet actually comprises a collection of interconnected computer networks.
Typically, each player's computer executes a client game component (101a through 103a) which communicates with a server game component 107a executing on game server 107 to implement the game. Each client game component such as element 101a translates player actions into game commands which are transmitted to server game component 107a, which in turn changes various aspects of the game and returns information to each client game component which displays the updated game information to the player.
Several problems exist with the conventional arrangement depicted in FIG. 1. For one, it is not uncommon for a very large number of game players (hundreds or thousands) to simultaneously play one game. When a large number of players participate in a game, game server 107 may become bogged down, thus slowing down the game for all players. Moreover, if a hardware or software problem develops in game server 107, the disruption caused by stopping the game can inconvenience a very large number of players. Thus, the conventional multi-player game architecture shown in FIG. 1 is not well suited for a large number of players. Due to the increasing popularity of interactive computer games, this problem has become more widespread. Accordingly, a need exists to provide a more efficient and reliable interactive computer game architecture.
The present invention overcomes the aforementioned problems by providing a scalable, distributed game architecture which automatically allocates game computing tasks across different machines as new players enter rooms constituting a game. Various embodiments of the inventive system and method provide a plurality of networked computers each including a "baron" software process which oversees the scheduling and coordination of rooms ("sectors") on the computer. As new players enter sectors constituting the game and thus cause additional sectors to be created, a primary process on one of the computers communicates with the barons to determine where the new sector should be located and, based on the determination, one of the barons creates a new software process (a "sector manager") on one of the selected computers.
In various embodiments, each baron monitors various performance indicia such as CPU utilization rates and communicates this information back to the primary process for use in determining where to locate new sector managers. Other features and advantages of the invention will become apparent with reference to the following detailed description and the figures.
FIG. 1 shows a conventional interactive computer game architecture which allows geographically diverse players to play a common computer game.
FIG. 2 shows a distributed game server system and method employing various principles of the present invention.
FIG. 3 is a flow chart illustrating various steps which may be performed in accordance with the invention.
FIG. 4 shows a detailed example of allocating sector managers across physical computers based on computer loading and sector limits.
FIG. 5 shows the result of the allocations performed in FIG. 4.
Reference will now be made to FIG. 2 which shows in block diagram form a system employing the principles of the present invention. As shown in FIG. 2, a plurality of game players (PLAYER #1 through PLAYER #4) each is provided with a computer (elements 201 through 204) which may be situated at geographically diverse locations. Each of these computers may comprise any of a variety of well known so-called "personal" computers including a CPU, memory, input devices and a display, and can be coupled to Internet 205 through a suitable modem and appropriate Internet service provider (800a-800d). Examples of such computers include IBM-compatible personal computers such as the Intel Pentium-based Dell Dimension series of computers from Dell Corporation of Austin, Tex.
Furthermore, each computer executes a client game component (elements 201a through 204a) which communicates via Internet 205 with a game server computer 206. Each client game component may be obtained by, for example, downloading computer software via the Internet or by retrieving the game component from a CD-ROM or other storage media. This allows multiple players to interact with a common computer game using a client-server architecture.
In contrast to the approach shown in FIG. 1, various embodiments of the present invention include a plurality of computer servers 206 through 209 which are coupled via a network 210 to implement the common computer game. Each computer server can, for example, comprise an Intel-based microprocessor executing the Windows NT™ operating system (from Microsoft Corporation of Redmond, Wash.) and including suitable memory and a local area network connection such as Ethernet. Well known communication protocols such as TCP/IP can be used for communication among the networked computers. Any of various computer languages such as C++ may be used to implement the inventive functions.
As shown in FIG. 2, the computer game is constituted by a plurality of sector managers such as sector manager 207d in computer 207. Each sector manager implements a logical area into which players can enter and perform game-related activities. In contrast to conventional approaches, each sector is preferably implemented as a separately schedulable process or task which can be allocated across different physical machines to balance the load among different physical computers and to prevent a single point of failure. Each sector manager can be created and/or scheduled by a corresponding "baron" process such as baron process 207a on computer 207. Each process may communicate via a conventional e-mail protocol, for example.
As shown by way of example in FIG. 2, sector manager 207d implements a "sector 2" game component, which services players who wish to enter sector 2 and interact with other players in that sector. Sector 2 may constitute, for example, the aforementioned "submarine room" into which a certain number of players may reside and interact. For the purposes of explanation, sectors are identified by number rather than name, although from the player's perspective each sector would desirably be identified by a suitable game nomenclature such as "the submarine room".
Significantly, another copy of the sector 2 component (element 209d in computer 209) can be simultaneously executed in a different computer with different players. For example, if sector 2 (as implemented in the computer game) supports a maximum of ten players in the sector and ten players have already entered sector 2, then when an eleventh player attempts to enter sector 2, another copy of sector 2 can be scheduled--preferably on a computer other than computer 207, such as computer 209--and the eleventh player will enter the newly scheduled copy of sector 2. Thus, although the new player will be able to perform the game-related activities pertinent to that type of room, the new player will be alone in the new copy of the room until another player chooses to or is able to enter that new copy of the room.
In various embodiments, one of the plurality of networked computers includes a login server process 206c and a primary controller process 206d (see computer 206). Login server process 206c coordinates the logging on of new players to the system, and primary controller process 206d coordinates the allocation of players to sectors and the creation of new sector copies as needed. Moreover, a "keep server" process 207c resides in various embodiments on a separate computer 207 to maintain player state information across game sessions, such as activity logs and sector transitions.
As explained above, the scheduling and execution of each sector manager preferably occurs under the direction of a "baron" process executing on each computer. Thus, for example, on computer 209, a first baron process 209a has spawned two sector managers 209c and 209d, one of which implements sector 2 (e.g., a "submarine" room) and another of which implements sector 7 (e.g., a "central fountain" room). Each sector manager is a software entity which allows players who have entered the sector to perform various activities and to exit the room. When all players have exited a sector, the sector manager can be extinguished to conserve computing resources. It will be appreciated that rather than actually spawning new processes on the computer, each baron could instead merely schedule a dormant process allocated in advance and this arrangement should also be interpreted as a "spawning" of a process.
Baron 209a receives CPU utilization information from a utilization process 209b which periodically averages the loading rate for the physical computer (e.g., every 20 seconds). Other computer loading statistics such as I/O rates, memory utilization and the like can also be used. Each baron such as baron 209a also periodically reports the computer loading information to primary controller 206d which uses this reported information to determine which computer is least heavily loaded.
In various aspects of the invention, newly scheduled sector managers are allocated across physical computers by the primary controller process 206d in a manner which generally balances the loading among computers and avoids a single point of failure.
Referring now to FIG. 3, a flow chart is provided illustrating steps performed by primary controller 206d to perform such a balanced allocation. Beginning in step 301, a player makes a sector entry request via one of the client game components 201a through 204a. For example, a new player entering a game after logging on through login server 206c will typically select a sector into which he will be performing various activities. A player who is already playing the game may move from one sector to another and thus also generate a sector entry request. In either event, in step 302 a check is made to determine whether a copy of the requested sector already exists on one of the machines 206 through 209. If a copy of the sector does not yet exist, then in step 303 a determination is made as to which computer is least heavily loaded. This can be performed in primary controller 206d by periodically receiving computer loading statistics from each baron (elements 207a, 208a and 209a) which obtain the statistics from a corresponding utilization function 207b, 208b and 209b.
In various embodiments, a baron process can be located on computer 206 although some accommodation should ideally be made to account for the expected loading associated with login server 206c and primary controller 206d (a similar accommodation should be made for keep server 207c on computer 207). To this end, a modified utilization process 206b and 207b can be provided which always reports a minimum "pegged" utilization rate (e.g., 20%) below which utilization will never be reported. Such a mechanism ensures that computer 206 and 207, which as depicted in FIG. 2 host additional processes such as the login server, will not be selected as the least heavily loaded computer until the other computers in the system reach the "pegged" utilization rate.
Referring again to FIG. 3, in step 303 the least heavily loaded computer is determined and, in step 304, the baron process on the least heavily loaded computer is notified to spawn a copy of the new sector. Thereafter, in step 305, the player is connected to the newly spawned sector.
If, in step 302, a copy of the requested sector already exists, then in step 306 a test is performed to determine whether the capacity limit for that sector has been exceeded. For example, in the "submarine" sector, a maximum of 4 persons may occupy the sector at a time. If in step 306 the capacity limit has not been exceeded, then in step 305 the player is connected to the existing sector.
If, in step 306, the sector capacity limit has been exceeded, then in step 307 the primary controller process determines which computer is least heavily loaded using the aforementioned techniques. Thereafter, in step 308, the baron process on the least heavily loaded computer is notified to spawn a new copy of the existing sector and in step 305 the player is connected to the new copy.
The maximum number of players which can reside in a particular sector can be defined as either a fixed number or as a function of various parameters such as computer loading. Thus, for example, if a particular computer in the system becomes heavily loaded, the sector limit for each sector on that computer can be dynamically adjusted downwardly to prevent the computer from becoming overloaded. If a particular sector normally permits up to 30 players in that sector, but the computer on which the sector is implemented is heavily loaded, the normal sector limit can thus be overridden to a lower value, forcing a new copy of the sector to be created on a less heavily loaded machine even before the 30-player limit is reached. This type of dynamic balancing permits more efficient machine utilization in the system. This adjustment is illustrated as an optional step 309 in FIG. 3 and can be performed at any time.
Based on the type of game, it may be preferable to attempt to group as many players as possible into a given room so that they can interact with each other (i.e., it may be undesirable to allocate two players to two different identical rooms on different computers, because then the players could not interact with each other).
Reference will now be made to FIGS. 4 and 5 which collectively illustrate by way of example a process of allocating sector manager processes across physical computers in accordance with various aspects of the invention. FIG. 4 shows steps performed in sequence as new players enter the game and existing players move between sectors. FIG. 5 shows the results of the steps in FIG. 4 and corresponds in most respects to the software structures shown in FIG. 2, augmented to illustrate which players are in each sector.
Assume for the purposes of discussion that a given multi-player computer game includes a number of different sectors including a sector 2 (having a two-player limit), a sector 5 (having a one-player limit) and a sector 7 (having a four-player limit). Referring to step 401 in FIG. 4, the first player (PLAYER #1) requests entry into a given sector, such as sector 2. (If PLAYER #1 had previously played the game and was able to successfully navigate through sector 1 (not shown), his next logical entry point for the game would thus be sector 2.) In step 402, the primary controller process determines that no copy of sector 2 yet exists in the system, so in step 403 it is determined that computer 209 is the least loaded computer in the system. Thereafter, in step 404 a copy of sector 2 (e.g., sector manager 209d) is spawned on computer 209, and PLAYER #1 enters that copy of sector 2. This is also illustrated in FIG. 5, in which players are indicated as squares residing within particular sector managers. Thus, PLAYER #1 resides in sector manager 209d in FIG. 5.
In step 405, assume that PLAYER #2 also requests entry into sector 2. In step 406, it is determined that the sector limit for the existing copy of sector 2 (i.e., sector manager 209d) has not yet been reached. Therefore, in step 407, PLAYER #2 is also connected to sector manager 209d.
In step 408, assume that PLAYER #3 also requests entry into sector 2. In step 409, a determination is made that the sector limit for sector 2 has already been reached with respect to sector manager 209d. Then, in step 410, it is determined that computer 208 is the least loaded computer and, thereafter, in step 411, another copy of sector 2 (e.g., sector manager 208d) is spawned on computer 208.
In step 412, PLAYER #4 requests entry into sector 5. In step 413, it is determined that no copy of sector 5 yet exists, and in step 414 it is determined that computer 208 is still the least loaded computer. (Note that because computers 206 and 207 preferably report "inflated" CPU utilization values to compensate for the administrative burden of running login server 206c, primary controller 206d, and keep server 207c, it is unlikely that computers 206 or 207 would be selected until the other computers in the system reach a threshold loading level). In step 415, a copy of sector 5 (i.e., sector manager 208e) is spawned on computer 208. This is also illustrated in FIG. 5 by a rectangle in sector 5 containing PLAYER #4.
In step 416, it is assumed that PLAYER #2 moves to sector 7, possibly by successfully completing various activities in sector 2. No copy of sector 7 is determined to exist (step 417). In step 418, it is determined that computer 209 is the least loaded computer. Thereafter, in step 419, a copy of sector 7 (e.g., sector manager 209c) is spawned on computer 209, and PLAYER #2 moves into that sector, thus leaving open an available position in sector 2 (sector manager 209d).
In step 420, suppose that PLAYER #5 requests entry into sector 2. In step 421, it is determined that the sector 2 limit is not yet reached because--due to the movement of PLAYER #2 out of sector manager 209d--an available space remains. Therefore, in step 422, PLAYER #5 is connected to sector 2 (i.e., sector manager 209d in computer 209).
In step 423, PLAYER #6 requests entry into sector 2. In step 424, it is determined that the sector 2 limit has still not been reached. Therefore, in step 425, PLAYER #6 is connected to sector 2 (specifically, sector manager 208d in computer 208 since the limit concerning sector manager 209d has been reached). At this point, both copies of sector 2 are full.
In step 426, PLAYER #7 requests entry into sector 2. In step 427, it is determined that the sector limit for sector 2 has been reached, and in step 428 a determination is made that computer 207 is now the least loaded computer. Thereafter, in step 429 another copy of sector 2 (i.e., sector manager 207d) is spawned on computer 207. This is illustrated in FIG. 5 by a rectangle with PLAYER #7 residing in sector manager 207d.
In step 430, PLAYER #8 requests entry into sector 5. In step 431, it is determined that the sector 5 limit has been reached, and thus in step 432 a determination is made that computer 206 is now the least loaded computer. Thereafter, in step 433 another copy of sector 5 (i.e., sector manager 206e) is spawned on computer 206 (see FIG. 5).
If one of the computers in the network crashes or otherwise becomes unavailable, the primary controller process can detect this condition and updates a table to avoid implementing new sectors on that machine. After the machine reboots, it contacts the primary controller process to make its availability known. Client game components associated with each player can detect that a particular computer is not responding (i.e., the corresponding sector manager fails to respond) and allow the player to move into a different sector (which will occur on a different computer after the primary controller process notices that the computer is not responding).
The above detailed example illustrates how sector manager processes can be allocated across distributed computers in order to balance loading among processors and eliminate single points of failure. It will be recognized that the login server 206c, primary controller 206d, keep server 207c, and each baron can be implemented in any of various programming languages and a source code or executable version of the same stored on a storage medium such as a CD-ROM, magnetic disk or the like. Accordingly, the scope of the invention includes a storage medium containing any or all of the functions described above.
It is apparent that many modifications and variations of the present invention are possible, and references to specific values are by example only. For example, although the term "process" has been used throughout the specification to refer generally to a computer program entity which is separately recognized and capable of being scheduled by an operating system on one of the computers, different functions (and thus processes) can of course be combined into a single process on the same computer, and the term "process" thus should be construed broadly to include any software entity (whether a "process" in the operating system sense or not) which performs a specified operation on a single computer.
The term "baron process" as used throughout the specification and claims is merely descriptive and refers to any software entity executing on a particular computer which is capable of performing the indicated functions (e.g., spawning a process on the computer and reporting computer loading statistics to a primary controller process). In various embodiments, each baron process can be implemented as part of the operating system.
The term "spawn" as used in the appended claims should be interpreted to cover not only the scheduling of a computer process but also more generally the initiation of any computer function to carry out a desired result.
Reference numerals in the appended method claims identifying steps are for convenience only and are not intended to imply a necessary ordering of the steps. It is apparent that the method steps of the invention may be practiced in a different ordered sequence from that illustrated without departing from the scope of the invention. It is, therefore, to be understood that within the scope of the appended claims the invention may be practiced otherwise than as specifically described.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5051822 *||Oct 19, 1989||Sep 24, 1991||Interactive Television Systems, Inc.||Telephone access video game distribution center|
|US5083800 *||Jun 7, 1990||Jan 28, 1992||Interactive Network, Inc.||Game of skill or chance playable by several participants remote from each other in conjunction with a common event|
|US5558339 *||May 5, 1994||Sep 24, 1996||Perlman; Stephen G.||Network architecture to support recording and playback of real-time video games|
|US5586257 *||May 5, 1994||Dec 17, 1996||Perlman; Stephen G.||Network architecture to support multiple site real-time video games|
|US5627766 *||Jan 3, 1995||May 6, 1997||International Business Machines Corporation||Performance and status monitoring in a computer network|
|US5634848 *||Sep 1, 1995||Jun 3, 1997||Pioneer Electronic Corporation||Video game system|
|US5664778 *||Dec 18, 1995||Sep 9, 1997||Fujitsu Limited||Network service system and communication unit for game machine and game machine capable of using said network service system|
|US5668950 *||Dec 13, 1994||Sep 16, 1997||Fujitsu Limited||Network service system and communication unit for game machine and game machine capable of using said network service system|
|US5684955 *||Jun 30, 1992||Nov 4, 1997||Siemens Aktiengesellschaft||Process for distributing an object-oriented program over a plurality of operating system processes of a computer system|
|US5762552 *||Dec 5, 1995||Jun 9, 1998||Vt Tech Corp.||Interactive real-time network gaming system|
|US5774660 *||Aug 5, 1996||Jun 30, 1998||Resonate, Inc.||World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network|
|US5791991 *||Nov 15, 1995||Aug 11, 1998||Small; Maynard E.||Interactive consumer product promotion method and match game|
|US5805814 *||Aug 14, 1997||Sep 8, 1998||Pioneer Electronic Corporation||Video game system|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US6371850 *||Sep 10, 1998||Apr 16, 2002||Sega Enterprises, Ltd.||Video game system for fighting game and method for executing fighting game|
|US6493690||Feb 10, 2000||Dec 10, 2002||Accenture||Goal based educational system with personalized coaching|
|US6535861||Dec 22, 1998||Mar 18, 2003||Accenture Properties (2) B.V.||Goal based educational system with support for dynamic characteristics tuning using a spread sheet object|
|US6542880||Dec 22, 1998||Apr 1, 2003||Indeliq, Inc.||System, method and article of manufacture for a goal based system utilizing a table based architecture|
|US6549893||Jul 31, 2000||Apr 15, 2003||Indeliq, Inc.||System, method and article of manufacture for a goal based system utilizing a time based model|
|US6554712||Nov 6, 2000||Apr 29, 2003||Konami Corporation||Game system using communication network|
|US6611822||May 5, 1999||Aug 26, 2003||Ac Properties B.V.||System method and article of manufacture for creating collaborative application sharing|
|US6625813 *||Jan 12, 1999||Sep 23, 2003||Sony Corporation||Digital television broadcast architecture for massively multi-user application|
|US6658398||Feb 10, 2000||Dec 2, 2003||Indeliq, Inc.||Goal based educational system utilizing a remediation object|
|US6745170||Jun 22, 2001||Jun 1, 2004||Indeliq, Inc.||Goal based educational system with support for dynamic characteristic tuning|
|US6763371 *||May 10, 1999||Jul 13, 2004||Telefonaktiebolaget Lm Ericsson (Publ)||Method and apparatus for collaborative communication in a communication network|
|US6935945||May 7, 2001||Aug 30, 2005||Zeki Orak||Internet game show in which visual clue is progressively exposed to contestants|
|US6951516||Aug 13, 2002||Oct 4, 2005||Nintendo Co., Ltd.||Method and apparatus for multi-user communications using discrete video game platforms|
|US6970858||Feb 8, 1999||Nov 29, 2005||Accenture, Llp||Goal based system utilizing an activity table|
|US7054848||Feb 8, 1999||May 30, 2006||Accenture, Llp||Goal based system utilizing a time based model|
|US7065512||Feb 8, 1999||Jun 20, 2006||Accenture, Llp||Dynamic toolbar in a tutorial system|
|US7065513||Feb 8, 1999||Jun 20, 2006||Accenture, Llp||Simulation enabled feedback system|
|US7089222||Feb 8, 1999||Aug 8, 2006||Accenture, Llp||Goal based system tailored to the characteristics of a particular user|
|US7117189||Feb 8, 1999||Oct 3, 2006||Accenture, Llp||Simulation system for a simulation engine with a help website and processing engine|
|US7152092||Nov 5, 2001||Dec 19, 2006||Indeliq, Inc.||Creating chat rooms with multiple roles for multiple participants|
|US7156665||Feb 8, 1999||Jan 2, 2007||Accenture, Llp||Goal based educational system with support for dynamic tailored feedback|
|US7194444||Feb 8, 1999||Mar 20, 2007||Indeliq, Inc.||Goal based flow of a control presentation system|
|US7229349 *||May 7, 2003||Jun 12, 2007||Nintendo Co., Ltd.||Multi-player game system and multi-player game program|
|US7243363 *||Jul 9, 1998||Jul 10, 2007||Sony Computer Entertainment, Inc.||Entertainment system, picture display apparatus, information processing apparatus and synchronization control method|
|US7280991||May 5, 2000||Oct 9, 2007||Indeliq, Inc.||Creating collaborative simulations for creating collaborative simulations with multiple roles for a single student|
|US7285051||Apr 8, 2003||Oct 23, 2007||Nintendo Co., Ltd.||Game information storage medium and game system using the same|
|US7349838||Jun 30, 2004||Mar 25, 2008||Summers Gary J||Management training simulation method and system|
|US7386524||Jun 22, 2001||Jun 10, 2008||Accenture Global Services Gmbh||Simulation enabled focused feedback tutorial system|
|US7428518||Feb 8, 1999||Sep 23, 2008||Accenture Global Services Gmbh||Simulation enabled accounting tutorial system|
|US7433852||Feb 8, 1999||Oct 7, 2008||Accenture Global Services Gmbh||Runtime program regression analysis tool for a simulation engine|
|US7536363||Feb 8, 1999||May 19, 2009||Accenture Global Services Gmbh||Goal based system, utilizing a table based architecture|
|US7618320 *||May 25, 2004||Nov 17, 2009||Kabushiki Kaisha Sega||Network game system, and game terminal device and storage medium used therefor|
|US7621748||May 16, 2007||Nov 24, 2009||Accenture Global Services Gmbh||Computer enabled training of a user to validate assumptions|
|US7660778||Feb 8, 1999||Feb 9, 2010||Accenture Global Services Gmbh||Runtime program analysis tool for a simulation engine|
|US7856410||Jun 22, 2001||Dec 21, 2010||Accenture Global Services Limited||Simulation enabled retail management tutorial system|
|US7895076||Apr 7, 2006||Feb 22, 2011||Sony Computer Entertainment Inc.||Advertisement insertion, profiling, impression, and feedback|
|US7908364||Jan 24, 2008||Mar 15, 2011||Bigfoot Networks, Inc.||Method storing socket state information in application space for improving communication efficiency of an application program|
|US7962751||Feb 26, 2008||Jun 14, 2011||Arthur Frederick Dudley||Method for portability of information between multiple servers|
|US8047913 *||Apr 25, 2003||Nov 1, 2011||Waterleaf Limited||System for playing a game|
|US8055766 *||Feb 15, 2008||Nov 8, 2011||Sony Ericsson Mobile Communications Ab||Systems methods and user state files for enabling interactions between virtual and real world identities|
|US8147334||Sep 4, 2003||Apr 3, 2012||Jean-Marie Gatto||Universal game server|
|US8167722||May 8, 2006||May 1, 2012||Qualcomm Atheros, Inc||Distributed processing system and method|
|US8214515||Jun 1, 2010||Jul 3, 2012||Trion Worlds, Inc.||Web client data conversion for synthetic environment interaction|
|US8255919||Jan 24, 2008||Aug 28, 2012||Qualcomm Atheros, Inc.||Distributed processing system and method|
|US8255950||Feb 12, 2010||Aug 28, 2012||Aol Inc.||Dynamic identification of other viewers of a television program to an online viewer|
|US8267783||Sep 30, 2009||Sep 18, 2012||Sony Computer Entertainment America Llc||Establishing an impression area|
|US8272964||Sep 30, 2009||Sep 25, 2012||Sony Computer Entertainment America Llc||Identifying obstructions in an impression area|
|US8360787||Aug 14, 2008||Jan 29, 2013||Accenture Global Services Limited||Simulation enabled accounting tutorial system|
|US8416247||Sep 12, 2008||Apr 9, 2013||Sony Computer Entertaiment America Inc.||Increasing the number of advertising impressions in an interactive environment|
|US8429112||Nov 20, 2008||Apr 23, 2013||Accenture Global Services Limited||Goal based system utilizing a table based architecture|
|US8463839 *||Feb 16, 2001||Jun 11, 2013||Cybernet Systems Corporation||Distributed computing environment|
|US8499169||Jul 17, 2008||Jul 30, 2013||Qualcomm Incorporated||Client authentication device and methods thereof|
|US8543866||Jul 16, 2008||Sep 24, 2013||Qualcomm Incorporated||Remote access diagnostic mechanism for communication devices|
|US8574074||Sep 30, 2005||Nov 5, 2013||Sony Computer Entertainment America Llc||Advertising impression determination|
|US8626584||Sep 26, 2006||Jan 7, 2014||Sony Computer Entertainment America Llc||Population of an advertisement reference list|
|US8626863||Oct 28, 2008||Jan 7, 2014||Trion Worlds, Inc.||Persistent synthetic environment message notification|
|US8645992||Aug 12, 2008||Feb 4, 2014||Sony Computer Entertainment America Llc||Advertisement rotation|
|US8657685||Apr 16, 2007||Feb 25, 2014||Igt||Universal game server|
|US8657686||Mar 6, 2009||Feb 25, 2014||Trion Worlds, Inc.||Synthetic environment character data sharing|
|US8661073||Mar 6, 2009||Feb 25, 2014||Trion Worlds, Inc.||Synthetic environment character data sharing|
|US8676900||Oct 25, 2006||Mar 18, 2014||Sony Computer Entertainment America Llc||Asynchronous advertising placement based on metadata|
|US8683045||Jun 28, 2007||Mar 25, 2014||Qualcomm Incorporated||Intermediate network device for host-client communication|
|US8687487||Mar 21, 2008||Apr 1, 2014||Qualcomm Incorporated||Method and system for communication between nodes|
|US8694585||Mar 6, 2009||Apr 8, 2014||Trion Worlds, Inc.||Cross-interface communication|
|US8740694 *||Jun 25, 2012||Jun 3, 2014||Agincourt Gaming, Llc||Method and system for providing a network gaming system|
|US8763090||May 18, 2010||Jun 24, 2014||Sony Computer Entertainment America Llc||Management of ancillary content delivery and presentation|
|US8763157||Mar 3, 2010||Jun 24, 2014||Sony Computer Entertainment America Llc||Statutory license restricted digital media playback on portable devices|
|US8769558||Feb 12, 2009||Jul 1, 2014||Sony Computer Entertainment America Llc||Discovery and analytics for episodic downloaded media|
|US8795076||Jul 10, 2013||Aug 5, 2014||Sony Computer Entertainment America Llc||Advertising impression determination|
|US8864576||May 16, 2005||Oct 21, 2014||Igt||Universal game server|
|US8874780||Jul 16, 2007||Oct 28, 2014||Qualcomm Incorporated||Data buffering and notification system and methods thereof|
|US8892495||Jan 8, 2013||Nov 18, 2014||Blanding Hovenweep, Llc||Adaptive pattern recognition based controller apparatus and method and human-interface therefore|
|US8898325||Jul 16, 2009||Nov 25, 2014||Trion Worlds, Inc.||Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment|
|US8909978||Aug 22, 2013||Dec 9, 2014||Qualcomm Incorporated||Remote access diagnostic mechanism for communication devices|
|US8920242||May 16, 2005||Dec 30, 2014||Igt||Universal game server|
|US8956220||Aug 7, 2012||Feb 17, 2015||Pridefield Limited||System for playing multiplayer games|
|US8986112||Oct 16, 2009||Mar 24, 2015||Nintendo Co., Ltd.||System and method for downloading video game programs|
|US8992314||Oct 1, 2014||Mar 31, 2015||Igt||Universal game server|
|US9005027||Mar 6, 2008||Apr 14, 2015||Trion Worlds, Inc.||Distributed network architecture for introducing dynamic content into a synthetic environment|
|US9015747||Jul 26, 2011||Apr 21, 2015||Sony Computer Entertainment America Llc||Advertisement rotation|
|US9104962 *||Mar 6, 2007||Aug 11, 2015||Trion Worlds, Inc.||Distributed network architecture for introducing dynamic content into a synthetic environment|
|US9122984||Mar 6, 2008||Sep 1, 2015||Trion Worlds, Inc.||Distributed network architecture for introducing dynamic content into a synthetic environment|
|US9129301||Jun 13, 2006||Sep 8, 2015||Sony Computer Entertainment America Llc||Display of user selected advertising content in a digital environment|
|US9144737 *||Aug 1, 2003||Sep 29, 2015||Turbine, Inc.||Securing goal-activated game content|
|US20010052008 *||Feb 16, 2001||Dec 13, 2001||Jacobus Charles J.||Distributed computing environment|
|US20020016196 *||May 7, 2001||Feb 7, 2002||Zeki Orak||Internet game show in which visual clue is progressively exposed to contestants|
|US20020072040 *||Aug 22, 2001||Jun 13, 2002||Javier Bajer||Computer enabled training of a user to validate assumptions|
|US20020138590 *||Nov 5, 2001||Sep 26, 2002||Beams Brian R.||System method and article of manufacture for creating a virtual university experience|
|US20050004789 *||Jun 30, 2004||Jan 6, 2005||Summers Gary J.||Management training simulation method and system|
|US20050026693 *||Aug 1, 2003||Feb 3, 2005||Turbine Entertainment Software Corporation||Securing goal-activated game content|
|US20050026696 *||May 25, 2004||Feb 3, 2005||Hirotada Hashimoto||Network game system, and game terminal device and storage medium used therefor|
|US20050054445 *||Sep 4, 2003||Mar 10, 2005||Cyberscan Technology, Inc.||Universal game server|
|US20050054448 *||Sep 7, 2004||Mar 10, 2005||Aristocrat Technologies Australia Pty, Ltd.||N-tier architecture for a casino management system and method|
|US20050209001 *||May 23, 2005||Sep 22, 2005||Waterleaf Limited||System for playing a game|
|US20050209007 *||May 16, 2005||Sep 22, 2005||Cyberscan Technology, Inc.||Universal game server|
|US20050221898 *||May 16, 2005||Oct 6, 2005||Cyberscan Technology, Inc.||Universal game server|
|US20050227769 *||Mar 28, 2005||Oct 13, 2005||Morrow James W||Gaming device network managing system and method|
|US20050272504 *||Jul 12, 2005||Dec 8, 2005||Nintendo Co., Ltd.||Method and apparatus for multi-user communications using discrete video game platforms|
|US20060063593 *||May 23, 2005||Mar 23, 2006||Waterleaf Limited||System for playing a game|
|US20060242583 *||Apr 21, 2006||Oct 26, 2006||America Online, Inc., A Delaware Corporation||Displaying content from multiple servers|
|US20060259579 *||May 8, 2006||Nov 16, 2006||Bigfoot Networks, Inc.||Distributed processing system and method|
|US20070060373 *||Sep 12, 2006||Mar 15, 2007||Bigfoot Networks, Inc.||Data communication system and methods|
|US20070078706 *||Sep 30, 2005||Apr 5, 2007||Datta Glen V||Targeted advertising|
|US20070078929 *||Sep 29, 2006||Apr 5, 2007||Bigfoot Networks, Inc.||Distributed processing system and method|
|US20070079326 *||Jun 13, 2006||Apr 5, 2007||Sony Computer Entertainment America Inc.||Display of user selected advertising content in a digital environment|
|US20070079331 *||Sep 30, 2005||Apr 5, 2007||Datta Glen V||Advertising impression determination|
|US20070094081 *||Oct 25, 2006||Apr 26, 2007||Podbridge, Inc.||Resolution of rules for association of advertising and content in a time and space shifted media network|
|US20070094082 *||Oct 25, 2006||Apr 26, 2007||Podbridge, Inc.||Ad serving method and apparatus for asynchronous advertising in time and space shifted media network|
|US20070094325 *||Oct 21, 2005||Apr 26, 2007||Nucleoid Corp.||Hybrid peer-to-peer data communication and management|
|US20090325712 *||Dec 31, 2009||Microsoft Corporation||Player character matchmaking with distributed peer-to-peer functionality|
|US20120028703 *||Feb 2, 2012||Wms Gaming, Inc.||Virtual banks for community group bonus games|
|US20120079121 *||Sep 28, 2010||Mar 29, 2012||Disney Enterprises, Inc||System and method for dynamic adaptive player cells for multi-player environments|
|US20120264506 *||Jun 25, 2012||Oct 18, 2012||Agincourt Gaming Llc.||Method and system for providing a network gaming system|
|EP1097739A2 *||Nov 6, 2000||May 9, 2001||Konami Corporation||Game system using communication network|
|EP1661026A2 *||Sep 2, 2004||May 31, 2006||Cyberscan Technology Inc.||Universal game server|
|WO2001088665A2 *||May 15, 2001||Nov 22, 2001||Zeki Orak||Internet game show in which visual clue is progressively exposed to contestants|
|WO2002042921A1 *||Nov 27, 2001||May 30, 2002||Butterfly Net Inc||System and method for synthesizing environments to facilitate distributed, context-sensitive, multi-user interactive applications|
|WO2003013675A1 *||Aug 6, 2002||Feb 20, 2003||Rebel Arts Llc||Distributed and fault tolerant server system and method|
|WO2005026909A2 *||Sep 7, 2004||Mar 24, 2005||Aristocrat Technologies Au||N-tier architecture for a casino management system and method|
|U.S. Classification||463/42, 463/29|
|International Classification||G06F19/00, A63F13/12|
|Cooperative Classification||A63F2300/807, A63F2300/50, A63F13/12, A63F2300/534, A63F2300/407|
|Jan 6, 1997||AS||Assignment|
Owner name: STARWAVE CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LAMBRIGHT, PATRICK B.;GEDYE, DAVID M.;REEL/FRAME:008289/0284
Effective date: 19961219
|Jun 27, 2003||FPAY||Fee payment|
Year of fee payment: 4
|Oct 25, 2006||AS||Assignment|
Owner name: DISNEY ENTERPRISES, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:STARWAVE CORPORATION;REEL/FRAME:018433/0081
Effective date: 20061023
|May 22, 2007||FPAY||Fee payment|
Year of fee payment: 8
|Jun 15, 2011||FPAY||Fee payment|
Year of fee payment: 12