Method for video game coaching and matching

By training machine learning models to mimic user gameplay, this technology solves the problems of multiplayer game experience and matchmaking accuracy when users are offline. It enables AI bots to participate in games and provide personalized guidance, thereby improving the user's gaming experience and learning outcomes.

CN119303309BActive Publication Date: 2025-11-25SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively mimic and guide gameplay, especially when users are offline, impacting the multiplayer gaming experience and the accuracy of player matchmaking.

Method used

By recording user game session data, machine learning models (such as neural networks) are trained to mimic the user's gameplay. The trained models are then used for AI bot insertion, player guidance, and matchmaking, including playing in place of the user when the user is unavailable, and providing personalized recommendations and guidance based on model evaluations.

Benefits of technology

It achieves an efficient multiplayer gaming experience when users are offline, improves the accuracy of player matching and the personalization of game guidance, and enhances the user's learning and entertainment experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119303309B_ABST
    Figure CN119303309B_ABST
Patent Text Reader

Abstract

A method is provided that includes the operations of recording gameplay data from a first session of a video game, the first session defining interactive gameplay 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 scenarios of the video game, such that the machine learning model generates gameplay actions in response to the one or more scenarios; and evaluating the gameplay actions of the machine learning model in response to the one or more scenarios to determine a classification of the machine learning model, wherein the classification indicates a descriptive characteristic of gameplay of the user including a gameplay style; using the classification of the machine learning model to provide a guidance recommendation 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 filed on March 2, 2020, with application number 202080034580.X and invention title "AI Modeling for Video Game Guidance and Matching". Technical Field

[0002] This disclosure relates to systems and methods for AI modeling of video game users for guidance and matching. Background Technology

[0003] Description of related technologies

[0004] The fastest-growing technology field currently is video games, which now encompasses a wide range 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 network game service / system is... The network includes a variety of gaming services that support both console-based and cloud-based games.

[0005] The implementation scheme disclosed herein arose in this context. Summary of the Invention

[0006] The implementation of this disclosure provides methods and systems for AI modeling of video game users for guidance and matching.

[0007] In some implementations, a method is provided that includes the following operations: recording gameplay data from a first session of a video game, the first session being defined for a user's interactive gameplay; using the gameplay data to train a machine learning model, wherein the training causes the machine learning model to mimic the user's interactive gameplay; 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 such that the machine learning model responds to the given portion of the video by generating input similar to the user input generated during the first session in response to a given portion of the video.

