Automatic separation of abusive players from game interactions
Patent Information
- Application Number
- JP2024207908
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-06-30
- Filing Date
- 2024-11-29
- Publication Date
- 2025-02-26
- Estimated Expiration
- 2041-06-23
Smart Images

Figure 2025027081000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a system and method for automatically isolating dishonest players from game interactions in a multiplayer video game. [Background technology]
[0002] An area of continuing development in the gaming industry is that of multiplayer games that can provide a collective gaming experience for players who are geographically distant from one another. An area of expansion in the gaming industry is that of gameplay video sharing and spectating gameplay. Currently, users can record and share gameplay via websites, social media, and the like. Additionally, users may live stream their gameplay, allowing other users to watch the gameplay as it occurs substantially in real time.
[0003] Another recent trend in the gaming industry is the move to cloud gaming. Cloud gaming benefits end users by enabling the remote execution of video games in data centers where video game resources can be guaranteed. Video generated by the remotely executed video games is streamed to the user's equipment, and input from the user is transmitted back to the data center. This removes the need for end users to own specific hardware to run the game itself. Instead, end users only need to own enough hardware to stream gameplay and still enjoy a high quality gaming experience. Additionally, in theory, cloud gaming enables gaming from any location where a network connection is available.
[0004] A continuing trend in the video game industry is the increasing sophistication of graphics and the availability of computing resources to meet the demands of modern game engines. As video games evolve, their resolution and frame rates continue to increase, allowing for the rendering of highly realistic and detailed virtual environments. Additionally, cloud gaming continues to grow in popularity, with the shift to video games running in the cloud allowing greater access to high quality gaming experiences.
[0005] It is within this context that embodiments of the present disclosure arise. Summary of the Invention
[0006] SUMMARY OF THE DISCLOSURE Embodiments of the present disclosure provide systems and methods for automatically isolating dishonest players from game interactions in a multiplayer video game.
[0007] In some embodiments, a method is provided that is executed by at least one server computer, the method including: processing game state data during interactive gameplay of a multiplayer video game to identify game play activity of a player as being unfair; and in response to identifying the game play activity as unfair, applying a corrective action to the player during interactive gameplay, the corrective action comprising providing a notice to the player of the game play activity identified as unfair; after applying the corrective action, further processing the game state data to identify additional game play activity of the player as unfair; and in response to identifying the additional game play activity as unfair, imposing a penalty on the player.
[0008] In some implementations, the corrective action includes a warning to the player indicating a penalty.
[0009] In some implementations, the penalty includes reducing the player's game playing capabilities.
[0010] In some implementations, the penalty includes moving the player to a different session or server of the multiplayer video game.
[0011] In some implementations, the penalty includes identifying a breakpoint in interactive gameplay, and the movement is performed upon reaching the breakpoint.
[0012] In some implementations, identifying the game play activity of the player as fraudulent includes receiving a flag initiated by a second player of the multiplayer video game in response to the game play activity of the player.
[0013] In some implementations, identifying the gameplay activity of the player as fraudulent includes analyzing interactive gameplay of the multiplayer video game in real time with a machine learning model.
[0014] In some embodiments, a method is provided that is executed by at least one server computer and includes processing game state data during interactive game play of a first session of the multiplayer video game to identify game play activity of a player as being unauthorized, and in response to identifying the game play activity as unauthorized, moving the player to a second session of the multiplayer video game.
[0015] In some implementations, further responsive to identifying the gameplay activity as fraudulent, identifying and moving a breakpoint in the interactive gameplay is performed when the breakpoint is reached.
[0016] In some implementations, a breakpoint is defined by one or more of the following: completion of a stage or event in a multiplayer video game, a transition between spaces in a virtual environment by a player, or the death of a player in interactive gameplay.
[0017] In some implementations, moving the player includes capturing settings associated with the player in the first session and initiating the player in the second session using the captured settings.
[0018] In some implementations, moving the players includes capturing a state of a first session of the multiplayer video game and configuring a second session to substantially replicate at least a portion of the state of the first session in the second session without other players of the first session.
[0019] In some implementations, identifying the game play activity of the player as fraudulent includes receiving a flag initiated by a second player of the multiplayer video game in response to the game play activity of the player.
[0020] In some implementations, identifying the gameplay activity of the player as fraudulent includes analyzing interactive gameplay of the multiplayer video game in real time with a machine learning model.
[0021] In some embodiments, a method executed by at least one server computer is provided that includes receiving a flag initiated by a first player of the multiplayer video game in response to gameplay activity of the second player during interactive gameplay of a first session of the multiplayer video game, the flag being configured to identify the gameplay activity of the second player as possibly being fraudulent; in response to receiving the flag, processing recorded gameplay of the multiplayer video game to verify the gameplay activity of the second player as fraudulent; and in response to verifying the gameplay activity of the second player as fraudulent, moving the second player to a second session of the multiplayer video game.
[0022] In some implementations, further responsive to verifying the gameplay activity of the second player as fraudulent, identifying and moving a breakpoint in the interactive gameplay is performed when the breakpoint is reached.
[0023] In some implementations, the breakpoint is defined by one or more of the following: completion of a stage or event in a multiplayer video game, a transition between spaces in the virtual environment by a second player, or death of a second player in interactive gameplay.
[0024] In some implementations, moving the second player includes capturing settings associated with the second player in the first session and initiating the second player in the second session using the captured settings.
[0025] In some embodiments, moving the second player includes capturing a state of a first session of the multiplayer video game and configuring the second session to substantially replicate at least a portion of the state of the first session in the second session without the other players of the first session.
[0026] In some implementations, verifying the gameplay activity of the second player as fraudulent includes analyzing the interactive gameplay activity of the second user with a machine learning model.
[0027] Other aspects and advantages of the present disclosure will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the disclosure. [Brief description of the drawings]
[0028] The present disclosure, together with further advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings, in which:
[0029] [Figure 1] 1 conceptually illustrates the automatic movement of a dishonest player to a different server / session of a multiplayer video game, according to an embodiment of the present disclosure.
[0030] [Diagram 2] 1 conceptually illustrates detection of significant events or transition points that remove dishonest players from an existing multiplayer game session, according to embodiments of the present disclosure.
[0031] [Diagram 3] 13 conceptually illustrates using the spatial relationships of a cheating player to determine when to move the cheating player to another server / session, according to an embodiment of the present disclosure.
[0032] [Figure 4]1 conceptually illustrates an implementation of an offline copy server that allows a dishonest player to complete an interaction, according to an embodiment of the present disclosure.
[0033] [Diagram 5] 1 conceptually illustrates the use of machine learning models to substitute for dishonest players, according to an embodiment of the present disclosure.
[0034] [Figure 6] 1 conceptually illustrates a player behavior system for detecting and responding to cheating in a multiplayer video game, according to an embodiment of the present disclosure.
[0035] [Figure 7A] 1 illustrates a player view of a scene in a video game where the player has been flagged for dishonest or malicious behavior, according to an embodiment of the present disclosure.
[0036] [Figure 7B] 7B illustrates a player view of the video game after analysis of the captured data according to the embodiment of FIG. 7A.
[0037] [Figure 8A] 1 illustrates the application of an automated recognition system to identify possible cheating behavior during game play to facilitate reporting by players, according to an embodiment of the present disclosure. [Figure 8B] 1 illustrates the application of an automated recognition system to identify possible cheating behavior during game play to facilitate reporting by players, according to an embodiment of the present disclosure.
[0038] [Figure 9A] 1 illustrates an exemplary system used to load game files for games available through a cloud gaming site, according to an embodiment of the present disclosure.
[0039] [Figure 9B]1 is a flow diagram conceptually illustrating various operations performed to stream cloud video games to client devices in accordance with an embodiment of the present disclosure.
[0040] [Figure 10] 1 illustrates an embodiment of an information service provider architecture in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0041] In the following description, several specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent to one of ordinary skill in the art that the present disclosure may be practiced without some or all of these specific details. In other instances, well-known process steps have not been described in detail in order not to obscure the present disclosure.
[0042] A common problem in multiplayer gameplay relates to how to address inappropriate or abusive actions by a given player. Such actions may include gameplay that is contrary to the spirit or principles of video games, as well as harassment or inappropriate activity towards other players. Accordingly, embodiments of the present disclosure provide methods and systems for detecting and addressing abusive gameplay. Such methods and systems may aid in affecting remediation of inappropriate behavior so as to promote a better gameplay experience for players collectively.
[0043] In some implementations, cheating players are detected by player flagging, where a player of a video game can flag cheating activity for follow-up by the system. In some implementations, a machine learning model may be trained to recognize cheating activity and may further suggest to a player that when suspected cheating activity is recognized, give the player the option to flag such activity.
[0044] In some implementations, a cheating player is automatically separated from a given multiplayer session or server of a video game. For example, in response to detecting cheating on the part of a cheating player, the cheating player may be moved to a different session or server. Such movement of the cheating player may be managed to be seamless or with minimal disruption to the cheating player and other players in the video game. In some implementations, cheaters are allowed to play games, but in those games, cheaters are separated from normal players who are focused on playing together and following game mechanics and cooperating to progress in the game. A cheating player may be switched to a different server, or a different game instance or world, and such reassignment may occur in the background and is completely transparent to the cheating player.
[0045] FIG. 1 conceptually illustrates the automatic movement of a dishonest player to a different server / session of a multiplayer video game, according to an embodiment of the present disclosure.
[0046] In the illustrated implementation, the gaming service 100 is configured to enable multiplayer gameplay of a video game. The gaming service 100 is typically accessed over a network, such as the Internet, through player devices operated by each player of the video game. In some implementations, the multiplayer video game is a cloud video game run by the gaming service 100, with gameplay video and audio streamed to the player devices. In other implementations, each instance of the video game is run locally by a player device, with multiplayer gameplay facilitated by the gaming service 100, and sessions synchronized through the gaming service.
[0047] As shown in the illustrated embodiment, the gaming service hosts various servers 102, 106, and 110 that execute multiplayer gameplay sessions 104, 108, and 112, respectively. In some implementations, the gaming service 100 further includes a matchmaking server 120 configured to provide matchmaking services for multiplayer gameplay of a video game. That is, the matchmaking server 120 receives requests from players to join multiplayer sessions of a video game and assigns players to particular sessions of the video game based on criteria such as the players' respective skill levels or experience, balancing team competitiveness, players' geographic locations, languages, etc.
[0048] For example, in some implementations, players 122, 124, and 126 are assigned to multiplayer gameplay session 104 by matchmaking server 122. In other implementations, players may self-organize and determine which players to admit into a given session, such as by having an initial player form a team, host the multiplayer gameplay session, and invite other players to join. Thus, in the illustrated implementation, players 122, 124, and 126 are connected to multiplayer gameplay session 104 and participate in multiplayer gameplay of a video game.
[0049] As previously mentioned, a problem with multiplayer games is that certain players may engage in cheating or inappropriate behavior. The actions of a cheating player degrade the gameplay experience of other players of the video game. Therefore, it is important to detect and address cheating in multiplayer video games. To this end, the game service 100 further includes a player behavior system 114 configured to detect cheating and address cheating via various mechanisms. The player behavior system 114 includes a behavior detection unit 116, which is configured to determine when cheating by a given player has occurred. In some implementations, the behavior detection unit 116 detects cheating based at least in part on receiving a flag or report from a player of a given session of the video game. In some implementations, the behavior detection unit 116 detects cheating at least in part by using a machine learning model.
[0050] Broadly speaking, cheating may include any kind of inappropriate gameplay, malicious gameplay activity, or inappropriate behavior occurring during gameplay by a given player. Examples of cheating include, but are not limited to, not playing the game or being "AFK" (away from the keyboard), playing in a manner that is damaging or detrimental to one's team or teammates, playing maliciously or without following game mechanics, "griefing" or intentionally using aspects of the game in unintended ways to annoy / harass / inconveniently / harm other players, text / voice chat harassment (e.g., using harassing or abusive language or images), spamming text or voice chat channels, etc.
[0051] In the illustrated implementation, a player 126 has been identified as a dishonest player who has engaged in dishonest / inappropriate actions in a multiplayer session 104 of a video game. The dishonest / inappropriate actions are detected by the behavior detection unit 116. In response, the player behavior system 114 may take various actions, such as alerting the player 126 that dishonest actions have been detected, advising the player to cease such actions, and informing the player of possible penalties that may be imposed. This disclosure describes various types of penalties, including moves described below, that may be imposed in response to detection and verification of dishonest activity. Of course, in some implementations, such penalties may be imposed after the dishonest activity has been repeated at least once (detected more than once) or after the player has received at least one warning.
[0052] In some implementations, the player behavior system 114 includes transfer logic 118 configured to transfer a cheating player to another session of the video game. With continued reference to the illustrated implementation, in response to detecting cheating by the player 126, the transfer logic 118 transfers the player 126 to a different multiplayer session 108 run by the server 106. In this manner, the cheating player 126 is isolated from the other players 122 and 124 such that the player 126 is unable to commit harmful or nuisance cheating actions against the players 122 and 124. As described in further detail below, the transfer of the cheating player 126 can be configured to minimize interruptions to the players 122 and 124, as well as the game play of the cheating player 126.
[0053] In some implementations, the server 106 to which the cheating player 126 is moved is selected or configured to not enable further cheating by the player 126. Such configuration can take a variety of forms, depending on the cheating committed by the player 126. For example, in some implementations, it may be desirable to limit the cheating player's contact with other players, so as to limit the cheating player's ability to take inappropriate actions against other players. Thus, the server to which the cheating player is moved may be selected or configured as a server with a significantly smaller number of players, a small number of players, players that are widely distributed, or no other players, thereby reducing the cheating player's chances of contacting other players, thereby reducing the cheating player's opportunity to take inappropriate actions that affect other players.
[0054] In some implementations, cheating may involve exploiting or intentionally misusing certain game mechanics of a video game in a manner that is detrimental to or frustrating to other players on the same team. For example, a cheating player may exploit objects in a particular setting or exploit the mechanics of a given location in a malicious manner that is inconsistent with proper gameplay. With this in mind, the server to which the cheating player is moved may be selected or configured to not present scenarios that lead to such cheating. For example, in some implementations, the server to which the cheating player is moved may be selected or configured to present a substantially different location / scenario / scene / setting / world / level of the video game than the previous server, or one that does not include objects or settings previously exploited by the cheating player.
[0055] In some implementations, cheating players are moved to a new server based at least in part on the characteristics of players on the new server and / or the characteristics of players on the previous server. For example, cheating players may engage in cheating behaviors to which less experienced players are more susceptible and more experienced players are less susceptible. Thus, in some implementations, cheating players are moved to a server where players have a higher skill level than players on the previous server. Extending the concept, player characteristics that determine susceptibility to a given type of cheating can be analyzed and correlated. Then, when a given type of cheating by a cheating player is detected, the cheating player can be moved to a server with players that exhibit characteristics that make them less susceptible to the detected type of cheating. In this way, the cheating player is moved to a session where it is more difficult for the cheating player to exploit other players in the same way.
[0056] Extending the above concepts broadly, it will be appreciated that in various implementations, a cheating player may be moved to a server / session where the conditions of the multiplayer video game are configured to reduce the likelihood that the cheating player will engage in the same type of cheating behavior previously detected on a previous server / session.
[0057] In some implementations, the dishonest players are moved to the same session / server so that the dishonest players play together. For example, in the illustrated implementation, another multiplayer session 112 of the video game is instantiated by the server 110. Players 128, 130, and 132 participate in gameplay of the video game in the multiplayer session 112. During gameplay, dishonest behavior on the part of the player 128 is detected by the behavior detection unit 116. In response, the dishonest player 128 is moved to the server 106. In this manner, the dishonest player 128 is moved to the same server as the dishonest player 126, so that the dishonest players are concentrated in the same session. Playing together in the same session prevents dishonest players from taking inappropriate actions against other players who are honestly trying to play the video game according to the proper mechanics of gameplay.
[0058] In some implementations, the reassignment of the cheating player to a different server / session is done in such a way as to preserve the continuity of the game for the cheating player and / or other players. It may not be desirable to suddenly end the game for the cheating player, since the cheating player may still want to end the game. However, the cheating player has been identified and is asked to move, for example, because he is with other players who tend to be targets for cheating, or because he is in a situation where he tends to play without following the game mechanics. Thus, in some implementations, aspects of the existing session are duplicated / cloned / copied into the new session to which the cheating player is moved.
[0059] For example, in some implementations, the cheating player's digital inventory is replicated from a previous session, so that the cheating player possesses the same weapons, skins, armor, digital currency, virtual objects, etc., that he possessed in the previous session at the time the transfer occurs. In this way, the cheating player perceives continuity of his digital inventory even as he is transferred to a new session.
[0060] In some implementations, the cheating player is moved in the new session to the same virtual location in the game world as his last location in the previous session when the move occurred. In some implementations, the cheating player has the same orientation in the new session as his last orientation in the previous session. In some implementations, other aspects of the cheating player's previous gameplay experience in the previous session are replicated in the new session to which the cheating player is moved. By way of non-limiting example, such other aspects may include the presence and configuration of enemies or virtual characters, the presence / location / conditions of virtual objects, weather, music, game settings, etc.
[0061] Of course, when a cheating player is moved, the remaining players do not move with the cheating player, so that the cheating player is isolated from the other players. In some implementations, to further maintain gameplay continuity for the cheating player and make the move more transparent, an AI proxy character (or bot) is instantiated in the new session in place of the other players who are not moved to the new session. The AI proxy character can be configured to have the same or similar configuration to the other players in the previous session, such as having the same or similar appearance, skin, weapons, objects, etc. Furthermore, in some implementations, the AI proxy character is configured to perform in a similar manner to the player that it is inserted as a substitute. For example, the AI proxy character can be configured to have similar gameplay to the player that it is representing, such as a similar skill level, play style, etc. This can make the move experience more transparent to the cheating player.
[0062] 2 conceptually illustrates detection of a significant event or transition point that removes a dishonest player from an existing multiplayer game session, according to an embodiment of the present disclosure. The multiplayer session 104 is hosted by the game service 100 as described above, with players 122, 124, and 126 participating in game play. Of course, the players of a video game connect to the multiplayer session 104 through player devices, such as game consoles, personal computers, laptop computers, tablets, mobile phones, or other computing devices that are local to the players. Gameplay video is typically rendered on a display device, which may be integrated into the player device or may be separate from the player device. In the illustrated embodiment, the players 122, 124, 126 operate respective player devices 218, 222, and 226 that communicate with the multiplayer session 104 via a network 216.
[0063] Player devices 218, 222, and 226 execute local sessions 220, 224, and 228 of the video game, respectively. Depending on the multiplayer game architecture, more or less processing and handling of the game state of the video game may be handled by the local sessions at the player devices, or by the multiplayer session at the server. In some implementations, the video game is executed entirely in the cloud, with gameplay video (including image data and audio data) from the multiplayer session 104 being streamed over the network to the player devices, and the local session providing the presentation of the video (e.g., via a display and / or speakers), collecting input, and transmitting it back to the multiplayer session. In some implementations, the video game is executed primarily by the local sessions, with each local session maintaining a local copy of the game state, and the multiplayer session 104 enabling synchronization of the game state across the player devices. In some implementations, the video game is executed partially by the local sessions at the player devices and partially by the multiplayer session at the server.
[0064] As described above, when a cheating player is detected, in some embodiments the cheating player is moved to another server / session. However, in order to maintain the continuity of the current session of the video game, in some embodiments the movement of the cheating player does not necessarily occur immediately upon determining that the cheating player is to be moved. Instead, an appropriate time or breakpoint in the game is determined for the move to minimize disruption to either the cheating player and / or the remaining players of the multiplayer session and to maintain the continuity of events with minimal interruption to existing gameplay. In this way, the transition of the cheating player can be done in an unobtrusive manner that may even be transparent to the cheating player and / or other players.
[0065] One or more eligible transition / critical / breakpoint events are detected and the cheating player is migrated to a new server / session upon the occurrence of an eligible transition event. The execution of the multiplayer session uses input from the user applied to the game engine to generate a continuously updated server game state 200 that drives the gameplay. To detect events that occur during gameplay, game state data 202 (and / or game telemetry data) is obtained from the server game state 200 and analyzed using an event detection process 204 to identify when an eligible transition event occurs. In some implementations, the game state data 202 may further include game state data and / or game telemetry data from any of the players' local sessions.
[0066] Non-limiting examples of eligible transition events or breakpoints include the death of the cheating player or other players (reference number 206), crossing or transitioning from one area of the game to another (reference number 208, e.g., opening or moving through a door / doorway / entrance / partition, crossing a boundary, jumping between locations on a game map), completing a significant activity in the game story (reference number 210, e.g., completing a stage / chapter / level / major event, defeating a boss character, solving a puzzle, entering a new area of the game space, one team beating another team, one team scoring against another team, etc.), a period of low activity or low interaction between players (e.g., a period of no combat or weapon use by the cheating player and / or other players of the game, combat is below a threshold level, etc.), pausing the game (reference number 212), etc. Upon detecting such an eligible transition event, the detected cheating player is then moved to a new session / server (reference number 214). In other words, a detected cheating player move does not necessarily occur immediately upon detection, but is delayed until a qualifying transition event occurs, after which the move is processed.
[0067] In this manner, the movement of the cheating player is performed at the moment of the game transition to minimize the disruption caused by the transition. For example, when a cheating player dies, the cheating player may be respawned in a new session / server. For example, when a cheating player walks through a door, the cheating player is moved and, in some implementations, arrives at the intended location in the game space (e.g., on the other side of the door), albeit in a different session / server.
[0068] 3 conceptually illustrates using the spatial relationship of a cheating player to determine when to move the cheating player to another server / session, according to disclosed embodiments. As noted, it is generally desirable to minimize the disruption caused by the movement of a cheating player. Thus, in some embodiments, the spatial relationship of a cheating player to other players may be used to determine when to move a cheating user.
[0069] For example, in the illustrated embodiment, the position / location of the dishonest player 126 in the virtual space relative to the other players 122 and 124 is shown. The dishonest player 126 is located at a first distance 300 from the closest player 122. In some embodiments, at this stage, the dishonest player 126 is identified as dishonest and is scheduled for movement, but is not moved because the dishonest player 126 is too close to the closest player 122. That is, in some embodiments, if the dishonest player is within a predefined distance from the closest other player, no movement occurs. However, once the dishonest player 126 moves to the position indicated by reference numeral 126a, the dishonest user 126 is moved to a new server / session. In other words, in some embodiments, once the dishonest player 126 moves beyond a predefined distance from the closest other player, the dishonest player is moved from the current session to a new session. In this manner, a dishonest player 126 is removed once it is determined that the dishonest player 126 is sufficiently isolated or sufficiently far from the vicinity of other players.
[0070] In some implementations, a movement is initiated when the dishonest player 126 moves from one area of virtual space to another area of virtual space. For example, in the illustrated implementation, the player 126 moves from area 308 of the virtual space to area 310. In some implementations, upon detecting movement into area 310, the movement of the dishonest player is initiated.
[0071] In some implementations, the cheating player's line of sight or field of view is analyzed and used, at least in part, to determine when to move the cheating player. For example, initially, cheating player 126 is shown to have a line of sight 304 toward at least player 124, and a field of view that may further include player 122. In some implementations, no movement of the cheating player occurs while the cheating player's line of sight or field of view is directed toward other players, or while the cheating player's field of view of the virtual space includes other players. However, movement occurs when the cheating player's line of sight is changed, for example, to line of sight 306 in the illustrated implementation. That is, the cheating player is moved if the cheating player's line of sight is away from the other players, or if the cheating player's field of view does not include other players.
[0072] In some implementations, the movement of the cheating player and / or the movement of the other players and / or the relative movement of the players with respect to each other is analyzed and used at least in part to determine when to move the cheating player. For example, in some implementations, the cheating player is not moved until it is determined that the cheating player and all players within a predefined vicinity of the cheating player are moving away from each other. This may be based on a determination that the cheating player is moving away from one or more of the other players and / or a determination that one or more of the other players are moving away from the cheating player. In some implementations, the speed and / or acceleration of the players' movements are also taken into account when determining when to move the cheating player. For example, the speed and / or acceleration of the players' movements relative to each other may amplify the effect of such movements in determining when to move the cheating player.
[0073] Of course, in some implementations, the above concepts can be combined. For example, in some implementations, the distance of a cheating player from the next closest player, the cheating player's line of sight or field of view, and the players' movements relative to each other are factors utilized to determine when to move a cheating player. For example, such factors can be quantified and combined into a score, and if the score exceeds a threshold, the cheating player is moved. In some implementations, the distance of a cheating player from the closest player positively correlates with the likelihood of a move occurring, such that as the distance increases, the likelihood of a cheating player move also increases. In some implementations, the degree to which a cheating player's line of sight is directed toward other players, or the degree to which the field of view includes other players, negatively correlates with the likelihood of a move occurring, such that the more the cheating player's line of sight is directed toward other players, or the more the cheating player's field of view includes other players, the more likely the cheating player will move. In some implementations, the likelihood of a cheating player moving increases when the cheating player and at least one other player move relatively away from each other.
[0074] 4 conceptually illustrates an implementation of an offline copy server that allows a cheating player to complete interactions, according to an embodiment of the present disclosure. For example, a cheating player may be in the middle of a battle, but has received enough flags or committed enough cheats that a move is merited / necessary. Thus, it is desirable to gracefully transition the cheating player to another server while allowing the cheating player to complete the battle or key interactions. Thus, in some implementations, a temporary offline copy server 400 is instantiated locally on the player device 226 to substantially replicate the gameplay experience of the cheating player's multiplayer session.
[0075] The copy server 400 obtains or copies at least a portion of the server game state 200 to substantially replicate aspects of the cheating player's gameplay, and the local session 228 switches from communicating with the multiplayer session 104 to communicating with the copy server 400. In this manner, the local session 228 of the cheating player 126 is no longer in communication with the multiplayer session 104, and thus the cheating player 126 is no longer able to interact with the multiplayer session 104. The cheating player 126 can still continue gameplay in a substantially similar, ongoing manner, and can conclude combat or other major interactions with the world. Of course, because the copy server 400 provides similar functionality to the multiplayer session 104, the cheating player's local session 228 does not need to be significantly adjusted beyond being redirected to the copy server 400.
[0076] In some implementations, the copy server 400 instantiates AI bots to replace other players from the multiplayer session 104. In some implementations, the AI bots are configured to make it appear to the dishonest player 126 that the other players are still playing in the same session.
[0077] In some implementations, after combat or other major interactions in the game world are completed using the copy server 400, the dishonest player is returned to the live server / session in which the real players are participating. For example, the initial local session 228 may be terminated and a new local session 402 may be instantiated that connects to a different multiplayer session 404. In other implementations, the local session 228 continues and is migrated to the multiplayer session 404. In some implementations, aspects from the copy server 400 are merged or added to the server game state 406 of the multiplayer session 404.
[0078] Although the copy server 400 is described as running locally, in some implementations the copy server may be cloud-based, accessible over a network, and / or part of the gaming service 100.
[0079] 5 conceptually illustrates using a machine learning model to replace a cheating player, according to an embodiment of the present disclosure. In the illustrated embodiment, the cheating player 126 is identified and moved to a different session / server such that the cheating player 126 no longer engages in cheating behavior in the current multiplayer session 104. However, this raises the question of how the remaining players 122 and 124 continue gameplay in the absence of the cheating player 126 in the illustrated embodiment. Thus, in some implementations, an AI player 504 replaces the moved cheating player 126.
[0080] To provide the AI player 504, in some implementations, the player AI / machine learning model 502 is trained to behave like the dishonest player 126. Telemetry data and / or game state data 202 is obtained from a game session, such as a multiplayer session 104, and stored as player data 500. The player data 500 includes data regarding gameplay by the dishonest player. The player data 500 is then used to train the AI / machine learning model 502 to behave similarly to the dishonest player with respect to gameplay. That is, the machine learning model 502 is trained using recorded gameplay of the dishonest player 126 to perform gameplay actions similar to those performed by the dishonest player 126. For example, given recorded inputs provided by the dishonest player in response to game situations and scenarios, the machine learning model 502 can be trained to provide the same or similar inputs in response to the same / similar situations and scenarios.
[0081] Of course, the player data 500 includes data describing game scenarios faced by the player 126, as well as data describing the player's responses, such as controller inputs or other inputs. In some implementations, the player data 500 further includes video of the player's gameplay, and the machine learning model 502 is trained using the video to mimic the gameplay of the player 126 in response to the scenes depicted by the video.
[0082] Of course, the machine learning model 502 is trained using recorded gameplay of the players 126, but the training of the machine learning model 502 is configured to avoid training the machine learning model 502 to commit cheating. To this end, in some implementations, data indicative of scenarios in which cheating has occurred is identified and purged / removed from the training dataset.
[0083] Thus, in some implementations, the trained machine learning model 502 is used to instantiate an AI player 504 in the multiplayer session 104 to replace a cheating player 126 who has been moved to another session. The AI player 504 is thus configured to participate in gameplay of the multiplayer session 104 in a style similar to that of the cheating player 126. Of course, the AI player 504 can be configured to have the same appearance and inventory as the moved cheating player 126 and can be inserted into the same position at the same time that the cheating player 126 is moved out of the multiplayer session, and the replacement of the cheating player 126 with the AI player 504 is transparent to the other players 122 and 124 of the multiplayer session.
[0084] In some implementations, when a dishonest player 126 is removed from a multiplayer session 104, a new player is allowed to join the multiplayer session 104 in place of the player 126. By way of example, in some implementations, the game service may implement a player queue 506 that queues players waiting to join a multiplayer session of a video game. Thus, in some implementations, when a dishonest player 126 is removed from the session, a new player 508 is added to the multiplayer session 104 from the player queue 506. In other implementations, players who may be interested in joining the multiplayer session 104 are notified and invited to join, such as through a messaging service that may be implemented by the game service.
[0085] Of course, because the new player 508 is joining a multiplayer session where other players are already playing games, the new player may be at a disadvantage relative to other players already playing. Thus, in some implementations, the new player 508 may be provided with contextual information about the multiplayer session 104 so that the new player 508 can enter the session with knowledge of the session and its gameplay. For example, the new player 508 may be given the video game setting / location / scene in which gameplay is taking place in the multiplayer session 104, a description of events that have occurred, statistics and other information regarding other players, etc. In some implementations, the new player 508 may be shown videos of previous gameplay of the multiplayer session 104 so that the new player 508 can understand events that have occurred in the multiplayer session 104 before joining.
[0086] In some implementations, the new player 508 joins the multiplayer session 104 by assuming control of the character (or other representative virtual object) controlled by the dishonest player 126 in the multiplayer session 104. In this manner, the character associated with the dishonest player 126 continues to exist in the multiplayer session 104, but is now operated and controlled by a different player. This helps to minimize disruptions to gameplay from the perspective of other players in the multiplayer session 104.
[0087] 6 conceptually illustrates a player conduct system for detecting and responding to cheating in a multiplayer video game, according to an embodiment of the present disclosure. In some embodiments, the player conduct system 114 is implemented by the game service 100, as described above. Components of the player conduct system 114 are described with reference to an exemplary embodiment. As described above, the player conduct system 114 includes a behavior detection unit 116 for detecting cheating on the part of players of the multiplayer video game.
[0088] In some implementations, users / players may report bad or abusive player behavior (e.g., AFK, chat harassment, griefing, spamming, etc.). To this end, the behavior detection unit 116 includes a flagging system 600, which is configured to enable players to flag abusive behavior when they encounter it. For example, during gameplay, when a player wants to flag another player for abusive behavior, he or she may press a button or open an interface to initiate flagging the other player. In some implementations, the interface may enable a player to input information describing the nature of the perceived abusive behavior. In some implementations, such an interface may include predefined options selectable by the player to record.
[0089] Additionally, once a flagging event is initiated, game state and video captures may be recorded as evidence of potential cheating. For example, in some implementations, in response to a reporting player initiating flagging, the reporting player is provided with an interface to identify portions of gameplay video indicative of the suspected cheating activity being reported. In some implementations, the interface allows the reporting player to trim existing buffered / recorded gameplay video to identify the portions selected for flagging. Additionally, corresponding game state data is captured, e.g., game state data corresponding to the timecodes of the selected gameplay video identified by the reporting player.
[0090] In some implementations, when a player initiates flagging, gameplay video and / or game state from a predetermined period of time prior to the initiation of the flagging is automatically captured, e.g., by the game state / video capture unit 606, and stored in the cheating data storage 614. For example, in some implementations, the immediately preceding N seconds (e.g., N=5, 10, 20, 30, 45, 60, 90, 120, etc.) of video and / or game state may be captured. In some implementations, the duration that is captured and associated with the flagging event depends on an analysis of interactions occurring in the gameplay. For example, if the flagging event identifies a potentially cheating player, the duration that is captured may be determined by analyzing the game state to identify a period of interaction involving the cheating player and the reporting player immediately prior to the initiation of the flagging. In other implementations, the duration that is captured is determined by analyzing the game state to identify a period of activity immediately prior to the initiation of the flagging (e.g., a period of combat activity or other game interaction).
[0091] In some implementations, the captured gameplay video and / or game state further includes gameplay video and / or game state that occurs after the reporting player initiates a flagged event, such as for a predetermined period of time after flagging or until a game activity involving the reporting player is over or completed (e.g., combat, completion of a significant event, etc.).
[0092] Of course, a given player may erroneously identify another player as exhibiting cheating. Thus, in some implementations, the activity detection unit 116 further includes a verification logic 604 configured to verify whether the flagged activity was in fact malicious or fraudulent. In some implementations, the verification logic 604 employs a machine learning model 602 to determine whether the reported activity was in fact malicious or fraudulent. In some implementations, the machine learning model is trained using a dataset of cheating activities such that the machine learning model can determine whether a given scenario constitutes cheating.
[0093] In some implementations, the verification logic 604 is configured to verify whether the reported conduct was cheating by polling other players of the game, such as players on the same team as the allegedly cheating player, players on the opposing team, or a combination of players from both teams. Specifically, players may be presented with recorded gameplay video showing the alleged cheating conduct and be asked to make an input indicating whether they believe the alleged cheating conducted themselves. In some implementations, the alleged cheating conduct is verified if a majority of the players polled indicate they believe the conduct was, in fact, cheating.
[0094] In some implementations, a combination of both the machine learning model and surveys of other players are utilized to determine whether cheating has occurred. For example, in some implementations, the machine learning model is used as a tiebreaker in cases where an equal number of players indicate cheating and non-cheating. In some implementations, the machine learning model and the player's findings are weighting factors used to determine whether a reported act was cheating. For example, players on the same team as the player accused of cheating may have their findings weighted more heavily than players on the opposing team. In some implementations, players with higher reputations are weighted more heavily than the findings of players with lower reputations. In various implementations, the machine learning model's decisions may be weighted more or less than some or all of the players' findings.
[0095] In some implementations, the activity detection unit 116 can automatically report or flag players for bad activity. For example, the machine learning model 602 can be trained to recognize cheating and then applied to flag bad activity performed in a current multiplayer game session. In some implementations, the alleged cheating activity flagged by the machine learning model is verified by the verification logic 604, for example, by presenting the flagged activity (e.g., presenting a video) to a teammate of the alleged player and asking the teammate to make a judgment as to whether they believe the flagged activity was in fact cheating.
[0096] Of course, video and / or game state capture can be performed for behavior flagged by the machine learning model and stored in cheating data storage 614. The captured data of identified cheating (whether identified by a player or by the machine learning model), and particularly verified cheating, can be used to further train the machine learning model so that over time, the machine learning model improves its recognition of cheating, both in scope and accuracy.
[0097] As described, in some implementations, when cheating is detected, migration logic 608 gets involved and moves the cheating player to a different session / server.
[0098] In some implementations, once cheating is detected, corrective action is implemented by the corrective action unit 610. The corrective action is configured to prevent the cheating from recurring or to motivate the cheating player not to cheat. In some implementations, the cheating player may be notified that the bad behavior was reported (e.g., if the behavior is verified as bad by a machine learning model). In some implementations, the cheating player is informed of what it was that they were determined to be doing wrong. This may be configured so that they learn from their mistake or be banned (e.g., temporarily or permanently) if they do not learn.
[0099] In some implementations, a video game may implement its own corrective actions and systems because the video game may have access to the above functionality and data via API 618. For example, a video game may implement its own "3 strikes" system.
[0100] In some implementations, the game service system may take corrective action and temporarily ban game services or specific games for egregious behavior.
[0101] Of course, in various implementations, various corrective actions may be implemented in response to detection and / or verification of cheating. For example, in some implementations, some functionality of the cheating player is reduced, disabled, or turned off, e.g., text / keyboard chat, voice / microphone chat, camera, microphone, etc. In some implementations, such functionality is disabled for a predefined period of time, until a significant event occurs or the session ends. In some implementations, such functionality is specifically disabled with respect to a given player who is the victim of cheating or who has reported the cheating. For example, the cheating player is not permitted to participate in keyboard chat or voice chat with the victim or reporting player.
[0102] In some implementations, the cheating player is masked from other players (either the victim or the reporting player) or is otherwise excluded from socializing with that player. In some implementations, the cheating player is made invisible or transparent so that other players cannot see the cheating player in the game. In some implementations, other players are made invisible to the cheating player so that the cheating player cannot see them.
[0103] In some implementations, dishonest players are socially removed by being moved to another part of the game world.
[0104] In some implementations, the appearance of a dishonest player is altered, such as by coloring or altering the appearance of the avatar in some way that may provide an indicator of bad reputation.
[0105] In some implementations, the cheating player takes longer to respawn or is subject to a time delay, and in some implementations, before respawning, the cheating player is presented with a tutorial explaining why they were penalized.
[0106] In some implementations, the cheating player is deprioritized in the game queue by being slowed down, delayed, suspended, etc. from joining the multiplayer matchmaking queue. In some implementations, the cheating player is prevented or suspended from joining sessions that have characteristics or players with which the cheating player has previously cheated.
[0107] In some implementations, dishonest player tool tips are modified to include tips on how not to be rude or avoid cheating.
[0108] Of course, the particular corrective action applied in a given instance may depend on the particular misconduct detected. For example, the selected corrective action may be configured to prevent the recurrence of the misconduct. In some implementations, a mapping is established between different types of misconduct situations and different types of corrective actions that are applied accordingly.
[0109] Additionally, the degree of corrective action may be adjusted depending on the severity of the misconduct or situation. For example, in some implementations, the length or scope of the feature disablement increases depending on the severity of the misconduct, so that for more serious misconduct, feature / feature disablement may be imposed for a longer period or for more features, and for less serious misconduct, feature / feature disablement may be imposed for a shorter period or for fewer features. In the case of transfers, the transfer of a cheating player may be more or less sudden depending on the severity of the misconduct, with more serious misconduct meriting a more sudden transfer and less serious misconduct meriting a more transparent and fluid transfer.
[0110] A similar concept may be applied to a cheating player who continues to engage in cheating despite one or more warnings. For example, cheating by an offender after one or more warnings may be considered more serious than an initial instance of cheating that is not preceded by a warning.
[0111] Furthermore, there may be various levels of what is considered cheating by the system. This may be implemented, for example, through machine learning models and / or a verification process. Activity detection may be adjusted to be more or less sensitive to cheating, for example, by a video game, a host player of a given session, etc. In some implementations, the severity of the activity may be adjusted based on various factors. For example, if a player is accused by a small number of players for the first time, such behavior may be considered less severe than if the player is a repeat offender after receiving warnings.
[0112] Players may have different levels of sensitivity in terms of what they perceive as bad behavior. Thus, in some implementations, player reporting / flagging may be tracked and analyzed to determine how sensitive a given player is to various types of behavior. Thus, the sensitivity of a reporting player may be a factor or weight used in considering whether an alleged cheating incident occurred and the severity of such incident. For example, some players may be overly sensitive and have a tendency to make false accusations. Thus, by adjusting the sensitivity level of that player, the system may be better able to filter out false accusations.
[0113] In some implementations, there may be flexible penalties for cheating. For example, in some implementations, a cheating player may be presented with options to encourage better behavior. For example, in the case of a respawn delay as a penalty, a cheating player may be presented with the option to (a) accept the respawn delay, or (b) be respawned immediately if he agrees not to cheat any more, but agree to a harsher penalty (e.g., a longer respawn delay or removal from the session) if further cheating is detected. In this way, a cheating player has the option to reduce or eliminate the penalty for recent behavior in exchange for agreeing to accept a worse penalty if cheating is detected in the future.
[0114] It may also be important to protect a given player from retaliation for flagging another player. Thus, in some implementations, the reporting player may be hidden from the view of the dishonest player. In some implementations, the reporting player's screen name is blurred or otherwise made invisible. In some implementations, the reporting player is informed of privacy settings, as information may be contained in a public profile. Thus, the reporting player may be informed of information in their public profile that may expose them to retaliation.
[0115] In some implementations, the player conduct system implements a reputation system 612 in which player reputations are managed. In some implementations, the reputation system 612 is a points-based system in which players earn reputation points, with a higher number of reputation points representing a better reputation and a lower number of reputation points representing a worse reputation. In some implementations, players who exhibit good behavior or do not engage in bad behavior earn positive reputation points for their good behavior. Meanwhile, players who exhibit bad behavior earn negative reputation points and lose reputation points. In some implementations, to discourage players from making false reports, players may be punished (e.g., receive negative reputation points) if they falsely accuse another player of bad behavior. In some implementations, the reputation system 612 stores information about a player's reputation in a player conduct registry, including the player's reputation information / points, the player's reputation history, any bad behavior incidents / events, etc.
[0116] Of course, it is important to provide a mechanism for dishonest players to rebuild / restore their reputation so that they are not permanently affected by penalties for dishonest behavior. Thus, in some implementations, players build reputations by exhibiting good behavior, and if they are free of cheating / flagging for an extended period of time, the player's reputation is automatically increased, e.g., by adding points to their reputation. Thus, dishonest players can rebuild their reputation over time by not engaging in cheating behavior.
[0117] 7A illustrates a player view of a scene in a video game where a player has been flagged for cheating or malicious behavior, according to an embodiment of the present disclosure. In the illustrated embodiment, a player view of a multiplayer video game scene 700 is shown. The players are represented by virtual characters 702 that the players control or manipulate during game play.
[0118] In the illustrated embodiment, a player is reported / flagged for fraudulent or malicious behavior, and in response, popup notifications 704 and 706 are displayed in the player's view. The player may have been reported by other players or by the behavior detection system itself using machine learning models. Notification 704 indicates that malicious behavior has been reported, and notification 706 further indicates that the captured data of the alleged malicious behavior is being analyzed, e.g., to determine the nature of the malicious behavior and to verify it. The popup notification / message can be displayed as soon as the player is flagged, so that the player is informed of the reported behavior as soon as the malicious behavior is reported. Of course, the popup notification can be a small in-game notification so as not to overly disrupt the player's gameplay or obscure too much of the player's field of view.
[0119] FIG. 7B illustrates a player view of the video game after analysis of the captured data, according to the embodiment of FIG. 7A. As shown, if an action is confirmed / verified as constituting cheating, more information is displayed to the player. For example, a larger notification 708 is presented with further explanation. Such a larger notification 708 can be presented at a time that is less likely to interfere with gameplay, such as after the game is over or during a time of low activity (e.g., low or no combat activity). In some embodiments, additional information regarding the malicious action is also sent to the player via other messaging platforms, such as the game platform messaging system, email, phone text message, social network message, chat service, or other electronic inbox. Of course, in some embodiments, notifications and information regarding cheating can be communicated using voice audio that can be presented to the player during or after gameplay.
[0120] In the illustrated implementation, the notification 708 indicates to the player that they have been flagged for bad behavior during a particular game. A more detailed description of the particular behavior that was determined to be abusive is provided. Also, the impact of the behavior is indicated, for example, the player may be suspended from the game service / network if a certain number of instances of bad behavior are reached. The notification 708 further includes a link to further details or to view a video of what the player was reported to be doing. In some implementations, the video is accessible by pressing a controller button.
[0121] Additionally, the notification 708 further indicates that the user may indicate that they do not agree. In some implementations, the player may press a button to indicate that they believe they have been falsely reported. In some implementations, indicating such a discrepancy may trigger further verification, such as verifying whether the action was fraudulent by questioning other players. In some implementations, to prevent abuse of such an option, penalties may be more severe if a player indicates that they do not agree and then additional verification confirms that the alleged fraudulent action was fraudulent.
[0122] As described, in some implementations, a weighting function is applied to determine whether an action is considered egregious or cheating and / or the severity of the penalty imposed. For example, a third party complaint may not be weighted as highly as a complaint / flag from a member of a player's own team. Also, various actions (e.g., AFK, griefing, chat cheating, etc.) may be weighted differently.
[0123] Additionally, in some implementations, the machine learning model may be applied to earlier portions of gameplay to identify previous instances of cheating. Perhaps the time that the instance was reported was the last or most recent time it occurred. However, there may be previous instances, and the machine learning model can identify these. Of course, analyzing an entire video, or game state captures from a game session, may be very resource intensive. Thus, in some implementations, to reduce the amount of processing required, the machine learning system may determine times of interaction between players (e.g., between the accused player and any other players) to determine times when cheating may have occurred. Similarly, the machine learning system may determine other times of particular situations or conditions where a particular malicious act may occur, and analyze such times to determine where such act occurred.
[0124] 8A and 8B illustrate application of an automated recognition system to identify possible cheating behavior to facilitate reporting by players during game play, according to an embodiment of the present disclosure. For example, in FIG. 8A, a player view of a scene 800 of a multiplayer video game is shown. The player view is of a first player, represented in the illustrated implementation by a first virtual character 802. Also shown in the player view is another virtual character 804 of a second player. As a non-limiting example, the second player may currently be "griefing" or no longer trying to help the other player win the match in the multiplayer game. The problem with reporting cheating is that it is generally cumbersome to report and requires the time and attention of the reporting player, which may be impractical in-game and difficult to type and describe, especially using a console gaming system without a keyboard.
[0125] Thus, in some implementations, the player conduct system implements automatic recognition of potentially abusive behavior during gameplay and brings it to the attention of one or more players in the game. For example, as shown in FIG. 8B, a pop-up notification 806 appears in the player view of the first player because the system has determined that a second player may be engaging in malicious behavior. The notification 806 indicates that the second player appears to be griefing and asks if the first player would like to report it. As a non-limiting example, a particular button can be pressed to either continue reporting the second player or not report it.
[0126] In this way, reporting of bad behavior by other players can be made more frictionless since players do not even need to identify what a cheating player is doing, since it is automatically recognized. This is important because reporting cheating is otherwise very frictionless, and many cheating actions go unreported simply due to the effort of filing a report. Of course, in some implementations, as players flag other players, the machine learning system can collect data (e.g., game state and video capture) to form a training dataset, and the machine learning can be trained to recognize and classify various types of cheating actions in substantial real-time during an active game session. Also, player reporting becomes significantly more frictionless, since the machine learning model automatically recognizes cheating actions.
[0127] In some implementations, once a player indicates that cheating has occurred, such as by pressing a button, a previous period (e.g., the previous 30 seconds) is analyzed by a machine learning model to determine if cheating occurred and what type of cheating occurred. Again, the reporting player does not need to specify exactly what cheating occurred; the machine learning system can determine the type and details of the cheating and present the results to the reporting player for review.
[0128] In some implementations, other triggers of potentially malicious behavior may be recognized. For example, a player may verbally express frustration or anger toward another player who is engaging in misconduct. Thus, in some implementations, the player's verbal expressions are recognized by the system (e.g., through the player's microphone / headset, using voice recognition), which triggers analysis by a machine learning model to determine whether and what type of misconduct has occurred. In some implementations, other player cues such as gestures and facial expressions are recognized (e.g., through a camera facing the player, using face / gesture recognition).
[0129] In some implementations, the machine learning model can be trained from previous gameplay to understand the proper mechanics of a given scenario in a video game, such that the machine learning model is able to recognize when a player's actions deviate from proper mechanics and may constitute malicious or fraudulent behavior.
[0130] Implementations of the present disclosure may be included as part of a game engine. Broadly speaking, a game engine is a software development framework that provides features that enable efficient development of video games. A game engine may include software libraries with reusable modules for handling various aspects of game functionality, including, by way of non-limiting example, graphics rendering (including, for example, vertex processing, polygon processing, shading, lighting, texturing, etc.), sound, physics (including collision handling), animation, scripting, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graphs, cinematics, etc.
[0131] A game engine can be optimized for various hardware platforms, such as game consoles, mobile devices, personal computers, etc. As a non-limiting example, the game engine may optimize memory usage depending on the platform (e.g., how to prioritize various tasks in a graphics pipeline, etc.). In some implementations, the hardware may be a bladed version of some particular processing entity, such as a game console. In this manner, a user may be assigned to a particular blade, which results in the same hardware for which the console game was optimized.
[0132] Of course, there may also be game server logic for providing streaming and / or other services (packetization, encoding, Quality of Service (QOS) monitoring, bandwidth testing, access to social networks / friends, etc.).
[0133] In some implementations, the cloud infrastructure may run a hypervisor, which abstracts the hardware and provides a virtual machine framework onto which an operating system (OS) can be loaded. Thus, the stack may include applications / video games running on an OS that is loaded into a virtual machine (VM) instantiated by the hypervisor, which is loaded onto the underlying hardware. In this way, the execution of the application is not necessarily tied to specific hardware.
[0134] In some embodiments, applications / video games may run on containers, which are abstracted at the application layer and package the code and dependencies together, allowing software development independent of OS and hardware platform, and facilitating software portability across platforms.
[0135] In some implementations, a distributed game engine is employed where different parts of the game engine can be processed by different computational entities. For example, the functionality of the game engine, such as physics engine, rendering engine (2D / 3D graphics), sound, scripting, animation, AI, networking, streaming (coding), memory management, threading, etc., can be split into different functional processing blocks and / or services that are distributed among many different computations. Naturally, for a distributed game engine, low latency communication is required to avoid latency issues. To maintain a desired frame rate, the total computation and communication time must meet certain constraints. Therefore, it may or may not be efficient to split certain tasks depending on whether the process can be completed in a shorter time.
[0136] The advantage of using a distributed game engine is the availability of elastic computing, which allows computing resources to be scaled up or down as needed. For example, in a large multiplayer game that traditionally runs on a single hardware server, once about 100 players join, the hardware resources become limited and no more players can be added. The game may queue additional players, meaning that players have to wait to join the game. However, with a distributed game engine, by using elastic cloud computing resources, more compute nodes can be added to meet demand, and thus, for example, thousands of players can be utilized. The game is no longer constrained by the limitations of a particular hardware server.
[0137] Thus, a cloud game engine can distribute functionality across different processing entities. Of course, different functions can run in different frameworks. For example, some functionality (e.g. social) may be easier to run in containers, while graphics may be better run using a VM with an attached GPU.
[0138] To facilitate distribution of cloud game engine functionality, a distribution / synchronization layer can manage the distribution of jobs, e.g., sending jobs, receiving data, identifying which tasks are to be performed when, and handling queuing if a job finishes sooner than necessary. In some implementations, a given task may be dynamically subdivided as needed. For example, an animation may have lighting, and if the lighting is particularly complex, the lighting may be subdivided into three lighting jobs, which can be sent for computing and reconstructed once they are returned. Thus, game engine functionality can be subdivided if more work is required.
[0139] A cloud service provider offers computing at a particular performance level, for example, input / output operations per second ("IOPS"), and thus a game provider may specify VMs, dedicated processing power, amount of memory, etc. from the cloud service provider and may instantiate a distributed cloud game engine using the cloud service provider's system.
[0140] In some implementations, the library module and the update handler may be one or more components or modules of the game engine. In some implementations, the library module and the update handler may be separate components or may be integrated. In some implementations, the library module and the update handler may operate as an addition to the game engine. In some implementations, the game engine may be a distributed game engine as described above.
[0141] As mentioned above, the embodiments of the present disclosure can be applied to a cloud gaming system. One example of a cloud gaming system is the Playstation® Now cloud gaming system. In such a system, the client device may be a game console, such as a Playstation® 4 or Playstation® 5 game console, or may be another device, such as a personal computer, a laptop, a tablet, a mobile phone, a mobile device, etc.
[0142] Broadly speaking, to enable cloud gaming, several operations are performed by one or more servers in a data center associated with the cloud gaming site when a user request is received for a game title. When the cloud gaming site receives the user request, a data center that hosts a game associated with the selected game title is identified, and a request is sent to the identified data center to instantiate the game of the selected game title. In response to the request, a server in the data center identifies a game code, loads the identified game code, and initializes files associated with the game code in preparation for presenting the game content to the user. The game data associated with the game may include general game data and user-specific game data. Thus, initializing the files may include identifying, loading, and initializing both general game data and user-specific game data. Initializing the general game data may include initializing a graphics engine, installing graphics data, initializing sound files, installing artwork, etc. Initializing the user-specific data may include retrieving, transferring, and installing user data, user history, game history, etc.
[0143] While the general game data is being loaded and initialized, a "splash" screen may be provided for rendering on the client device. The splash screen may be designed to provide a representative image of the game being loaded, allowing the user to preview the type of game being loaded. Once the general game data is loaded, certain initial content may be rendered and selection / navigation screens may be presented for user selection and customization. User selection inputs provided on the selection / navigation screens may include game level selection, game icon(s) selection, game mode selection, game prizes (awards), and other user-related data that may require uploading of additional game content. In some embodiments, the game content is made available by streaming the game content from a game cloud system to the user's computing device for viewing and interaction. In some implementations, after loading the user-specific data, the game content is made available for game play.
[0144] FIG. 9A illustrates an exemplary system used to load game files for games available through a cloud gaming site. The system includes multiple client devices 900 communicatively connected to a cloud gaming site 904 via a network 902, which may include a LAN, wired, wireless, cellular (e.g., 4G, 5G, etc.), or any other type of data network including the Internet. When a request to access the cloud gaming site 904 is received from a client device 900, the cloud gaming site 904 accesses user account information 906 stored in a user data store 908 to identify a user associated with the client device from which the request was initiated. In some embodiments, the cloud gaming site may also validate the identified user to determine all games the user is authorized to view / play. Following user account identification / verification, the cloud gaming site accesses a game title data store 910 to identify game titles available at the game cloud site for the user account that initiated the request. The game title data store 910 then interacts with a game database 912 to obtain game titles of all games available to the cloud gaming site. When a new game is introduced, the game database 912 is updated with the game code and game title information of the newly introduced game is provided to the game title data store 910. The client device from which the request is initiated may or may not be registered with the cloud gaming site when the request is initiated. If the user of the client device that initiated the request is not a registered user, the cloud gaming site may identify the user as a new user and select a game title appropriate for the new user (e.g., from a default set of game titles). As shown in FIG. 9A, the identified game title is returned to the client device for presentation on the display screen 900-a.
[0145] A user interaction with one of the game titles rendered on the client device is detected, and a signal is sent to the cloud gaming site. The signal includes game title information on which the user interaction was detected and the user interaction registered with the game title. In response to the signal received from the client device, the cloud gaming site proactively determines the data center on which the game is hosted and sends a signal to the identified data center to load the game associated with the game title on which the user interaction was detected. In some embodiments, multiple data centers may host the game. In such an embodiment, the cloud gaming site may determine the geographic location of the client device that initiated the request, identify a data center geographically close to the client device, and send a signal to preload the game to that data center. The user's geographic location may be determined using a global positioning system (GPS) mechanism in the client device, the client's IP address, and the client's ping information, to name a few examples. Of course, the above-mentioned methods of detecting the user's geographic location may be exemplary, and other types of mechanisms or tools may be used to determine the user's geographic location. Identifying a data center close to the client device can minimize latency during user interaction with the game. In some embodiments, the identified data center may not have the bandwidth / processing power required to host the game or may be overused. In these embodiments, the cloud gaming site may identify a second data center that is geographically closer to the client device. Loading the game includes loading the game code and running an instance of the game.
[0146] In response to receiving a signal from the cloud gaming site, the identified data center may select a server at the data center to instantiate the game on the server. The server is selected based on available hardware / software capabilities and game requirements. The server may include multiple game consoles, and the server may determine which of the multiple game consoles to use to load the game. The game console may resemble an independent game console, or may be a rack-mounted server or a blade server. The blade server may in turn include multiple server blades, each blade having the circuitry necessary to instantiate a single dedicated application, such as a game. Of course, the above game consoles are exemplary and should not be considered limiting. Other types of game consoles, including game stations and the like, and other forms of blade servers may also be used to host the identified game.
[0147] Once the game console is identified, general game-related code for the game is loaded onto the game console and a signal is sent back over the network to the client device via the cloud gaming site identifying the game console on which the game is to be instantiated, such that the loaded game is made available to the user.
[0148] 9B is a flow diagram conceptually illustrating various operations performed to stream a cloud video game to a client device, according to an embodiment of the present disclosure. A gaming system 918 runs a video game and generates raw (uncompressed) video 920 and audio 922. The video 920 and audio 922 are captured and encoded for streaming purposes, as shown in the example diagram by reference numeral 924. The encoding can provide compression of the video and audio streams to reduce bandwidth usage and optimize the gaming experience. Example encoding formats include H.265 / MPEG-H, H.264 / MPEG-4, H.263 / MPEG-4, H.262 / MPEG-2, WMV, VP6 / 7 / 8 / 9, etc.
[0149] The encoded audio 926 and encoded video 928 are further packetized into network packets, as indicated at reference numeral 932, for transmission over a network, such as the Internet. The network packet encoding process may also employ a data encryption process, thereby providing enhanced data security. In the illustrated embodiment, audio packets 934 and video packets 936 are generated for transport over the network, as indicated at reference numeral 940.
[0150] The gaming system 918 further generates haptic feedback data 930, which is also packetized into network packets for network transmission. In the illustrated embodiment, haptic feedback packets 938 are generated for transport over the network, as further indicated by reference numeral 940.
[0151] The aforementioned operations of generating raw video and audio and haptic feedback data, encoding the video and audio, and packetizing the encoded audio / video and haptic feedback data for transport are performed on one or more servers that collectively define the cloud gaming service / system. As indicated at reference numeral 940, the audio, video, and haptic feedback packets are transported over a network such as and / or including the Internet. As indicated at reference numeral 942, the audio packets 934, video packets 936, and haptic feedback packets 938 are decoded / reconstructed by the client device to define encoded audio 946, encoded video 948, and haptic feedback data 950 at the client device. If the data is encrypted, the network packets are also decoded. The encoded audio 946 and encoded video 948 then generate client-side raw audio and video data for rendering on a display device 952, as indicated at reference numeral 944. The haptic feedback data 950 can be processed / communicated to generate a haptic feedback effect at a controller device 956 or other interface device capable of rendering the haptic effect. One example of a haptic effect is a vibration or rumble of the controller device 956.
[0152] Of course, the video game responds to user input, so that a similar procedural flow as described above for transmitting and processing user input can be performed in the reverse direction from the client device to the server. As shown, a user operating a controller device 956 may generate input data 958. This input data 958 is packetized at the client device for transport over the network to the cloud gaming system. The input data packets 960 are decompressed and reassembled by the cloud gaming server to define input data 962 on the server side. The input data 962 is provided to the gaming system 918, which processes the input data 962 to update the game state of the video game.
[0153] During transport (reference numeral 940) of audio packets 934, video packets 936, and haptic feedback packets 938, data transmission over the network can be monitored to ensure quality of service of the cloud gaming stream. For example, network conditions including both upstream and downstream network bandwidth can be monitored, as indicated by reference numeral 964, and game streaming can be adjusted in response to changes in available bandwidth. That is, encoding and decoding of network packets can be controlled based on current network conditions, as indicated by reference numeral 966.
[0154] FIG. 10 illustrates an embodiment of an information service provider architecture. An information service provider (ISP) 1070 delivers a number of information services to users 1082 that are geographically distributed and connected via a network 1086. An ISP may deliver only one type of service, such as stock price updates, or a variety of services, such as broadcast media, news, sports, games, etc. Furthermore, the services offered by each ISP are dynamic, i.e., services can be added or removed at any time. Thus, the ISPs that provide a particular type of service to a particular individual may change over time. For example, while a user is in his / her hometown, he / she may be served by an ISP near him / her, and when the user moves to another town, he / she may be served by a different ISP. The local ISP forwards the necessary information and data to the new ISP, so that the user information "follows" the user to the new town, making the data closer to the user and easier to access. In another embodiment, a master-server relationship may be established between a master ISP that manages the user's information and a server ISP that interfaces directly with the user under the control of the master ISP. In another embodiment, as the client moves around the world, data is transferred from one ISP to another, and the ISP that is better positioned to provide services to the user becomes the ISP that provides those services.
[0155] The ISP 1070 includes an Application Service Provider (ASP) 1072, which provides computer-based services to customers over a network (e.g., including, by way of non-limiting example, any wired or wireless network, LAN, WAN, WiFi, broadband, cable, fiber optic, satellite, cellular (e.g., 4G, 5G, etc.), the Internet, etc.). Software provided using the ASP model is sometimes referred to as on-demand software or software as a service (SaaS). A simple form of providing access to a particular application program (e.g., customer relationship management) uses a standard protocol such as HTTP. The application software resides on the vendor's system and is accessed by the user through a web browser using HTML, by dedicated client software provided by the vendor, or by other remote interfaces such as a thin client.
[0156] Services delivered across large geographical regions often use cloud computing. Cloud computing is a computing style in which dynamically scalable, often virtualized resources are provided as a service over the Internet. Users do not need to be experts in the technical infrastructure of the "cloud" to assist them. Cloud computing can be divided into various services such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services often provide common business applications online that are accessed from a web browser, but the software and data are stored on servers. The term cloud is used as a metaphor for the Internet (e.g., using servers, storage, and logic) based on how the Internet is depicted in computer network diagrams, and is an abstraction of the complex infrastructure that the Internet hides.
[0157] Additionally, the ISP 1070 includes a Game Processing Server (GPS) 1074 that is used by game clients to play single and multiplayer video games. Most video games played over the Internet operate through a connection to a game server. Typically, the games use a dedicated server application that collects data from players and distributes it to other players. This is more efficient and effective than a peer-to-peer configuration, but requires a separate server to host the server application. In another embodiment, the GPS establishes communication between players, and each of the players' game playing devices exchanges information without relying on a centralized GPS.
[0158] A dedicated GPS is a server that runs independently of the client. Such servers usually run on dedicated hardware located in a data center, providing more bandwidth and dedicated processing power. Dedicated servers are the preferred method of hosting game servers for most PC-based multiplayer games. Massively multiplayer online games are usually run on dedicated servers hosted by the software company that owns the game title, allowing the dedicated server to control and update the content.
[0159] The Broadcast Processing Server (BPS) 1076 distributes the audio or video signal to the audience. Broadcasting to a very small audience is sometimes called narrowcasting. The final step in broadcast distribution is how the signal reaches the listener or viewer, which may be terrestrial to an antenna and receiver, similar to a radio or television station, or through cable television or cable radio (or "over-the-air cable") via a station, or directly from a network. The Internet can also deliver radio or television to the recipient, especially using multicast, which can share signals and bandwidth. Historically, broadcasting has been scoped by geographical area, such as national or local broadcasting. However, with the proliferation of high-speed Internet, broadcasting is no longer defined by geography, as content can reach almost every country in the world.
[0160] Storage service providers (SSPs) 1078 provide computer storage space and related management services. SSPs also provide periodic backups and archiving. Providing storage as a service allows users to order more storage as needed. Another major benefit is that SSPs include backup services so that users do not lose all of their data if their computer's hard drive fails. Furthermore, multiple SSPs can have full or partial copies of user data, allowing users to access data in an efficient manner, regardless of where the user is located or the device used to access the data. For example, a user can access personal files on a computer at home and the same on a mobile phone while the user is on the move.
[0161] A communications provider 1080 provides connectivity to users. One type of communications provider is an Internet Service Provider (ISP), which provides access to the Internet. ISPs connect customers using any data transmission technology suitable for providing Internet protocol datagrams, such as dial-up, DSL, cable modem, fiber, wireless, or dedicated high-speed interconnects. Communications providers may also provide messaging services, such as email, instant messaging, and SMS text. Another type of communications provider is a Network Service Provider (NSP), which sells bandwidth or network access by providing direct backbone access to the Internet. Network service providers may consist of telecommunications companies, data carriers, wireless communication providers, Internet service providers, cable television operators providing high-speed Internet access, and the like.
[0162] A data exchange 1088 interconnects several modules in the ISP 1070 and connects these modules to users 1082 via a network 1086. The data exchange 1088 can cover a small area where all modules of the ISP 1070 are in close proximity, or it can cover a large geographic area where different modules are geographically dispersed. For example, the data exchange 1088 could include a high-speed Gigabit Ethernet (or faster) in a cabinet of a data center, or an intercontinental virtual area network (VLAN).
[0163] A user 1082 accesses remote services using a client device 1084 that includes at least a CPU, memory, display, and I / O. The client device may be a PC, a cell phone, a netbook, a tablet, a gaming system, a PDA, etc. In one embodiment, the ISP 1070 recognizes the type of device used by the client and adjusts the communication method employed. In other cases, the client device accesses the ISP 1070 using a standard communication method such as html.
[0164] Embodiments of the present disclosure may be practiced with a variety of computer system configurations, including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, etc. The present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wire-based or wireless network.
[0165] In some embodiments, the communication may be facilitated using wireless technology. Such technologies may include, for example, 5G wireless communication technology. 5G is the fifth generation of cellular network technology. 5G networks are digital cellular networks where the service area covered by a provider is divided into small geographical areas called cells. Analog signals representing voice and images are digitized by the telephone, converted by an analog-to-digital converter, and transmitted as a bit stream. All 5G wireless devices within a cell communicate over the air with a local antenna array and low-power automatic transceiver (transmitter and receiver) within the cell via a frequency channel assigned by the transceiver from a pool of frequencies reused by other cells. The local antennas are connected to the telephone network and the Internet by high-bandwidth optical fiber or wireless backhaul connections. As with other cellular networks, mobile devices moving from one cell to another are automatically transferred to the new cell. Of course, 5G networks are merely examples of types of communication networks, and embodiments of the present disclosure may use previous generations of wireless or wired communication, as well as later generations of wired or wireless technologies that come after 5G.
[0166] In view of the above embodiments, it will be appreciated that the present disclosure may employ various computer-implemented operations involving data stored in computer systems. These operations are operations requiring physical manipulation of physical quantities. Any of the operations described herein that form part of the present disclosure are useful machine operations. The present disclosure also relates to devices or apparatus for performing these operations. The apparatus may be specially constructed for the required purpose, or the apparatus may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines may be used with computer programs written in accordance with the teachings herein. Alternatively, it may be more expedient to construct a more specialized apparatus to perform the required operations.
[0167] The present disclosure can also be embodied as computer readable code on a computer readable medium. Alternatively, the computer readable code may be downloaded from a server using the aforementioned data exchange interconnect. The computer readable medium is any data storage device that can store data, which can then be read by a computer system. Examples of computer readable media include hard drives, network attached storage (NAS), read-only memory, random access memory, CD-ROM, CD-R, CD-RW, magnetic tape, and other optical and non-optical data storage devices. The computer readable medium may include computer readable tangible media distributed over network-coupled computer systems such that the computer readable code is stored and executed in a distributed manner.
[0168] Although the method operations have been described in a particular order, it will be appreciated that other housekeeping operations may be performed between operations, or operations may be coordinated to occur at slightly different times, or may be distributed within a system that allows processing operations to occur at various intervals relative to processing, so long as the processing of the overlay operation is performed in the desired manner.
[0169] Although the foregoing disclosure has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications can be practiced within the scope of the appended claims. Thus, the present embodiments should be considered as illustrative and not restrictive, and the disclosure should not be limited to the details set forth herein, but may be modified within the scope and equivalents of the described embodiments.
Claims
1. 1. A method executed by at least one server computer, comprising: processing the game state data during interactive gameplay of the multiplayer video game to identify gameplay activity of a player as being fraudulent; applying a corrective action to the player during the interactive gameplay in response to the identifying the gameplay activity as being unfair, the corrective action being to provide a reminder to the player of the gameplay activity identified as being unfair; further processing the game state data after applying the corrective action to identify additional game playing activity of the player as fraudulent; imposing a penalty on the player in response to the identifying the additional game playing activity as fraudulent; and Including, the penalty includes moving the player to a different session or server of the multiplayer video game; the penalty includes identifying a breakpoint event in the interactive gameplay, and the moving is performed upon detection of the breakpoint event, rather than immediately after identifying the additional gameplay activity as being fraudulent; The method, wherein the breakpoint event is defined by one or more of the following actions: the player moving more than a predetermined distance away from other players, the player transitioning from one area of virtual space to another area of the virtual space, or the player's line of sight or field of view moving away from other players.
2. The method of claim 1 , wherein the corrective action comprises a warning to the player indicating the penalty.
3. The method of claim 1 , wherein the penalty comprises reducing the player's game playing capabilities.
4. 2. The method of claim 1 , wherein identifying the game play activity of the player as fraudulent comprises receiving a flag initiated by a second player of the multiplayer video game in response to the game play activity of the player.
5. 10. The method of claim 1, wherein identifying the gameplay activity of the player as fraudulent comprises analyzing the interactive gameplay of the multiplayer video game in real time with a machine learning model.
6. 1. A method executed by at least one server computer, comprising: processing the game state data during interactive game play of the first session of the multiplayer video game to identify game play activity of the players as unauthorized; in response to said identifying said game playing activity as fraudulent, moving said player to a second session of said multiplayer video game; Including, and further comprising, in response to identifying the gameplay activity as being illegal, identifying a breakpoint event in the interactive gameplay, wherein the moving is performed upon detection of the breakpoint event, not immediately after identifying the gameplay activity as being illegal; The method, wherein the breakpoint event is defined by one or more of the following actions: the player moving more than a predetermined distance away from other players, the player transitioning from one area of virtual space to another area of the virtual space, or the player's line of sight or field of view moving away from other players.
7. 7. The method of claim 6, wherein moving the player includes capturing settings associated with the player in the first session and initiating the player in the second session using the captured settings.
8. 7. The method of claim 6, wherein moving the players includes capturing a state of the first session of the multiplayer video game and configuring the second session to substantially replicate at least a portion of the state of the first session in the second session without other players of the first session.
9. 7. The method of claim 6, wherein identifying the game play activity of the player as fraudulent includes receiving a flag initiated by a second player of the multiplayer video game in response to the game play activity of the player.
10. 7. The method of claim 6, wherein identifying the gameplay activity of the player as fraudulent comprises analyzing the interactive gameplay of the multiplayer video game in real time with a machine learning model.
11. 1. A method executed by at least one server computer, comprising: receiving a flag initiated by a first player of a multiplayer video game in response to gameplay activity of a second player during interactive gameplay of a first session of the multiplayer video game, the flag being configured to identify the gameplay activity of the second player as potentially fraudulent; in response to receiving the flag, processing recorded gameplay of the multiplayer video game to verify the gameplay activity of the second player as fraudulent; in response to said verifying said game playing activity of said second player as fraudulent, moving said player to a second session of said multiplayer video game; Including, and further comprising: identifying a breakpoint event in the interactive gameplay, further responsive to verifying the gameplay activity of the second player as being fraudulent, wherein the moving is performed upon detection of the breakpoint event, rather than immediately after verifying the gameplay activity of the second player as being fraudulent; The method, wherein the breakpoint event is defined by one or more of the following actions: the second player moving more than a predetermined distance away from other players, the second player transitioning from one area of virtual space to another area of the virtual space, and the second player moving in a line of sight or field of view away from other players.
12. 12. The method of claim 11 , wherein moving the second player includes capturing settings associated with the second player in the first session and initiating the second player in the second session using the captured settings.
13. 12. The method of claim 11, wherein moving the second player includes capturing a state of the first session of the multiplayer video game and configuring the second session to substantially replicate at least a portion of the state of the first session in the second session without other players of the first session.
14. 12. The method of claim 11, wherein verifying the gameplay activity of the second player as fraudulent comprises analyzing the interactive gameplay activity of the second player with a machine learning model.
Citation Information
Patent Citations
Information processing system, server and program, and terminal and program
JP5936748B1
Moderation of cheating in on-line gaming sessions
US20090113554A1
Machine-learned trust scoring for player matchmaking
US20200078688A1
Cited By
Game control system, game control method, and program
JP7924583B1