US10864446B2 - Automated player control takeover in a video game - Google Patents
Automated player control takeover in a video game Download PDFInfo
- Publication number
- US10864446B2 US10864446B2 US16/367,139 US201916367139A US10864446B2 US 10864446 B2 US10864446 B2 US 10864446B2 US 201916367139 A US201916367139 A US 201916367139A US 10864446 B2 US10864446 B2 US 10864446B2
- Authority
- US
- United States
- Prior art keywords
- player
- game
- game state
- computing device
- virtual
- 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
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000009471 action Effects 0.000 claims description 57
- 238000004891 communication Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000003066 decision tree Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 description 29
- 230000006399 behavior Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 239000002775 capsule Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- 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/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
-
- 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
-
- 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/45—Controlling the progress of the video game
-
- 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/55—Controlling game characters or game objects based on the game progress
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/201—Playing authorisation given at platform level
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/535—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6027—Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/65—Methods for processing data by generating or executing the game program for computing the condition of a game character
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
Definitions
- Video game applications have increased in popularity and complexity in recent years. Many of the popular video games in recent years are multiplayer online games, in which players each utilize their own mobile phones, console systems, personal computers or other gaming devices to play with and/or against other real players in real time.
- each player's gaming device communicates over the Internet with a server associated with the given video game.
- the server is often responsible for maintaining shared game state and/or virtual environment data that reflects the interactions of the various players with the game and the virtual environment in which the players interact.
- a multiplayer game enables multiple remotely located players to play together in a cooperative manner, such as on the same team, party, clan, or other grouping. If one of the players is unable to continue playing at a certain point during a cooperative gameplay session, the remaining players are typically frustrated and at a disadvantage relative to if the player had kept playing (e.g., their team may now only have three actively playing players in a matchup against four competing players on another team).
- a player may be unable to continue playing in the middle of a gameplay session in an online gaming environment include that the player's device may lose a network connection to the server, the player's device may experience excessive network lag that prevents proper gameplay, or that a game application operating on the player's device may crash or freeze.
- a system may include a data store that stores a player imitation model associated with one or more video games, wherein the player imitation model comprises indications of actions taken by a player in each of a plurality of gameplay situations.
- the system may further include a computing system in electronic communication with the data store and configured to execute computer-readable instructions that configure the computing system to: initiate a hosted instance of a multiplayer video game, wherein the hosted instance of the multiplayer video game includes a plurality of virtual characters interacting in a virtual environment, wherein a first player computing device initially controls a first virtual character, and wherein at least one additional virtual character other than the first virtual character is initially controlled by one or more other player computing devices; while the hosted instance of the multiplayer video game is in a first game state, receive player control commands from at least the first player computing device; generate a first updated game state for the hosted instance of the multiplayer video game based on at least the player control commands; provide information associated with the first updated game state to the one or more other player computing devices; update the player imitation model based on the first game state
- the computer system above can have one, all, or any combination of the following features.
- the computing system may be further configured to generate the player imitation model based on automated analysis of a plurality of in-game actions performed as a result of player control commands input by the player over a first time period, wherein the player utilizes the first player computing device and wherein the player imitation model is specific to the player.
- the first time period may comprise a plurality of instances of the multiplayer video game, the plurality of instances including the hosted instance of the multiplayer video game.
- the first time period may be configurable by the player, and the computing system may be further configured to generate a user interface that enables the player to select (a) a time period or (b) one or more previous game instances to be considered by the computing system when generating the player imitation model.
- the computing system may be further configured to maintain a heartbeat protocol associated with a connection between the computing system and the first player computing device, wherein the connection problem is detected based at least in part on the heartbeat protocol.
- a computer-implemented method may include, under the control of a computer system comprising computer hardware, the computer system configured with computer executable instructions: initiating an instance of a multiplayer video game, wherein the instance of the multiplayer video game includes a plurality of virtual entities interacting in a virtual environment, wherein a first player computing device initially controls a first virtual entity, and wherein at least one additional virtual entity other than the first virtual entity is initially controlled by one or more other player computing devices; while the instance of the multiplayer video game is in a first game state, receiving player control commands from at least the first player computing device; generating a first updated game state for the instance of the multiplayer video game based on at least the player control commands; providing information associated with the first updated game state to the one or more other player computing devices; detecting a control input problem associated with the first player computing device, wherein the control input problem comprises at least one of a lost network connection, a network lag that meets a threshold, an unexpected lack of control commands originating from the first player computing device, or a disconnected controller
- the computer-readable medium above may further include one, all, or any combination of the following features.
- the operations may further comprise providing information associated with the second updated game state to the one or more other player computing devices.
- the operations may further comprise: detecting that the connection problem is resolved; returning the first virtual entity to be under control of the first player computing device; and generating a third updated game state for the instance of the multiplayer video game based on one or more player control commands from at least the first player computing device.
- the player imitation model may comprise a plurality of stackable levels that are each configured to determine a confidence score for a different action given the current game state of the multiplayer video game.
- the player imitation model may be configured to output an in-game action associated with a first checked level of the stackable levels that determines a confidence score meeting a threshold with respect to the current game state.
- the player imitation model may comprise a decision tree, a Markov model, or a deep neural network.
- FIG. 1 illustrates an embodiment of a networked computing environment for implementing one or more embodiments of a player imitation system with proxy control features.
- FIG. 2 illustrates example data flow within the networked computing environment of FIG. 1 .
- FIG. 3 is a flow diagram of an illustrative method for switching between updating a state of a video game instance based either on a player's control commands or on emulated controls from an imitation learning model, according to some embodiments.
- FIG. 5 illustrates an embodiment of a computing device that may implement aspects of the present disclosure.
- aspects of the present disclosure relate to effectively converting a player-controlled character in a video game to a non-player character (NPC) at least temporarily when certain criteria is met, such as when the player's device has lost its network connection to a game server or the network lag exceeds a threshold.
- the NPC may continue to behave in-game in a manner that emulates or mimics play of the actual player until the end of the game session or until the player comes back online, such that other players participating in the game session have the same or similar gameplay experience as they would have had if the disconnected player had continued to play.
- NPCs non-player characters
- NPCs can be programmed to respond to in-game stimuli (such as in game actions or occurrences involving other NPCs or player-controlled characters) in a manner that appears realistic to a human player.
- AI artificial intelligence
- NPCs non-player characters
- the behavior for a given NPC is typically programmed in advance as part of the game development process.
- aspects of the present disclosure include improved AI or NPC behavior modeling that can mimic or emulate a specific player's play during a given time period, such as a game session or across a number of game sessions.
- a player imitation model for a specific player may be dynamically constructed during one or more gameplay sessions based on a learning process that analyzes the player's control commands or actions taken in response to various game states.
- the trained player imitation model may be used by the player imitation system to emulate controls or actions based on the current game state that appear to other players to be controls or actions that the disconnected player would make if he were still connected and playing.
- a virtual character that was previously controlled by the player may appear to opponents and/or teammates in the game to still be controlled by the player, when in fact the virtual character is under automated control of the player imitation system.
- a game state may generally refer to data regarding the state of a game at a given snapshot instant, and may include different information depending on the type of game and manner in which the game's environment is represented in computer memory.
- Game state information can include game data such as character states, character actions, environment states, positional information about objects and/or characters in the game, non-positional information about characters and/or objects in the game, speeds, directions, health and other attributes, game modes, levels, and/or other information associated with a runtime state of a game application.
- game state information may include, for each of potentially many virtual characters interacting in a virtual world (such as both player-controlled characters and NPCs), a character position, character orientation, current character action, attributes, and/or other information contributing to a state of a game application.
- the game state information can include dynamic state information that continually changes, such as character movement positions, and static state information, such as the identification of a game level or map within the game.
- at least a portion of the game state information can be updated on a periodic basis, such as multiple times per second.
- the game state information can be updated on an event-based basis.
- game state information may be maintained asynchronously between individual player computing systems and a server that periodically sends updates to the player computing systems regarding game state information reflecting in-game actions of the various other players.
- FIG. 1 illustrates an embodiment of a networked computing environment 100 for implementing one or more embodiments of a player imitation system 130 with proxy control features.
- the environment 100 includes a network 108 , a player computing system 102 , one or more other player computing systems 103 , and an interactive computing system 120 .
- FIG. 1 illustrates only one interactive computing system 120 , though multiple systems may be used.
- the interactive computing system 120 includes application host systems 122 , a data store 124 , and a player imitation system 130 . These systems may communicate with each other.
- the player imitation system 130 can obtain data associated with a game application (such as game state information) from one or more of the application host systems 122 and can provide emulated control data to one or more application host systems 122 .
- the application host systems 122 can communicate with the data store 124 to execute and/or host a game application.
- the interactive computing system 120 may be considered a game server that provides network-based support for single player or multiplayer video games played by players utilizing various player computing systems, such as player computing systems 102 and 103 .
- the application host systems 122 can be configured to execute a portion of the game application 104 operating on the player computing system 102 and/or a host application (not illustrated) on the interactive computing system 120 .
- the application host systems 122 may execute another application instead of or in addition to executing a portion of the game application 104 and/or a host application, which may complement and/or interact with the game application 104 during execution of a gameplay session of the game application 104 .
- An instance of a game that is executed based at least in part on an application host system interacting with one or more game applications on player computing systems may be referred to herein as a hosted instance of a game. Further details regarding application host systems are described below.
- the interactive computing system 120 may enable multiple players or computing systems to access a portion of the game application 104 and/or a host application.
- the portion of the game application 104 executed by application host systems 122 of the interactive computing system 120 may create a persistent virtual world.
- This persistent virtual world or virtual environment may enable one or more players to interact with the virtual world and with each other in a synchronous and/or asynchronous manner.
- multiple instances of the persistent virtual world may be created or hosted by the interactive computing system 120 .
- a set of players may be assigned to or may access one instance of the persistent virtual world while another set of players may be assigned to or may access another instance of the persistent virtual world.
- a set of players may cooperatively interact with each other within the same instance of a virtual world, such as being placed on the same team within an instance of a sports video game or being grouped together in a match, mission, quest, campaign or other cooperative mode in any of various types or genres of games.
- the application host systems 122 may execute a hosting system for executing various aspects of a game environment.
- the game application 104 may be a competitive game, such as a first person shooter or sports game, and the host application system 122 can provide a dedicated hosting service for hosting multiplayer game instances or facilitate the creation of game instances hosted by player computing devices.
- the application host systems 122 can provide a lobby or other environment for players to virtually interact with one another.
- the in-game interactions between players within a game instance may vary widely depending on the type of game being played. For example, in one game a group of players may cooperatively work together to build a virtual city, while in another game, players may be placed into competitive sides that attempt to shoot each other in a combat simulation.
- Aspects of the present disclosure may provide benefits in nearly any genre of video game, such as shooter games (such as first person or third person shooters), survival games, adventure games, sports games, platform games, role playing games, simulation games, strategy games, racing games, etc.
- the player imitation system 130 can communicate with other systems to generate player imitation models for one or more specific players, detect when a player has disconnected or should otherwise have control taken over by the player imitation system, and emulate controls of a player using a configured player imitation model.
- the player imitation system 130 can include one or more systems, subsystems or components for implementing various functionality described herein.
- the player imitation system 130 can include a controller source switch 132 , controller proxy component 134 , player heartbeat component 136 , and gameplay modeling system 138 .
- controller source switch 132 the player imitation system 130 can include a controller source switch 132 , controller proxy component 134 , player heartbeat component 136 , and gameplay modeling system 138 .
- the player imitation system 130 and its various systems or components may be distributed across multiple computing systems.
- the various systems of the player imitation system 130 can communicate with each other to obtain, analyze and generate data. While various systems are illustrated as part of the interactive computing system 120 and/or player imitation system 130 , it will be appreciated that each system's functionality could be implemented by a different or multiple computing systems or devices. Furthermore, a single system could implement functionality described herein as being provided or implemented by multiple systems in communication with each other. Similarly, functionality described as being provided by the player imitation system 130 of the interactive computing system 120 could instead be implemented at a player computing system 102 , in other embodiments. Each system or component of the player imitation system 130 is described further below with respect to an illustrative data flow of FIG. 2 .
- the player imitation system 130 can include a player imitation model data store 145 .
- the data store 145 can be configured to store player imitation models, such as models trained to receive a game state as input and to output a predicted action or control command that a real player would make given the game state.
- Player imitation models will be described in more detail below, and may include one or more generic models and one or more player-specific models, where the player-specific models may be developed based on specific time periods of gameplay data associated with the given player.
- the data store 145 may be distributed across multiple computing devices (see for example computing device 10 in FIG. 5 ). In some embodiments, the data store 145 may be a network-based storage system where data may be stored in different locations.
- the interactive computing system 120 can include a data store 124 .
- the data store 124 can be configured to store data acquired by other systems, such as, for example, telemetry data, video data, game state information, user data, or the like.
- the data store 124 may store user account data associated with a video game publisher, a game platform provider or other service that enables a user to maintain preferences, virtual characters, avatars, achievements, and/or other data across a plurality of different video games.
- account identifier data stored in data store 124 may be used by the player imitation system 130 to associate stored player imitation models with particular players' accounts.
- the data store 124 may be distributed across multiple computing devices (see for example computing device 10 in FIG. 5 ).
- the data store 124 may be network-based storage system where data may be stored in different locations.
- the player computing system 102 may include hardware and software components for establishing communications over a communication network 108 .
- the player computing system 102 may be equipped with networking equipment and network software applications (for example, a web browser) that facilitates communications via one or more networks (for example, the Internet or an intranet).
- the player computing system 102 may have varied local computing resources such as central processing units and architectures, memory, mass storage, graphics processing units, communication network availability and bandwidth, and so forth. Further, the player computing system 102 may include any type of computing system.
- the player computing system 102 may include any type of computing device(s), such as desktops, laptops, game application platforms, game console systems, virtual reality systems, augmented reality systems, television set-top boxes, televisions (for example, Internet TVs), network-enabled kiosks, car-console devices computerized appliances, wearable devices (for example, smart watches and glasses with computing functionality), and wireless mobile devices (for example, smart phones, PDAs, tablets, or the like), to name a few.
- computing device(s) such as desktops, laptops, game application platforms, game console systems, virtual reality systems, augmented reality systems, television set-top boxes, televisions (for example, Internet TVs), network-enabled kiosks, car-console devices computerized appliances, wearable devices (for example, smart watches and glasses with computing functionality), and wireless mobile devices (for example, smart phones, PDAs, tablets, or the like), to name a few.
- the player computing system 102 may include one or more of the components or embodiments described below.
- individual other player computing systems 103 may include similar components as the player computing system 102 , though may also have differences (e.g., one player may play a given game from a mobile device while another player may play the same game on a desktop computer or game console system).
- the player computing system 102 and each of the other player computing systems 103 may be capable of executing one or more game applications 104 , which may be stored and/or executed locally and/or in a distributed environment.
- a locally executed game application 104 generally, the game does not rely or utilize an external computing system (for example, the interactive computing system 120 ) to execute the game application.
- a locally executable game can communicate with an external server to retrieve information associated with the game, such as game patches, game authentication, clouds saves, custom virtual character data, user account data, or other features.
- the player computing system 102 may execute a portion of a game and the interactive computing system 120 , or an application host system 122 of the interactive computing system 120 may execute another portion of the game.
- the game may be a massively multiplayer online role-playing game (MMORPG) that includes a client portion executed by each of the player computing systems 102 and 103 , and a server portion executed by one or more application host systems 122 .
- MMORPG massively multiplayer online role-playing game
- the type of game application 104 can be a locally executable game, a distributed application, or an application that includes a portion that executes on the player computing system 102 and a portion that executes on at least one of the application host systems 122 .
- the player computing system 102 can include a data store 126 .
- the data store 126 can be configured to store data associated with one or more game applications 104 , local account data associated with an account maintained for the player by the interactive computing system 120 , gameplay history data, and/or other game-related or account-related data.
- the data store 126 may optionally store local copies of player imitation model data for the particular player (which may have been generated by the player imitation system 130 ) to enable the player to locally play against a previous version of himself, auto-play a portion of a single player game, and/or for other use in the absence of a network connection to the interactive computing system 120 .
- the data store 126 may be distributed across multiple computing devices (see for example computing device 10 in FIG. 5 ).
- one or more of these systems may be combined together.
- one or more of the systems may be executed by the same computing device (see for example, computing device 10 in FIG. 5 ) or by a different computing system than illustrated in FIG. 1 .
- the player imitation system 130 may be executed on the same computing device as the player computing system 102 .
- one or more systems may be executed by multiple computing devices. For example, a portion or subsystem of the player imitation system 130 may be implemented by the player computing system 102 while another portion or subsystem may be implemented by a server.
- FIG. 2 illustrates example data flow within the networked computing environment of FIG. 1 .
- the data flow of FIG. 2 does not specify whether individual communications between illustrated components or systems are over a network or are local within a single computing system or device.
- FIG. 1 illustrates one example network arrangement.
- components or subsystems illustrated as part of a single computing system in FIG. 1 may instead be remotely located relative to each other.
- other systems illustrated as in network communication with each other in FIG. 1 may in some embodiments be operated together on a single computing system or may be in direct local communication with each other rather than communicating over a network.
- the player computing system 102 sends player control commands to an application host system 122 A of the interactive computing system 120 , which may be first received by (or received in parallel with or immediately after the application host system) a controller source switch 132 of the interactive computing system 120 .
- the player may be playing an online multiplayer game application 104 that is configured to communicate with the application host system 122 A to receive shared game state information that is affected in real time by the other player computing systems 103 that are executing their own copies of game application 104 .
- the application host system 122 A may enable other players in the multiplayer game to interact with the same instance of a virtual world as the player utilizing player computing system 102 , and may continually update the current shared game state among the different player computing systems to reflect each of the players' interactions (as well as programmatic environment changes, NPC actions, etc.).
- the player control commands can include, for example, directional inputs along a first axis (such as up/down) or provided to a first joystick (such as a left joystick), second directional inputs provided along a second axis (such as left/right) or provided to a second joystick (such as a right joystick), whether buttons (such as A, B, X, Y, Z, left bumper, right bumper, start, select, turbo, mouse clicks, finger taps, and the like) are pressed to cause a unit or character in the video game to perform an assigned action, and/or other input data.
- buttons such as A, B, X, Y, Z, left bumper, right bumper, start, select, turbo, mouse clicks, finger taps, and the like
- the player control commands can be provided through any of a variety of input devices and input formats, such as through a controller, through a mouse and keyboard, through voice commands, through a touchscreen, by gesture, and the like.
- the actual button presses, mouse clicks, gestures or other information may be processed by the game application 104 locally at the player computing system 102 and translated into an in-game action (e.g., a virtual character firing a gun or turning 90 degrees left, a player selecting to deploy troops at certain in-game map coordinates, etc.), where this in-game action or other result of the player input is provided as the player control command(s) to the application host system.
- an in-game action e.g., a virtual character firing a gun or turning 90 degrees left, a player selecting to deploy troops at certain in-game map coordinates, etc.
- controller source switch 132 is illustrated as a separate component from the application host system 122 A, in some embodiments the controller source switch functionality may be integrated within the application host system 122 A.
- the controller source switch 132 may select whether to provide the application host system 122 A with either (a) player control commands received from the player computing system 102 or (b) emulated control commands generated by the controller proxy component 134 .
- the controller source switch 132 may make the determination of which source should provide the control commands to the application host system based at least in part on a player heartbeat component 136 .
- the player heartbeat component 136 may implement one or more heartbeat protocols that determine whether a consistent connection is maintained between the player computing system 102 and the interactive computing system 120 .
- a heartbeat maintained by the player heartbeat component may fail, for instance, as a result of a network connection being lost or network lag exceeding a threshold established for playability of the particular game (e.g., the threshold may be greater for a slow playing or turn-based game than for a fast paced game involving frequent split second control decisions).
- One or more additional or alternative connections monitored by the player heartbeat component may include monitoring whether a player control device or game controller remains plugged into or connected to the player computing system 102 (e.g., to detect whether a wired game controller was disconnected from the player computing system, such as may occur when someone trips over a cord).
- the player heartbeat component may monitor an amount of time since the player pressed a button or otherwise entered a control command, and may compare the time to a threshold amount of time that may vary based on the game state.
- the player heartbeat component may indicate a control heartbeat failure to the controller source switch 132 .
- the player heartbeat component may indicate a consistent control heartbeat despite many seconds of player control inactivity.
- the player heartbeat component may monitor a motion sensor or camera to identify that the player is no longer in view and presumably left his computing system (e.g., the player may have gotten up from his position playing the game to answer a doorbell at his home).
- the controller source switch 132 may simply pass any player control commands received from the player computing system 102 on to the application host system 122 A to update the game state accordingly (such as updating the game state based on both the player's control commands and control commands received from other player computing system 103 ).
- the updated game state information may then be sent from the application host system 122 A back to each of the player computing systems 102 and 103 for game applications executing on the respective player computing systems to display updated in-game views or content based on the new game state.
- the application host system 122 A may additionally provide the player and game state data to the gameplay modeling system 138 to update a current player imitation model based on the player's most recent action(s) or control command(s) in response to the given game state, as will be further described below.
- the controller source switch 132 may send a switch signal to the controller proxy component 134 indicating that the controller proxy component should take over control of the player's virtual character or other virtual unit(s) that the player was previously controlling in the game.
- the controller proxy component 134 may then obtain or request an emulated control command from the gameplay modeling system 138 , which may generate the emulated control command based on the current game state obtained from the application host system 122 A.
- the emulated control command may represent a predicted action that the player would take given the current game state, and may be based on past actions by the player (or another player) in one or more similar game states, as will be discussed further below.
- the application host system 122 A may then update the game state based on the emulated control command, which may include updating an action and/or positon of a virtual character or virtual unit of the player within a virtual environment of the game, and may send this updated game state information to the other player computing systems 103 .
- the application host system 122 A may continue receiving control commands for the player's virtual character from the controller proxy component 134 rather than the player computing system until the controller source switch determines to switch back to the player's control, such as by player commands being received and/or a controller or network connection being reestablished.
- FIG. 2 is described above in the context of a multiplayer online game, aspects of the present disclosure have benefits within single player games as well. For example, if a player is playing a game and their game controller or other input device disconnects, or a game application on their player computing system freezes (while a server-side application host continues executing the game instance), the player may desire to have his play style emulated until the player is able to reestablish control (so as to not die or lose within the game simply because of a short disconnect or control problem). In some single player embodiments (and/or in multiplayer embodiments), the controller source switch may enforce a time limit (e.g., two minutes) such that emulated controls will only be used until the earlier of expiration of the time limit or the player returning.
- a time limit e.g., two minutes
- FIG. 3 is a flow diagram of an illustrative method 300 for switching between updating a state of a video game instance based either on a player's control commands or on emulated controls from an imitation learning model, according to some embodiments.
- the method 300 in whole or in part, can be implemented by a game application 104 , a player imitation system 130 , a player computing system 102 , an interactive computing system 120 , or other application component or module. Although any number of systems, in whole or in part, can implement the method 300 , to simplify discussion, the method 300 will be described with respect to particular systems or components of the interactive computing system 120 .
- the illustrative method 300 may occur during a gameplay session or instance of a game.
- the interactive computing system 120 may initiate a game instance that includes one or more virtual characters or other in-game virtual units that are under control of a first player.
- the game instance may additionally include one or more other virtual characters or other in-game virtual units that are under control of one or more other players, who may be either competing against or cooperating with the first player within the game instance.
- the illustrative method 300 begins at block 302 , where the game application 104 and/or application host system 122 A may receive in-game player input, such as one or more control commands entered by the player as a result of pressing a key, pressing a button, clicking a mouse, making a gesture, and/or another action or combination of actions.
- in-game player input such as one or more control commands entered by the player as a result of pressing a key, pressing a button, clicking a mouse, making a gesture, and/or another action or combination of actions.
- control command may be interpreted by the game application or application host system as an instruction for a specific in-game virtual entity under control of the player to perform one or more in-game actions (such as an action previously assigned to a given button pressed by the player). For example, in a basketball game, pressing a certain button may cause a virtual basketball player character to shoot a basket or jump to block an opponent's shot depending on the game state (e.g., depending on whether the virtual basketball player character has the ball or is on defense).
- the virtual entity under control of a character could be a grouping of a number of in-game virtual units, such as an army of soldiers in a war simulation game, which are launched into attack in a certain formation and with a certain target based on a set of commands entered by the player.
- Other types of virtual entities under control of the player could include, for example, a virtual object, a virtual vehicle (e.g., a car in a racing game) or a virtual structure.
- the application host system 122 A may update the game state based on the player input, as discussed above.
- the updated game state may include data indicating that a shot was blocked and that a different virtual basketball player character now has possession of the ball, as well as updating game state data such as the team in possession of the ball, the positions of the various virtual basketball player characters on the court, the time remaining in the period, energy levels of the players, etc.
- the player imitation system 130 may update a player imitation learning model based on the player input and the game state in which that input was received. This block may be optional, such as in embodiments in which a model is trained in a batch process rather than dynamically throughout a gameplay instance. If block 306 is performed in the given embodiment and instance, the player imitation system 130 may update a player imitation model for the given player to reflect that the player entered the given control commands or requested the particular in-game action in the given game state. Model training will be described further below with respect to FIG. 4 .
- block 306 may include updating a Markov model to reflect updated player behavior statistics for the given game state or similar game states.
- the model may be updated to reflect a higher likelihood than previously that the player will perform the given action or command in similar future game states (e.g., likelihood of jumping to block a shot when on defense and standing within a certain distance of a shooter on a certain portion of the court).
- different models may have various levels of quantization, rounding or abstraction applied to the game state.
- a game state may be identified in the model very broadly such as “under imminent threat,” or much more specifically such as “being shot at from 33 yards away with a pistol, while standing on higher ground than the shooter, partially covered, when armed with a grenade,” etc.
- the interactive computing system 120 may determine whether a player disconnect has been detected, such as a controller disconnect or network disconnect.
- a player disconnect such as a controller disconnect or network disconnect.
- the type of disconnect, problem, heartbeat failure or other occurrence that triggers a switch to using emulated controls may vary depending on the embodiment.
- block 308 may include checking for instrument failure (e.g., a game controller was unplugged or lost wireless signal), a problem detected from a frame buffer (e.g., a game application on a player computing system is still displaying a loading screen when multiplayer gameplay has started), a visual detection or motion detection that a player left a room (e.g., based on camera or motion capture data), a lack of control input received when expected (e.g., the player's virtual character is standing still when the rest of his team's virtual characters are running in a strategic manner), a network disconnect or excessive network lag, and/or others.
- instrument failure e.g., a game controller was unplugged or lost wireless signal
- a problem detected from a frame buffer e.g., a game application on a player computing system is still displaying a loading screen when multiplayer gameplay has started
- a visual detection or motion detection that a player left a room e.g., based on camera or motion capture data
- the illustrative method 300 returns to block 302 to continue receiving control commands from the player (e.g., via the player computing system 102 ). If instead a disconnect or other problem is detected at block 308 , the illustrative method 300 proceeds to block 310 , where the control input source for the player's virtual unit(s) is switched to the controller proxy component 134 , as discussed above with respect to FIG. 2 . As discussed above, the player imitation system 130 may then at block 312 begin providing in-game commands (such as commands to move the player's virtual unit, cause the player's virtual unit to perform a certain in-game action, etc.) from the controller proxy. As discussed, the emulated controls from the controller proxy may be determined based on the current game state and the imitation learning model that may be configured to mimic the player's likely actions in view of the current game state.
- the method 300 may loop back to block 302 to resume control of the player's virtual unit(s) by the player rather than using emulated controls. If the connection or control problem is not resolved at block 314 , the method may loop back to block 312 to continue using emulated controls to control the player's virtual unit(s). The method 300 may continue looping as indicated until, for example, the game instance ends or the player's virtual unit(s) are eliminated from the game, in some embodiments.
- FIG. 4 provides an illustrative data flow of methods for training and utilizing one or more player imitation models in the form of one or more stackable models generated based on a certain period of a player's gameplay data, according to some embodiments. While FIG. 4 provides examples of certain models that may be employed in the present disclosure, it will be appreciated that various advantages of the automated player takeover features described herein may not be particular to any specific model type. For example, in some embodiments, a player imitation model that is not particular to a given player may be utilized, and could be programmatically created by a game developer rather than trained from gameplay data.
- a player imitation model may include a decision tree, a Markov model, a deep neural network and/or other methods of modeling behavior or controlling an AI or NPC entity in a video game.
- a decision tree a Markov model
- a deep neural network a method of modeling behavior or controlling an AI or NPC entity in a video game.
- current game session data may be provided as input to train a current stackable imitation model 410 , and/or may be provided to a historical game session data store 440 for storage.
- the game session data may include, for example, game state data, player input, actions taken, virtual environment data, and/or any other game data that may influence the player's choice of commands or actions in a given in-game situation.
- the current stackable imitation model 410 which may be trained in real time or dynamically during the game session or game instance, may be revised by the gameplay modeling system 138 based on the live game session data received.
- the current stackable imitation model, including any updates, may be stored in player imitation model data store 145 .
- the current model prior to any update may be a model previously generated for this specific player, a model trained on gameplay data of a number of different players, or a generic model. Revision of the model may thus only occur, in some embodiments, to reflect a difference in the observed new behavior or action of the player relative to what the model would have previously predicted (either as a generic prediction for any player, or a prediction for this specific player, depending on the embodiment).
- full statistics may be reflected within the model (e.g., the number of times the player was observed taking certain actions in each of a number of categories of game states), in which case an update may occur for each observed instance of an action.
- this data store may include detailed gameplay data for a player across potentially a long time period (e.g., months or years) and potentially multiple underlying video games (e.g., both a first game and its sequel, as well as unrelated games).
- the level of detail stored may depend on a number of factors, including the complexity of the particular game, a subscription or plan level associated with a player's account with an operator of the interactive computing system 120 , and/or other factors.
- the historical game session data stored for one session may be sufficiently detailed for the player to play back a full replay of every action taken by the player. In a less detailed instance, the stored data may have been coarsened or quantized as discussed above prior to storage.
- the historical game session data in data store 440 may be used by the player imitation system 130 to create one or more time capsule imitation model(s) 450 based on one or more part gameplay sessions or time periods of gameplay.
- the interactive computing system 120 or player computing system 102 may generate a user interface enabling a player to make selections of the past gameplay sessions (e.g., requesting to create a model to imitate the player's best game performance ever) or time periods (e.g., requesting to create a model of the past three months or past 100 game sessions) to be used in generating a time capsule imitation model.
- a decay value or decay function may be applied based on time, such that player behavior in more recent gameplay sessions is weighted more heavily in the model than player behavior in older gameplay sessions.
- use of one of the stored imitation models in player imitation model data store 145 may involve the model being retrieved from the data store and provided with a current game state as input.
- the model is a stackable model in which higher priority actions or states have been stored in the lower numbered levels that are checked first within the model.
- Level 1 may implicate a game state factor or rule that is very likely to override other game state factors or rules at lower levels (e.g., if a player's character is being shot at from close range, that may be sufficient game state information to determine a responsive action to run, even if the player's character has never been shot at in the particular current map location before or typically doesn't run when at the current map location).
- the model may first determine a confidence score that the player would perform a particular action associated with Level 1 given the current game state and the rules or game state information associated with Level 1 . If the confidence score meets a threshold, the model may stop progressing through the levels and may output the action determined at Level 1 .
- the model may progress through its levels, passing the current game state down to each successive stackable level until determining an action with a confidence score that meets the threshold. If the last level (identified as Level N in FIG. 4 ) is reached and fails to determine an action based on the current game state, a default or fallback action may be determined. In some embodiments, the fallback action may be to do nothing or to continue any previous action (e.g., keep walking in the current direction if the virtual character is already walking). In other embodiments, the model may pass the game state information to a generic model or other model to determine an action when the current player imitation model does not have a suggested action.
- time capsule models discussed above may be selected by a player to play against herself (e.g., by loading a time capsule of hers to control an NPC opponent) or with herself (e.g., by loading a time capsule of hers to control an NPC teammate).
- the player can make her time capsules shareable with other players, which may provide a way to practice against champions or particularly skilled players as they performed in the past or currently perform.
- FIG. 5 illustrates an embodiment of computing device 10 according to the present disclosure.
- the computing device 10 may include a game device, a smart phone, a tablet, a personal computer, a laptop, a smart television, a car console display, a server, and the like.
- the computing device 10 may also be distributed across multiple geographical locations.
- the computing device 10 may be a cluster of cloud-based servers.
- the player computing system 102 may include one or more of the components illustrated in FIG. 5
- the interactive computing system 120 may include one or more of the components illustrated in FIG. 5 .
- the computing device 10 includes a processing unit 20 that interacts with other components of the computing device 10 and also external components to computing device 10 .
- a game media reader 22 is included that communicates with game media 12 .
- the game media reader 22 may be an optical disc reader capable of reading optical discs, such as CD-ROMs or DVDs, or any other type of reader that can receive and read data from game media 12 .
- One or more of the computing devices may be used to implement one or more of the systems disclosed herein.
- Computing device 10 may include a separate graphics processor 24 .
- the graphics processor 24 may be built into the processing unit 20 .
- the graphics processor 24 may share Random Access Memory (RAM) with the processing unit 20 .
- the computing device 10 may include a discrete graphics processor 24 that is separate from the processing unit 20 .
- the graphics processor 24 may have separate RAM from the processing unit 20 .
- Computing device 10 might be a handheld game application device, a dedicated game console computing system, a general-purpose laptop or desktop computer, a smart phone, a tablet, a car console, or other suitable system.
- Computing device 10 also includes various components for enabling input/output, such as an I/O 32 , a user I/O 34 , a display I/O 36 , and a network I/O 38 .
- I/O 32 interacts with storage element 40 and, through a device 42 , removable storage media 44 in order to provide storage for computing device 10 .
- Processing unit 20 can communicate through I/O 32 to store data, such as game state data and any shared data files.
- computing device 10 is also shown including ROM (Read-Only Memory) 46 and RAM 48 .
- RAM 48 may be used for data that is accessed frequently, such as when a game is being played.
- User I/O 34 is used to send and receive commands between processing unit 20 and user devices, such as game controllers.
- the user I/O 34 can include a touchscreen input.
- the touchscreen can be capacitive touchscreen, a resistive touchscreen, or other type of touchscreen technology that is configured to receive user input through tactile inputs from the player.
- Display I/O 36 provides input/output functions that are used to display images from the game being played.
- Network I/O 38 is used for input/output functions for a network. Network I/O 38 may be used during execution of a game, such as when a game is being played online or being accessed online.
- Display output signals produced by display I/O 36 comprise signals for displaying visual content produced by computing device 10 on a display device, such as graphics, user interfaces, video, and/or other visual content.
- Computing device 10 may comprise one or more integrated displays configured to receive display output signals produced by display I/O 36 .
- display output signals produced by display I/O 36 may also be output to one or more display devices external to computing device 10 .
- the computing device 10 can also include other features that may be used with a game, such as a clock 50 , flash memory 52 , and other components.
- An audio/video player 56 might also be used to play a video sequence, such as a movie. It should be understood that other components may be provided in computing device 10 and that a person skilled in the art will appreciate other variations of computing device 10 .
- Program code can be stored in ROM 46 , RAM 48 or storage 40 (which might comprise a hard disk, other magnetic storage, optical storage, other non-volatile storage or a combination or variation of these).
- ROM Read Only Memory
- Part of the program code can be stored in ROM that is programmable (ROM, PROM, EPROM, EEPROM, and so forth), part of the program code can be stored in storage 40 , and/or on removable media such as game media 12 (which can be a CD-ROM, cartridge, memory chip or the like, or obtained over a network or other electronic channel as needed).
- program code can be found embodied in a tangible non-transitory signal-bearing medium.
- Random access memory (RAM) 48 (and possibly other storage) is usable to store variables and other game and processor data as needed.
- RAM 48 is used and holds data that is generated during the execution of an application and portions thereof might also be reserved for frame buffers, application state information, and/or other data needed or usable for interpreting user input and generating display outputs.
- RAM 48 is volatile storage and data stored within RAM 48 may be lost when the computing device 10 is turned off or loses power.
- computing device 10 reads game media 12 and provides an application
- information may be read from game media 12 and stored in a memory device, such as RAM 48 .
- a memory device such as RAM 48 .
- data from storage 40 , ROM 46 , servers accessed via a network (not shown), or removable storage media 44 may be read and loaded into RAM 48 .
- data is described as being found in RAM 48 , it will be understood that data does not have to be stored in RAM 48 and may be stored in other memory accessible to processing unit 20 or distributed among several media, such as game media 12 and storage 40 .
- All of the processes described herein may be embodied in, and fully automated, via software code modules executed by a computing system that includes one or more computers or processors.
- the code modules may be stored in any type of non-transitory computer-readable medium or other computer storage device. Some or all the methods may be embodied in specialized computer hardware.
- a processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like.
- a processor can include electrical circuitry configured to process computer-executable instructions.
- a processor includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions.
- a processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- a processor may also include primarily analog components.
- some or all of the signal processing algorithms described herein may be implemented in analog circuitry or mixed analog and digital circuitry.
- a computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.
- Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (for example, X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.
- a device configured to are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations.
- a processor configured to carry out recitations A, B and C can include a first processor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/367,139 US10864446B2 (en) | 2019-03-27 | 2019-03-27 | Automated player control takeover in a video game |
KR1020200034403A KR102397507B1 (en) | 2019-03-27 | 2020-03-20 | Automated player control takeover in a video game |
CN202010232256.0A CN111744201B (en) | 2019-03-27 | 2020-03-27 | Automatic player control takeover in video game |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/367,139 US10864446B2 (en) | 2019-03-27 | 2019-03-27 | Automated player control takeover in a video game |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200306643A1 US20200306643A1 (en) | 2020-10-01 |
US10864446B2 true US10864446B2 (en) | 2020-12-15 |
Family
ID=72606738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/367,139 Active US10864446B2 (en) | 2019-03-27 | 2019-03-27 | Automated player control takeover in a video game |
Country Status (3)
Country | Link |
---|---|
US (1) | US10864446B2 (en) |
KR (1) | KR102397507B1 (en) |
CN (1) | CN111744201B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11471764B2 (en) | 2019-03-27 | 2022-10-18 | Electronic Arts Inc. | Predictive execution of distributed game engines |
US20230009378A1 (en) * | 2020-05-08 | 2023-01-12 | Electronic Arts Inc. | Automated test multiplexing system |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10631164B2 (en) * | 2016-03-31 | 2020-04-21 | Electronic Arts Inc. | Authentication identity management for mobile device applications |
US10946281B2 (en) * | 2019-03-29 | 2021-03-16 | Nvidia Corporation | Using playstyle patterns to generate virtual representations of game players |
CN111298433B (en) * | 2020-02-10 | 2022-07-29 | 腾讯科技(深圳)有限公司 | Animation video processing method and device, electronic equipment and storage medium |
US11489844B2 (en) * | 2020-04-17 | 2022-11-01 | Twistlock Ltd. | On-the-fly creation of transient least privileged roles for serverless functions |
US11241622B2 (en) * | 2020-05-05 | 2022-02-08 | Electronic Arts Inc. | Autoplayers for filling and testing online games |
US20220067556A1 (en) * | 2020-08-25 | 2022-03-03 | X Development Llc | Techniques for controlling autonomous virtual agents |
CN112156454B (en) * | 2020-10-21 | 2022-07-15 | 腾讯科技(上海)有限公司 | Virtual object generation method and device, terminal and readable storage medium |
CN112354184A (en) * | 2020-11-03 | 2021-02-12 | 深圳市大富网络技术有限公司 | Role offline control method, system and device in virtual world |
KR102750584B1 (en) * | 2021-04-21 | 2025-01-09 | 한국전자통신연구원 | Electronic device performing imitation learning for behavior and operation method thereof |
JP7494803B2 (en) * | 2021-06-08 | 2024-06-04 | トヨタ自動車株式会社 | Multi-agent simulation system and multi-agent simulation method |
CN113426121B (en) * | 2021-06-21 | 2024-03-12 | 网易(杭州)网络有限公司 | Game control method, game control device, storage medium and computer equipment |
CN113521730B (en) * | 2021-07-23 | 2023-10-20 | 咪咕互动娱乐有限公司 | Game control method, game control system, game control device and medium |
CN114011071B (en) * | 2021-11-05 | 2024-11-08 | 腾讯科技(深圳)有限公司 | Virtual character control method and device, storage medium and electronic device |
CN114404975B (en) * | 2022-01-20 | 2024-08-09 | 腾讯科技(深圳)有限公司 | Training method, device, equipment, storage medium and program product of decision model |
US20240173617A1 (en) * | 2022-11-28 | 2024-05-30 | At&T Intellectual Property I, L.P. | System and method for continuous proxy gameplay |
US12143444B1 (en) * | 2023-12-20 | 2024-11-12 | Dk Crown Holdings Inc. | Systems and methods for creating synchronized data structures for synchronized groups |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060154710A1 (en) * | 2002-12-10 | 2006-07-13 | Nokia Corporation | Method and device for continuing an electronic multi-player game, in case of an absence of a player of said game |
US20060246972A1 (en) | 2005-04-13 | 2006-11-02 | Visual Concepts | Systems and methods for simulating a particular user in an interactive computer system |
US20070298886A1 (en) | 2006-06-21 | 2007-12-27 | Aguilar Jr Maximino | Method to configure offline player behavior within a persistent world game |
US20140274297A1 (en) | 2013-03-15 | 2014-09-18 | Electronic Arts, Inc. | Systems and methods for generating a compilation reel in game video |
US20180256981A1 (en) * | 2017-03-07 | 2018-09-13 | Sony Interactive Entertainment LLC | Emulating player behavior after player departure |
US20190060766A1 (en) * | 2017-08-25 | 2019-02-28 | SixtyFive02, Inc. | Systems and methods of persistent, user-adapted personas |
US10286322B1 (en) | 2016-01-25 | 2019-05-14 | Electronic Arts Inc. | System and method for determining and executing actions in an online game |
US10300379B1 (en) | 2015-12-28 | 2019-05-28 | Electronic Arts Inc. | Facilitating contextual game notifications and smart action options |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050085457A (en) * | 2005-06-09 | 2005-08-29 | 노키아 코포레이션 | Method and device for continuing an electronic multi-player game, in case of an absence of a player of said game |
US20140309037A1 (en) * | 2013-04-15 | 2014-10-16 | Samuel M. Premutico | Guided remote storage system |
CN108379833A (en) * | 2018-03-05 | 2018-08-10 | 苏州蜗牛数字科技股份有限公司 | The game interaction method and system for multi-user scene based on P2P computing |
-
2019
- 2019-03-27 US US16/367,139 patent/US10864446B2/en active Active
-
2020
- 2020-03-20 KR KR1020200034403A patent/KR102397507B1/en active Active
- 2020-03-27 CN CN202010232256.0A patent/CN111744201B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060154710A1 (en) * | 2002-12-10 | 2006-07-13 | Nokia Corporation | Method and device for continuing an electronic multi-player game, in case of an absence of a player of said game |
US20060246972A1 (en) | 2005-04-13 | 2006-11-02 | Visual Concepts | Systems and methods for simulating a particular user in an interactive computer system |
US20070298886A1 (en) | 2006-06-21 | 2007-12-27 | Aguilar Jr Maximino | Method to configure offline player behavior within a persistent world game |
US20140274297A1 (en) | 2013-03-15 | 2014-09-18 | Electronic Arts, Inc. | Systems and methods for generating a compilation reel in game video |
US10300379B1 (en) | 2015-12-28 | 2019-05-28 | Electronic Arts Inc. | Facilitating contextual game notifications and smart action options |
US10286322B1 (en) | 2016-01-25 | 2019-05-14 | Electronic Arts Inc. | System and method for determining and executing actions in an online game |
US20180256981A1 (en) * | 2017-03-07 | 2018-09-13 | Sony Interactive Entertainment LLC | Emulating player behavior after player departure |
US20190060766A1 (en) * | 2017-08-25 | 2019-02-28 | SixtyFive02, Inc. | Systems and methods of persistent, user-adapted personas |
Non-Patent Citations (1)
Title |
---|
U.S. Appl. No. 15/985,347, filed May 21, 2018. |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11471764B2 (en) | 2019-03-27 | 2022-10-18 | Electronic Arts Inc. | Predictive execution of distributed game engines |
US20230211233A1 (en) * | 2019-03-27 | 2023-07-06 | Electronic Arts Inc. | Predictive execution of distributed game engines |
US20230009378A1 (en) * | 2020-05-08 | 2023-01-12 | Electronic Arts Inc. | Automated test multiplexing system |
US12076638B2 (en) * | 2020-05-08 | 2024-09-03 | Electronic Arts Inc. | Automated test multiplexing system |
Also Published As
Publication number | Publication date |
---|---|
CN111744201B (en) | 2024-05-28 |
CN111744201A (en) | 2020-10-09 |
KR20200115213A (en) | 2020-10-07 |
KR102397507B1 (en) | 2022-05-13 |
US20200306643A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10864446B2 (en) | Automated player control takeover in a video game | |
US10940393B2 (en) | Customized models for imitating player gameplay in a video game | |
CN112691377B (en) | Control method and device of virtual role, electronic equipment and storage medium | |
KR102127670B1 (en) | Multiplayer video game matchmaking system and methods | |
US11318390B2 (en) | Systems and methods for hardware-based matchmaking | |
KR102170560B1 (en) | Multiplayer video game matchmaking optimization | |
US10926173B2 (en) | Custom voice control of video game character | |
US11724191B2 (en) | Network-based video game editing and modification distribution system | |
US11110353B2 (en) | Distributed training for machine learning of AI controlled virtual entities on video game clients | |
US11957980B2 (en) | Respawn systems and methods in video games | |
CN113713373B (en) | Information processing method and device in game, electronic equipment and readable storage medium | |
US10918937B2 (en) | Dynamic gameplay session management system | |
US20220409998A1 (en) | Request distribution system | |
WO2022184128A1 (en) | Skill release method and apparatus for virtual object, and device and storage medium | |
US20230078340A1 (en) | Virtual object control method and apparatus, electronic device, storage medium, and computer program product | |
CN115337645B (en) | Virtual robot action determination method, device, equipment and storage medium | |
US20240325901A1 (en) | Automated personalized video game guidance system | |
US20250073594A1 (en) | Systems and methods for generating nonplayer characters according to gameplay characteristics | |
CN116407828A (en) | Information processing method and device in game, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: ELECTRONIC ARTS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SARDARI, MOHSEN;REEL/FRAME:049543/0127 Effective date: 20190607 Owner name: ELECTRONIC ARTS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BOROVIKOV, IGOR;REEL/FRAME:049543/0068 Effective date: 20190607 Owner name: ELECTRONIC ARTS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZAMAN, KAZI ATIF-UZ;REEL/FRAME:049543/0265 Effective date: 20190611 Owner name: ELECTRONIC ARTS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOSS, KENNETH ALAN;REEL/FRAME:049543/0302 Effective date: 20190610 Owner name: ELECTRONIC ARTS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGHDAIE, NAVID;REEL/FRAME:049543/0169 Effective date: 20190607 Owner name: ELECTRONIC ARTS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KOLEN, JOHN;REEL/FRAME:049543/0205 Effective date: 20190607 |
|
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 |