IP Library Granted Patent US 10,320,944
Granted Patent B2
US 10,320,944 · App. 14/794,623 · Granted Jun 11, 2019

Predictive cloud-based presimulation

Inventor: Joel Pritchett (Duvall, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L67/38G06F9/5044G06F9/5072H04L67/10H04L67/42A63F2300/407G06F16/9574G06F2209/509
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 10,320,944
App. No.
14/794,623
Granted
Jun 11, 2019
Kind
B2
Abstract

Embodiments related to predictive cloud-based presimulation are described herein. For example, one disclose embodiment provides, on a computing device, a method comprising receiving an input of state from a client device and executing a server simulation of a digital experience based on the input of state, the server simulation configured to run concurrently with, and ahead of, a client simulation on the client device. The method further comprises generating a plurality of simulation results from the server simulation, selecting one or more simulation results from the plurality of simulation results based on a likelihood the client simulation will utilize a particular simulation result, and sending the one or more simulation results to the client device.

Claims (41)

1. A computing device, comprising:

a logic subsystem comprising a processor; and

a data-storage subsystem comprising memory having instructions executable by the processor to

receive an input of state from a client device,

execute a server simulation of a digital experience based on the input of state, the server simulation configured to run concurrently with, and ahead of, a client simulation of the digital experience being executed on the client device,

generate a plurality of simulation results from the server simulation,

determine, for each simulation result, a likelihood that the client simulation will utilize the simulation result,

select one or more simulation results from the plurality of simulation results based on the likelihood, for each selected simulation result, that the client simulation will utilize the selected simulation result, and

send the one or more selected simulation results to the client device.

2. The computing device of claim 1 , wherein the instructions are further executable to select the one or more simulation results based on an amount of time used by the server simulation to generate each of the one or more selected simulation results.

3. The computing device of claim 1 , wherein the instructions are further executable to select the one or more simulation results based on an amount of data in a function output of each of the one or more selected simulation results.

4. The computing device of claim 1 , wherein each of the one or more simulation results sent to the client device comprises a representation of each of a function input, a corresponding function output generated by a function based on the function input and a function identifier.

5. The computing device of claim 4 , wherein each of the one or more simulation results sent to the client device further comprises an object identifier indicating an object acted on by the function.

6. The computing device of claim 1 , wherein the input of state comprises a temporal identifier indicating a temporal location of the state within the client simulation.

7. The computing device of claim 6 , wherein the temporal location comprises a frame number.

8. The computing device of claim 7 , wherein the instructions are executable to execute the simulation by reinitializing the server simulation at the temporal location.

9. The computing device of claim 1 , wherein the instructions are further executable to determine the likelihood based on one or more statistics regarding re-simulation of previous simulation results.

10. The computing device of claim 1 , wherein the instructions are executable to execute the simulation at a higher quality than the client simulation on the client device.

11. A computer-readable memory device excluding a propagating signal per se, the computer readable memory device comprising instructions stored thereon that are executable by a computing device to

receive one or more simulation results from a server system executing a server simulation of the digital experience concurrently with, and ahead of, the client simulation being executed at the computing device, each of the simulation results comprising a function input, a corresponding function output generated by a function based on the function input, and a function identifier,

store the one or more simulation results in a lookup structure;

upon occurrence of a function call, determine if the lookup structure includes a corresponding simulation result for the function call,

if the lookup structure includes the corresponding simulation result, retrieve the corresponding simulation result from the lookup structure and executing the client simulation using the corresponding simulation result retrieved from the lookup structure, and

if the lookup structure does not include the corresponding simulation result, execute the function call.

12. The computer-readable memory device of claim 11 , wherein the instructions executable to determine if the lookup structure includes the corresponding simulation result for the function call by providing to the lookup structure a query comprising the function identifier and the function input for the function call.

13. The computer-readable memory device of claim 11 , wherein the instructions are further executable to receive a user input that affects the client simulation, and send a state representing the client simulation after the user input to the server system.

14. The computer-readable memory device of claim 11 , wherein the instructions are further executable to provide a function output from the corresponding simulation result to the client simulation.

15. The computer-readable memory device of claim 11 , wherein the instructions are executable to execute the client simulation at a lower quality than the server simulation on the server system.

16. The computer-readable memory device of claim 11 , wherein each of the simulation results received from the server system further comprises an object identifier indicating an object acted on by the function.

17. A computing device, comprising:

a logic subsystem comprising a processor; and

a data-storage subsystem comprising memory having instructions executable by the processor to

receive an input of state from the client device,

execute a server simulation of a digital experience based on the input of state, the simulation configured to run concurrently with, and ahead of, a client simulation of the digital experience being executed on the client device,

generate a plurality of simulation results from the server simulation,

determine, for each of the plurality of simulation results, a likelihood the client simulation will utilize a particular simulation result, the likelihood based on one or more statistics regarding re-simulation of previous simulation results,

select one or more simulation results from the plurality of simulation results based on the likelihood the client simulation will utilize a particular simulation result, and

send the one or more simulation results to the client device for providing memoization to the client simulation.

18. The computing device of claim 17 , wherein each of the one or more simulation results comprises a function input, a corresponding function output generated by a function based on the function input, an object identifier indicating an object acted on by the function, and a function identifier.

19. The computing device of claim 17 , wherein the instructions are executable to select the one or more simulation results based on one or more of an amount of time used by the server simulation to generate the particular simulation result and an amount of data in the function output of the particular simulation result.

20. The computing device of claim 17 , wherein each of the one or more simulation results comprises a representation of each of a function input, a corresponding function output generated by a function based on the function input and a function identifier.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2015
From: PRITCHETT, JOEL
To: MICROSOFT CORPORATION
Reel/Frame 036033/0692 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 036033/0712 →
Continuity (2)
Continuation 13494806 · Jun 12, 2012
Related Publication 20150312374A1 · Oct 29, 2015