[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 the user's skill level; and using the classification to assign the user to the second session includes identifying the skill levels 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 user's skill level.

[0016] In some implementations, the classification identifies the user's skill groups; and

[0017] Using the classification to assign the user to the second session includes identifying skill groups of one or more other users, and configuring the second session to include one or more of the other users who have skill groups that are complementary to the user's skill group.

[0018] In some implementations, assigning the user to a 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 that includes: recording gameplay data from a user session of a video game, the user session being defined for the 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 the trained machine learning model's response 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 user's tendency in the interactive gameplay is defined by the user's activity and inactivity in the interactive gameplay.

[0022] In some implementations, the evaluation performed by the trained machine learning model is configured to determine the user's skill level, and the user is assigned to the new session based on the user's determined skill level.

[0023] In some implementations, the evaluation performed on the trained machine learning model is configured to determine the user's skill set, and the user is assigned to the new session based on the user's determined skill set.

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

[0025] Other aspects and advantages of this disclosure will become apparent from the following detailed description taken in conjunction with the accompanying drawings, which illustrate the principles of this disclosure by way of example. Attached Figure Description

[0026] This disclosure and its other advantages can 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 applying the trained machine learning model to various game-related interactions is conceptually illustrated according to an implementation of the present disclosure.

[0028] Figure 2 A system for training and using machine learning models in various video game-related contexts is conceptually illustrated according to an implementation of this disclosure.

[0029] Figure 3 The process of evaluating or classifying a trained machine learning model that mimics player gameplay behavior, according to an implementation of this disclosure, is conceptually illustrated.

[0030] Figure 4 A system for providing recommendations to a user based on a trained machine learning model, according to an implementation of this disclosure, is shown.

[0031] Figure 5 A conceptual illustration is provided of a system for providing improved matching for video games using a trained machine learning model, according to an implementation of the present disclosure.

[0032] Figure 6 A library that provides user accounts for a given user with multiple machine-trained models, according to an implementation of this disclosure, is conceptually illustrated.

[0033] Figure 7A An exemplary system for loading game files of games available through a cloud gaming site, according to an implementation of this disclosure, is shown.

[0034] Figure 7B This is a flowchart conceptually illustrating various operations performed according to an implementation of this disclosure to stream a cloud video game to a client device.

[0035] Figure 8 An implementation scheme of an information service provider architecture based on the implementation of this disclosure is shown. Detailed Implementation

[0036] In the following description, numerous specific details are set forth in order to provide a thorough understanding of this disclosure. However, those skilled in the art will understand that this 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 so as not to obscure this disclosure.

[0037] In a broader sense, implementations of this disclosure relate to methods and systems for using machine learning models to learn how players play video games (including their personal style, expressions, tendencies, preferences, etc.). According to various implementations of this disclosure, once the machine learning model is trained, it can be used for various game interactions, including AI bot insertion, player guidance, and player matchmaking.

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

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

[0040] According to the implementation of this disclosure, a machine learning model 112 (or artificial intelligence model) is trained to mimic the gameplay of 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 substantially similar to those performed by user 100, or based on the user's gameplay techniques, skills, style, inclinations, decisions, preferences, communication, movement, etc., in response to the game scenario.

[0041] It will be understood that, to achieve this, a machine learning model can be trained using data indicative of the user's experience content (e.g., the responses or reactions the user sees, hears, feels, or otherwise makes during gameplay) and data indicative of the user's gameplay actions (the actions or decisions the user makes in response to their experience content during gameplay). In a sense, the user can be viewed as an agent receiving input in the form of their experience content during a video game and providing output in the form of specific gameplay actions in response to their experience content. Therefore, the goal of training machine learning model 112 is to configure it such that it will provide the same output that the user would provide when presented with the same input.

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

[0043] In some implementations, image frames from video 110 are used more specifically to train the machine learning model. In some implementations, user input 108 is defined by controller inputs from controller device 102 (such as button presses, joystick movements, captured motions by the controller device itself, etc.). More broadly, the goal of training is to make the machine learning model 112 mimic the actions of user 100 decision-by-decision. In the implementation using image frames as described herein, each frame of the video can then be considered a scenario in which the user reacts by generating controller inputs such as button presses or by doing nothing. Thus, each frame represents a user's decision point, and the machine learning model is trained to mimic the user's decisions / actions (including doing nothing) frame-by-frame. Ideally, the trained machine learning model is configured to generate the same response as the user would generate in response to a given image frame or sequence of image frames, in relation to controller input or the absence of controller input.

[0044] Although the foregoing is described using the reference controller input as user input, it will be understood 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 understood that regardless of the type of user input captured and applied, the goal of training the machine learning model is to configure it so that its response to a given image frame or sequence of image frames will reproduce the same or similar input.

[0045] In addition to the image frames described above, supplementary information can be used to provide training data for the machine learning model 112. For example, audio from gameplay (which may be included as part of video 110) can also be used, as this audio represents another aspect of the gameplay experienced by user 100 during a game session. Furthermore, in some implementations, haptic feedback information can also be used as part of the training data.

[0046] The frame-by-frame method described above can be used to enable the machine learning model 112 to mimic user 100 in video games such as first-person shooter video games. In first-person shooter video games, the user effectively makes decisions on each frame because changes between frames indicate the changing state of the video game and can affect the outcome, 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. Therefore, decisions are not made frame-by-frame, but rather in each turn for each given player. The state of the video game does not change until the player provides input, and therefore, for the purpose of training the machine learning model 112, frame-by-frame training is unnecessary. Instead, the machine learning model 112 can be trained using data indicative of the experiences available to the user (e.g., in each turn in which the user has the opportunity to perform an action). It will be understood that user input is also used for training purposes in the same manner previously described. That is, the machine learning model 112 is trained to produce the same or similar inputs when presented with a given dataset indicative of the experiences available to the user during gameplay.

[0048] In some implementations, the data indicating or identifying a user's experience during gameplay can actually be one or more image frames captured from specific decision points that occur during a video game session. However, it will be understood that not all image frames rendered during a gameplay session are used; instead, a subset of data sufficiently identifying the user experience or that is available to the user during gameplay, along with the user's responses by providing user input, is used.

[0049] In some implementations, data indicating or identifying the user experience during gameplay may include game state data, including, but not limited to, the location of objects or characters in the virtual environment, the attributes of objects or characters (e.g., item equipment, health points, skills, etc.), or the state of any other variable or entity that may affect gameplay. Furthermore, it will be understood that while the reference controller input generally describes user input specifically, other types of data (including certain types of game state data) may be used for the purpose of training machine learning models to define user actions in response to the user's experience during gameplay.

[0050] Once trained, the machine learning model 112 is configured to mimic the playstyle and tendencies of user 100. This can be used for various purposes, such as AI bot insertion (reference numeral 114), guidance (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 multilayer 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 a user's gameplay according to the implementation of this disclosure.

[0052] Figure 2 A system for training and using machine learning models in various video game-related contexts, according to an implementation of this 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 via the network 210. In some implementations, the client device 212 is a computing device, such as a game console or personal computer, capable of executing a video game 214.

[0053] As discussed, when user 222 plays video game 214, gameplay data 216 is generated. This gameplay data can be used to train a machine learning model to learn and imitate user 222's gameplay style and tendencies. 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 imitate user 234's gameplay. 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 imitate user 248's gameplay.

[0054] In some implementations, trained machine learning models corresponding to various users can be used to enable AI bots representing users to play video games. For example, in some implementations, the video game supports online multiplayer gaming using a networked gaming system 200. The networked gaming system 200 can execute a shared session 202 for the video game, and each of client devices 212, 224, and 236 is connected to the shared session 202 via network 210. In conventional multiplayer video games, each user's task is to control their corresponding character or entity in the multiplayer session. However, according to implementations of this disclosure, instead of a given user, an AI bot corresponding to that user can be deployed to play the game on their behalf.

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

[0056] Novel interactive experiences are made possible by enabling trained AI bots to play games on behalf of users. For example, in some implementations, users can compete against each other's AI bots. In this way, users can learn what it's like to compete against another user, even if that user cannot access or otherwise participate in the video game. In some implementations, users can have their AI bots compete against each other. In some implementations, users can watch their own AI bots play video games. This is entertaining by allowing users to effectively see how they play the game in a real-time environment, rather than from a third-person observer's perspective. This can further prove educational, as users can learn by effectively watching their AI bots play.

[0057] For example, users 222 and 234 might want to play a video game with user 248, perhaps as part of a team or against each other. However, user 248 might be offline while users 222 and 234 are available. Normally, user 248's unavailability would prevent a group experience. However, when user 248 is unavailable, user 248's AI bot 246 is available and can play the video game in user 248's place. This way, users 222 and 234 are not prevented from experiencing the group gameplay they desire, and the gameplay contributions from AI bot 246 will be similar to those made by user 248 if user 248 were online and available to play. Therefore, using AI bots allows for the simulation of multiplayer gameplay even when a full team is not present.

[0058] In the illustrated implementation, the networked gaming system 200 also includes a communication module 204 configured to facilitate communication between users within the system. Such communication may include, for example, messaging, chat, audio, video, text, email, comments, replies, etc. It will be understood that such communication can facilitate the integration of AI bots into video games, as described herein. For instance, a user may send a message or invitation to another user to join a multiplayer video game. In response, the system may respond with a message indicating that another user's AI bot is unavailable but available to play the game, and provide the sending user with the option to play with or against the AI ​​bot.

[0059] In other implementations, video games can be configured to offer features whereby users can use another player's AI bot to perform selected scenarios or sections of gameplay. This can be used to help users overcome difficult parts of the game. For example, a user might be at a certain skill level but can request a more advanced player's AI bot to play a difficult section of the video game, allowing them to watch how the more advanced player would play and overcome that difficult part. In this way, less experienced players can learn from the gameplay of more advanced players without actually needing the more advanced players to participate in demonstrative live gameplay. It will be understood that this allows less experienced players to observe more experienced players handling specific parts of the video game that they are interested in or find difficult, without having to rely on other more time-consuming methods to learn those parts, such as searching online for gameplay videos covering specific sections of the video game.

[0060] Additionally, it will be understood that video games can be configured so that when another player's AI bot is playing the video game, no achievements are credited to the original host user's account. Therefore, the gameplay of another player's AI bot can be viewed or watched by the host user, but will not affect the host user's position or progress within the context of the video game's storyline or objectives. In this sense, the gameplay of another player's AI bot is gameplay where no save points are recorded during or upon completion of such gameplay.

[0061] However, in other implementations, users may be able to intentionally borrow another user's AI bot to play games for them, where scores or achievements during this gameplay are saved and credited to the original user's account. In a sense, this is similar to having a friend play a game for them or on behalf of someone else, without requiring the friend to actually perform the gameplay. In some implementations, users can pay to use other players' AI bots, for example, using virtual currency, digital assets, digital points, real-world currency, etc. This creates a market where users can train and improve their AI bots through regular gameplay and progression in video games and then rent their trained AI bots to other users. In some implementations, AI bots can be rented per unit of time or by some other metric that quantifies the use of the AI ​​bot, such that the amount paid to rent the AI ​​bot will depend on the actual amount of time the AI ​​bot is used. In this ecosystem, usage statistics for a given AI bot can be published and obtained, and users can leave comments related to that AI bot after using it.

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

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

[0064] Figure 3This invention conceptually illustrates a process for evaluating or classifying a trained machine learning model that mimics a player's gameplay behavior, according to an implementation of this disclosure. As discussed, the machine learning model can be trained for imitation learning, whereby the model learns to mimic a user's gameplay such that it will make similar movements to the user if presented with a similar type of scenario. One advantage of training a machine learning model to mimic a user's gameplay behavior is that it is not necessary to observe an actual user or their actual gameplay in order to evaluate the user's play. Instead, the machine learning model can be trained to simulate the user's tendencies and then presented with different scenarios, thereby enabling the evaluation of the user's gameplay behavior. This technique is a powerful and accurate method for classifying user gameplay behavior because it does not rely on extrapolation from previous performance or achievements, but rather enables the performance evaluation of a specific scenario, where the results provide direct indications of performance. Therefore, the answer to the question of how a given user will behave in a given scenario is not theoretical or extrapolated, but based on a direct test of the user's AI bot relative to the actual scenario.

[0065] In the illustrated implementation, a 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 used to train the machine learning model 300 that indicates the type of game situation experienced by the user. For example, according to the implementation described above, where the training data includes image frames from captured video of the user's gameplay, in some implementations, each scenario may include image frames or sequences of image frames, where the image frames define a specific video game situation. In some implementations, such image frames may be screenshots from the video game. In other implementations, each scenario may be defined by other kinds of data that define the user's experience when the scenario is presented to the user.

[0066] Applying machine learning model 300 to 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 machine learning model 300 in response to the scenario. For example, a result may include controller input generated by the machine learning model in response to the scenario. It will be understood that a result may also be defined due to the lack of a response action from 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 controller inputs generated by the machine learning model in response to the scenario match a predefined set of controller inputs, which may also include consideration of the order and timing of such controller inputs. In some implementations, evaluation may include assigning skill levels to the machine learning model or the corresponding user of machine learning model 300. In various implementations, evaluation may include determining various skills, experiences, proficiency, character types, styles, tendencies, deficiencies, or any other attributes or classifications that can be attributed to the user or machine learning model based on the results of exposure to various scenarios and that can be used for downstream game-related activities such as providing recommendations / guidance, matchmaking, etc.

[0068] Therefore, trained AI / machine learning models can be evaluated by presenting them with different scenarios and then classifying them based on how they react. In some implementations, this can be performed as an offline process separate from the online training process. Systems such as the aforementioned online game system 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, and guidance.

[0069] In some implementations, the scene can be defined by an execution portion of the video game, such as a specific scenario loaded into the video game. The user's machine learning model (or the user's AI bot) can be applied to play this portion of the video game, and the outcome of the gameplay can be used to classify the machine learning model. It will be understood that various video game-specific outcomes can enable the classification of the user's machine learning model, such as whether the model survives the scene, takes one or more actions, achieves a goal, gains an accomplishment, or completes something within a given amount of time.

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

[0071] In some implementations, the system is configured to recommend specific guidance to players based on assessments / classifications using a machine learning model, in order to help players develop and improve their set of gameplay skills. That is, the assessment may be configured to identify areas of gameplay that need improvement, such as certain skills or techniques. In some implementations, recommendation logic 404 may provide in-game guidance 406, which provides players with hints, suggestions, or other helpful information during gameplay of the video game. It will be understood that these guidance hints are user-specific because they are determined or selected based on specific user assessments based on a trained machine learning model. In some implementations, recommendation logic 404 may recommend tutorials or courses 408 to the user, which generally take place outside the context of actual gameplay of the video game. By way of example, and not limitation, such tutorials or courses may render a practice environment in which the user is able to receive guidance and practice certain skills.

[0072] In some implementations, recommendation logic 404 can provide player comparison 410, for example, comparing the user with various professional players and providing indications of which professional players are similar in style. Therefore, recommendation logic 404 can recommend the style of professional players to the user and may suggest tips for developing a style similar to that of a particular professional player. In this respect, recommendation logic 404 can recommend certain learning paths.

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

[0074] It will be understood that, as a result of the guided recommendations provided by recommendation logic 404, new training data can be generated to train machine learning model 400, as indicated by reference numeral 416 in the attached figure. Therefore, machine learning model 400 will change over time as the user receives guidance and implements the suggestions and strategies provided through that guidance.

[0075] It should be noted that, based on 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 in video games using trained machine learning models, according to an implementation of this disclosure, is conceptually illustrated. In the illustrated implementation, various trained machine learning models 500, as already described, corresponding to a given user, are evaluated by presenting one or more scenes to the machine learning models and processing the results. The result of this evaluation may consist of classifications 502 corresponding to each of the machine learning models 500. In this implementation, these classifications are useful for performing matching functions in video games, as further described below.

[0077] In the implementation shown, matching logic 504 is configured to perform matching for video games. Broadly speaking, matching encompasses functionality related to the assignment or arrangement of users in a multiplayer video game. For example, many sessions of a given multiplayer video game may exist, and it is desirable for players with roughly similar skill levels in a given session of the game to make the game competitive. Therefore, in some implementations, the classification of the machine learning model is configured to identify the skill levels of corresponding players, and matching logic 504 is configured to perform matching based on skill level compatibility, as indicated by reference numeral 506. That is, matching logic 504 assigns players with roughly similar skill levels to the same session of the video game and avoids assigning players with different skill levels to the same session.

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

[0079] It will be understood that, because trained machine learning models can be used for evaluation, the skill level of a given user can be categorized with high specificity. For example, some video games may have different types of domains, settings, environments, etc., and a given player's skill level may differ in these different environments. For instance, a player may be more proficient in gameplay in a forest-type environment than in a city-type environment, and therefore their skill level will vary depending on the environment. This can be evaluated by exposing a player's trained model to both forest-type and city-type environments and tracking the results. This environment-dependent skill level can be taken into account in the skill compatibility matching described above, since users can be evaluated for the specific environment of a particular session of the video game, and assignments can be made accordingly based on the skill level specific to the particular environment of a given session.

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

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

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

[0083] In some implementations, matching logic 504 is configured to perform player role filling based on an 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 can be assigned to a player. In this context, a given user's machine learning model can be evaluated based on how well they perform in fulfilling a particular role. Based on this, matching logic 504 can determine the best player for filling various roles, such as those in a team.

[0084] Additionally, in some implementations, the matching logic may perform the matching of AI bots, as indicated by reference numeral 514 in the attached figure. It will be understood that any of the matching functions described above, applied to the user, may also be applied to a corresponding AI bot that can be inserted into a video game, as already described. For example, AI bots may be evaluated and assigned or assigned based on horizontal compatibility, skill set, ability to perform a given role, etc.

[0085] For example, a player team might need additional players, and the system could determine the best AI bot to join the team, for instance, based on a given set of available AI bots (such as corresponding users from one or more of the team members connected in a social graph). In some implementations, the matching logic could perform a player or AI bot search, for example, by determining who is available and who is qualified to perform a certain role. Defending players or AI bots can be sought by example rather than limitation, and thus the system would assess their defensive capabilities by presenting defensive scenarios to available trained machine learning models and determining how they would react, and then select a player or AI bot based on the results.

[0086] In some implementations, the evaluation / classification of machine learning models can be performed not only individually but also in combination. Different groups of players can be evaluated by evaluating combinations of trained machine learning models together. For example, to evaluate the performance of a group of players as a team, one or more group scenarios in which they participate simultaneously can be presented to their machine learning model or AI bot, and the results can be evaluated. In some implementations, this can trigger the execution of functional game engine components, allowing the simulation of the effects of actions taken by the models, which in turn can influence each other's subsequent actions or decisions. In related implementations, the performance of a group of players relative to each other can also be evaluated by applying the players' trained models to the same group scenarios and determining how each player behaves within the group scenarios.

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

[0088] Figure 6A library of multiple machine-trained models for a user account, provided according to an implementation of this disclosure, is conceptually illustrated. As shown, the user account may have a game library 600, consisting of various game titles owned or accessible to the user (such as game title A, game title B, and game title C in the illustrated implementation). The user account also includes an AI library 602, comprising various machine learning models for each game title in the game library 600. A set of machine learning models for game title A, including machine learning models A1, A2, and A3, is shown by reference numeral 604. Similarly, sets of machine learning models for game titles B and C, including machine learning models B1, B2, and B3 for game title B and machine learning models C1, C2, and C3 for game title C, are shown by reference numerals 606 and 608, respectively.

[0089] It will be understood 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, their machine learning model will evolve, and various states of the machine learning model can be captured and saved. Therefore, multiple machine learning models can capture different versions of the player over time and act as snapshots of the user's abilities at different times in the video game. Generally, it is expected that the user's skill level will increase as they continue playing a given video game. In some implementations, it may be useful to obtain a previous machine learning model that indicates the user's abilities (and lower skill levels) at a previous time rather than at the current time. For example, a friend at a lower skill level might want to compete against a user currently at a higher skill level. Therefore, to provide a competitive gameplay experience to a friend, a previous machine learning model of a user with a similar skill level to the friend could be deployed on behalf of the user.

[0090] In other implementations, users 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] This involves understanding, configuring, or selecting classification scenarios to determine the characteristics of a user's machine learning model. To determine which types of scenarios or parts of a video game will be used for classification purposes, it may be useful to analyze user gameplay and game contexts to identify which aspects of gameplay are good indicators for robust classification. For example, user gameplay can be analyzed to identify the types of actions that make a player statistically more likely to win or lose. Scenarios highlighting the use of such actions can then be created for classification purposes. Or, in another example, gameplay across various scenarios in a video game can be analyzed to determine which scenarios are good indicators of user skill or success—for example, users are more likely to win by performing a certain action through a particular scenario or in a specific scenario.

