Method for video game guidance and matching

By recording and training machine learning models based on user gaming behavior, it solves the deficiencies in video game user guidance and matching in the existing technology, achieves personalized gaming experience and intelligent matching, and improves user gaming efficiency and interactivity.

CN119303309AActive Publication Date: 2025-01-14SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202411279291.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-03-15
Filing Date
2020-03-02
Publication Date
2025-01-14
Estimated Expiration
2040-03-02

AI Technical Summary

Technical Problem

The existing technology is difficult to effectively guide and match video game users, and lacks a personalized gaming experience and intelligent matching system.

Method used

By recording video game users' gameplay data, training machine learning models to imitate users' gaming behaviors, and determining users' skill levels and gaming tendencies by evaluating the model's responses to different gaming scenarios, enabling intelligent matching and guidance.

Benefits of technology

It realizes personalized video game guidance and intelligent matching, improves the user's gaming experience and efficiency, and enhances the interactivity and competitiveness of the game.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119303309A_ABST
    Figure CN119303309A_ABST
Patent Text Reader

Abstract

There is provided a method comprising the operations of: recording gameplay data from a first session of a video game, the first session for an interactive gameplay definition of a user; training a machine learning model using the gameplay data, wherein the training causes the machine learning model to mimic the interactive gameplay of the user; after the training, exposing the machine learning model to one or more scenes of the video game such that the machine learning model generates a gameplay action in response to the one or more scenes; and evaluating the machine learning model to determine a classification of the machine learning model in response to the gameplay actions of the one or more scenes, wherein the classification is indicative of descriptive features of a gameplay of the user including a gameplay style; the classification of the machine learning model is used to provide guidance recommendations to the user.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with application number 202080034580.X filed on March 2, 2020 and invention name “AI Modeling for Video Game Guidance and Matching”. Technical Field

[0002] The present disclosure relates to systems and methods for modeling the AI ​​of video game users for coaching and matching. Background Art

[0003] Description of Related Technology

[0004] A currently rapidly developing area of ​​technology is that of video games, which now encompasses a vast array of gaming and interactive application platforms, including dedicated game consoles, personal computers (PCs), and more recently cloud applications / games and mobile devices. An example of a networked gaming service / system is A network that includes a variety of gaming services that support both console-based and cloud-based gaming.

[0005] It is in this context that the embodiments of the present disclosure arise. Summary of the invention

[0006] Implementations of the present disclosure provide methods and systems for AI modeling of video game users for coaching and matching.

[0007] In some implementations, a method is provided, the method comprising the following operations: recording gameplay data from a first session of a video game, the first session being defined for interactive gameplay of a user; using the gameplay data to train a machine learning model, wherein the training causes the machine learning model to mimic the interactive gameplay of the user; after the training, determining a classification of the machine learning model by exposing the machine learning model to one or more scenarios of the video game and evaluating the actions of the machine learning model in response to the one or more scenarios; and using the classification of the machine learning model to assign the user to a second session of the video game.

[0008] In some implementations, the gameplay data includes video of the first session and user input during the interactive gameplay.

[0009] In some implementations, the machine learning model is trained using the video and the user input to cause the machine learning model to respond to the given portion of the video by generating input similar to the user input generated in response to the given portion of the video during the first session.

[0010] In some implementations, the given portion of the video is defined by one or more image frames of the video.

[0011] In some implementations, the user input is defined from a controller device operated by the user during the first session.

[0012] In some implementations, the machine learning model is a neural network.

[0013] In some implementations, the one or more scenes of the video game are defined by one or more image frames of the video game that are not defined from the first session.

[0014] In some implementations, the gameplay data includes game state data from the first session of the video game.

[0015] In some implementations, the classification identifies a skill level of the user; and wherein using the classification to assign the user to the second session includes identifying a skill level of one or more other users, and configuring the second session to include one or more of the other users having a skill level similar to the skill level of the user.

[0016] In some implementations, the classification identifies a skill set of the user; and

[0017] Wherein using the classification to assign the user to the second session includes identifying a skill set of one or more other users, and configuring the second session to include one or more of the other users having a skill set complementary to the skill set of the user.

[0018] In some implementations, assigning the user to the second session of the video game includes inserting an AI bot into the second session, the AI ​​bot using the trained machine learning model to perform gameplay in the second session.

[0019] In some implementations, a method is provided, the method comprising: recording gameplay data from a user session of a video game, the user session being defined for a user's interactive gameplay of the video game; using the gameplay data to train a machine learning model to mimic the user's tendencies in the interactive gameplay; after training, performing an evaluation of the trained machine learning model by exposing the trained machine learning model to predefined scenarios of the video game and analyzing responses of the trained machine learning model to the predefined scenarios; and using the evaluation of the machine learning model to assign the user to a new session of the video game.

[0020] In some implementations, the gameplay data includes video and user input from the user session of the video game.

[0021] In some implementations, the tendency of the user in the interactive gameplay is defined by activity and inactivity of the user in the interactive gameplay.

[0022] In some implementations, performing the evaluation of the trained machine learning model is configured to determine a skill level of the user, and wherein assigning the user to the new session is based on the determined skill level of the user.

[0023] In some implementations, performing the evaluation of the trained machine learning model is configured to determine a skill set of the user, and wherein assigning the user to the new session is based on the determined skill set of the user.

[0024] In some implementations, the machine learning model is a neural network.

[0025] 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 present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The present disclosure, together with further advantages thereof, may be best understood by referring to the following description taken in conjunction with the accompanying drawings.

[0027] Figure 1 A method for training a machine learning model and using the trained machine learning model for various game-related interactions according to an implementation of the present disclosure is conceptually illustrated.

[0028] Figure 2 Conceptually illustrated are systems for training and using machine learning models in various video game-related contexts in accordance with implementations of the present disclosure.

[0029] Figure 3 A process for evaluating or classifying a trained machine learning model that mimics a player's gameplay behavior is conceptually illustrated in accordance with implementations of the present disclosure.

[0030] Figure 4 A system for providing recommendations to a user based on a trained machine learning model in accordance with an implementation of the present disclosure is shown.

[0031] Figure 5 A system for using a trained machine learning model to provide improved matchmaking for a video game in accordance with an implementation of the present disclosure is conceptually illustrated.

[0032] Figure 6 Conceptually illustrated is a library of user accounts that provides multiple machine-trained models for a given user in accordance with implementations of the present disclosure.

[0033] Fig. 7A An exemplary system for loading game files for games available through a cloud gaming site according to implementations of the present disclosure is shown.

[0034] Figure 7B is a flow diagram conceptually illustrating various operations performed to stream a cloud video game to a client device in accordance with an implementation of the present disclosure.

[0035] Figure 8 An embodiment of an information service provider architecture according to implementations of the present disclosure is shown. DETAILED DESCRIPTION

[0036] In the following description, a number of specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be appreciated by those skilled in the art that the present disclosure may be practiced without some or all of these specific details. In other cases, well-known process steps are not described in detail to avoid obscuring the present disclosure.

