# US 10,946,281 B2 · Using playstyle patterns to generate virtual representations of game players

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,946,281 B2
- Document ID: US10946281B2
- Status: Granted
- Kind: B2
- Application number: 16/369,458
- Filed: 2019-03-29
- Published: 2020-10-01
- Granted: 2021-03-16
- Earliest claimed: 2019-03-29
- Assignees: NVIDIA Corporation
- Applicants: NVIDIA Corporation
- Inventors: Andrew Fear; Brian Burke; Pillulta Venkata Naga Hanumath Prasad; Abhishek Lalwani
- Web page: https://patentgrep.com/patent/US10946281B2

## CPC

- A63F 13/56: Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
- A63F 13/355: Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
- A63F 13/67: adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
- A63F 13/798: for assessing skills or for ranking players, e.g. for generating a hall of fame
- G06N 3/006: based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
- G06N 3/045: Combinations of networks
- G06N 3/08: Learning methods
- G06N 3/088: Non-supervised learning, e.g. competitive learning
- G06N 7/00: Computing arrangements based on specific mathematical models
- A63F 13/49: Saving the game status; Pausing or ending the game
- A63F 13/497: Partially or entirely replaying previous game actions
- A63F 13/60: Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F 13/79: involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F 2300/208: for storing personal settings or data of the player
- A63F 2300/535: for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
- A63F 2300/55: Details of game data or player data management
- A63F 2300/5546: using player registration data, e.g. identification, account, preferences, game history
- A63F 2300/558: by assessing the players' skills or ranking
- A63F 2300/6027: using adaptive systems learning from user actions, e.g. for skill level adjustment
- G06N 20/00: Machine learning
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

In various embodiments of the present disclosure, playstyle patterns of players are learned and used to generate virtual representations (“bots”) of users. Systems and methods are disclosed that use game session data (e.g., metadata) from a plurality of game sessions of a game to learn playstyle patterns of users, based on user inputs of the user in view of variables presented within the game sessions. The game session data is applied to one or more machine learning models to learn playstyle patterns of the user for the game, and associated with a user profile of the user. Profile data representative of the user profile is then used to control or instantiate bots of the users, or of categories of users, according to the learned playstyle patterns.

## Claims

### Claim 1

A method comprising:
receiving first game session data corresponding to a prior game session of a game application, the prior game session having a first user and a second user as participants;
based at least in part on the first game session data corresponding to the prior game session, executing a new instantiation of the prior game session to include the first user as a participant; and
instantiating a bot corresponding to the second user within the new instantiation of the prior game session, the instantiating including:
determining a subset of the first game session data associated with the second user;
comparing one or more playstyle characteristics of the second user determined using the subset of the first game session data to the one or more playstyle characteristics from one or more user profiles of other users;
selecting one or more machine learning models from the one or more user profiles of the other users based at least in part on the comparing; and
controlling the bot within the new instantiation of the prior game session using the one or more machine learning models and second game session data corresponding to the new instantiation of the prior game session.

### Claim 2 (depends on 1)

The method of claim 1, wherein the prior game session is associated with a game mode of the game application, and the one or more playstyle characteristics are associated with the second user when participating in the game mode of the game application.

### Claim 3 (depends on 1)

The method of claim 1, wherein the new instantiation is started from a requested time within the prior game session.

### Claim 4 (depends on 1)

The method of claim 1, wherein the new instantiation is executed with one or more requested changes to a loadout of the first user.

### Claim 5 (depends on 1)

The method of claim 1, wherein at least one of the one or more machine learning models is trained using at least one of reinforcement learning or inverse reinforcement learning.

### Claim 6 (depends on 1)

The method of claim 1, wherein the one or more playstyle characteristics are determined based at least in part on input data representative of inputs to one or more input/output components of one or more client devices associated with the second user during the plurality of game sessions.

### Claim 7 (depends on 1)

The method of claim 1, wherein the controlling the bot includes using outputs of the one or more machine learning models generated based at least in part on the second game session data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the second game session data comprises image data generated during the new instantiation of the prior game session.