[0092] The embodiments disclosed herein may be included as part of a game engine. Broadly speaking, a game engine is a software development framework that provides features that enable the efficient development of video games. A game engine may include a software library with reusable modules to handle various aspects of game functionality, including, but not limited to, graphics rendering (e.g., including 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, cinematic art, etc.

[0093] Game engines can be optimized for different hardware platforms, such as game consoles, mobile devices, and personal computers. By way of example, rather than limitation, game engines can optimize memory for different platforms (e.g., how to prioritize various tasks in the graphics pipeline). In some implementations, the hardware can be a blade version of a specific processing entity (such as a game console). Therefore, a user can be assigned to a specific blade that provides the same hardware that the console game has already optimized for.

[0094] It will be understood that game server logic may also exist 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 can run a hypervisor that abstracts the hardware and provides a virtual machine framework on which an operating system (OS) can be loaded. Therefore, the stack can include applications / video games running on an OS loaded on virtual machines (VMs) instantiated by the hypervisor, which in turn loads on the underlying hardware. In this way, application execution is not necessarily coupled to specific hardware.

[0096] In some implementations, applications / video games can be executed through containers that are abstracted at the application layer, thus wrapping the code and dependencies together, thereby enabling software development that is agnostic to the OS or hardware platform and promoting software portability across platforms.

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

[0098] The advantage of using a distributed game engine is the ability to leverage elastic computing, where computing resources can be scaled up or down as needed. For example, in large multiplayer games traditionally run on a single hardware server, after, say, about 100 players, hardware resources become limited, making it impossible to add more players. The game might then have additional players queuing, meaning players have to wait to join. However, with a distributed game engine, by using elastic cloud computing resources, more computing nodes can be added to meet the needs, thus enabling, for example, thousands of players. The game is no longer constrained by the limits of a specific hardware server.

[0099] Therefore, cloud gaming engines can have capabilities distributed across different processing entities. It will be understood that different functionalities can be executed within different frameworks. For example, some functionalities (e.g., social) might be easier to run in a container, while graphics might be best run using a VM connected to the GPU.

[0100] To facilitate the distribution of cloud gaming engine functionality, a distribution / synchronization layer manages the distribution of work, such as issuing jobs, receiving data back, identifying what work was performed and when it was performed, and handling queues (e.g., if a job completes faster than required). In some implementations, a given task can be dynamically subdivided if needed. For example, animation might have lighting, and if the lighting is particularly complex, it can be subdivided into three lighting jobs, which are issued, computed, and reassembled upon return. Therefore, game engine functionality can be subdivided if more work is required.

[0101] Cloud service providers offer computing at a specified performance level, such as in operations per second (“IOPS”). Therefore, game providers can specify VMs, dedicated processing power, memory amounts, 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 modules and update handlers can be one or more components or modules of the game engine. In some implementations, the library modules and update handlers can be separate components or integrated. In some implementations, the library modules and update handlers can operate as supplements to the game engine. In some implementations, the game engine can be a distributed game engine, as noted above.

[0103] As noted, the implementation of this disclosure can be applied to cloud gaming systems. An example of a cloud gaming system is... Now cloud gaming system. In this system, the client device can be a game console, such as... 4. A game console, or another device such as a personal computer, laptop, tablet, mobile phone, or mobile device.

[0104] Broadly speaking, to implement cloud gaming, when a user request for a game title is received, one or more servers perform several operations within a data center associated with the cloud gaming site. When the cloud gaming site receives a user request, it identifies the data center hosting the game associated with the selected game title and sends the request to the identified data center to instantiate the game for the selected title. In response to the request, the server at the data center identifies the game code, loads the identified game code, and instantiates the files associated with the game code to prepare the game content for presentation to the user. Game data associated with the game may include general game data and user-specific game data. Therefore, file initialization may include identifying, loading, and initializing both general game data and user-specific game data. Initializing general game data may include initializing the 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 general game data is loaded and initialized, a "launch" screen can be provided for rendering on the client device. The launch 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, some initial content can be rendered and a selection / navigation screen can be presented for user selection and customization. User selection inputs provided on the selection / navigation screen may include game level selection, game icon selection, game mode selection, game bonuses, and other user-related data that may require the upload of additional game content. In some implementations, game content is made available by streaming game content from a game cloud system to the user's computing device for viewing and interaction. In some implementations, game content is available for gameplay after user-specific data has been loaded.

[0106] Figure 7A An exemplary system for loading game files of games available through a cloud gaming site is illustrated. 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, wired network, wireless network, cellular network (e.g., 4G, 5G, etc.), or any other type of data network, including the Internet. When a request to access the 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 that initiated the request. In some embodiments, the cloud gaming site may also verify the identified user to determine all games 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 game titles available at the game cloud site for the requesting user account. The game title data storage 710 then interacts with a game database 712 to obtain game titles for all games available to the cloud gaming site. When a new game is introduced, the game database 712 is updated with the game code, and the game title data storage 710 is provided with the game title information for the newly introduced game. When a request is made, the client device initiating the request may or may not register with the cloud gaming site. If the user of the requesting client device is not a registered user, the cloud gaming site may identify that 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 display on the screen 700-a, as shown. Figure 7A As shown.

[0107] User interaction is detected at one of the game titles rendered on the client device, and a signal is sent to the cloud gaming site. The signal includes game title information indicating the detected user interaction and the user interaction registered at the game title. In response to the signal received from the client device, the cloud gaming site proactively 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 was detected. In some implementations, more than one data center can host the game. In such implementations, the cloud gaming site may determine the geographic location of the requesting client device and identify data centers geographically close to the client device and signal those data centers to preload the game. The user's geographic location can be determined using a Global Positioning System (GPS) mechanism within the client device, the client's IP address, and the client's latency (ping) information (to name a few). Of course, the aforementioned methods for detecting the user's geographic location are exemplary, and other types of mechanisms or tools can be used to determine the user's geographic location. Identifying data centers close to the client device minimizes latency during user interaction with the game. In some implementations, the identified data center may not have the required bandwidth / capacity to host the game or may be overused. In these implementations, the cloud gaming site may identify a second data center geographically close to the client device. Game loading includes 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 that server. The server selection is based on available hardware / software capabilities and the game's 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. A game console may resemble a standalone game console, or it may be a rack-mounted server or a blade server. A blade server may further include multiple server blades, each with the necessary circuitry for instantiating a single dedicated application, such as a game. Of course, the game consoles described above are exemplary and should not be considered limiting. Other types of controllers (including game stations, etc.) and other forms of blade servers may also be used to host the identified game.

[0109] Once the game console is identified, the game's generic game-related code is loaded onto it, and a signal is sent back to the client device via the cloud gaming site over the network, thus identifying the game console on which the game is instantiated. Therefore, the loaded game is available to the user.

[0110] Figure 7BThis is a flowchart conceptually illustrating various operations for streaming a cloud video game to a client device according to an implementation of this disclosure. The game 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 figures. Encoding provides compression for the 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] Encoded audio 726 and 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, thereby providing enhanced data security. In the illustrated implementation, audio packet 734 and video packet 736 are generated for transmission over the network, as indicated by reference numeral 740.

