IP Library › Granted Patent US 11,544,115
Granted Patent B2
US 11,544,115 · App. 16/731,322 · Granted Jan 3, 2023

Methods, systems and computer program products for optimizing computer system resource utilization during in-game resource farming

Inventors: Suman Saraf (Gurgaon, IN); Ravi Prakash (Gurgaon, IN)
Assignee: Bluestack Systems, Inc.
G06F9/505A63F13/45G06F9/54
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 11,544,115
App. No.
16/731,322
Granted
Jan 3, 2023
Kind
B2
Abstract

Disclosed are methods, systems and computer program products for optimizing computer system resource utilization during in-game resource farming. In some non-limiting embodiments or aspects, the present disclosure describes a method for optimizing computer system resource utilization during in-game resource farming, the method including detecting a gameplay state associated with an executing instance of a gaming application and based on the detected gameplay state selecting a gaming application mode from among a plurality of available gaming application modes. In some non-limiting embodiments or aspects, the method may also include implementing the selected gaming application mode for subsequent execution of the gaming application on the computing system.

Claims (52)

1. A method for optimizing computer system resource utilization during in-game resource farming, comprising the steps of:

detecting a gameplay state associated with an executing instance of a gaming application within a computer system;

selecting a gaming application mode from among a plurality of available gaming application modes, wherein the selection of the gaming application mode is based on (i) the detected gameplay state and (ii) a determination whether the executing instance of the gaming application requires to switch between a resource farming gaming application mode and a non-resource farming gaming application mode without restarting the instance of the gaming application or without restarting a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed; and

implementing the selected gaming application mode for subsequent execution of the gaming application on the computing system;

wherein in response to the detected gameplay state comprising any of a resource farming gameplay state or auto-gameplay state, the selected gaming application mode comprises a first gaming application mode;

wherein in response to the detected gameplay state comprising a non-resource farming gameplay state or active gameplay state, the selected gaming application mode comprises a second gaming application mode;

wherein the first gaming application mode is more energy efficient than, or is more computing resource efficient than, or consumes fewer computer resources than, the second gaming application mode;

wherein in response to determining that the executing instance of the gaming application requires to switch between a resource farming gaming application mode and a non-resource farming gaming application mode without restarting the instance of the gaming application or without restarting a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed, the gaming application mode selected from among the plurality of available gaming application modes implements a first set of resource utilization optimization techniques;

wherein in response to determining that the executing instance of the gaming application permits switching between a resource farming gaming application mode and a non-resource farming gaming application mode with a restart to the instance of the gaming application or with a restart to a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed, the gaming application mode selected from among the plurality of available gaming application modes implements a second set of resource utilization optimization techniques; and

wherein the first set of resource optimization techniques enable a first degree of resource utilization optimization that is lower than a second degree of resource utilization optimization that is enabled by the second set of resource optimization techniques.

2. The method as claimed in claim 1 , wherein detecting the gameplay state is based on any of retrieved game settings, virtual machine environment settings, operating system settings, operating system emulator settings, received gameplayer inputs, one or more gameplay actions or gameplay outcomes.

3. The method as claimed in claim 1 , wherein:

each of the first gaming application mode and the second gaming application mode comprise a discrete set of gaming application execution parameters; and

a first set of gaming application execution parameters corresponding to the first gaming application mode is different from a second set of gaming application execution parameters corresponding to the second gaming application mode.

4. The method as claimed in claim 3 , wherein the first set of gaming application execution parameters enables implementation of one or more resource optimization techniques for executing the instance of the gaming application that are not enabled by the second set of gaming application execution parameters, wherein said resource optimization techniques include any of virtual central processing unit (vCPU) allocation, central processing unit (CPU) throttling, frame rate throttling, random access memory (RAM) reclaim, graphics scaling, graphics processing unit (GPU) switching, audio scaling and/or audio muting.

5. The method as claimed in claim 1 , wherein in the first gaming application mode, responsive to detecting that the executing instance of the gaming application generates threads with specific thread names:

an independent audio loop corresponding to the executing instance of the gaming application is identified; and

the independent audio loop that was identified is throttled or muted.

6. The method as claimed in claim 1 , wherein in the first gaming application mode, responsive to identifying a particular sequence of application program interface (API) calls in a specific process thread corresponding to the executing instance of the gaming application, wherein the particular sequence of API calls correspond to graphics threads within a gaming engine for the executing instance of the gaming application and do not correspond with physics threads within the gaming engine, throttling a frame rate of the executing instance of the gaming application.

7. The method as claimed in claim 1 , wherein in the first gaming application mode, responsive to determining that the executing instance of the gaming application is rendering full scene frames at periodic intervals, frame data corresponding to the executing instance of the gaming application is downscaled or discarded entirely without saving.

8. The method as claimed in claim 1 , wherein in the first gaming application mode, responsive to determining that the executing instance of the gaming application is rendering scene frames only once, downscaling or discarding of frame data corresponding to the executing instance of the gaming application is accompanied by saving of the frame data prior to downscaling or discarding.

9. A system for optimizing computer system resource utilization during in-game resource farming, comprising at least one memory and a processor, and configured to:

detecting a gameplay state associated with an executing instance of a gaming application within a computer system;

selecting a gaming application mode from among a plurality of available gaming application modes, wherein the selection of the gaming application mode is based on (i) the detected gameplay state and (ii) a determination whether the executing instance of the gaming application requires to switch between a resource farming gaming application mode and a non-resource farming gaming application mode without restarting the instance of the gaming application or without restarting a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed; and

implementing the selected gaming application mode for subsequent execution of the gaming application on the computing system;

