IP Library Granted Patent US 7,796,128
Granted Patent B2
US 7,796,128 · App. 11/674,734 · Granted Sep 14, 2010

Dynamically load balancing game physics using real-time object scaling

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 7,796,128
App. No.
11/674,734
Granted
Sep 14, 2010
Kind
B2
Abstract

The present invention provides methods and apparatus for dynamically varying a physics workload by scaling the classification of objects within a three-dimensional scene. According to embodiments of the invention, a physics engine may classify a plurality of objects within a three-dimensional scene as either static objects or as dynamic objects. The physics engine may then perform physics operations with the objects, and may monitor the workload experienced by processing elements within a system which includes the physics engine. Based on the workload experienced by the processing elements within the system, the physics engine may vary the number of objects which are classified as dynamic and vary the number of objects which are classified as static. By varying the classification of the objects, the physics engine may vary the workload experienced by the physics engine.

Claims (48)

1. A method of varying physics workload by varying classification of a plurality objects within a three-dimensional scene, comprising:

classifying each of the plurality of objects within the three-dimensional scene as a respective first one of at least a static object and a dynamic object;

performing physics based operations on the objects for a timeframe;

analyzing, by operation of one or more computer processors, workload experienced by processing elements during the timeframe; and

based on the workload experienced by the processing elements during the timeframe, reclassifying at least one of the objects within the three-dimensional scene as a respective second one of at least the static object and the dynamic object.

2. The method of claim 1 , wherein reclassifying at least one of the objects comprises at least one of:

reclassifying an object from a dynamic object to a static object; and

reclassifying an object from a static object to a dynamic object.

3. The method of claim 1 , wherein at least one of the plurality of objects within the three-dimensional scene is classified as an essential dynamic object, wherein the static or dynamic classification of the essential dynamic object cannot be modified.

4. The method of claim 1 , further comprising: assigning a complexity factor to each of the objects within the three-dimensional scene, and wherein reclassifying at least one of the objects within the three-dimensional scene is based at least in part on the workload experienced by processing elements and the complexity factor assigned to the object.

5. The method of claim 4 , further comprising: assigning a desirability factor to each of the objects within the three-dimensional scene, and wherein reclassifying at least one of the objects within the three-dimensional scene is based at least in part on the workload experienced by processing elements, the complexity factor assigned to the object, and the desirability factor assigned to the object.

6. The method of claim 1 , wherein physics based operations comprise at least one of collision detection tests and collision handling operations in the three-dimensional scene, and wherein the workload experienced by the processing elements comprises image processing operations for the three-dimensional scene.

7. The method of claim 1 , wherein performance analysis comprises monitoring at least one of a performance counter for a processing element or an inbox associated with a processing element.

8. The method of claim 1 , wherein the timeframe is the period of a frame in an image processing system.

9. A computer readable medium containing a program which, when executed, performs an operation comprising:

classifying each of a plurality of objects within a three-dimensional scene as a respective first one of at least a static object and a dynamic object;

performing physics based operations on the objects for a timeframe;

analyzing workload experienced by processing elements during the timeframe; and

based on the workload experienced by the processing elements during the timeframe, reclassifying at least one of the objects within the three-dimensional scene as a respective second one of at least the static object and the dynamic object.

10. The computer readable medium of claim 9 , wherein reclassifying at least one of the objects comprises at least one of:

reclassifying an object from a dynamic object to a static object; and

reclassifying an object from a static object to a dynamic object.

11. The computer readable medium of claim 9 , wherein at least one of the plurality of objects within the three-dimensional scene is classified as an essential dynamic object, wherein the static or dynamic classification of the essential dynamic object cannot be modified.

12. The computer readable medium of claim 9 , wherein the operation further comprises further comprising:

assigning a complexity factor to each of the objects within the three-dimensional scene, and wherein reclassifying at least one of the objects within the three-dimensional scene is based at least in part on the workload presented to processing elements and the complexity factor assigned to the object.

13. The computer readable medium of claim 12 , wherein the operation further comprises: assigning a desirability factor to each of the objects within the three-dimensional scene, and wherein reclassifying at least one of the objects within the three-dimensional scene is based at least in part on the workload presented to processing elements, the complexity factor assigned to the object, and the desirability factor assigned to the object.

14. The computer readable medium of claim 9 , wherein physics based operations comprise at least one of collision detection tests and collision handling operations in the three-dimensional scene, and wherein the workload experienced by the processing elements comprises image processing operations for the three-dimensional scene.

15. A system, comprising:

a plurality of objects within a three-dimensional scene;

a first processing element; and

a second processing element configured to classify each of the plurality of objects as a respective first one of at least a static object and a dynamic object, perform physics based operations on the objects for a timeframe, analyze workload experienced by the first processing element during the timeframe, and, based on the workload experienced by the first processing element during the timeframe, reclassifying at least one of the objects within the three-dimensional scene as a respective second one of at least the static object and the dynamic object.

16. The system of claim 15 , further comprising:

a dynamic object queue; and

a static object queue; and

wherein the second processing element classifies the plurality of objects as one of at least the static object and the dynamic object by storing the object in at least one of the dynamic object queue or the static object queue.

17. The system of claim 16 , wherein the second processing element reclassifies at least one of the objects by doing at least one of:

moving an object from the dynamic object queue to the static object queue; and

moving an object from the static object queue to the dynamic object queue.

18. The system of claim 15 , wherein

the system is a game system; and

wherein the first processing element is configured to perform image processing operations.

19. The system of claim 15 , wherein the second processing element analyzes the performance of the first processing element by monitoring at least one of a performance counter for the first processing element or an inbox associated with the first processing element.

20. The system of claim 15 ,

wherein the first processing element comprises a plurality of threads;

wherein the threads of the first processing element are configured to perform image processing operations for the timeframe;

wherein the second processing element comprises a plurality of threads;

wherein the threads of the second processing element are configured to perform physics operations for the timeframe; and

wherein reclassifying at least one of the objects within the three-dimensional scene results in at least one of a portion of the plurality of threads of the first processing element performing physics operations for a subsequent timeframe or a portion of the plurality of threads of the second processing element performing image processing operations for a subsequent timeframe.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2016
From: BANK OF AMERICA, N.A.
To: ACTIVISION BLIZZARD INC.; ACTIVISION PUBLISHING, INC.; ACTIVISION ENTERTAINMENT HOLDINGS, INC.; BLIZZARD ENTERTAINMENT, INC.
Reel/Frame 040381/0487 →
SECURITY AGREEMENT Recorded Feb 11, 2014
From: ACTIVISION PUBLISHING, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 032240/0257 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: ACTIVISION PUBLISHING, INC.
Reel/Frame 029900/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2007
From: RADZIKOWSKI, ERIC MICHAEL; SHEARER, ROBERT ALLEN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 018888/0173 →