[0037] Broadly speaking, implementations of the present disclosure relate to methods and systems for using machine learning models to learn how players play video games, including their personal styles, expressions, tendencies, preferences, etc. According to various implementations of the present disclosure, once the machine learning model is trained, it can be used for various game interactions, including AI bot insertion, player coaching, and player matching.

[0038] Figure 1 A method for training a machine learning model and using the trained machine learning model for various game-related interactions according to an implementation of the present disclosure is conceptually illustrated. In the illustrated embodiment, a user 100 plays a video game rendered on a display device 106 through a computing device 104 executing the video game. While the user 100 is playing the video game, the user 100 may operate a controller device 102 to supply user input 108 to the computing device 104. The video game executed at the computing device 104 receives the user input 108 and processes the user input to update the game state. The updated game state is used to render a video 110 (including image frames and audio) for presentation on the display device 106.

[0039] It will be appreciated that in various implementations, the hardware used for the video game experience may be different. For example, the computing device may be a game console, a personal computer, a laptop, a tablet computer, a mobile phone, or any other type of computing device capable of executing a video game as described herein. In some implementations, the video game is a cloud-executed video game, which means that the video game is executed by a cloud game server or a cloud computing resource, which in some implementations may be a virtualized computing resource, and the gameplay is streamed to the display device 106 over a network (including the Internet). In other implementations, the functionality of the computing device 104 may be integrated into the display device 106. In addition, for example, in various implementations, the display device 106 may be a television, an LCD display, a monitor, a mobile device screen (such as a tablet screen or a mobile phone screen), a projector, etc. In some implementations, the display device 106 is a head-mounted display. Additionally, in various implementations, the controller device 102 may be a game controller, a motion controller, a keyboard, a mouse, a trackball, a touch-sensitive trackpad, an image capture device, a microphone, etc.

[0040] According to implementations of the present disclosure, the machine learning model 112 (or artificial intelligence model) is trained to mimic the gameplay of the user 100. That is, the machine learning model 112 is trained in a manner such that if presented with a given game scenario, the machine learning model 112 will be configured to perform gameplay actions in response to the game scenario that are substantially similar to those that would be performed by the user 100 or in accordance with the user's gameplay techniques, skills, style, tendencies, decisions, preferences, communications, movements, etc.

[0041] It will be appreciated that to accomplish this, the machine learning model may be trained using data indicative of the user's experience content (e.g., what the user sees, hears, feels, or otherwise responds or reacts to during game play) and data indicative of the user's gameplay actions (operations or decisions made by the user during game play in response to their experience content). In a sense, the user may be viewed as an agent that receives input in the form of their experience content during video game play and provides output in the form of specific gameplay actions in response to their experience content. Thus, the goal of training the machine learning model 112 is to configure the machine learning model 112 so that it will provide the same output that the user would provide if presented with the same input.

[0042] In some implementations, the machine learning model 112 is trained using a video 110 from a session of the video game and user input 108 from the session. It will be appreciated that in some implementations, the video 110 and user input 108 are first recorded, and the machine learning model 112 is later trained using the recorded data. In other implementations, the machine learning model is trained using the video and user input substantially simultaneously with real-time gameplay of the video game or in substantially real-time. It will be appreciated that the training of the machine learning model 112 may be performed by the computing device 104 or by another device such as a remote server or cloud gaming system. In this regard, in some implementations, the video and user input are recorded by the computing device 104 and then uploaded to a cloud system that receives the video and user input and applies it to training the machine learning model.

[0043] In some implementations, the machine learning model is more specifically trained using image frames from the video 110. In some implementations, the user input 108 is defined by controller input from the controller device 102 (such as button presses, joystick movements, captured motion of the controller device itself, etc.). Broadly speaking, the goal of the training is that the machine learning model 112 will mimic the actions of the user 100 on a decision-by-decision basis. In implementations using image frames as currently described, then each frame of the video can be considered a scene in which the user reacts by generating a controller input such as a button press or by doing nothing. Thus, each frame represents a decision point for the user, and the machine learning model is trained to mimic the user's decisions / actions (including doing nothing) on ​​a frame-by-frame basis. Ideally, the trained machine learning model is configured to generate the same response, in terms of controller input or lack of controller input, as the user would generate in response to a given image frame or sequence of image frames.

[0044] Although the foregoing is described with reference to controller input as user input, it will be appreciated that the principles also apply to any other type of user input, such as user motion or gesture input, captured head mounted display movement, voice input, etc. It will be appreciated that regardless of the kind of user input captured and applied, the goal of machine learning model training is to configure the machine learning model so that it will reproduce the same or similar input in response to a given image frame or sequence of image frames.

[0045] Furthermore, in addition to the image frames as described above, additional information may be used for the purpose of providing training data to the machine learning model 112. For example, audio from the gameplay (which may be included as part of the video 110) may also be used, as the audio is another aspect of the gameplay that the user 100 experiences during the gaming session. Furthermore, in some implementations, haptic feedback information may also be used as part of the training data.

[0046] The frame-by-frame approach described above can be used to enable the machine learning model 112 to emulate the user 100 in a video game, such as a first-person shooter video game. For a first-person shooter video game, the user effectively makes decisions at each frame because the changes between frames indicate the changing state of the video game and can affect the outcome of the game, and the user can react frame by frame. However, in other types of video games, it may not be necessary to train the machine learning model frame by frame because the video game may not change frame by frame in a way that is important for determining the outcome of the video game.

[0047] For example, in a turn-based video game, players take turns issuing commands. And therefore, rather than making decisions frame by frame, decisions are made on each turn for each given player. The state of the video game does not change until the player makes an input, and therefore, for the purpose of training the machine learning model 112, it is not necessary to train frame by frame. Instead, the machine learning model 112 can be trained using data that indicates the experience available to the user (e.g., each turn in which the user has the opportunity to perform an action). It will be appreciated that user input is also used for training purposes in the same manner as previously described. That is, the machine learning model 112 is trained to generate input that is the same or similar to the user input when presented with a given data set indicating the experience available to the user during the game.

[0048] In some implementations, the data indicative of or identifying the user's experience during game play may actually be one or more image frames captured from specific decision points occurring during a session of the video game. However, it will be appreciated that not all image frames rendered during a game play session are used, but rather a subset that sufficiently adequately identifies the user's experience or data available to the user during game play and to which the user responds by providing user input.

[0049] In some implementations, data indicative of or identifying a user's experience during game play may include game state data, including, for example, but not limited to, the location of objects or characters in a virtual environment, properties of objects or characters (e.g., items, health, skills, etc.), or the state of any other variable or entity that may affect gameplay. Furthermore, it will be appreciated that while user input is generally described with particular reference to controller input, other kinds of data (including certain types of game state data) may be used for the purpose of training a machine learning model to define a user's actions in response to the content of the user's experience during game play.

[0050] Once trained, the machine learning model 112 is configured to mimic the gameplay style and tendencies of the user 100. This can be used for various purposes, such as AI bot insertion (reference numeral 114), coaching (reference numeral 116), and matching (reference numeral 118), as discussed in further detail below.

