IP Library Granted Patent US 9,628,332
Granted Patent B2
US 9,628,332 · App. 13/897,876 · Granted Apr 18, 2017

Resource allocation to game titles in a remote gaming environment

Inventors: John Peter Bruno, Jr. (Snoqualmie, WA); Donald James McNamara (Woodinville, WA); Ashok Chandrasekaran (Redmond, WA); Christopher Lane Boedigheimer (Redmond, WA); Per-Ola Anders Orvendal (Carnation, WA); Joseph Cusimano (Carnation, WA); Scott Q. Longstreet (Maple Valley, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L41/0816A63F13/12G06F9/505H04L67/1008A63F2300/535A63F2300/5533G06F2209/5022H04L67/148
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,628,332
App. No.
13/897,876
Granted
Apr 18, 2017
Kind
B2
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 (32)

1. One or more computer-storage media having computer-executable instructions embodied thereon that when executed by a computing device perform a method of allocating computing resources to a remote game service, the method comprising:

monitoring a count of all active game sessions of a plurality of game sessions of a game title provided by a game service and an amount of standby resources allocated to the game service running the plurality of game sessions of the game title on virtual machines, wherein each of the virtual machines is configured to host up to the plurality of game sessions, wherein the amount of standby resources is allocated to the game service but not being actively used by the all active game sessions, wherein each of the all active game sessions is associated with a different instance of the game title and configured to be accessed by up to a plurality of players;

determining that the amount of standby resources is below a threshold to the game service and the count of all active game sessions has increased; and

based on the determination that the amount of standby resources is below the threshold and the count of all active game sessions has increased, dynamically allocating an additional amount of resources to the standby resources, wherein the standby resources are included in a single standby pool of resources to be allocated to any of the plurality of game sessions as needed.

2. The media of claim 1 , further comprising: determining a game title that is likely to use the additional amount of resources based on a demand for the game title increases faster than demands for other game titles provided by the game service.

3. The media of claim 1 , further comprising:

determining that the count of all active game sessions are decreasing; and

in response to the amount of standby resources being below the threshold and the count of all active game sessions being decreased, dynamically recycling one or more standby resources to the game service.

4. The media of claim 1 , further comprising: outputting a rendered game image to a game client connected to the game service.

5. The media of claim 1 , wherein the threshold is adjusted based on a rate of change for present standby resources usage.

6. The media of claim 1 , further comprising: receiving a request from a client to join the game service and automatically allocating network resources to route control communications from the client into the game service.

7. A method, comprising:

monitoring a count of all active game sessions of a plurality of game sessions of a game title provided by a game service and an amount of standby resources allocated to the game service running the plurality of game sessions of the game title on virtual machines, wherein each of the virtual machines is configured to host up to the plurality of game sessions, wherein the amount of standby resources is allocated to the game service but not being actively used by the all active game sessions, wherein each of the all active game sessions is associated with a different instance of the game title and configured to be accessed by up to a plurality of players;

determining that the amount of standby resources is below a threshold to the game service and the count of all active game sessions has increased; and

based on the determination that the amount of standby resources is below the threshold and the count of all active game sessions has increased, dynamically allocating an additional amount of resources to the standby resources, wherein the standby resources are included in a single standby pool of resources to be allocated to any of the plurality of game sessions as needed.

8. The method of claim 7 , wherein the threshold is adjusted based on a rate of change for present standby resources usage.

9. The method of claim 7 , further comprising: determining a game title that is likely to use the additional amount of resources based on a demand for the game title increases faster than demands for other game titles provided by the game service.

10. The method of claim 7 , further comprising:

determining that the count of all active game sessions are decreasing; and

in response to the amount of standby resources being below the threshold and the count of all active game sessions being decreased, dynamically recycling one or more standby resources to the game service.

11. A 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 a count of all active game sessions of a plurality of game sessions of a game title provided by a game service and an amount of standby resources allocated to the game service running the plurality of game sessions of the game title on virtual machines, wherein each of the virtual machines is configured to host up to the plurality of game sessions, wherein the amount of standby resources is allocated to the game service but not being actively used by the all active game sessions, wherein each of the all active game sessions is associated with a different instance of the game title and configured to be accessed by up to a plurality of players;

determining that the amount of standby resources is below a threshold to the game service and the count of all active game sessions has increased; and

based on the determination that the amount of standby resources is below the threshold and the count of all active game sessions has increased, dynamically allocating an additional amount of resources to the standby resources, wherein the standby resources are included in a single standby pool of resources to be allocated to any of the plurality of game sessions as needed.

12. The system of claim 11 , wherein the threshold is adjusted based on a rate of change for present standby resources usage.

13. The system of claim 11 , further comprising:

determining a game title that is likely to use the additional amount of resources based on a demand for the game title increases faster than demands for other game titles provided by the game service.

14. The system of claim 11 , further comprising:

determining that the count of all active game sessions are decreasing; and

in response to the amount of standby resources being below the threshold and the count of all active game sessions being decreased, dynamically recycling one or more standby resources to the game service.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF INVENTOR ASHOK CHANDRASEKARAN'S FIRST NAME FROM ASOK TO ASHOK PREVIOUSLY RECORDED ON REEL 030653 FRAME 0503. ASSIGNOR(S) HEREBY CONFIRMS THE THE ENTIRE RIGHT, TITLE AND INTEREST. Recorded Jun 25, 2013
From: BRUNO, JOHN PETER; MCNAMARA, DONALD JAMES; CHANDRASEKARAN, ASHOK; BOEDIGHEIMER, CHRISTOPHER LANE; ORVENDAL, PER-OLA ANDERS; CUSIMANO, JOSEPH; LONGSTREET, SCOTT Q.
To: MICROSOFT CORPORATION
Reel/Frame 030677/0829 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2013
From: BRUNO, JOHN PETER; MCNAMARA, DONALD JAMES; CHANDRASEKARAN, ASOK; BOEDIGHEIMER, CHRISTOPHER LANE; ORVENDAL, PER-OLA ANDERS; CUSIMANO, JOSEPH; LONGSTREET, SCOTT Q.
To: MICROSOFT CORPORATION
Reel/Frame 030653/0503 →
Continuity (1)
Related Publication 20140344457A1 · Nov 20, 2014