U.S. Pat. No. 10,512,846
EMULATING PLAYER BEHAVIOR AFTER PLAYER DEPARTURE
AssigneeSony Interactive Entertainment LLC
Issue DateMarch 7, 2017
U.S. Patent No. 10,512,846: Emulating player behavior after player departure
U.S. Patent No. 10,512,846: Emulating player behavior after player departure
Issued December 24, 2019 to Sony Interactive Entertainment LLC
Priority Date: March 7, 2017
Summary:
U.S. Patent No. 10,512,846 (the ’846 Patent) relates to simulating a player’s gameplay after the player leaves a multiplayer game. The ’846 Patent details a method of tracking and storing player inputs for sequence and/or timing of in-game actions in order to simulate a player’s gameplay if the player exits a multiplayer game and “autopilot mode” is activated. This enables the multiplayer game to continue by simulating the absent player’s actions based on previous tracked and stored gameplay decisions. Simulated in-game actions are determined using the probability that the missing player would take a certain action based on their tracked behavior in similar situations, the probability of taking a certain action based on the previous actions that led up to the current point in the game, and the probability that a certain action would be optimal for the current situation.
Abstract:
Multiplayer video games involve multiple players playing using either a single computer system or multiple computer systems connected together. While a first player of the multiplayer game is playing the multiplayer game, the first player’s actions are tracked and stored. When the first player quits or stops responding before the multiplayer game has completed, the first player is replaced by a computer-simulated version of the first player that selects its actions based on probabilities calculated from the tracked actions of the first player. The multiplayer game is thus able to continue without interruption or disruption, and the first player’s playstyle is preserved.
Illustrative Claim:
1. A method for simulating game player behavior, the method comprising: receiving a plurality of action inputs from a first user device associated with a first player, the action inputs associated with a plurality of action sequences in one or more game titles played by the first player via the first user device; storing the plurality of action inputs in association with a respective one of the game titles played by the first player in memory; identifying that the first player has triggered a simulation mode during a game session of an identified game title; and launching the simulation mode in the game session of the identified game title in response to the identified trigger by: identifying a first player state associated with a control object previously controlled by the first player within the game session of the identified game title, wherein the identified first player state includes a current action sequence; identifying a condition encountered by the control object; identifying a plurality of possible actions to be taken by the control object in response to the condition and the first player state; selecting a first action of the plurality of possible actions based on the stored plurality of action inputs associated with the identified game title and based on the current action sequence indicated by the identified first player state; and commanding the control object to perform the selected first action within the game session in continuation of the current action sequence.
Illustrative Figure
Abstract
Multiplayer video games involve multiple players playing using either a single computer system or multiple computer systems connected together. While a first player of the multiplayer game is playing the multiplayer game, the first player's actions are tracked and stored. When the first player quits or stops responding before the multiplayer game has completed, the first player is replaced by a computer-simulated version of the first player that selects its actions based on probabilities calculated from the tracked actions of the first player. The multiplayer game is thus able to continue without interruption or disruption, and the first player's playstyle is preserved.
Description
DETAILED DESCRIPTION Multiplayer video games involve multiple players playing using either a single computer system or multiple computer systems connected together. While a first player of the multiplayer game is playing the multiplayer game, the first player's actions are tracked and stored. When the first player quits or stops responding before the multiplayer game has completed, the first player is replaced by a computer-simulated version of the first player that selects its actions based on probabilities calculated from the tracked actions of the first player. The multiplayer game is thus able to continue without interruption or disruption, and the first player's playstyle is preserved. FIG. 1Aillustrates a single-device multiplayer game environment based on a home video game console. A single-device multiplayer game environment is sometimes referred to as a “same-room multiplayer” or “split screen multiplayer” game environment. The single-device multiplayer game environment ofFIG. 1Aincludes a single computer system600, namely the home video game console110, which is connected to a television display device105and four game console controllers115(115A,115B,115C,115D). The multiplayer game is illustrated being displayed on the display device105as a racing game being played in a “split-screen” fashion, that is, each player of the four players involved has a corresponding quadrant of the screen, with each quadrant showing a vehicle that the corresponding player is controlling. A split screen game involving a different number of players can splint the screen into a different number of screen portions, typically with one screen portion per player or per team of players. While the players are playing the multiplayer game, the home video game console110can track the action sequences performed by each player, and the timing thereof. The home video game console110can track which control object the each action applied to—that is, in the racing game ofFIG. 1A, each player would typically control a single ...
DETAILED DESCRIPTION
Multiplayer video games involve multiple players playing using either a single computer system or multiple computer systems connected together. While a first player of the multiplayer game is playing the multiplayer game, the first player's actions are tracked and stored. When the first player quits or stops responding before the multiplayer game has completed, the first player is replaced by a computer-simulated version of the first player that selects its actions based on probabilities calculated from the tracked actions of the first player. The multiplayer game is thus able to continue without interruption or disruption, and the first player's playstyle is preserved.
FIG. 1Aillustrates a single-device multiplayer game environment based on a home video game console. A single-device multiplayer game environment is sometimes referred to as a “same-room multiplayer” or “split screen multiplayer” game environment.
The single-device multiplayer game environment ofFIG. 1Aincludes a single computer system600, namely the home video game console110, which is connected to a television display device105and four game console controllers115(115A,115B,115C,115D). The multiplayer game is illustrated being displayed on the display device105as a racing game being played in a “split-screen” fashion, that is, each player of the four players involved has a corresponding quadrant of the screen, with each quadrant showing a vehicle that the corresponding player is controlling. A split screen game involving a different number of players can splint the screen into a different number of screen portions, typically with one screen portion per player or per team of players.
While the players are playing the multiplayer game, the home video game console110can track the action sequences performed by each player, and the timing thereof. The home video game console110can track which control object the each action applied to—that is, in the racing game ofFIG. 1A, each player would typically control a single control object, namely the vehicle and/or the driver of the vehicle. In a war-centric strategy game, however, each player could control a number of warriors, tanks, barracks buildings, hospitals, farms, and other units, each of which would be considered a control object. The home video game console110can also track various states under which each action was performed—for example, a player may drive more calmly when he/she is in first place in a racing game, but the same player may drive more nervously or desperately when he/she is in last place. Similarly, in a strategy game, the player might be more likely to perform one attack maneuver over another depending on how many warriors the player has, and how many warriors the player perceives his/her enemy to have in proportion. The home video game console110can also track various conditions that the player was responding to—for example, a particular player confronted with an upcoming left turn in a racing game—the upcoming left turn being the condition—may have a tendency to turn too early.
The tracked actions of each player, and all of the other information about each action, may be stored at the home video game console110or at another computer system600that is communicatively coupled to the home video game console110, such as a game server or data server. Tracked action information can be stored permanently or temporarily. If the tracked action information is stored temporarily, it may be stored and then deleted in a first-in-first out fashion with a predetermined number of actions stored for each player, or with a predetermined number of actions stored for each state of a particular player, or with a predetermined number of actions stored for each condition responded to by the player, or some combination thereof. If the tracked action information is stored temporarily, it may be stored for a predetermined amount of time. Tracking actions temporarily has the benefits of using less memory and keeping up with a player that is improving, or getting worse, at a particular game.
A player playing in a single-device multiplayer game environment can sometimes be forced to exit a game or stop providing inputs for a variety of reasons, such as a sudden urgent phone call, a need to use the restroom, an unforeseen injury, unforeseen property damage, or an unforeseen technical failure. Unforeseen technical failures can include, for example, the player's wired controller115being unexpectedly disconnected from the home video game console110, such as when someone walking in between the home video game console110and the controller115accidentally trips over the cord. Unforeseen technical failures can include battery failure in a wireless controller115, causing sudden loss of connection between the home video game console110and the controller115. Unforeseen technical failures can also include a defect in the hardware of the controller115, a defect in the software driver interpreting the controller's inputs at the home video game console110, a defect in the hardware of the home video game console110, a defect in the software of the home video game console110, a defect in the copy of the game running on the home video game console110, or some combination thereof. Alternatively, the player can manually invoke an “autopilot mode” or simply stop providing inputs for over a predetermined period of time, sometimes referred to as “away from keyboard” or “afk.”
If a particular player exits the game, triggers an “autopilot mode,” or otherwise stops providing inputs, the home video game console110can automatically pause the game in response. Alternately or additionally, the home video game console110can interpret this as a “simulation indication,” causing the home video game console110to automatically launch a “simulation mode” by taking over the role of the player who exited or otherwise stopped providing inputs to the multiplayer game. The home video game console110can go one step further by using the tracked action information associated with the player that it is simulating to guide the simulation to use similar in-game behaviors to the missing player.
The home video game console110can use various artificial intelligence artificial intelligence and/or machine learning algorithms and techniques to simulate the missing player. For example, the home video game console110can identify a plurality of possible actions to be taken by the control object in response to an identified condition and an identified player state, and then generate a plurality of behavior-based probability values based on the tracked and stored actions, each behavior-based probability value identifying how probable or likely it would have been for the now-missing player to have selected one of the identified possible actions in response to the identified condition and the identified player state. The home video game console110can identify the possible actions either by identifying all possible actions when there are not many, or by using various artificial intelligence algorithms, such as those based on pathfinding algorithms like Dijkstra's algorithm or the A* algorithm, to come up with several possible actions that the player is reasonably likely to take. The home video game console110can then use algorithms such as a weighted random selection algorithm or a Markov chain algorithm to select an action from the identified action for the control object to take based on the tracked player's actions in order to best simulate the player. Weighted random selection algorithms pick randomly among the possible choices, but are more likely to pick those choices assigned higher probabilities. Markov chain algorithm are typically applied to sequences of actions, and are used to determine which actions typically follow a particular action. Actions taken by the now-missing player, and by the simulation of the missing player may all be tracked, for example in a “last N actions” queue, where N is a predetermined positive integer, to feed into the Markov chain algorithm. The home video game console110may also determine an optimal action, or a set of actions with corresponding probabilities identifying how likely these actions are to be optimal, which it may take into account in selection of the action, for example by altering probabilities determined based on the tracked player actions, or by selecting another action that is likely to be optimal and randomly selecting between the optimal action and the action that is based on the tracked user behavior. The optimal behavior can in some cases be determined using pathfinding algorithms like Dijkstra's algorithm or the A*algorithm, and may be used to ensure that the simulation of the player does not inadvertently veer too far away from an optimal path. Alternately, the simulation may start from an optimal path, and tweak it based on the action chosen according to the tracked user behavior. Alternately, rather than employing any degree of randomness using a weighted random selection algorithm or a Markov chain algorithm, the home video game console110can simply choose the action it judges to be the most likely based on the highest probability that it the home video game console110determined using the player's tracked action information.
The home video game console110then commands the control object to perform the chosen action in the game, and the process repeats for all consecutive actions, at least until the game ends or the player being simulated rejoins the game. Simulation processes are further illustrated and described in the flow diagrams ofFIG. 2,FIG. 3,FIG. 4, and the respective descriptions thereof.
It should also be understood that any action described as having been performed by home video game console110may be alternately or additionally performed by another computer system600in communicative contact with the home video game console110, such as a game server or a data server. While the computer system600illustrated inFIG. 1Aand discussed above is a home video game console110, it should be understood that it may alternately be any other type of computer system600as illustrated inFIG. 600, or any device having at least a subset of the components illustrated or described with respect toFIG. 6. The home video game console110may be replaced with, or combined with, a desktop computer, a laptop computer, a mobile device, a smart television, a portable video game console, or any other type of computer system600discussed with respect toFIG. 6.
Some single-device multiplayer games do not “split” the screen into quadrants or portions, and instead zoom out to a view that shows several players, or instead allows players to take turns. It should be understood that the simulation processes discussed herein may also apply to such games.
FIG. 1Billustrates a local network multiplayer game environment based on four devices connected by a network router.
The local network multiplayer game environment ofFIG. 1Bincludes four user devices120connected via a network router125and playing a multiplayer game. The four user devices120ofFIG. 1Binclude a laptop120A, a home video game console120B, a desktop computer120C, and a mobile device120D. It should be understood that other local network multiplayer game environments may include a different number of user devices120and/or network hardware such as router(s)125or switches, and that any of these user devices120may be any type of computer system600, or any device having at least a subset of the components illustrated or described with respect toFIG. 6. Some games may require a particular type of user device120. The network router125may include wired connection capabilities via Ethernet connections between each user device120and the network router125, wireless connection capabilities via 802.11 Wi-Fi connections between each user device120and the network router125, or some combination thereof. In some cases, the network router125may be missing, and the user devices120may connect directly with each other via a cable, such as a universal serial bus (USB) cable, or wirelessly, such as via a Bluetooth™ connection. That is, the network router125and/or user devices120may form a personal area network (PAN), a local area network (LAN), a wireless local area network (WLAN), a municipal area network (MAN), a wide area network (WAN), or some combination thereof.
Players playing a multiplayer game in a local network multiplayer game environment are typically all running copies of the same game on each user device120, with various actions taken by the players communicated directly from each user device120to the other user devices120via the network router125. Actions of each particular player may be tracked as discussed with respect toFIG. 1A, though in a local network multiplayer game environment, these tracked actions for each player may be stored by multiple user devices120, or by a data storage device communicatively coupled to the network router125, in case one of the user devices120is suddenly disconnected. This prevents the tracked data for any given player from being lost.
A player playing in a local network multiplayer game environment can sometimes be forced to exit a game or stop providing inputs for a variety of reasons, such as a sudden urgent phone call, a need to use the restroom, an unforeseen injury, unforeseen property damage, or an unforeseen technical failure. Unforeseen technical failures can include, for example, a defect in the player's user device120hardware, a defect or crash in the player's user device120software, a defect or crash in a copy of the game running on the player's user device120, insufficient computing resources (e.g., processor power, memory, storage space) on the player's user device120, a faulty or poor connection between the player's user device120and the network router125, a faulty or poor connection between the player's user device120and another player's user device120, a defect in the network router125, a defective cable between the player's user device120and the network router125, a defective cable between the player's user device120and another player's user device120, unexpected disconnection of a cable between the player's user device120and the network router125, unexpected disconnection of a cable between the player's user device120and another player's user device120, unexpected wireless signal interference, or some combination thereof. Alternatively, the player can manually invoke an “autopilot mode” or simply stop providing inputs for over a predetermined period of time, sometimes referred to as “away from keyboard” or “afk.”
If a particular player exits the game, triggers an “autopilot mode,” or otherwise stops providing inputs, the user device(s)120remaining in the local network multiplayer game environment can automatically pause the game. Alternately or additionally, the user device(s)120remaining in the local network multiplayer game environment can interpret this as a “simulation indication” causing the user device(s)120remaining in the local network multiplayer game environment to automatically launch a “simulation mode” by taking over the role of the player who exited or otherwise stopped providing inputs to the multiplayer game. The user device(s)120remaining in the local network multiplayer game environment can go one step further by using the tracked action information associated with the missing player to guide the simulation to use similar in-game behaviors to the missing player.
With regard to simulating the missing player, the user device(s)120remaining in the local network multiplayer game environment may use similar techniques to those described with respect toFIG. 1Aas being performed by the home video game console110ofFIG. 1A. In this case, however, one or more user device(s)120other than the user device120of the player who is being simulated may be driving the simulation of that player, particularly if the user device120of the player who is being simulated has been disconnected or has quit the game. Even if the user device120of the player who is being simulated has not been disconnected or has not quit the game, it is safe to assume that it may be disconnected or may quit the game at any time if the user has stopped providing inputs. Simulation processes are further illustrated and described in the flow diagrams ofFIG. 2,FIG. 3,FIG. 4, and the respective descriptions thereof.
FIG. 1Cillustrates an online network multiplayer game environment based on four devices connected by one or more game servers.
The online network multiplayer ofFIG. 1Cincludes four user devices120that are each connected to one or more game server(s)130via an internet connection and playing a multiplayer game. The internet connection of any of the user devices120, may optionally be provided by a network router125(not shown) and may run through other routers, switches, servers, and other network hardware on the way to and from the game server(s)130.
The four user devices120ofFIG. 1Cinclude a laptop120A, a home video game console120B, a desktop computer120C, and a mobile device120D. It should be understood that other online network multiplayer game environments may include a different number of user devices120and/or network hardware, and that any of these user devices120may be any type of computer system600, or any device having at least a subset of the components illustrated or described with respect toFIG. 6. Some games may require a particular type of user device120. The user devices120and game server(s)130may include wired connection capabilities via Ethernet connections, wireless connection capabilities via 802.11 Wi-Fi connections, or some combination thereof. In some cases, the game server(s)130may be missing, and the user devices120may connect directly with each other over the internet without any central game server(s)130moderating the game. In some cases, one of the user device120, such as the one that initiated the multiplayer game, can act as a game server130. Game server(s)130may be used to offload some processing tasks from the user devices120in the online multiplayer game environment to speed up gameplay, and to prevent players from cheating or using pirated or modified game software.
Players playing a multiplayer game in an online network multiplayer game environment are typically all running copies of the same game on each user device120, with various actions taken by the players communicated directly from each user device120to the other user devices120, optionally through the game server(s)130. Actions of each particular player may be tracked as discussed with respect toFIG. 1B, though in an online network multiplayer game environment, these tracked actions for each player may be stored by the game server(s)130and/or by multiple user devices120, in case one of the user devices120is suddenly disconnected. This prevents the tracked data for any given player from being lost.
A player in an online network multiplayer game environment can sometimes be forced to exit a game or stop providing inputs for a variety of reasons, such as any of the reasons described above with respect to the local network multiplayer game environment.
If a particular player exits the game, triggers an “autopilot mode,” or otherwise stops providing inputs, the game server(s)130and/or the user device(s)120remaining in the online network multiplayer game environment can automatically pause the game. Alternately or additionally, the game server(s)130and/or the user device(s)120remaining in the online network multiplayer game environment can interpret this as a “simulation indication” causing the user device(s)120remaining in the local network multiplayer game environment to automatically launch a “simulation mode” by taking over the role of the player who exited or otherwise stopped providing inputs to the multiplayer game. The game server(s)130and/or the user device(s)120remaining in the online network multiplayer game environment can go one step further by using the tracked action information associated with the missing player to guide the simulation to use similar in-game behaviors to the missing player.
With regard to simulating the missing player, the game server(s)130and/or the user device(s)120remaining in the online network multiplayer game environment may use similar techniques to those described with respect toFIG. 1AorFIG. 1Bas being performed by the home video game console110ofFIG. 1Aor the remaining user device(s)120ofFIG. 1B. In this case, however, the games server(s)130and/or the user device(s)120remaining in the online network multiplayer game environment may also be driving the simulation of that player, particularly if the user device120of the player who is being simulated has been disconnected or has quit the game. Even if the user device120of the player who is being simulated has not been disconnected or has not quit the game, it is safe to assume that it may be disconnected or may quit the game at any time if the user has stopped providing inputs. Simulation processes are further illustrated and described in the flow diagrams ofFIG. 2,FIG. 3,FIG. 4, and the respective descriptions thereof.
FIG. 2is a flow diagram illustrating a process for continuing a multiplayer game that has lost a player.
At step205, a player joins a multiplayer game, either by picking up a controller or other input device in a single-device multiplayer game environment, or by using a user device120to connect to a game server130and/or one or more other user devices120in a local network multiplayer or an online network multiplayer game environment.
At step210, manual inputs are received from the player himself, either via a controller, a keyboard/mouse, or another input interface associated with user device120used. At optional step215, the user device(s)120and/or game server(s)130may record the sequence and/or timing these manual inputs as recorded directly from the human player, optionally categorizing these inputs as explained below with respect to step230.
At step220, the user device(s)120and/or game server(s)130determine the appropriate in-game actions corresponding to the inputs of the player that were received at step210and optionally tracked/stored at step215. For example, in a racing game, the input received from the player maybe a tilting of a joystick to the left at a 45 degree angle, which may be translated at step220into a slight turn to the left by the player's vehicle—that is, a slight turn to the left by the by the player's control object.
At step225, the user device(s)120and/or game server(s)130track and store the actions of the player, and may in particular track and store sequence and/or timing of those actions. At optional step230, the user device(s)120and/or game server(s)130may categorize the actions, actions sequences, and action timings of step225. For example, these actions/sequences/timings may be categorized by a type of action taken, by a player state at the time of the action, by a game state at the time of the action, by a condition that the actions is responsive to, or some combination thereof.
At step235, the user device(s)120and/or game server(s)130receive a “simulation indication,” meaning that the user device(s)120and/or game server(s)130have received some indication that the tracked player has exited the game, that the tracked player has triggered an “autopilot mode,” or that the tracked player has otherwise stopped providing inputs to the game. Various potential causes of such a simulation indication are discussed further with respect to different multiplayer game environments in the discussions corresponding toFIG. 1A,FIG. 1B, andFIG. 1C.
At step230, the multiplayer game continues with the tracked player's actions simulated by the user device(s)120and/or game server(s)130based on the actions/sequences/timings tracked and stored at step225and optionally categorized at step230, and optionally based on the inputs/sequences/timings tracked/stored/categorized in step215. Simulation processes are further illustrated and described in the environment diagrams ofFIG. 1A,FIG. 1B, andFIG. 1C, and the respective descriptions thereof, as well as by the flow diagrams ofFIG. 3andFIG. 4and the respective descriptions thereof.
FIG. 3is a flow diagram illustrating a process for simulating a player action.
At step305, the user device(s)120and/or game server(s)130receive a “simulation indication” as illustrated and discussed with respect to step240ofFIG. 2. At step310, the user device(s)120and/or game server(s)130simulating the missing player's behavior identify a game type of the multiplayer game being played, a game title, a current player activity of the now-missing player, a current player state of the now-missing player, a current game state of the multiplayer game being played, or some combination thereof. For example, the user device(s)120and/or game server(s)130may identify at step310that the game is a racing game, that the game is titled “Grand Race III,” that the player is driving a particular make of blue convertible car, that the current race is on a London racetrack, and that the player is currently in second place.
At step315, the user device(s)120and/or game server(s)130simulating the missing player's behavior detect a condition requiring selection of an action. For example, the detected condition may be that the missing player's vehicle is approaching a 20 degree left turn that is 10 in-game feet away from the missing player's vehicle. The user device(s)120and/or game server(s)130then determine possible actions responsive to the detected condition, and determine various probabilities
Three possible actions are illustrated inFIG. 3—Action A320, Action B325, and Action C330. It should be understood that more or fewer actions can be determined in response to different conditions. Three probabilities are determined for each action, namely a probability of taking the action based on tracked user behavior/actions of the missing player in this situation, a probability of taking the action based on the last N actions, and a probability that the action is optimal behavior in this situation.
There may not always be tracked actions corresponding to every combination of conditions, game type, games titles, player states, and game states, but in such cases, the probabilities may be based on tracked actions where at least a predetermined number of categories match, such as game type and condition, but not game title or player/game state. Tracked actions may also be stored and used from previous game sessions by the missing player, including previous multiplayer game sessions or even previous single-player game sessions where the missing player played against computer players.
Action A320is to begin the left turn immediately. The probability that the action is optimal behavior in this situation is 25%, indicating that this is likely too soon to begin turning left. The probability of taking the action based on tracked user behavior/actions of the missing player in this situation is 70%, indicating that the missing player tends to turn left too early, at least in this game, while driving this blue convertible car, on this London racetrack, while in second place, or for actions matching some subset of those categories. The probability of taking the action based on the past N actions undertaken is 30%, perhaps indicating that the missing player's vehicle is in a position or driving at a speed that better suits waiting to turn.
Action B325is to begin the left turn in 3 in-game feet. The probability that the action is optimal behavior in this situation is 60%, indicating that this is likely to be an optimal time to begin turning left. The probability of taking the action based on tracked user behavior/actions of the missing player in this situation is 20%, indicating that the missing player tends to turn left too early, at least in this or similar situations. The probability of taking the action based on the past N actions undertaken is 50%, perhaps indicating that the missing player's vehicle is in a position or driving at a speed that better suits waiting to turn.
Action C330is to begin the left turn in 6 in-game feet. The probability that the action is optimal behavior in this situation is 10%, indicating that this is likely to be too late to begin turning left. The probability of taking the action based on tracked user behavior/actions of the missing player in this situation is 10%, indicating that the missing player does not typically turn too late, at least in this or similar situations. The probability of taking the action based on the past N actions undertaken is 20%, perhaps indicating that the missing player's vehicle is in a position or driving at a speed that suggests that the player might wait too long to begin the left turn.
At step335, the user device(s)120and/or game server(s)130simulating the missing player's behavior select an action according to tracked user behavior and/or according to the past N actions undertaken and/or according to the optimal behavior. This may be determined optionally using random number generator (RNG), for example by running a weighted random selection algorithm or a Markov chain algorithm as discussed in relation toFIG. 1A.
At step340, the user device(s)120and/or game server(s)130simulating the missing player's behavior command the control object(s) previously controlled by the missing player—in this case, the vehicle previously controlled by the missing player—to perform the action selected in step335within the multiplayer game. At this point, the process can return to step315if the game “round” is continuing, such as a particular race that is unfinished, or to step310if a different game or different game “round” is being started, such as a second race using a different car or different track. The same methods can be used on a selection screen where the missing player would normally pick a control object type, such as a vehicle, or a game type, such as a racetrack, so that the simulation of the missing player is more likely to pick their favorite car, track, and other new game round settings. In other types of games, this concept may be used to have the simulation of the player pick a favorite weapon, pick a favorite character, pick a favorite character class, pick a favorite team, pick a favorite play style, pick a favorite sports play, pick a favorite color, or some combination thereof.
At optional step345, the user device(s)120and/or game server(s)130simulating the missing player's behavior track and store the action performed in step340in a queue of the past N actions taken by the missing player and/or by the simulation of the missing player. Following optional step345, the process can return to step315or step310as described above.
Simulation processes are further illustrated and described in the environment diagrams ofFIG. 1A,FIG. 1B, andFIG. 1C, and the respective descriptions thereof, as well as by the flow diagrams ofFIG. 2andFIG. 4and the respective descriptions thereof.
FIG. 4is a tree diagram illustrating an exemplary data structure for storing game, state, and behavior information.
The tree diagram ofFIG. 4is associated with detection of category information as in step310ofFIG. 3, detection of conditions as in step315ofFIG. 3, and actions and probabilities as illustrated by actions320/325/330ofFIG. 3.
The tree diagram ofFIG. 4includes two columns—a “selected” column490showing a selected or detected option, state, or choice—and a “not selected” column495showing other options, states, or choices that were not selected or detected as true.
The first row of the tree diagram ofFIG. 4shows a “type of game”405, which might be detected in step310ofFIG. 3. The detected type of game405inFIG. 4is “sports”445, and the other types include “racing” and “first-person shooter (FPS).”
The second row of the tree diagram ofFIG. 4shows a “game title”410, which might be detected in step310ofFIG. 3. The detected game title410inFIG. 4is “Basketball Jam 2017,” and other game titles in the sports game type445include “Soccer Stars: Rio Olympics” and “Golf Master.”
The third row of the tree diagram ofFIG. 4shows an “activity”415, which might be detected in step310ofFIG. 3. The detected activity415inFIG. 4is “Player's team member A-3has the ball, and is trying to score a basket.” Other game activities associated with “Basketball Jam 2017”450include “Player does not have the ball, trying to defend own basket” and “Time-out, decide whether to substitute team member.”
The fourth row of the tree diagram ofFIG. 4shows a player state420, which might be detected in step310ofFIG. 3. The detected player state420inFIG. 4is “1 injured player, team organized in zone offense, and 2 defenders on player holding the ball.” Other game activities associated with “Basketball Jam 2017”450and/or the activity445include “2 injured players, team organized in spread offense, and 1 defender on player holding the ball” and “3 injured players, team organized in motion offense, and 0 defenders on player holding the ball.”
The fourth row of the tree diagram ofFIG. 4shows a game state425, which might be detected in step310ofFIG. 3. The detected game state425inFIG. 4is “12-3 score, second quarter, game clock reads 5:37, shot clock reads 0:21.” Other game activities associated with “Basketball Jam 2017”450and/or the activity455include “32-14 score, third quarter, game clock reads 4:19, shot clock reads 0:05” and “40-40 score, fourth quarter, game clock reads 0:03, shot clock reads 0:02.”
The fifth row of the tree diagram ofFIG. 4shows a queue of the past N actions430performed by the control object—here, the basketball team—previously controlled by the now-missing player and now controlled by the simulation of the missing player. This might be detected in step310or step315ofFIG. 3. The detected queue of the past N actions430inFIG. 4is “Steal performed by team member A-1, pass performed from team member A-1to team member A-2, pass performed from team member A-2to team member A-3, and team commanded to organize into zone offense.” One alternate potential queue of past N actions430could include, for example, “Rebound captured team member A-2, pass performed from team member A-2to team member A-4, team commanded to organize into spread offense, pass performed from team member A-4to team member A-3, and team commanded to organize into zone offense.” Another alternate potential queue of past N actions430could include, for example, “Steal performed by team member A-4, team commanded to organize into zone offense, pass performed from team member A-4to team member A-2, and pass performed from team member A-3to team member A-3.”
The fifth row of the tree diagram ofFIG. 4shows probabilities determined based on tracked actions/behavior by the now-missing player435. This might be calculated in step310or step315ofFIG. 3, and corresponds to the probabilities illustrated in actions A/B/C320/325/330ofFIG. 3. The highest probability475based on tracked player actions is probability475, which indicates that there is a 70% probability that the missing player would have performed a three-point shot immediately using team member A-3based on the information detected in step310. Other probabilities indicate that there is a 20% probability that the missing player would have commanded team member A-3to run 5 in-game feet and then dunk the ball, and that there is a 10% probability that the missing player would have passed the ball from team member A-3to team member A-1based on the information detected in step310.
The sixth row of the tree diagram ofFIG. 4shows probabilities440that a particular action is the optimal action for achieving one or more goal(s), which in this case might include scoring a basket in the short-term and winning the game in the long-term. This might be calculated in step310or step315ofFIG. 3, and corresponds to the probabilities illustrated in actions A/B/C320/325/330ofFIG. 3. The highest probability480based on optimality of actions is probability480, which indicates that there is a 60% probability that commanding team member A-3to run 5 in-game feet and then dunk the ball is the optimal move given the information detected in step310. Other probabilities indicate that there is a 20% probability that commanding performance of a three-point shot immediately using team member A-3would be the optimal action based on the information detected in step310. Other probabilities indicate that there is a 20% probability that command passing of the ball from team member A-3to team member A-1would be the optimal action based on the information detected in step310.
Based on rows430,435and440, then the user device(s)120and/or game server(s)130simulating the missing player's behavior may make a choice, which may be randomized based on the probabilities of rows435/440. Probabilities based on row430may also be generated, for example using Markov chain algorithms, as illustrated actions A/B/C320/325/330ofFIG. 3. Based on the probabilities shows inFIG. 4, the action selected is most likely to be either performing a three-point shot immediately using team member A-3or commanding team member A-3to run 5 in-game feet and then dunk the ball.
Simulation processes are further illustrated and described in the environment diagrams ofFIG. 1A,FIG. 1B, andFIG. 1C, and the respective descriptions thereof, as well as by the flow diagrams ofFIG. 3andFIG. 4and the respective descriptions thereof.
FIG. 5illustrates a multiplayer game data and device ecosystem.
In particular,FIG. 5illustrates a user device505of a player to be simulated, one or more user device(s)510of player(s) still actively playing the game, and one or more game server(s)515associated with the game in which the player (associated with user device505) is to be simulated.
Assorted data may be transmitted freely between the user device505, the user device(s)510, and the game server(s)515. This data may include player behavior information associated with player to be simulated520—that is, tracked user actions from step215/225/230and player information and conditions determined at steps310/315. This data may include possible actions determined at step315. This data may include the various probabilities determined at step315and discussed herein with respect to Actions A/B/C320/325/330. This data may include the actions finally selected at step335and performed at step340.
It should be understood that the processes described herein may be applied to any genre or type of game, including racing games, adventure games, platformer games, role-playing games (RPGs), action RPGs, tactical RPGs, sandbox RPGs, first-person-shooter (FPS) games, third-person-shooter (TPS) games, strategy games, real-time strategy (RTS) games, turn-based strategy (TBS) games, real-time tactics (RTT) games, turn-bases tactics (TTT) games, tower defense games, fighting games, puzzle games, physics games, educational or “edutainment” games, sports games, simulation games, war games, adventure games, shoot-em-up games, action adventure games, construction games, management games, procedurally generated “roguelike” games, exploration games, survival games, crafting games, sandbox games, endless runner games, clicker games, stealth games, massively-multiplayer online (MMO) games, music games, party games, programming games, logic games, trivia games, board games, card games, art games, exercise games, artillery games, multiplayer online battle arena (MOBA) games, domination games, and various combinations thereof. In some cases, a player's behavior may be simulated in a multiplayer game even without the player having ever joined the game, for instance when the player is away on vacation or otherwise cannot be reached, and another player wants to play a game against an opponent that simulates the missing player. In some cases, a player's behavior may be simulated in a single-player game as well, such as in any of the situations that may result in a simulation indication as discussed with respect to the gaming environments ofFIG. 1A,FIG. 1B, orFIG. 1C.
FIG. 6illustrates an exemplary computing system600that may be used to implement an embodiment of the present invention. For example, any of the computer systems, game consoles, servers, or computerized devices illustrated or described herein may, in at least some cases, include at least one computing system600. The computing system600ofFIG. 6includes one or more processors610and memory610. Main memory610stores, in part, instructions and data for execution by processor610. Main memory610can store the executable code when in operation. The system600ofFIG. 6further includes a mass storage device630, portable storage medium drive(s)640, output devices650, user input devices660, a graphics display670, and peripheral devices680.
The components shown inFIG. 6are depicted as being connected via a single bus690. However, the components may be connected through one or more data transport means. For example, processor unit610and main memory610may be connected via a local microprocessor bus, and the mass storage device630, peripheral device(s)680, portable storage device640, and display system670may be connected via one or more input/output (I/O) buses.
Mass storage device630, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit610. Mass storage device630can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory610.
Portable storage device640operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, to input and output data and code to and from the computer system600ofFIG. 6. The system software for implementing embodiments of the present invention may be stored on such a portable medium and input to the computer system600via the portable storage device640.
Input devices660provide a portion of a user interface. Input devices660may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system600as shown inFIG. 6includes output devices650. Examples of suitable output devices include speakers, printers, network interfaces, and monitors.
Display system670may include a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, an electronic ink display, a projector-based display, a holographic display, or another suitable display device. Display system670receives textual and graphical information, and processes the information for output to the display device. The display system670may include multiple-touch touchscreen input capabilities, such as capacitive touch detection, resistive touch detection, surface acoustic wave touch detection, or infrared touch detection. Such touchscreen input capabilities may or may not allow for variable pressure or force detection.
Peripherals680may include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s)680may include a modem or a router.
The components contained in the computer system600ofFIG. 6are those typically found in computer systems that may be suitable for use with embodiments of the present invention and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computer system600ofFIG. 6can be a personal computer, a hand held computing device, a telephone (“smart” or otherwise), a mobile computing device, a workstation, a server (on a server rack or otherwise), a minicomputer, a mainframe computer, a tablet computing device, a wearable device (such as a watch, a ring, a pair of glasses, or another type of jewelry/clothing/accessory), a video game console (portable or otherwise), an e-book reader, a media player device (portable or otherwise), a vehicle-based computer, some combination thereof, or any other computing device. The computer system600may in some cases be a virtual computer system executed by another computer system. The computer can also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems can be used including Unix, Linux, Windows, Macintosh OS, Palm OS, Android, iOS, and other suitable operating systems.
In some cases, the computer system600may be part of a multi-computer system that uses multiple computer systems600, each for one or more specific tasks or purposes. For example, the multi-computer system may include multiple computer systems600communicatively coupled together via at least one of a personal area network (PAN), a local area network (LAN), a wireless local area network (WLAN), a municipal area network (MAN), a wide area network (WAN), or some combination thereof. The multi-computer system may further include multiple computer systems600from different networks communicatively coupled together via the internet (also known as a “distributed” system).
The present invention may be implemented in an application that may be operable using a variety of devices. Non-transitory computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit (CPU) for execution, and that may be used in the memory620, the mass storage630, the portable storage640, or some combination thereof. Such media can take many forms, including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Some forms of non-transitory computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, flash memory, memristor memory, any other solid-state memory, a CD-ROM disk, digital video disk (DVD), blu-ray disk (BDD), or any other optical medium, Random Access Memory (RAM), Read-Only Memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FLASHEPROM, Resistive random-access memory (RRAM or ReRAM), Phase Change Memory (PCM), spin transfer torque RAM (STT-RAM), and any other memory chip or cartridge.
Various forms of transmission media may be involved in carrying one or more sequences of one or more instructions to a CPU for execution. A bus carries the data to system RAM, from which a CPU retrieves and executes the instructions. The instructions received by system RAM can optionally be stored on a fixed disk either before or after execution by a CPU. Various forms of storage may likewise be implemented as well as the necessary network interfaces and network topologies to implement the same.
While various flow diagrams provided and described above may show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary. Alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, or some combination thereof.
The foregoing detailed description of the technology has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology, its practical application, and to enable others skilled in the art to utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claim.
Claims
- A method for simulating game player behavior, the method comprising: receiving a plurality of action inputs from a first user device associated with a first player, the action inputs associated with a plurality of action sequences in one or more game titles played by the first player via the first user device;storing the plurality of action inputs in association with a respective one of the game titles played by the first player in memory;identifying that the first player has triggered a simulation mode during a game session of an identified game title;and launching the simulation mode in the game session of the identified game title in response to the identified trigger by: identifying a first player state associated with a control object previously controlled by the first player within the game session of the identified game title, wherein the identified first player state includes a current action sequence;identifying a condition encountered by the control object;identifying a plurality of possible actions to be taken by the control object in response to the condition and the first player state;selecting a first action of the plurality of possible actions based on the stored plurality of action inputs associated with the identified game title and based on the current action sequence indicated by the identified first player state;and commanding the control object to perform the selected first action within the game session in continuation of the current action sequence.
- The method of claim 1 , further comprising generating optimization-based probability values for the possible actions, each optimization-based probability value identifying a likelihood that the respective one of the plurality of possible actions achieves a goal associated with the control object, wherein selecting the first action is further based on the plurality of optimization-based probability values.
- The method of claim 1 , further comprising storing the first action in a queue of actions performed by the control object.
- The method of claim 1 , further comprising retrieving a stored queue of actions performed by the control object, wherein selecting the first action is further based on the retrieved queue of actions.
- The method of claim 1 , wherein the control object corresponds to one or more characters associated with the first player in the game session of the identified game title.
- The method of claim 1 , wherein the control object corresponds to one or more movable inanimate objects associated with the first player in the game session of the identified game title.
- The method of claim 1 , wherein the plurality of possible actions include a waiting action.
- The method of claim 1 , further comprising commanding a player exit message to be output within the game in response to identification of the trigger, wherein the player exit message indicates that the first player has left the game session, wherein the player exit message is at least one of a textual message, a graphical message, or an audible message.
- The method of claim 1 , further comprising sending the action inputs over a communication network to a second device, and wherein the stored plurality of action inputs are stored in memory of the second device and used to launch the simulation mode.
- The method of claim 1 , wherein identifying the trigger is further based on input from the first player.
- The method of claim 1 , wherein identifying the trigger is based on a simulation indication that is identified when no action input has been received from the first user device for a predetermined period of time.
- The method of claim 1 , wherein the first player state comprises a state associated with membership on a team comprising one or more other players, and wherein at least one of the possible actions is specific to one of the other players on the team.
- The method of claim 1 , wherein the stored action inputs were received as part of one or more previous sessions of the same identified game title.
- The method of claim 1 , wherein the stored action inputs were received as part of at least one game session of a different game title than the identified game title.
- The method of claim 14 , wherein selecting the first action further comprises identifying that the identified game title and the different game title both correspond to a same predefined game category.
- The method of claim 15 , wherein selecting the first action further comprises identifying that the identified game title and the different game title both correspond to a predetermined number of same predefined game categories.
- The method of claim 1 , further comprising: generating a plurality of behavior-based probability values for the possible actions based on the stored plurality of action inputs-associated with the identified game title and based on the current action sequence indicated by the identified first player state;and assigning weights to each of the possible actions based on the corresponding behavior-based probability values, wherein selecting the first action is further based on the assigned weights as applied by a weighted random selection algorithm.
- A system for simulating game player behavior, the system comprising: a game control interface that receives a plurality of action inputs from a first user device associated with a first player, the action inputs associated with a plurality of action sequences in one or more game titles played by the first player via the first user device;a memory that stores instructions and the plurality of action inputs in association with a respective one of the game titles played by the first player;and a processor, that executes the instructions to: identify that the first player has triggered a simulation mode during a game session of an identified game title, and launch the simulation mode in the game session of the identified game title in response to the identified trigger by: identifying a first player state associated with a control object previously controlled by the first player within the game session of the identified game title, wherein the identified first player state includes a current action sequence, identifying a condition encountered by the control object, identifying a plurality of possible actions to be taken by the control object in response to the condition and the first player state, selecting a first action of the plurality of possible actions based on the stored plurality of action inputs associated with the identified game title and based on the current action sequence indicated by the identified first player state, and commanding the control object to perform the selected first action within the game session in continuation of the current action sequence.
- The system of claim 18 , wherein the processor executes further instructions to generate optimization-based probability values for the possible actions, each optimization-based probability value identifying a likelihood that a respective one of the plurality of possible actions achieves a goal associated with the control object, wherein selecting the first action is further based on the plurality of optimization-based probability values.
- A non-transitory computer readable storage medium having embodied thereon a program, wherein the program is executable by a processor to perform a method of simulating game player behavior, the method comprising: receiving a plurality of action inputs from a first user device associated with a first player, the action inputs associated with a plurality of action sequences in one or more game titles played by the first player via the first user device;storing the plurality of action inputs in association with a respective one of the game titles played by the first player;identifying that the first player has triggered a simulation mode during a game session of an identified game title;and launching the simulation mode in the game session of the identified game title in response to the identified trigger by: identifying a first player state associated with a control object previously controlled by the first player within the game session of the identified game title, wherein the identified first player state includes a current action sequence;identifying a condition encountered by the control object;identifying a plurality of possible actions to be taken by the control object in response to the condition and the first player state;selecting a first action of the plurality of possible actions based on the stored plurality of action inputs associated with the identified game title and based on the current action sequence indicated by the identified first player state;and commanding the control object to perform the selected first action within the game session in continuation of the current action sequence.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.