[0051] Broadly speaking, the goal of training the machine learning model 112 can be considered a supervised learning task. In some implementations, the machine learning model 112 is specifically an artificial neural network (e.g., a multi-layer perceptron). In other implementations, the machine learning model 112 can use other types of artificial intelligence or machine learning machines (e.g., support vector machines, linear regression, logistic regression, naive Bayes, decision trees, k-nearest neighbors, etc.) that can be configured to mimic the user's gameplay according to implementations of the present disclosure.

[0052] Figure 2 A system for training and using machine learning models in various video game related contexts according to implementations of the present disclosure is conceptually illustrated. In the illustrated implementation, a client device 212 is connected to a network 210 and communicates with a networked gaming system 200 through the network 210. In some implementations, the client device 212 is a computing device capable of executing a video game 214, such as a game console or a personal computer.

[0053] As already discussed, when user 222 plays video game 214, gameplay data 216 is generated, which can be used to train a machine learning model to learn and emulate the gameplay style and tendencies of user 222. In the illustrated implementation, client devices 224 and 236 are configured similarly to client device 212. For example, client device 224 can execute video game 226 for user 234 to play, and the resulting gameplay data 228 is used to train machine learning model 230 to emulate the gameplay of user 234. Similarly, client device 236 can execute video game 240 for user 248 to play, and the generated gameplay data 242 can be used to train machine learning model 244 to emulate the gameplay of user 248.

[0054] In some implementations, trained machine learning models corresponding to various users can be used to enable video games to be played by AI robots representing users. For example, in some implementations, the video game supports online multiplayer games using the networked game system 200. The networked game system 200 can execute a shared session 202 of the video game, and each of the client devices 212, 224, and 236 is connected to the shared session 202 via the network 210. In a conventional multiplayer video game, each user is tasked with controlling their respective character or entity in the multiplayer session. However, according to implementations of the present disclosure, instead of a given user, an AI robot corresponding to the user can be deployed to play the game on behalf of the user.

[0055] For example, in the illustrated implementation, an AI bot 220 corresponding to a user 222 may participate in a shared session 202 of a video game using a trained machine learning model 218. The AI ​​bot 220 is an agent configured to perform gameplay of the video game on behalf of the user 222. It will be appreciated that the AI ​​bot 220 will perform gameplay of the video game in a manner similar to how the user 222 would play the video game because it is using the trained machine learning model 218 that has learned the user's play style. Similarly, the AI ​​bot 232 may be configured to participate in a shared session 202 of a video game using a machine learning model 230 that has learned the gameplay tendencies of a user 234. Moreover, the AI ​​bot 246 may participate in a shared session on behalf of a user 248 using a trained machine learning model 244 in order to mimic the gameplay style of the user 248.

[0056] By enabling trained AI robots to play games on behalf of users, new interactive experiences become possible. For example, in some implementations, users can play against each other's AI robots. In this way, users may be able to know what it is like to play against another user, even if the user is not available or otherwise unable to participate in the video game. In some implementations, users can play their AI robots against each other. In some implementations, users can watch their own AI robots play video games. This can be entertaining by allowing users to effectively see how they play the game in a real-time environment rather than from a third-person observer perspective. This can further prove to be educational because users can learn by watching their AI robot's gameplay by effectively watching themselves play.

[0057] For example, user 222 and user 234 may wish to play a video game with user 248, e.g., as part of a team or against each other. However, user 248 may not be online while user 222 and user 234 are available. Typically, the unavailability of user 248 will prevent a collective experience from occurring. However, when user 248 is unavailable, user 248's AI robot 246 is available and can play the video game in place of user 248. In this way, users 222 and 234 will not be prevented from experiencing their desired group play, and the gameplay contributions from AI robot 246 will be similar to the contributions that would be provided by user 248 if user 248 were online and available to play the game. Therefore, the use of AI robots allows for simulating multi-player gameplay without full presence.

[0058] In the illustrated implementation, the networked gaming system 200 also includes a communication module 204 that is configured to facilitate communications between users of the system. For example, such communications may include messaging, chat, audio, video, text, email, comments, replies, etc. It will be appreciated that such communications may facilitate the insertion of AI robots into video games, as presently described. For example, one user may send a message to another user or send an invitation to another user to join a multiplayer video game. In response, the system may respond with a message indicating that the other user is unavailable but that their AI robot is available for game play, and provide the sending user with the option to play with or against the AI ​​robot.

[0059] In other implementations, a video game may be configured to provide a feature whereby a user can use another player's AI robot to perform gameplay for a selected scenario or portion of a video game. This can be used to help a user overcome a difficult portion of a game. For example, a user may be at a certain skill level, but may request a more advanced player's AI robot to play a difficult portion of a video game so that they can watch how the more advanced player will play and overcome the difficult portion of the video game. In this way, players who are not too high in level can learn from the gameplay of the more advanced player without actually requiring the more advanced player to participate in demonstrative real-time gameplay. It will be appreciated that this allows less experienced players to observe more experienced players handling specific portions of a video game that they are interested in or have difficulty overcoming, without having to rely on other more time-consuming methods to learn the specific portion, such as searching online for gameplay videos covering the specific portion of the video game.

[0060] Additionally, it will be appreciated that the video game may be configured such that when another player's AI robot is playing the video game, then any achievements are not credited to the original host user account. Thus, the gameplay of another player's AI robot may be viewed or watched by the host user, but will not affect the host user's position or progress in the context of the storyline or objectives of the video game. In this sense, the gameplay of another player's AI robot is gameplay that does not record save points during or upon completion of such gameplay.

[0061] However, in other implementations, a user may be able to intentionally borrow another user's AI robot to play games for him, where the achievements or accomplishments during such gameplay are saved and attributed to the original user's account. In a sense, this is similar to letting a friend play a game for himself or on behalf of someone, without requiring the friend to actually perform the gameplay. In some implementations, a user may pay to use the AI ​​robot of another player, such as using virtual currency, digital assets, digital points, real currency, etc. Therefore, a market is formed in which a user can train and improve his AI robot through conventional gameplay and progress in a video game and then rent his trained AI robot to other users. In some implementations, the AI ​​robot may be rented per unit time or some other measure that quantifies the use of the AI ​​robot, so that the amount paid for renting the AI ​​robot will depend on the amount of the AI ​​robot actually used. In this ecosystem, usage statistics of a given AI robot may be published and obtained, and a user may leave comments related to the AI ​​robot after using the given AI robot.

[0062] Continue to refer Figure 2 , the networked gaming system 200 also includes recommendation logic 206, which is configured to provide recommendations to the user based on the user's trained machine learning model, as discussed further below. Moreover, the networked gaming system 200 additionally includes matching logic 208, which is configured to perform matching activities related to the video game, as discussed further below.

[0063] Additionally, it should be noted that in some implementations, any of the functions that have been described as being performed by a client device may be performed by the networked gaming system 200. For example, in a cloud gaming setting, execution of a video game may be performed by the networked gaming system 200, where the client device is configured to stream gameplay from the networked gaming system over the network 210. Furthermore, in some implementations, storage of gameplay data, training of machine learning models, and implementation of AI bots may be performed by the networked gaming system 200.