[0112] The game system 718 additionally generates haptic feedback data 730, which is also packaged into network packets for network transmission. In the illustrated implementation, the haptic feedback packets 738 are generated for transmission over the network, as further indicated by reference numeral 740 in the accompanying drawings.

[0113] The aforementioned operations of generating raw video and audio data, encoding the video and audio, and packaging the encoded audio / video and haptic feedback data for transmission are performed on one or more servers that collectively define the cloud gaming service / system. As indicated by reference numeral 740, the audio, video, and haptic feedback packets are transmitted over a network (such as and / or including the Internet). As indicated by reference numeral 742, audio packet 734, video packet 736, and haptic feedback packet 738 are decoded / reassembled by the client device to define encoded audio 746, encoded video 748, and haptic feedback data 750 at the client device. If the data is encrypted, the network packets are also decrypted. The client device then decodes the encoded audio 746 and encoded video 748, as indicated by reference numeral 744, to generate raw audio and video data on the client side for rendering on display device 752. The haptic feedback data 750 can be processed / conveyed to generate haptic feedback effects at controller device 756 or other interface devices through which haptic effects can be rendered. An example of a tactile effect is the vibration or rumble of the controller device 756.

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

[0115] During the transmission of audio packet 734, video packet 736, and haptic feedback packet 738 (reference numeral 740), data transmission over the network can be monitored to ensure the quality of service for the cloud gaming stream. For example, network conditions, including both upstream and downstream network bandwidth, can be monitored as indicated by reference numeral 764, and the game streaming can be adjusted in response to changes in available bandwidth. That is, the encoding and decoding of network packets can 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 illustrated. Information service provider (ISP) 870 provides a wide range of information services to geographically dispersed users 882 connected via network 886. An ISP may deliver only one type of service, such as stock price updates, or multiple services, such as broadcast media, news, sports, games, etc. Furthermore, the services provided by each ISP are dynamic, meaning that services can be added or removed at any time. Therefore, the ISP providing a specific type of service to a particular individual can change over time. For example, when a user is in their hometown, they may be served by an ISP located near them, while when the user travels to different cities, they may be served by different ISPs. The hometown ISP transmits the necessary information and data to the new ISP, causing the user information to "follow" the user to the new city, thus making the data closer to the user and more easily accessible. In another implementation, a master server relationship may be established between a master ISP that manages the user's information and a server ISP that directly interfaces with the user under the master ISP's control. In yet another implementation, as the client moves around the world, data is transmitted from one ISP to another, so that the ISP in a better location to serve the user becomes the ISP delivering these services.

