# US 10,374,974 B2 · Resource allocation to game titles in a remote gaming environment

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

- Number: US 10,374,974 B2
- Document ID: US10374974B2
- Status: Granted
- Kind: B2
- Application number: 15/462,578
- Filed: 2017-03-17
- Published: 2017-07-06
- Granted: 2019-08-06
- Earliest claimed: 2013-05-20
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: John Peter Bruno; Donald James McNamara; Ashok Chandrasekaran; Christopher Lane Boedigheimer; Per-Ola Anders Orvendal; Joseph Cusimano; Scott Q. Longstreet
- Web page: https://patentgrep.com/patent/US10374974B2

## CPC

- H04L 47/803: {Application aware}
- A63F 13/335: using Internet
- A63F 13/352: involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
- A63F 13/71: using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
- A63F 13/77: involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
- A63F 13/795: for finding other players; for building a team; for providing a buddy list
- G06F 9/505: {considering the load}
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 43/16: Threshold monitoring
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- A63F 2300/401: Secure communication, e.g. using encryption or authentication
- A63F 2300/407: Data transfer via internet
- A63F 2300/513: server hierarchy, e.g. local, regional, national or dedicated for different tasks, e.g. authenticating, billing
- A63F 2300/535: for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
- A63F 2300/552: for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
- A63F 2300/5533: using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
- A63F 2300/5566: by matching opponents or finding partners to build a team, e.g. by skill level, geographical area, background, play style
- G06F 2209/5022: Workload threshold
- H04L 67/148: Migration or transfer of sessions
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present invention monitor and dynamically allocate computing resources to a game service. A game service provides a remote gaming environments to which users connect over a wide area network, such as the internet. A game session runs a single instance of a game title. The game session runs the video game code responsible for creating the playing experience for the users. In another embodiment, the number of active game sessions is monitored and computing resources are allocated dynamically as the number of sessions increases or decreases.

## Claims

### Claim 1

A non-transient computer storage medium storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform operations for allocating computing resources, the operations comprising:
identifying a plurality of gaming sessions of a game service and one or more characteristics of the plurality of gaming sessions;
forming a first monitoring group of the game service based on the one or more characteristics shared by the plurality of gaming sessions of the game service;
determining a total amount of standby resources allocated to the first monitoring group but not being actively utilized;
monitoring resource demands of the first monitoring group;
calculating a dynamic threshold for the standby resources based on the resource demands of the first monitoring group;
determining that the total amount of standby resources is below the dynamic threshold; and
allocating additional standby resources to the first monitoring group among a plurality of monitoring group in response to the total amount of standby resources being below the dynamic threshold.

### Claim 2 (depends on 1)

The media of claim 1, wherein the one or more characteristics comprises a game title, a developer, or publisher, wherein the operations further comprising:
forming another monitoring group of the game service based on another game tile, another developer, or another publisher shared by another plurality of gaming sessions of the game service.

### Claim 3 (depends on 1)

The media of claim 1, wherein the one or more characteristics comprises a game title and a location, wherein the operations further comprising:
forming another monitoring group of the game service based on another game tile and another location shared by another plurality of gaming sessions of the game service.

### Claim 4 (depends on 1)

The media of claim 1, wherein the operations further comprising:
retrieving the additional standby resources from a plurality of standby resources that available to the game service but have not been allocated to any specific monitoring group.

### Claim 5 (depends on 1)

The media of claim 1, wherein a demand characteristic of the resource demands associated with the first monitoring group comprises a first count of sessions being initiated and a second count of sessions being deactivated during a period.

### Claim 6 (depends on 1)

The media of claim 1, wherein a demand characteristic of the resource demands associated with the first monitoring group comprises a count of all active game sessions in the first monitoring group.

### Claim 7 (depends on 1)

The media of claim 1, wherein a demand characteristic of the resource demands associated with the first monitoring group comprises a historical demand of a normal range of game sessions for the game service at a particular time.

### Claim 8 (depends on 1)

The media of claim 1, wherein a demand characteristic of the resource demands associated with the first monitoring group comprises a rate of demand change for a game title shared by the plurality of gaming sessions of the game service.

### Claim 9 (depends on 1)

The media of claim 1, wherein monitoring the resource demands is associated with a first code of the game service, and an active game session in the first monitoring group is associated with a second code of the game service.

### Claim 10 (depends on 1)

The media of claim 1, wherein the operations further comprising:
determining a count of all active game sessions decreased; and
in response to a total amount of the standby resources being below the dynamic threshold and the count of all active game sessions decreased, removing one or more standby resources from the first monitoring group.

### Claim 11

A computer-implemented method, comprising:
monitoring computing resources used by a plurality of monitoring groups associated with a plurality of game titles running on a plurality of computing devices, wherein game sessions are allocated to a first monitoring group based on a characteristic shared by the game sessions;
creating a new game session with a specific game title;
determining active computer memory for an existing game session in a monitoring group associated with the specific game title;
determining a shared attribute between the new game session and the existing game session in the monitoring group associated with the specific game title; and
based on the shared attribute, recycling a game code used by the existing game session and allocating the game code in the active computer memory to the new game session.

### Claim 12 (depends on 11)

The method of claim 11, wherein the shared attribute is a same game level of the specific game title.

### Claim 13 (depends on 11)

The method of claim 11, wherein the further comprising:
determining the game code can be used in the new game session with a new player.

### Claim 14 (depends on 11)

The method of claim 11, further comprising:
associating the new game session to the monitoring group associated with the specific game title.

### Claim 15 (depends on 11)

The method of claim 11, further comprising:
allocating the existing game session and the new game session to run at a same location.

### Claim 16 (depends on 11)

The method of claim 11, further comprising:
receiving a control input from a game client;
changing a game state for the specific game title running in the new game session using the control input; and
outputting a rendered game image that reflects the game state to the game client connected to the new game session.

### Claim 17 (depends on 11)

The method of claim 11, further comprising:
automatically allocating an additional virtual machine to the plurality of computing devices based on the new game session.

### Claim 18

A computing system, comprising:
a processor; and
computer storage memory having computer-executable instructions stored thereon which, when executed by the processor, implement a method of managing computing resources allocated to a remote game service, the method comprising:
monitoring computing resources used by a first monitoring group among a plurality of monitoring groups, wherein game sessions are allocated to the first monitoring group based on a game title and a location shared by the game sessions;
determining a total amount of standby resources not actively being utilized by the game sessions;
monitoring resource demands associated with the first monitoring group, the resource demands including a count of all active game sessions in the first monitoring group;
calculating a dynamic threshold for the standby resources based on a demand characteristic of the resource demands associated with the first monitoring group;
determining that the total amount of standby resources is below the dynamic threshold; and
allocating additional standby resources to the first monitoring group in response to the total amount of standby resources being below the dynamic threshold.

### Claim 19 (depends on 18)

The system of claim 18, wherein the demand characteristic of the resource demands includes a historic game usage of the game title at the location.

### Claim 20 (depends on 19)

The system of claim 19, further comprising:
adjusting the dynamic threshold in response to a real-time trend for resource demand matching a historical trend for resource demand during a similar time period.