[0064] Figure 3A process for evaluating or classifying a trained machine learning model that mimics a player's gameplay behavior according to an implementation of the present disclosure is conceptually illustrated. As already discussed, a machine learning model can be trained for imitation learning, where the machine learning model learns to mimic a user's gameplay so that if presented with the same type of scenario, it will make similar moves to the user. One advantage of training a machine learning model to mimic a user's gameplay behavior is that it is not necessary to observe the actual user or his or her actual gameplay in order to evaluate the user's gameplay. Instead, the machine learning model can be trained to simulate the user's tendencies and then presented with different scenarios, thereby enabling the user's gameplay behavior to be evaluated. This technique is a powerful and accurate method for classifying a user's gameplay behavior because it does not rely on extrapolation from previous scores or achievements, but rather enables direct performance evaluation of specific scenarios to be performed, where the results provide direct performance indications. Therefore, the answer to the question of how a given user will perform in a given scenario is not theoretical or extrapolated, but is based on direct testing of the user's AI robot relative to the actual scenario.

[0065] In the illustrated implementation, the trained machine learning model 300 is applied to various scenarios 302, 304, 306, and 308. Each of these scenarios can be a given game situation and includes data indicating the type of game scenario experienced by the user used to train the machine learning model 300. For example, according to the implementation described above, where the training data includes image frames from a captured video of the user's gameplay, in some implementations, each scene may include an image frame or sequence of image frames, where the image frame defines a specific video game scenario. In some implementations, such an image frame may be a screenshot from a video game. In other implementations, each scene may be defined by other kinds of data that will define the user's experience if this scene is presented to the user.

[0066] Applying the machine learning model 300 to the scenarios 302, 304, 306, and 308 produces corresponding results 310, 312, 314, and 316, respectively. In some implementations, each result is defined by data generated by the machine learning model 300 in response to the scenario. For example, a result may include a controller input generated by the machine learning model in response to the scenario. It will be appreciated that a result may also be defined by the lack of a response action by the machine learning model in response to the scenario.

[0067] At reference numeral 318, an evaluation or classification operation is performed based on the results. For example, in some implementations, this may include determining whether the controller inputs generated by the machine learning model in response to the scenario match a set of predefined controller inputs, which may also include consideration of the order and timing of such controller inputs. In some implementations, the evaluation may include assigning a skill level to the machine learning model or a corresponding user of the machine learning model 300. In various implementations, the evaluation may include determining various skills, experiences, proficiency, character types, styles, tendencies, deficiencies, or any other attributes or classifications that may be attributed to a user or machine learning model based on the results of exposure to various scenarios and may be used for downstream game-related activities (such as providing recommendations / guidance, matching, etc.).

[0068] Thus, a trained AI / machine learning model can be evaluated by presenting it with different scenarios and then classifying it based on how it reacts. In some implementations, this can be performed as an offline process separate from the online training process. A system such as the networked gaming system described above can present various scenarios to a trained machine learning model, record what it does, and then classify it for use in various activities such as matching, collaborative activities, coaching, etc.

[0069] In some implementations, a scenario may be defined by an execution portion of a video game, such as a particular scenario loaded into the video game. The user's machine learning model (or the user's AI bot) may be applied to play that portion of the video game, and the results of the gameplay may be used to classify the machine learning model. It will be appreciated that various video game-specific results may enable classification of the user's machine learning model, such as whether the model survived the scenario, took one or more actions, reached a goal, obtained an achievement, completed something within a given amount of time, etc.

[0070] Figure 4 A system for providing recommendations to users based on a trained machine learning model according to an implementation of the present disclosure is shown. As shown, the trained machine learning model 400 can be evaluated or classified by an evaluation / classification module, which can be configured to perform an evaluation of the machine learning model 400 according to the above principles, including presenting various scenarios to the machine learning model and evaluating the results. The recommendation logic 404 is configured to provide recommendations to users based on the evaluation results of the machine learning model. It will be appreciated that in such implementations as currently described, the evaluation is configured to provide information or classifications that are useful for making recommendations to users, as further described below.

[0071] In some implementations, the system is configured to recommend specific guidance to the player based on the evaluation / classification of the machine learning model to help the player develop and improve his or her gameplay skill set. That is, the evaluation may be configured to identify areas of the user's gameplay to be improved, such as certain skills or techniques. In some implementations, the recommendation logic 404 may provide in-game guidance 406, which provides tips or hints or other helpful information to the player during the game of the video game. It will be appreciated that these guidance prompts are user-specific because they are determined or selected based on the specific user evaluation of the trained machine learning model. In some implementations, the recommendation logic 404 may recommend tutorials or courses 408 to the user, which are generally conducted outside the context of the actual gameplay of the video game. By way of example and not limitation, such tutorials or courses may cause a practice environment to be rendered in which a user can receive guidance and practice certain skills.

[0072] In some implementations, the recommendation logic 404 may provide player comparisons 410, for example, comparing a user to various professional players and providing an indication of which professional players are similar in style. Thus, the recommendation logic 404 may recommend the professional players' styles to the user and may suggest tips for developing a similar style to that of a particular professional player. In this regard, the recommendation logic 404 may recommend certain learning paths.

[0073] In some implementations, the recommendation logic 404 may provide opponent recommendations 412, thereby suggesting opponents for the user to play against in order to help the user improve their game play. In a related implementation, the recommendation logic 404 may provide 14 with a confrontation strategy presentation, for example, which identifies strategies that are effective for the user and encourages the user to adapt these strategies, such as by presenting the user with opponents who effectively employ such strategies in their models.

[0074] It will be appreciated that as a result of the coaching recommendations provided by the recommendation logic 404, new training data may be generated to train the machine learning model 400, as indicated by reference numeral 416. Thus, the machine learning model 400 will change over time as users receive coaching and implement the suggestions and strategies provided by the coaching.

[0075] It should be noted that, according to the above implementation, the evaluation module 402 and the recommendation logic 404 can be combined in a networked game system or various client devices.

[0076] Figure 5A system for providing improved matching for a video game using trained machine learning models according to an implementation of the present disclosure is conceptually illustrated. In the illustrated implementation, various trained machine learning models 500 corresponding to respective users are evaluated by presenting one or more scenarios to the machine learning models and processing the results, as has been described. The results of such evaluation may consist of a classification 502 corresponding to each of the machine learning models 500. In this implementation, these classifications are useful for performing matching functions in a video game, as further described below.

[0077] In the illustrated implementation, the matching logic 504 is configured to perform matching for the video game. Broadly speaking, matching encompasses functions related to the assignment or arrangement of users in a multi-player video game. For example, there may be many sessions of a given multi-player video game, and it is desirable to have players of substantially similar skill levels in a given session of the game so that the game will be competitive. Therefore, in some implementations, the classification of the machine learning model is configured to identify the skill levels of corresponding players, and the matching logic 504 is configured to perform matching for level compatibility, as indicated by reference numeral 506. That is, the matching logic 504 assigns players of substantially similar skill levels to the same session of the video game, and avoids assigning players of different skill levels to the same session.