[0117] ISP 870 includes Application Service Providers (ASPs) 872 that provide computer-based services to customers via networks, including 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 called 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 via a web browser using HTML through dedicated client software or other remote interfaces (such as thin clients) provided by the vendor.

[0118] Services delivered over a wide geographical area typically utilize cloud computing. Cloud computing is a computing approach that provides dynamically scalable and often virtualized resources as a service via the internet. Users do not need to be experts in the technical infrastructure supporting 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 common online business applications accessible from a web browser, while 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 abstract concept of the complex infrastructure it hides.

[0119] In addition, the ISP 870 includes a Game Processing Server (GPS) 874 used by game clients to play single-player and multiplayer video games. Most video games played over the Internet operate by connecting 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 implementation, the GPS establishes communication between players, and their respective gaming devices exchange information without relying on a centralized GPS.

[0120] Dedicated GPS servers operate independently of the client. These servers typically run on dedicated hardware located in data centers, providing greater bandwidth and dedicated processing power. For most PC-based multiplayer games, dedicated servers are the preferred method for hosting game servers. Large-scale multiplayer online games run on dedicated servers, often hosted by the software company that owns the game's title, allowing them to control and update content.

[0121] A Broadcast Processing Server (BPS) 876 distributes audio or video signals to listeners. Broadcasting to a very small audience is sometimes called narrowcasting. The final segment of broadcast distribution is how the signal reaches the listener or viewer, and this final segment can reach the antenna and receiver in the air, just like a radio or television station, or it can be transmitted via cable television or wired broadcasting (or “wireless cable”) through a radio station or directly from the network. The Internet can also bring radio or television to the receiver, especially through multicasting, which allows for the sharing of signals and bandwidth. Historically, broadcasting was bound by geographical boundaries, such as national or regional broadcasting. However, with the widespread availability of high-speed Internet, broadcasting is no longer geographically limited, as 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 offer periodic backups and archiving. By offering storage as a service, users can subscribe to more storage as needed. Another key advantage is that SSPs include backup services, so users won't lose all their data in the event of a hard drive failure on their computer. Furthermore, multiple SSPs can have full or partial copies of user data, allowing users to access their data efficiently, regardless of their location or the device used to access it. For example, a user can access personal files on their home computer and their mobile phone while on the go.