### Claim 9

A method comprising:
storing first game session data corresponding to a game session of a game application participated in by a first user;
receiving, from a client device associated with a second user, a request to play in a new instantiation of the game session of the game application against a bot corresponding to the first user;
determining a subset of the first game session data associated with the first user;
comparing one or more playstyle characteristics determined using the subset of the first game session data to the one or more playstyle characteristics from one or more user profiles of other users;
selecting one or more machine learning models from the one or more user profiles of the other users based at least in part on the comparing, the one or more machine learning models trained to compute outputs for controlling the bot according to learned playstyle patterns from the one or more user profiles;
executing, based at least in part on the first game session data, the new instantiation of the game session including the second user as a participant and an instantiation of the bot corresponding to the first user; and
controlling the bot within the new instantiation of the game session based at least in part on output data computed using the one or more machine learning models based at least in part on second game session data corresponding to the new instantiation of the game session.

### Claim 10 (depends on 9)

The method of claim 9, wherein the controlling the bot includes applying the second game session data to the one or more machine learning models or one or more additional machine learning models.

### Claim 11 (depends on 9)

The method of claim 9, wherein third game session data used to train the one or more machine learning models includes image data generated during a plurality of previous game sessions of the game application and user inputs mapped to one or more frames of the image data.

### Claim 12 (depends on 9)

The method of claim 9, wherein the request identifies a time within the game session to start the new instantiation, and the new instantiation of the game session is loaded using a subset of the first game session data of the game session representative of the game session at the time.

### Claim 13 (depends on 9)

The method of claim 9, wherein the selecting the one or more machine learning models from the one or more user profiles of the other users is based at least in part on determining that the first user does not have a corresponding user profile.

### Claim 14 (depends on 9)

The method of claim 9, wherein the request to play in the new instantiation of the game session of the game application includes an adjustment to one more characteristics of the game session for the new instantiation of the game session, the one or more characteristics including one or more of items, inventory, health, or location within a game environment for the second user.

### Claim 15

A method comprising:
training at least one machine learning model to learn aggregate playstyle patterns of a user category based at least in part on historical game session data representative of game sessions of a game application that are participated in by a plurality of users and identified based at least in part on the users being associated with a user category;
receiving, from a device associated with a first user, a request to play in a new instantiation of previously played game session of the game application participated in by the first user and a second user;
executing, based at least in part on first game session data corresponding to the previously played game session, the new instantiation of the game session including the first user and an instantiation of a bot corresponding to the second user; and
determining a subset of the first game session data associated with the second user;
comparing one or more playstyle characteristics determined using the subset of the first game session data to the one or more playstyle characteristics from one or more user profiles of the plurality of users;
selecting the at least one machine learning model from the one or more user profiles of the plurality of users based at least in part on the comparing; and
controlling the bot within the new instantiation of the game session based at least in part on output data computed using the at least one machine learning model and based at least in part on second game session data corresponding to the new instantiation of the game session.

### Claim 16 (depends on 15)

The method of claim 15, further comprising determining the historical game session data associated with the plurality of users, wherein the determining includes, for an individual game session of the game sessions that includes an associated user associated with the user category and an unassociated user not associated with the user category, identifying the historical game session data as a subset of a larger set of game session data for the single game session associated with the associated user.

### Claim 17 (depends on 15)

The method of claim 15, further comprising generating the historical game session data associated with the plurality of users based at least in part on filtering out portions of a larger set of game session data that corresponds to at least one unassociated user that is not associated with the user category.

### Claim 18 (depends on 15)

The method of claim 15, wherein the aggregate playstyle patterns are representative of identified shared playstyle characteristics of the plurality of users of the user category.

### Claim 19 (depends on 15)

The method of claim 15, wherein the user category includes users associated with at least one of:
a geographically bounded area;
an experience level within the game;
a national rank; or
a world rank.

### Claim 20 (depends on 15)

The method of claim 15, wherein the request indicates a time within the game session to start the new instantiation of the game session.