[0078] In some implementations, for the purpose of joining one of several existing game sessions, the matching logic 504 may identify the skill level of the user wishing to join, and assign the user to the session based on the user's level compatibility with existing users in the session. That is, the matching logic will find the session where the existing players in the session have a skill level similar to the skill level of the new player, and assign the new user to that session. In some implementations, if a user wishes to join a particular game session that is already in progress or has been assigned to several other users, the matching logic 504 may identify the skill level of the players in the given session as well as the skill level of the player wishing to join, and may be configured to notify the user if there is a significant difference in their skill level / compatibility.

[0079] It will be appreciated that since trained machine learning models can be used for evaluation, the skill level of a given user can be classified with a high degree of specificity. For example, some video games may have different kinds of realms, settings, environments, etc., and the skill level of a given player may be different in these different environments. For example, a player may be better at gameplay in a forest type environment than in a city type environment, and therefore his skill level may be different depending on the environment. This can be evaluated by exposing the player's trained model to a forest type environment and a city type environment and tracking the results. This environment-dependent skill level can be taken into account in the level compatibility matching currently described, because the user can be evaluated for the specific environment of a specific session of the video game, and assigned accordingly based on the skill level specific to the specific environment of the given session.

[0080] In some implementations, the matching logic 504 is configured to assign players to different teams based on the evaluation / classification of the machine learning model of the players, as indicated by reference numeral 508. For example, the skill level of the players may be determined as described above and then used to assign the players to different teams in a manner that provides evenly matched teams.

[0081] In some implementations, the matching logic 504 may be configured to perform matching of players based on their skills or tendencies in the gameplay, as indicated by reference numeral 510. For example, in some implementations, players who exhibit similar styles or tendencies may be matched together on the same team. In other implementations, players may be assigned to various teams based on their skills, so that the team formation has a variety of skills. That is, if possible players with similar skill sets are assigned to different teams, each team will have a variety of player types. In some implementations, players are matched with each other based on their skill sets or tendencies complementing each other. For example, given a set of possible skills in a video game, players can be matched with each other as part of a team in a way that maximizes the team's total skills as a whole.

[0082] Considering the competitive match, in some implementations, players with different skill sets or styles are matched together as opponents to provide more interesting gameplay. Conversely, players with similar skill sets may not be matched with each other if possible.

[0083] In some implementations, the matching logic 504 is configured to perform player role filling based on the evaluation of the player's machine learning model, as indicated by reference numeral 512. That is, in a video game, there may be various roles that may be assigned to players. In this context, a given user's machine learning model may be evaluated in terms of how well it performs when fulfilling a particular role. Based on this, the matching logic 504 may determine the best players to fill various roles on a team, for example.

[0084] Additionally, in some implementations, the matching logic may perform matching of AI robots, as indicated by reference numeral 514. It will be appreciated that any of the above-described matching functions applied to a user may also be applied to a corresponding AI robot that may be inserted into a video game, as has been described. For example, an AI robot may be evaluated and arranged or assigned based on level compatibility, skill set, ability to fulfill a given role, etc.

[0085] For example, a team of players may need additional players, and the system may determine the best AI robot to join the team, for example, given a set of available AI robots (such as from corresponding users connected to one or more of the team members in a social graph). In some implementations, the matching logic may perform a player or AI robot search, for example, by determining who is available and who is qualified to fulfill a certain role. By way of example and not limitation, a defensive player or AI robot may be sought, and thus the system will evaluate their defensive capabilities by presenting a defensive scenario to an available trained machine learning model and determining how they react, and then select a player or AI robot based on the results.

[0086] In some implementations, the evaluation / classification of machine learning models may be performed not only individually but also in combination. Different groupings of players may be evaluated by evaluating a combination of trained machine learning models together. For example, in order to evaluate the performance of a group of players as a team, one or more group scenarios in which they participate simultaneously may be presented to their machine learning models or AI robots, and the results may be evaluated. In some implementations, this may cause the execution of functional game engine components so that the effects of actions taken by the models may be simulated, which in turn may affect each other's subsequent actions or decisions. In a related implementation, the performance of a group of players relative to each other may also be evaluated by applying the players' trained models to the same group scenario and determining how each player performs within the group scenario.

[0087] It will be appreciated that a user's machine learning model or AI bot may be continually updated over time, and therefore will change over time. Thus, in some implementations, in order to provide a current evaluation / classification for matching, the machine learning model may be evaluated at the time of a match request (e.g., when a user requests to play a multiplayer video game). In this way, a dynamic matching process is achieved in which the latest classification is used.

[0088] Figure 6Conceptually, a library of user accounts providing multiple machine training models for a given user according to an implementation of the present disclosure is shown. As shown, a user account may have a game library 600, which is composed of various game titles (such as game title A, game title B, and game title C in the implementation shown) owned by the user or accessible to the user. The user account also includes an AI library 602, which includes various machine learning models for each game title in the game library 600. A group of machine learning models for game title A is shown with reference numeral 604, including machine learning models A1, A2, and A3. Similarly, each group of machine learning models for game titles B and C is shown with reference numerals 606 and 608, including machine learning models B1, B2, and B3 for game title B and machine learning models C1, C2, and C3 for game title C.

[0089] It will be appreciated that for a given game title, a user may have one or more machine learning models that have been trained to mimic the user's gameplay. For example, as a user plays a given video game, its machine learning model will evolve, and various states of the machine learning model may be captured and saved. Thus, multiple machine learning models may capture different versions of a player over time and serve as snapshots of the user's abilities for the video game at different times. Generally speaking, it is expected that as a user continues to play a given video game, his or her skill level will increase. In some implementations, it may be useful to be able to obtain a previous machine learning model that indicates the user's abilities (and lower skill level) at a previous time rather than at the current time. For example, a friend at a lower skill level may wish to play against a user who is currently at a higher skill level. Therefore, in order to provide a competitive gameplay experience to a friend, a previous machine learning model of a user with a skill level similar to that of the friend may be deployed on behalf of the user.

[0090] In other implementations, a user may have multiple machine learning models for a given video game corresponding to various purposes within the context of the video game (such as playing different characters, playing different roles, pursuing different achievements or development paths, etc.).

[0091] The classification scenarios will be understood, configured or selected for use in determining the characteristics of the user's machine learning model. In order to determine which types of scenarios or parts of the video game will be used for classification purposes, it may be useful to analyze the user's gameplay and game scenarios to determine which aspects of the gameplay are good indicators to achieve robust classification. For example, the user's gameplay can be analyzed to determine the types of actions that make the player statistically more likely to win or lose. Then, scenarios that highlight the use of such actions can be created for classification purposes. Or in another example, the gameplay of various scenarios of the video game can be analyzed to determine which scenarios are good indicators of user skill or success, for example, users who take a certain action through a certain scenario or in a specific scenario are more likely to win.

[0092] Embodiments 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 a software library with reusable modules to handle various aspects of game functionality, including, for example, but not limited to, graphics rendering (e.g., including vertex processing, polygon processing, shading, lighting, textures, etc.), sound, physics (including collision processing), animation, scripting, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graphs, cinematics, etc.

[0093] The game engine can be optimized for different hardware platforms, such as game consoles, mobile devices, personal computers, etc. By way of example and not limitation, the game engine can optimize memory based on the platform (e.g., how to prioritize various tasks in the graphics pipeline, etc.). In some implementations, the hardware can be a blade-style version of a particular processing entity (such as a game console). Thus, a user can be assigned to a specific blade that gives the same hardware that the console game has been optimized for.

[0094] It will be appreciated that there may also be game server logic to provide streaming and / or other services (packaging, encoding, quality of service (QOS) monitoring, bandwidth testing, access to social networks / friends, etc.).

[0095] In some implementations, the cloud infrastructure may run a hypervisor that abstracts the hardware and provides a virtual machine framework on which an operating system (OS) may be loaded. Thus, a stack may include an application / video game running on an OS loaded on a virtual machine (VM) instantiated by a hypervisor loaded on the underlying hardware. In this way, the execution of the application is not necessarily coupled to specific hardware.

[0096] In some implementations, the application / video game may be executed through a container that is abstracted at the application layer, packaging the code and dependencies together, thereby enabling software development that is agnostic to the OS or hardware platform and facilitating software portability across platforms.

[0097] In some implementations, a distributed game engine is used, where different parts of the game engine can be processed by different computing entities. For example, functions of a game engine such as a physics engine, a rendering engine (2D / 3D graphics), sound, scripting, animation, AI, networking, streaming (encoding), memory management, threading, etc. can be divided into different functional processing blocks and / or services distributed in many different calculations. It will be appreciated that for a distributed game engine, low-latency communication is required to avoid latency issues. In order to maintain the desired frame rate, the total time for calculation and communication should meet certain constraints. Therefore, it may or may not be effective to divide certain tasks based on whether it is possible to complete the process in a shorter time.

[0098] The advantage of using a distributed game engine is that it is possible to take advantage of elastic computing, where computing resources can be scaled up or down as needed. For example, in a large multi-player game that is traditionally executed on a single hardware server, after, for example, about 100 players, the hardware resources become limited, making it impossible to add more players. The game may queue additional players, which means that players must wait to join the game. However, with a distributed game engine, by using elastic cloud computing resources, more computing nodes can be added to meet demand, thus achieving, for example, thousands of players. The game is no longer constrained by the limits of a specific hardware server.

[0099] Therefore, a cloud gaming engine may have functionality distributed to different processing entities. It will be appreciated that different functions may be performed in different frameworks. For example, some functions (e.g., social) may be more easily run in a container, while graphics may be best run using a VM connected to a GPU.

[0100] To facilitate the distribution of the functionality of the cloud gaming engine, the distribution / synchronization layer can manage the distribution of work, e.g., sending work out, receiving data back, identifying what work was performed and when it was performed, handling queues (e.g., if work is completed faster than required). In some implementations, a given task can be dynamically subdivided if necessary. For example, an animation may have lighting, and if the lighting is particularly complex, the lighting may be subdivided into three lighting jobs that are sent out for calculation and reassembled when they return. Thus, if more work is required, the game engine functionality can be subdivided.

[0101] The cloud service provider provides computing at a specified performance level, such as in input / output operations per second ("IOPS"). Thus, the game provider can specify a VM, dedicated processing power, amount of memory, etc. from the cloud service provider and instantiate a distributed cloud game engine using the cloud service provider's system.

[0102] In some implementations, the library module and the update handler may be one or more components or modules of a game engine. In some implementations, the library module and the update handler may be separate components or integrated. In some implementations, the library module and the update handler may operate as a supplement to the game engine. In some implementations, the game engine may be a distributed game engine, as noted above.

[0103] As noted, implementations of the present disclosure may be applied to a cloud gaming system. An example of a cloud gaming system is Now cloud gaming system. In such a system, the client device can be a game console, such as 4 game console, or it could be another device such as a personal computer, laptop, tablet, cell phone, mobile device, etc.

[0104] Broadly speaking, in order to implement cloud gaming, when a user request for a game title is received, several operations are performed by one or more servers in a data center associated with a cloud gaming site. When a cloud gaming site receives a user request, a data center hosting a game associated with a selected game title is identified, and the request is sent to the identified data center to instantiate the game for the selected game title. In response to the request, the server at the data center identifies the game code, loads the identified game code, and instantiates the file associated with the game code to prepare to present the game content to the user. The game data associated with the game may include general game data and user-specific game data. Therefore, initializing the file may include identifying, loading, and initializing both general game data and user-specific game data. Initializing general game data may include initializing a graphics engine, installing graphics data, initializing sound files, installing artwork, etc. Initializing user-specific data may include locating, transmitting, and installing user data, user history, game history, etc.

[0105] When loading and initializing universal game data, a "startup" screen can be provided to render at the client device. The startup screen can be designed to provide a representative image of the game being loaded, so as to allow the user to preview the type of the game being loaded. Once the universal game data has been loaded, some initial content can be rendered and a selection / navigation screen can be presented for user selection and customization. The user selection input provided at the selection / navigation screen may include game level selection, game icon selection, game mode selection, game bonus, and other user-related data that may require uploading additional game content. In some embodiments, game content is made available by streaming game content from the game cloud system to the user's computing device for viewing and interaction. In some implementations, after user-specific data has been loaded, game content can be used to play the game.

[0106] Fig. 7A An exemplary system for loading game files of games available through a cloud gaming site is shown. The system includes multiple client devices 700 communicatively connected to a cloud gaming site 704 via a network 702, which may include a LAN network, a wired network, a wireless network, a cellular network (e.g., 4G, 5G, etc.) or any other type of data network, including the Internet. When a request to access a cloud gaming site 704 is received from a client device 700, the cloud gaming site 704 accesses user account information 706 stored in a user data storage 708 to identify the user associated with the client device through which the request is initiated. In some embodiments, the cloud gaming site may also verify the identified user in order to determine all games that the user is authorized to watch / play. After user account identification / verification, the cloud gaming site accesses a game title data storage 710 to identify the game titles available at the game cloud site for the user account that initiated the request. The game title data storage 710 then interacts with a game database 712 to obtain game titles for all games available for the cloud gaming site. When a new game is introduced, the game database 712 will be updated with the game code, and the game title data storage 710 will be provided with the game title information of the newly introduced game. When a request is made, the client device from which the request is made may or may not be registered with the cloud gaming site. If the user of the client device making the request is not a registered user, the cloud gaming site may identify the user as a new user and select a game title suitable for the new user (e.g., a set of default game titles). The identified game title is returned to the client device for presentation on display screen 700-a, such as Fig. 7A shown.

[0107] Detect user interaction at one of the game titles rendered on the client device, and send a signal to the cloud gaming site. The signal includes game title information where the user interaction is detected and user interaction registered at the game title. In response to the signal received from the client device, the cloud gaming site actively determines the data center hosting the game, and sends a signal to the identified data center to load the game associated with the game title where the user interaction is detected. In some embodiments, more than one data center can host the game. In such embodiments, the cloud gaming site can determine the geographic location of the client device that initiated the request, and identify a data center that is geographically close to the client device and signal the data center to preload the game. The user's geographic location can be determined using a global positioning system (GPS) mechanism in the client device, the IP address of the client, and the delay (ping) information of the client (to name a few). Of course, the aforementioned method for detecting the user's geographic location can be exemplary, and other types of mechanisms or tools can be used to determine the user's geographic location. Identifying a data center close to the client device can minimize delays during user interaction with the game. In some embodiments, the identified data center may not have the required bandwidth / capacity to host the game or may be overused. In these embodiments, the cloud gaming site can identify a second data center that is geographically close to the client device. Loading a game involves loading the game code and executing an instance of the game.

[0108] In response to receiving a signal from a 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 the 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 be similar to a stand-alone game console, or may be a server or blade server mounted on a rack. The blade server may then include multiple server blades, each of which has the required circuitry for instantiating a single dedicated application (such as a game). Of course, the above-mentioned game consoles are exemplary and should not be considered restrictive. Other types of controllers (including game stations, etc.) and other forms of blade servers may also be used to host identified games.

[0109] Once the game console is identified, the generic game-related code for the game is loaded onto the game console, and a signal is returned to the client device via the cloud gaming site over the network, identifying the game console on which the game is instantiated. Thus, the loaded game is available to the user.

[0110] Figure 7B7 is a flowchart conceptually illustrating various operations performed to stream cloud video games to client devices according to implementations of the present disclosure. The gaming system 718 executes the video game and generates raw (uncompressed) video 720 and audio 722. The video 720 and audio 722 are captured and encoded for streaming purposes, as indicated by reference numeral 724 in the illustrated figure. Encoding may provide compression for video and audio streams to reduce bandwidth usage and optimize the gaming experience. Examples of 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.

[0111] The encoded audio 726 and the encoded video 728 are further packaged into network packets, as indicated by reference numeral 732, for transmission over a network (such as the Internet). The network packet encoding process may also employ a data encryption process to provide enhanced data security. In the illustrated implementation, audio packets 734 and video packets 736 are generated for transmission over a network, as indicated by reference numeral 740.

[0112] The gaming system 718 additionally generates haptic feedback data 730 , which is also packaged as a network packet for network transmission. In the illustrated implementation, a haptic feedback packet 738 is generated for transmission over the network, as further indicated by reference numeral 740 .

[0113] The aforementioned operations of generating original video and audio and tactile feedback data, encoding video and audio, and packaging the encoded audio / video and tactile feedback data for transmission are performed on one or more servers that collectively define a cloud gaming service / system. As indicated by reference numeral 740, audio, video, and tactile feedback packets are transmitted over a network (such as and / or including the Internet). As indicated by reference numeral 742, audio packets 734, video packets 736, and tactile feedback packets 738 are decoded / reorganized by the client device to define encoded audio 746, encoded video 748, and tactile feedback data 750 at the client device. If the data has been encrypted, the network packet is also decrypted. Then, the encoded audio 746 and encoded video 748 are decoded by the client device, as indicated by reference numeral 744, to generate client-side original audio and video data for rendering on a display device 752. Tactile feedback data 750 can be processed / communicated to produce a tactile feedback effect at a controller device 756 or other interface device that can render a tactile effect. One example of a haptic effect is vibration or rumbling of the controller device 756 .

[0114] It should be understood that the video game responds to user input and therefore may perform a process flow similar to the above-described process for transmission and processing of user input but in the opposite direction from the client device to the server. As shown, the user operates the controller device 756 to generate input data 758. The input data 758 is packaged at the client device for transmission to the cloud gaming system over the network. The input data packet 760 is unpacked and reassembled by the cloud gaming server to define input data 762 on the server side. The input data 762 is fed to the gaming system 718, which processes the input data 762 to update the game state of the video game.

[0115] During the transmission of audio packets 734, video packets 736, and haptic feedback packets 738 (reference numeral 740), data transmission through the network may be monitored to ensure the quality of service of the cloud game streaming. For example, the network conditions may be monitored, as indicated by reference numeral 764, including both upstream and downstream network bandwidth, and the game streaming may be adjusted in response to changes in available bandwidth. That is, the encoding and decoding of network packets may be controlled based on the current network conditions, as indicated by reference numeral 766.

[0116] Figure 8 An implementation scheme of an information service provider architecture is shown. An information service provider (ISP) 870 provides a large number of information services to users 882 that are geographically dispersed and connected via a network 886. An ISP may deliver only one type of service, such as stock price updates, or may deliver multiple services, such as broadcast media, news, sports, games, etc. In addition, the services provided by each ISP are dynamic, that is, services may be added or removed at any point in time. Therefore, the ISP that provides a particular type of service to a particular individual may change over time. For example, when a user is in his hometown, the user may be served by an ISP close to the user, and when the user travels to a different city, the user may be served by a different ISP. The hometown ISP transmits the required information and data to the new ISP, so that the user information "follows" the user to the new city, thereby making the data closer to the user and easier to access. In another embodiment, a master server relationship may be established between the main ISP that manages the user's information and the server ISP that interfaces directly with the user under the control of the main ISP. In another embodiment, when the client moves around the world, data is transmitted from one ISP to another ISP so that the ISP that is in a better position to provide services to the user becomes the ISP that delivers these services.

[0117] ISP 870 includes an application service provider (ASP) 872 that provides computer-based services to customers over a network (including, for example, but not limited to, 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 also referred to as on-demand software or software as a service (SaaS). A simple form of providing access to a specific application (such as customer relationship management) is through the use of standard protocols (such as HTTP). The application software resides on the vendor's system and is accessed by the user through a web browser using HTML through dedicated client software or other remote interfaces (such as a thin client) provided by the vendor.

[0118] Services delivered over a wide geographic area often use cloud computing. Cloud computing is a computing style in which dynamically scalable and often virtualized resources are provided as services over the Internet. Users do not need to be experts in the technical infrastructure that supports their "cloud". Cloud computing can be divided into different services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services typically provide online general business applications accessed from a web browser, while the software and data are stored on servers. The term cloud is used as a metaphor for the Internet based on how it is depicted in computer network diagrams (e.g., using servers, storage, and logic), and is an abstraction for the complex infrastructure that it hides.

[0119] In addition, ISP 870 includes a game processing server (GPS) 874 that is used by game clients to play single-player and multi-player video games. Most video games played over the Internet are operated via connection to a game server. Typically, games use a dedicated server application that collects data from players and distributes it to other users. This is more efficient and effective than a peer-to-peer arrangement, but it requires a separate server to host the server application. In another embodiment, GPS establishes communication between players, and their corresponding gaming devices exchange information without relying on a centralized GPS.

[0120] Dedicated GPS are servers that run independently of the clients. Such servers are usually run on dedicated hardware located in a data center, thus providing more bandwidth and dedicated processing power. For most PC-based multiplayer games, dedicated servers are the preferred method of hosting game servers. Massively multiplayer online games run on dedicated servers that are usually hosted by the software company that owns the game title, thus allowing them to control and update the content.

[0121] The broadcast processing server (BPS) 876 distributes the audio or video signal to the audience. Broadcasting to a very small range of listeners is sometimes called narrowcasting. The last leg of broadcast distribution is how the signal reaches the listener or viewer, and this last leg can be over the air to the antenna and receiver like a radio or television station, or it can be transmitted through cable television or cable broadcasting (or "wireless cable") via the station or directly from the network. The Internet can also bring radio or television to the recipient, especially through multicasting that allows sharing of signals and bandwidth. Historically, broadcasting has been demarcated by geographical regions, such as national broadcasting or regional broadcasting. However, with the popularity of high-speed Internet, broadcasting is no longer limited by geography, because content can reach almost any country in the world.

[0122] Storage Service Providers (SSPs) 878 provide computer storage space and related management services. SSPs also provide periodic backup and archiving. By providing storage as a service, users can order more storage as needed. Another major advantage is that SSPs include backup services, and users will not lose all their data in the event of a failure of their computer hard drive. In addition, multiple SSPs may have full or partial copies of a user's data, allowing the user to access the data in an efficient manner independent of where the user is located or the device used to access the data. For example, a user can access personal files in a home computer and on a mobile phone when the user is on the move.

[0123] Communications providers 880 provide connections to users. One type of communications provider is an Internet Service Provider (ISP) that provides access to the Internet. An ISP connects its customers using data transmission technologies suitable for delivering Internet Protocol datagrams, such as dial-up, DSL, cable modem, fiber optic, wireless, or dedicated high-speed interconnects. Communications providers also provide messaging services, such as email, instant messaging, and SMS text messages. Another type of communications provider is a network service provider (NSP) that sells bandwidth or network access by providing direct backbone access to the Internet. A network service provider may consist of a telecommunications company, a data carrier, a wireless communications provider, an Internet service provider, a cable television operator that provides high-speed Internet access, and the like.

[0124] Data exchange 888 interconnects several modules within ISP 870 and connects these modules to users 882 via network 886. Data exchange 888 may cover a small area where all modules of ISP 870 are in close proximity, or may cover a large geographic area when different modules are geographically dispersed. For example, data exchange 888 may include fast Gigabit Ethernet (or faster) within a cabinet in a data center, or an intercontinental virtual local area network (VLAN).

[0125] The user 882 accesses the remote service with a client device 884, which includes at least a CPU, memory, display, and I / O. The client device can be a PC, mobile phone, netbook, tablet computer, game system, PDA, etc. In one embodiment, the ISP 870 identifies the type of device used by the client and adjusts the communication method used. In other cases, the client device uses a standard communication method (such as html) to access the ISP 870.

[0126] Embodiments of the present disclosure may be practiced with various 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 linked over wired or wireless networks.

[0127] In view of the above embodiments, it should be understood that the present disclosure may employ various computer-implemented operations involving data stored in a computer system. These operations are those operations that require physical manipulation of physical quantities. Any of the operations that form a part of the present disclosure described herein are useful machine operations. The present disclosure also relates to devices or equipment for performing these operations. The device may be specially constructed for the desired purpose, or the device may be a general-purpose computer selectively activated or configured by a computer program stored in a computer. In particular, various general-purpose machines may be used together with computer programs written according to the teachings herein, or it may be more convenient to construct more specialized devices to perform the desired operations.

[0128] The present disclosure may also be embodied as computer readable code on a computer readable medium. Optionally, the computer readable code may be downloaded from a server using the above-mentioned data exchange interconnect. A 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. A computer readable medium may include a computer readable tangible medium distributed on a network coupled computer system so that the computer readable code is stored and executed in a distributed manner.

[0129] Although the method operations are described in a particular order, it should be understood that other housekeeping operations may be performed between the operations, or the operations may be adjusted so that they occur at slightly different times, or the operations may be distributed in a system that allows processing operations to occur at various intervals associated with the processing, so long as the processing of the superimposed operations is performed in the desired manner.

[0130] Although the foregoing disclosure has been described in some detail for the purpose of clear understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Therefore, the present embodiments are to be considered as illustrative rather than restrictive, and the disclosure is not to be limited to the details given herein, but may be modified within the scope and equivalent range of the described embodiments.

Claims

1. A method, comprising: recording gameplay data from a first session of a video game, the first session being defined for interactive gameplay by a user; training a machine learning model using the gameplay data, wherein the training causes the machine learning model to mimic the interactive gameplay of the user; After the training, exposing the machine learning model to one or more scenarios of the video game so that the machine learning model generates gameplay actions in response to the one or more scenarios; as well as evaluating the machine learning model in response to the gameplay actions of the one or more scenarios to determine a classification of the machine learning model, wherein the classification indicates descriptive features of the user's gameplay including a gameplay style; The classification of the machine learning model is used to provide guided recommendations to the user.

2. The method of claim 1, wherein the coaching recommendation comprises providing an in-game hint to the user during interactive gameplay of a second session of the video game.

3. The method of claim 1, wherein the guidance recommendation comprises a recommendation of a tutorial for the user. 4 . The method of claim 3 , wherein the tutorial is configured to provide a rendering of a practice environment for enabling practice of the selected skill.

5. The method of claim 1, wherein the coaching recommendation comprises a recommendation regarding the gameplay style. The method of claim 1 , wherein the guided recommendation comprises a recommendation based on the classified opponent.

7. The method of claim 1, wherein the gameplay data includes video of the first session and user input during the interactive gameplay.

8. The method of claim 7, wherein the machine learning model is trained using the video and the user input to cause the machine learning model to respond to the given portion of the video by generating input similar to the user input generated in response to the given portion of the video during the first session.

9. The method of claim 8, wherein the given portion of the video is defined by one or more image frames of the video.

10. The method of claim 7, wherein the user input is defined from a controller device operated by the user during the first session.

11. The method of claim 1, wherein the machine learning model is a neural network.

12. The method of claim 1, wherein the one or more scenes of the video game are defined by one or more image frames of the video game that are not defined from the first session.

13. The method of claim 1, wherein the gameplay data comprises game state data from the first session of the video game.

14. A method comprising: recording gameplay data from a user session of a video game, the user session being defined for a user's interactive gameplay of the video game; Using the gameplay data to train a machine learning model to mimic the user's tendencies in the interactive gameplay; After training, exposing the trained machine learning model to predefined scenarios of the video game such that the machine learning model generates responses in response to the one or more scenarios; as well as analyzing the responses of the trained machine learning model to the predefined scenarios to generate an evaluation of the machine learning model, wherein the evaluation indicates descriptive characteristics of the user's gameplay including a gameplay style; The evaluation of the machine learning model is used to provide guidance to the user during a subsequent session of the commentary game.

15. The method of claim 14, wherein the gameplay data includes video and user input from the user session of the video game.

16. The method of claim 14, wherein the tendency of the user in the interactive gameplay is defined by the activity and inactivity of the user in the interactive gameplay.

17. The method of claim 14, wherein performing the evaluation of the trained machine learning model is configured to determine a skill level of the user, and wherein the guidance is based on the determined skill level of the user.

18. The method of claim 14, wherein the machine learning model is a neural network.

Citation Information

Patent Citations

  • Dynamic difficulty adjustment

    CN107158702A

  • Artificial intelligence-based machine learning application type online game

    CN107516134A

  • Multiplayer video game matchmaking system and methods

    CN107970612A

  • Difficulty adaptive game system strategy planning method

    CN108970119A

  • Personalized Data Driven Game Training System

    US20170282063A1