wherein in response to the detected gameplay state comprising any of a resource farming gameplay state or auto-gameplay state, the selected gaming application mode comprises a first gaming application mode; and

wherein in response to the detected gameplay state comprising a non-resource farming gameplay state or active gameplay state, the selected gaming application mode comprises a second gaming application mode;

wherein the first gaming application mode is more energy efficient than, or is more computing resource efficient than, or consumes fewer computer resources than, the second gaming application mode;

wherein in response to determining that the executing instance of the gaming application requires to switch between a resource farming gaming application mode and a non-resource farming gaming application mode without restarting the instance of the gaming application or without restarting a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed, the gaming application mode selected from among the plurality of available gaming application modes implements a first set of resource utilization optimization techniques;

wherein in response to determining that the executing instance of the gaming application permits switching between a resource fanning gaming application mode and a non-resource farming gaming application mode with a restart to the instance of the gaming application or with a restart to a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed, the gaming application mode selected from among the plurality of available gaming application modes implements a second set of resource utilization optimization techniques; and

wherein the first set of resource optimization techniques enable a first degree of resource utilization optimization that is lower than a second degree of resource utilization optimization that is enabled by the second set of resource optimization techniques.

10. The system as claimed in claim 9 , configured such that detecting the gameplay state is based on any of retrieved game settings, virtual machine environment settings, operating system settings, operating system emulator settings, received gameplayer inputs, one or more gameplay actions or gameplay outcomes.

11. The system as claimed in claim 9 , configured such that:

each of the first gaming application mode and the second gaming application mode comprise a discrete set of gaming application execution parameters; and

a first set of gaming application execution parameters corresponding to the first gaming application mode is different from a second set of gaming application execution parameters corresponding to the second gaming application mode.

12. The system as claimed in claim 11 , configured such that the first set of gaming application execution parameters enables implementation of one or more resource optimization techniques for executing the instance of the gaming application that are not enabled by the second set of gaming application execution parameters, wherein said resource optimization techniques include any of virtual central processing unit (vCPU) allocation, central processing unit (CPU) throttling, frame rate throttling, random access memory (RAM) reclaim, graphics scaling, graphics processing unit (GPU) switching, audio scaling and/or audio muting.

13. The system as claimed in claim 9 , configured such that in the first gaming application mode, responsive to detecting that the executing instance of the gaming application generates threads with specific thread names:

an independent audio loop corresponding to the executing instance of the gaming application is identified; and

the identified independent audio loop is throttled or muted.

14. The system as claimed in claim 9 , configured such that in the first gaming application mode, responsive to identifying a particular sequence of application program interface (API) calls in a specific process thread corresponding to the executing instance of the gaming application, wherein the particular sequence of API calls correspond to graphics threads within a gaming engine for the executing instance of the gaming application and do not correspond with physics threads within the gaming engine, throttling a frame rate of the executing instance of the gaming application.

15. The system as claimed in claim 9 , configured such that in the first gaming application mode, responsive to determining that the executing instance of the gaming application is rendering full scene frames at periodic intervals, frame data corresponding to the executing instance of the gaming application is downscaled or discarded entirely without saving.

16. The system as claimed in claim 9 , configured such that in the first gaming application mode, responsive to determining that the executing instance of the gaming application is rendering scene frames only once, downscaling or discarding of frame data corresponding to the executing instance of the gaming application is accompanied by saving of the frame data prior to downscaling or discarding.

17. A computer program product for optimizing computer system resource utilization during in-game resource farming, the computer program product comprising a non-transitory computer usable medium having computer readable program code embodied therein, the computer readable program code comprising instructions for instructing a processor to:

detect a gameplay state associated with an executing instance of a gaming application within a computer system;

select a gaming application mode from among a plurality of available gaming application modes, wherein the selection of the gaming application mode is based on (i) the detected gameplay state and (ii) a determination whether the executing instance of the gaming application requires to switch between a resource farming gaming application mode and a non-resource farming gaming application mode without restarting the instance of the gaming application or without restarting a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed;

implement the selected gaming application mode for subsequent execution of the gaming application on the computing system;

wherein in response to the detected gameplay state comprising any of a resource farming gameplay state or auto-gameplay state, the selected gaming application mode comprises a first gaming application mode; and

wherein in response to the detected gameplay state comprising a non-resource farming gameplay state or active gameplay state, the selected gaming application mode comprises a second gaming application mode;

wherein the first gaming application mode is more energy efficient than, or is more computing resource efficient than, or consumes fewer computer resources than, the second gaming application mode;

wherein in response to determining that the executing instance of the gaming application requires to switch between a resource farming gaming application mode and a non-resource farming gaming application mode without restarting the instance of the gaming application or without restarting a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed, the gaming application mode selected from among the plurality of available gaming application modes implements a first set of resource utilization optimization techniques;

wherein in response to determining that the executing instance of the gaming application permits switching between a resource farming gaming application mode and a non-resource farming gaming application mode with a restart to the instance of the gaming application or with a restart to a virtual machine environment or operating system emulator within which said instance of the gaming application is being executed, the gaming application mode selected from among the plurality of available gaming application modes implements a second set of resource utilization optimization techniques; and

wherein the first set of resource optimization techniques enable a first degree of resource utilization optimization that is lower than a second degree of resource utilization optimization that is enabled by the second set of resource optimization techniques.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2022
From: SARAF, SUMAN; PRAKASH, RAVI
To: BLUESTACK SYSTEMS, INC.
Reel/Frame 061518/0316 →
Continuity (2)
Provisional Application 62787486 · Jan 2, 2019
Related Publication 20200210237A1 · Jul 2, 2020