[0123] A communications provider 880 provides connectivity to users. One type of communications provider is an Internet Service Provider (ISP) that provides access to the Internet. ISPs use data transmission technologies suitable for delivering Internet Protocol (IP) datagrams to connect their customers, such as dial-up, DSL, cable modems, fiber optic, wireless, or dedicated high-speed interconnects. Communications providers also offer messaging services such as email, instant messaging, and SMS. 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. Network Service Providers can consist of telecommunications companies, data carriers, wireless communication providers, Internet Service Providers, cable television operators that provide high-speed Internet access, etc.

[0124] Data switch 888 interconnects several modules within ISP 870 and connects these modules to user 882 via network 886. Data switch 888 can cover a small area where all modules of ISP 870 are very close together, or a large geographical area when different modules are geographically dispersed. For example, data switch 888 may include fast gigabit Ethernet (or faster) within a data center rack, or an intercontinental virtual local area network (VLAN).

[0125] User 882 uses client device 884 to access remote services. This client device includes at least a CPU, memory, display, and I / O. The client device can be a PC, mobile phone, netbook, tablet computer, gaming system, PDA, etc. In one implementation, ISP 870 identifies the device type used by the client and adjusts the communication method accordingly. In other cases, the client device uses standard communication methods (such as HTML) to access ISP 870.

[0126] The embodiments of this disclosure can be practiced with various computer system configurations, including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronic devices, minicomputers, mainframe computers, and the like. This disclosure can also be practiced in distributed computing environments where tasks are performed by remote processing devices via wired or wireless network links.

[0127] In light of the above embodiments, it should be understood that this disclosure can employ various computer-implemented operations involving data stored in a computer system. These operations are those that require the physical manipulation of physical quantities. Any of the operations described herein that form part of this disclosure are useful machine operations. This disclosure also relates to means or apparatus for performing these operations. The apparatus may be specifically constructed for the desired purpose, or the apparatus 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 with computer programs written in accordance with the teachings herein, or it may be more convenient to construct more specialized apparatus to perform the desired operations.

[0128] This disclosure may also be embodied in computer-readable code on a computer-readable medium. Optionally, the computer-readable code can be downloaded from a server using the data exchange interconnect described above. A computer-readable medium is any data storage device capable of storing data that can subsequently be read by a computer system. Examples of computer-readable media include hard disk 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. Computer-readable media may include computer-readable tangible media distributed across network-coupled computer systems, enabling the computer-readable code to be stored and executed in a distributed manner.

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

[0130] While the foregoing disclosure has been described in slightly more detail for clarity of understanding, it will be apparent that certain variations and modifications may be practiced within the scope of the appended claims. Therefore, this embodiment is to be considered illustrative rather than restrictive, and this disclosure is not limited to the details given herein, but rather can be modified within the scope and equivalents of the described embodiments.

Claims

1. A method for video game guidance and matching, the method comprising: Record gameplay data from the first session of a video game, which defines the user's interactive gameplay. The gameplay data is used to train a machine learning model, wherein the training causes the machine learning model to mimic the user's interactive gameplay. After the training, the machine learning model is exposed to one or more scenes of the video game, causing the machine learning model to generate gameplay actions in response to the one or more scenes; as well as The machine learning model is evaluated in response to the gameplay actions in the one or more scenarios to determine the classification of the machine learning model, wherein the classification indication includes descriptive features of the user's gameplay style. The classification of the machine learning model is used to provide guidance and recommendations to the user.

2. The method of claim 1, wherein the guidance recommendation includes providing in-game prompts to the user during interactive gameplay of a second session of the video game.

3. The method of claim 1, wherein the guidance recommendation includes the recommendation of tutorials for the user.

4. The method of claim 3, wherein the tutorial is configured to provide rendering of a practice environment that enables the practice of the selected skills.

5. The method of claim 1, wherein the guidance recommendations include recommendations regarding the gameplay style.

6. The method of claim 1, wherein the guidance recommendation includes recommendations based on the classified adversaries.

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 such that the machine learning model responds to the given portion of the video by generating input similar to the user input generated during the first session in response to a given portion of the video.

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 not defined from the first session.

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

14. A method for video game guidance and matching, the method comprising: Record gameplay data from user sessions of a video game, where the user session is based on the user's interactive gameplay definition of the video game; The gameplay data is used to train a machine learning model to mimic the user's tendencies in the interactive gameplay. After training, the trained machine learning model is exposed to a predefined scene of the video game, causing the trained machine learning model to generate a response to the predefined scene. as well as An evaluation of the machine learning model is generated by analyzing the trained machine learning model’s response to the predefined scenario, wherein the evaluation indicators include descriptive features of the user’s gameplay style. The evaluation of the machine learning model is used to provide guidance to the user during subsequent sessions of the video 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 user's tendency in the interactive gameplay is defined by the user's activity and inactivity in the interactive gameplay.

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

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