US9977795B1 - System and method for multiplayer network gaming - Google Patents
System and method for multiplayer network gaming Download PDFInfo
- Publication number
- US9977795B1 US9977795B1 US15/783,795 US201715783795A US9977795B1 US 9977795 B1 US9977795 B1 US 9977795B1 US 201715783795 A US201715783795 A US 201715783795A US 9977795 B1 US9977795 B1 US 9977795B1
- Authority
- US
- United States
- Prior art keywords
- game
- events
- peer
- host
- multiplayer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G06F17/30283—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/31—Communication aspects specific to video games, e.g. between several handheld game devices at close range
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/34—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
Definitions
- the present disclosure generally relates to network gaming architectures for multiplayer games. More specifically, the present disclosure describes computerized systems, methods, and apparatuses for peer based distributed execution of multiplayer games. And further to providing a mechanism for host migration in such a system.
- Multiplayer modes of play can extend the gaming experience for the player. Indeed, many games today offer an online multiplayer gaming experience in addition to the single player mode. Multiplayer modes can offer players more playtime since, unlike a single player storyline mode, the player's experience is different with each new opponent. Multiplayer modes can be implemented over the Internet through a network connecting players with other players. While this extends the amount of new and engaging playing time, even multiplayer game modes can become boring and repetitive after time.
- multiplayer games often rely on a centralized server to perform game hosting tasks, such as defining game environment, specifying the game objectives, synchronizing game play across the various players, keeping track of game objectives, and scoring.
- game hosting tasks such as defining game environment, specifying the game objectives, synchronizing game play across the various players, keeping track of game objectives, and scoring.
- game hosting tasks such as defining game environment, specifying the game objectives, synchronizing game play across the various players, keeping track of game objectives, and scoring.
- game hosting tasks such as defining game environment, specifying the game objectives, synchronizing game play across the various players, keeping track of game objectives, and scoring.
- game hosting tasks such as defining game environment, specifying the game objectives, synchronizing game play across the various players, keeping track of game objectives, and scoring.
- a distributed multiplayer game system allows player consoles acting as network peers to perform multiplayer game coordination functions, such as starting, synchronizing and scoring. Furthermore, when the code defining the multiplayer game is distributed as a game script, new and varied gaming scenarios can be provided without needing to update the game's main executable.
- the multiplayer game operates by having the participants in the game run the same game code on their respective gaming machines. Each copy of the script code run by the players in the game runs in parallel. Thus each gaming machine creates a copy of the virtual gaming environment.
- the game systems must, therefore, also communicate information among themselves in order to create a synchronized shared gaming experience. In a preferred embodiment, these communications are at least partially transmitted in a peer-to-peer fashion among the game players. This synchronizing communication can be accomplished by the transmission and receipt of pertinent event messages related to operation of the multiplayer game among the game peers.
- the game events related to management of the high-level aspects of the multiplayer game can be transmitted among the game participants, while low-level game events are handled differently.
- the higher-level game management events can be broadcast to all players.
- low-level game events such as player movements and interactions between players, are broadcast only to the relevant players. This enables an efficient use of network bandwidth by limiting the distribution of more frequent low-level events to only the players that require that information, while less frequent high-level game management events are transmitted to all players to maintain multiplayer game consistency.
- the host performs supervisory functions for the game and is accordingly tasked with unique duties in the game process. In particular, the host coordinates the triggering of high-level game events and responds to queries regarding the game state.
- the host's copy of the game state acts as the determinative record of the game state for resolving consistency conflicts.
- mechanisms are provided to migrate the host to another player. When the host is migrated to a new player, the new host retransmits all high-level events that have occurred since the last successfully received host transmission to the other players. This operation maintains consistency of the game state for all players by making sure all other players have the game state as the new host.
- the game control code for the multiplayer game is distributed via a script file.
- the script file modifies the distributed game code to allow new modes of game play.
- the players to the multiplayer game all run the same script for a given game.
- the players' local copies of the script file are executed by each of their machines roughly simultaneously to create a unified gaming experience for the players.
- a method for participating in a multiplayer peer-to-peer networked game, relying on a preexisting game executable.
- the method receives a game code file over a network; executes the game code file to generate the multiplayer game environment by initiating commands from the preexisting game executable; executes the game code file to generate high-level game events; transmits the high-level game events to all other participants in the multiplayer game; executes the preexisting game executable to transmit individual low-level game events to fewer than all the other participants in the multiplayer game; receives high-level game events and processes the high-level events by executing the game code file; and receives low-level game events and processes the low-level events by executing the preexisting game executable.
- host migration is provided by storing a log of at least some of the high-level game events that were transmitted or received, wherein the high-level game events are stored sequentially; initiating host migration by identifying in the log the last high-level event received from a prior host; processing all high-level game events in the log sequentially after the last high-level event received from the prior host by executing host functions in the game code file; transmitting any results from the processing of the high-level events to all other participants in the multiplayer game.
- the last high-level event received from the prior host is transmitted to the other participants and any high-level events those participants received from the prior host sequentially after the transmitted high-level event are received by the new host.
- the received game code file generates a multiplayer game mode not provided by the preexisting game executable.
- the received game code file creates bindings to the preexisting game code for high-level events specified in the received game code file.
- the received game code file is script code.
- host migration occurs based reaching a threshold number of bandwidth complaints regarding the prior host.
- the high-level events consist essentially of events impacting the multiplayer game state, which cannot be locally generated accurately by all players.
- the above methods are provided via a nonvolatile computer readable medium for storing processor executable instructions to perform the steps.
- the video game system includes a processor; memory in communication with the processor; a network interface connected with the processor to provide communication with other game systems.
- Instructions stored in the memory and executable by the processor receive a game code file over a network; execute the game code file to generate the multiplayer game environment by initiating commands from the preexisting game executable; execute the game code file to generate high-level game events; transmit the high-level game events to all other participants in multiplayer game; execute the preexisting game executable to transmit individual low-level game events to fewer than all the other participants in the multiplayer game; receive high-level game events and process the high-level events by executing the game code file; and receive low-level game events and process the low-level events by executing the preexisting game executable.
- FIG. 1 is a diagram depicting a network structure.
- FIG. 2 shows exemplary event transmission.
- FIG. 3 shows an exemplary host migration method.
- FIG. 1 shows an exemplary architecture in accordance with an embodiment of the disclosed system for multiplayer network gaming.
- Multiple players 10 a - x participate in a combined multiplayer game.
- the players access the game through a gaming system 15 , such as a personal computer, dedicated gaming console, arcade gaming unit, mobile gaming device, mobile phone or other suitable computing environment. These are in communication with one another to play a game.
- these gaming systems will have one more CPUs, GPUs, network interfaces, memory, displays, and user controls (such as mice, touch screens, game controllers, video camera's, etc.).
- These systems are interconnected to, inter cilia, execute game code stored in memory, exchange information over the network, and allow the human player to control game events shown on the display through manipulation of game characters via the user controls.
- Each of these gaming systems provides the players a view on the virtual game environment.
- a game system might provide multiple views on the virtual game environment for two or more players through a split screen, multiple screens or some other mechanism. Through this hardware the players each control game characters in the virtual game environment.
- reference to a player performing game functions, herein, is to be understood where appropriate to refer to actions of the players' gaming systems, such references do not necessarily suggest actions that involve, or are even apparent to, the human user of the system.
- the multiplayer game is embodied in game code running on each of the participating gaming systems.
- Each of the player's computing device runs code executing a local copy of the shared virtual world.
- the multiple copies of the shared virtual world are kept consistent and synchronized by passing messages over the network describing the actions of the various players.
- much of the required communications for maintaining operation of the multiplayer game are transmitted over the Internet on a peer-to-peer basis, without the use of a centralized server to mediate the interactions.
- bandwidth can be used more efficiently if game events are only transmitted between the players that need them. For example, low-level events detailing players' actions, such as the player's immediate motion and interactions with other players, are often only needed by other players in the immediate vicinity of one another. Moreover, due to the need to track such interactions in real time or near real time these low level events occur at a relatively high rate. Thus, network traffic can be reduced if detailed information regarding the movements and actions of players in a region of the virtual world far from the perception of a given player are not transmitted to that player. In contrast, high-level events pertinent to overall game play, such as game scoring, occur more infrequently and can be broadcast among all the players. Segregating game events, in this way, based on frequency and need for the information can help optimize efficient use of network resources.
- Script code is an efficient mechanism for adapting existing game code to create varied new game play.
- a script can access existing game code to create an environment from the single player version of a game and populate it with the players participating in the multiplayer game, as well as other game elements appropriate for the game (such as weapons, vehicles, monsters, etc.).
- the existing game code includes a script runtime process that is responsible for execution of the scripts by providing infrastructure such as, handling the event queue relevant to the script, creating the event watchers that trigger based on event bindings, providing wait timers, and performing host migration routines.
- this code provides a framework for the synchronous execution of scripts and enables the scripts to be executed in parallel across games systems associated with each of the players.
- the script can further provide or access different rules for creating various styles of multiplayer games (such as capture the flag, death match, last man standing).
- a multiplayer script that creates a capture the flag style game would operate as follows. It is assumed that the underlying game has existing game code for different environments, weapons and characters. The script will start by choosing a game environment, placing the flag in the environment, adding other optional game elements and gathering the players participating in the game. In some circumstances the host might run code that randomizes or otherwise specifies game elements, such as items in the virtual environment or the starting location for each of the players. One or more high-level game events are be communicated to the other players noting these specifications.
- the multiplayer game script could also transmit events from each of the players signifying that they are ready to begin the game.
- the host could then send a start event.
- Other relevant high-level game events managed by the multiplayer game script might include: events signaling that one player has killed another player (especially, where that statistic is used for scoring), resurrection of a player as they re-enter the game, flag captured, flag brought to goal, or game end.
- a more detailed exemplary process of event handling by the script is now provided in the context of a capture the flag style game.
- the process involves binding, or associating, certain high-level events with specific game code routines used to process the event.
- a high-level event watcher routine processes the high-level events and triggers the code corresponding to the binding.
- the script selects a position to spawn the flag, with the selected position being sent from the host via an “observation” event method (in this case, it would be that the GET_RANDOM_INT function is an observation, which returns the host's random selection of an index corresponding to static flag locations) 2.
- the script then tells the underlying game code to create the flag as a synchronized object with an ID, and returns the EVENT_INDEX for future reference 3.
- the script then asks the underlying game code for a ‘binding’ relative to that EVENT_INDEX, such OBJECT_PICKFD_UP and specifies a callback function in script to execute when the high-level event watcher in code detects that criteria has been met 4.
- the high-level event watcher on the host transmits an event to all players and executes the callback function and data payload specified in the binding. 5. This triggers a callback in the script that executes the function, passes relevant payload data to the script for processing 6.
- the script can perform various logic, such as creating a drop-off point for the flag, which involves steps similar to those starting at step 2 to create a binding for ON_TRIGGER_VOLUME_ENTERED to identify when a player enters the drop-off point.
- a function that lets a player transmit information outside of the normal event-processing infrastructure.
- script logic generates a EndOfGame event when one of the players accomplishes the goal set by the script
- a “side-channel” is provided to communicate to the host to induce the host to create an event, e.g., _INDUCE_EVENT(EndOfGame).
- This command will relay the trigger to just the host.
- the host will then issue the EndOfGame event, which will be processed by all players, including the player that generated the event. This can similarly be used to send commands to enter or respawn a character into the game.
- events can be transmitted to assist in maintaining consistency for the multiplayer game.
- a player for example, can transmit an event requesting game state information, such as the location of other players. These location events can then be used to mediate the low-level event handling.
- a player entering a new area of the map for example, can request the location of other players in that area. This would allow the player entering the new map area to join the low-level peer-to-peer communications between the subset of players in the new area.
- FIG. 2 shows an exemplary embodiment of a game system's execution of script code in accordance with the disclosed systems.
- the game system 15 includes memory containing script code and game code. Consistent with the prior discussions, the high-level events generated by processing the script code are transmitted to all game-systems participating in the multiplayer game, while the low-level events generated by the game code are transmitted to a subset of relevant players.
- the script code generates high-level events for transmission to the other players as it is executed in accordance with the operation of the game.
- Dispatch code is also provided to process high-level events received from other players. For example, if a game score event is received the dispatch code will pass the event to further script code that will update the score count in the player's user interface.
- the high-level events are sequentially numbered. Sequential numbering is useful in maintaining consistency. As players receive numbered high-level events, should a player receive an event that is out of sequence from the prior events, e.g. receiving event 50 when the last event was 48, it can place the out of order event 50 in a queue and wait to proceed until event 49 is received. The players acknowledge receipt of the particular events. A time out can be employed that drops players if they do not acknowledge receipt of the event prior to the time out. Alternately, an embodiment can provide the ability for the player to query the host to retransmit the intervening events. The host would then retransmit its record of the events to resynchronize the out of sync player. Optionally, players that are too far out of sync, e.g., players that have missed 10 events, can simply be dropped from the game.
- a host migration might be advisable include, the player acting as host leaves the game, a player with better bandwidth than the current host is available to take the hosting role, the host's network latency increases, or the host's connection becomes unreliable.
- One mechanism to trigger host migration is to have peers communicate difficulty communicating with the host and initiating host migration after a threshold number of peers signal such difficulty. Host migration can be signified by a high-level host migration event transmitted to the players.
- Consistency must be maintained during the host migration. This could be accomplished by transferring the prior host's game state information to the new host. This solution however suffers from some problems. Transmitting all the relevant game state information requires a relatively large amount of data, which may slow down or pause the game while the data is transferred to the new host and initialized. Moreover, if the prior host drop out of the game unexpectedly, there may be no time to transmit the game state data.
- host migration can be efficiently accomplished as shown in FIG. 3 .
- the method takes advantage of the fact that all the multiplayer peers have a synchronized copy of the game with respect to the high-level events. Thus, there is no need to transfer a large set of state data.
- a peer is selected to act as host and host migration is started. High-level events may have occurred that were not processed by the prior host due to poor connection or because the host dropped from the game.
- the new host must, therefore, resynchronize events for consistency.
- the new host accesses its log of the high-level events to identify the last event it received from the prior host. The new host then retransmits this last event to the other players.
- the other players compare this event to the events they received from the prior host and send any subsequent events back to the new host.
- the new host then processes any received subsequent events, as the host, and transmits any resulting host events to the other players.
- the players reprocess the new host's events and become synchronized.
- the system can be configured to differentiate segments of the script code based on whether or not they require interaction with events. This makes it easier to ensure that the script code will run with synchronicity.
- Script code that does not require network communication is marked as “Isolated”.
- Underlying game code commands are tagged based on their interaction requirements, such as ‘safe’ (signifying commands that do not change the game state), ‘action’ (signifying commands that change the game state but do not require high-level event data and can be run not ‘Isolated’), ‘observation’ (signifying commands that require the host to provide a response and must not be ‘Isolated’) and ‘local’ (signifying commands that should be run ‘Isolated’).
- Marking script code as ‘Isolated,’ or not, and tagging the interaction requirement of commands allows the developers to maintain consistent parallel script execution across all the machines. This is done by generating errors when commands are executed in a part of the script that is inconsistent with the ‘Isolated’ state.
- ‘observation’ events strictly need host information to maintain a consistent game state across the various players' machines because a particular machine cannot reliably generate that data without host input.
- ‘observation’ commands include: random numbers that define game criteria (the host's machine generates the random number), player positions, player health values, and game object states (e.g., flag is picked up). The host provides the canonical resource for this ‘observation’ data and getting this data from the host ensures identical script execution across the different game machines.
- any ‘observation’ commands that are triggered during an ‘Isolated’ part of the script suggest possible errors that might require correction.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- General Business, Economics & Management (AREA)
- Child & Adolescent Psychology (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
2. The script then tells the underlying game code to create the flag as a synchronized object with an ID, and returns the EVENT_INDEX for future reference
3. The script then asks the underlying game code for a ‘binding’ relative to that EVENT_INDEX, such OBJECT_PICKFD_UP and specifies a callback function in script to execute when the high-level event watcher in code detects that criteria has been met
4. If that object is picked up, the high-level event watcher on the host transmits an event to all players and executes the callback function and data payload specified in the binding.
5. This triggers a callback in the script that executes the function, passes relevant payload data to the script for processing
6. At this point, the script can perform various logic, such as creating a drop-off point for the flag, which involves steps similar to those starting at step 2 to create a binding for ON_TRIGGER_VOLUME_ENTERED to identify when a player enters the drop-off point.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/783,795 US9977795B1 (en) | 2013-05-14 | 2017-10-13 | System and method for multiplayer network gaming |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/894,109 US9805067B1 (en) | 2013-05-14 | 2013-05-14 | System and method for multiplayer network gaming |
US15/783,795 US9977795B1 (en) | 2013-05-14 | 2017-10-13 | System and method for multiplayer network gaming |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/894,109 Continuation US9805067B1 (en) | 2013-05-14 | 2013-05-14 | System and method for multiplayer network gaming |
Publications (1)
Publication Number | Publication Date |
---|---|
US9977795B1 true US9977795B1 (en) | 2018-05-22 |
Family
ID=60142577
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/894,109 Active 2034-06-14 US9805067B1 (en) | 2013-05-14 | 2013-05-14 | System and method for multiplayer network gaming |
US15/783,795 Active US9977795B1 (en) | 2013-05-14 | 2017-10-13 | System and method for multiplayer network gaming |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/894,109 Active 2034-06-14 US9805067B1 (en) | 2013-05-14 | 2013-05-14 | System and method for multiplayer network gaming |
Country Status (1)
Country | Link |
---|---|
US (2) | US9805067B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11465060B2 (en) * | 2016-04-06 | 2022-10-11 | Roblox Corporation | Parties from chat |
US10456673B1 (en) * | 2017-11-17 | 2019-10-29 | Amazon Technologies, Inc. | Resource selection for hosted game sessions |
CN109646951B (en) * | 2018-12-12 | 2022-05-27 | 北京像素软件科技股份有限公司 | Game information synchronization method and device |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010003715A1 (en) * | 1998-12-22 | 2001-06-14 | Curtis E. Jutzi | Gaming utilizing actual telemetry data |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
US20060092942A1 (en) * | 2000-03-07 | 2006-05-04 | Microsoft Corporation | System and method for multi-layered network communications |
US20090262137A1 (en) * | 2008-01-10 | 2009-10-22 | Walker Jay S | Systems and methods for presenting prediction in a broadcast |
US20090325712A1 (en) * | 2008-06-28 | 2009-12-31 | Microsoft Corporation | Player character matchmaking with distributed peer-to-peer functionality |
US20100113157A1 (en) * | 2008-11-05 | 2010-05-06 | At&T Intellectual Property I, L.P. | Multi-Player Game Data Via Multicast Transmission |
US8038535B2 (en) * | 2005-05-17 | 2011-10-18 | Electronic Arts Inc. | Collaborative online gaming system and method |
US8409010B2 (en) * | 2009-05-05 | 2013-04-02 | Microsoft Corporation | Massively multiplayer game with shared gameplay experience |
US8480498B2 (en) * | 2009-11-18 | 2013-07-09 | Sony Computer Entertainment America Llc | Synchronizing mission progress in cooperative games |
US8568238B2 (en) * | 2006-06-29 | 2013-10-29 | Spawn Labs, Inc. | System for remote game access |
-
2013
- 2013-05-14 US US13/894,109 patent/US9805067B1/en active Active
-
2017
- 2017-10-13 US US15/783,795 patent/US9977795B1/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010003715A1 (en) * | 1998-12-22 | 2001-06-14 | Curtis E. Jutzi | Gaming utilizing actual telemetry data |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
US20060092942A1 (en) * | 2000-03-07 | 2006-05-04 | Microsoft Corporation | System and method for multi-layered network communications |
US8038535B2 (en) * | 2005-05-17 | 2011-10-18 | Electronic Arts Inc. | Collaborative online gaming system and method |
US8568238B2 (en) * | 2006-06-29 | 2013-10-29 | Spawn Labs, Inc. | System for remote game access |
US20090262137A1 (en) * | 2008-01-10 | 2009-10-22 | Walker Jay S | Systems and methods for presenting prediction in a broadcast |
US20090325712A1 (en) * | 2008-06-28 | 2009-12-31 | Microsoft Corporation | Player character matchmaking with distributed peer-to-peer functionality |
US20100113157A1 (en) * | 2008-11-05 | 2010-05-06 | At&T Intellectual Property I, L.P. | Multi-Player Game Data Via Multicast Transmission |
US8409010B2 (en) * | 2009-05-05 | 2013-04-02 | Microsoft Corporation | Massively multiplayer game with shared gameplay experience |
US8480498B2 (en) * | 2009-11-18 | 2013-07-09 | Sony Computer Entertainment America Llc | Synchronizing mission progress in cooperative games |
Also Published As
Publication number | Publication date |
---|---|
US9805067B1 (en) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767503B (en) | Game data processing method, device, computer and readable storage medium | |
JP7234440B2 (en) | Online game synchronization method, online game synchronization system, server, and online game synchronization program | |
CN105868111B (en) | Game of mobile terminal automatic test approach and device | |
EP2752226B1 (en) | User organizing device, user organizing method, and cloud computing system | |
US9977795B1 (en) | System and method for multiplayer network gaming | |
US20180018178A1 (en) | Mobile game data processing method and apparatus | |
EP4095693B1 (en) | Data packet synchronization method and apparatus, device, and storage medium | |
CN107241418A (en) | A kind of load-balancing method, device, equipment and computer-readable recording medium | |
JP7465960B2 (en) | Peer-to-Peer Multiplayer Cloud Gaming Architecture | |
CN111399991B (en) | Virtual resource locking method and device, storage medium and electronic device | |
CN113082694B (en) | Game mode switching method and device and electronic equipment | |
EP4145805A1 (en) | Information processing device, data synchronization program, data synchronization method, data synchronization system, and terminal device | |
CN109873876B (en) | Method for interaction and calculation load balanced distribution of distributed virtual environment | |
US20130137521A1 (en) | Communication system, storage medium having stored therein communication program, information processing apparatus, server, and communication method | |
CN112138372B (en) | Data synchronization method in distributed system and related equipment | |
CN114090085B (en) | Object control method and related device | |
CN112156475B (en) | Business data processing method and device, electronic equipment and storage medium | |
CN114470787A (en) | Service processing method, service processing device, electronic device, storage medium, and program product | |
US20130138727A1 (en) | Communication system, storage medium having stored therein communication program, information processing apparatus, server, and communication method | |
US20230293988A1 (en) | Software application streaming system | |
WO2015009190A1 (en) | Systems and methods for providing extended in-game chat | |
CN109621414B (en) | Method and device for displaying and providing throwing result of virtual dice | |
McCoy et al. | Game-state fidelity across distributed interactive games | |
McCoy et al. | Game-state fidelity across distributed interactive games | |
CN113680072A (en) | Turn-based game control method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TAKE-TWO INTERACTIVE SOFTWARE, INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROCKSTAR LONDON LIMITED;REEL/FRAME:043863/0971 Effective date: 20140403 Owner name: ROCKSTAR LONDON LIMITED, UNITED KINGDOM Free format text: EMPLOYMENT AGREEMENT;ASSIGNOR:COTTRELL, IAN;REEL/FRAME:044282/0507 Effective date: 20080616 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.) |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |