IP Library › Granted Patent US 11,896,898
Granted Patent B2
US 11,896,898 · App. 17/645,440 · Granted Feb 13, 2024

State stream game engine

Inventor: Per Henrik Benny Karlsson (North Vancouver, CA)
Assignee: Electronic Arts Inc.
A63F13/355A63F13/352A63F2300/538
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,896,898
App. No.
17/645,440
Granted
Feb 13, 2024
Kind
B2
Abstract

The present disclosure provides a state stream game engine for a video game application. The state stream game engines can decouple the simulation of a video game application from the rendering of the video game application. The simulation of the video game is handled by a simulation engine. The rendering of the video game is handled by a presentation engine. The data generated by the simulation engine can be communicated to the presentation engine 124 using a state stream.

Claims (55)

1. A computer-implemented method for executing a game application on a user computing system:

by one or more hardware processor configured with computer executable instructions, executing a game application;

executing a simulation engine within the game application, wherein the simulation engine is configured to execute game logic that is configured to control simulation of a virtual environment within the game application, wherein the virtual environment comprises a plurality of virtual objects;

executing a presentation engine within the game application, wherein the presentation engine is configured to generate and render frames for output on a display;

by the simulation engine,

generating simulation state data for virtual objects within the virtual environment during a simulation cycle;

generating graphical state data based at least in part on the simulation state data generated for the simulation cycle;

writing the graphical state data for a least a subset of the virtual objects to a state data package during the simulation cycle; and

writing the state data package to a state stream during the simulation cycle, wherein the state stream is a portion of volatile memory allocated to receive the state data package;

by the presentation engine,

selecting at least a first state data package of a plurality of state data packages during a rendering cycle;

reading at least the first state data package from the state stream during the rendering cycle;

updating a graphical state of the virtual environment based at least in part on the first state data package,

generating a frame based at least in part on the updated graphical state of the virtual environment;

rendering the frame during the rendering cycle;

determining at least the first state data package is ready for disposal; and

deleting at least the first state data package from the state stream.

2. The computer-implemented method of claim 1 , wherein the simulation cycle and the rendering cycle are different lengths of time.

3. The computer-implemented method of claim 1 further comprising:

interpolating the graphical state data included in the first state data package and a second state data package, wherein the second state data package was generated by the same simulation engine that generated the first state data package;

generating a plurality of frames based on the interpolation of the graphical state data; and

rendering the plurality of frames.

4. The computer-implemented method of claim 1 further comprising executing a plurality of simulation engines, wherein each simulation engine is configured to control simulation of a different virtual environment, wherein each virtual environment comprises a plurality of virtual objects registered to the corresponding simulation engine.

5. The computer-implemented method of claim 4 , wherein each of the plurality of simulation engines execute independent of each other and the presentation engine, wherein the presentation engine generates and renders frames independent of the execution of the simulation engine that generated the state data package.

6. The computer-implemented method of claim 4 wherein the plurality of simulation engines are executed on different user computing systems and writing state data packages to the state stream on the user computing system over a network.

7. The computer-implemented method of claim 1 further comprising writing the state data package to a location in non-volatile storage simultaneously with writing the state data package to the state stream.

8. The computer-implemented method of claim 1 , wherein the graphical state data of a state data package comprises state data necessary to recreate a graphical scene within the virtual environment at a point in time.

9. The computer-implemented method of claim 1 , wherein the presentation engine executes the rendering cycle without further input from the simulation engine after receiving the state data package.

10. The computer-implemented method of claim 1 , wherein the state data package is generated in less time than a length of the simulation cycle, wherein there is a period of time between writing the state data package to the state stream and initiation of a subsequent simulation cycle.

11. A computing system comprising:

one or more hardware processors configured with computer-executable instructions that configure the computing system to:

execute a game application;

execute a simulation engine within the game application, wherein the simulation engine is configured to execute game logic that is configured to control simulation of a virtual environment within the game application, wherein the virtual environment comprises a plurality of virtual objects;

execute a presentation engine within the game application, wherein the presentation engine is configured to generate and render frames for output on a display;

by the simulation engine,

generate simulation state data for virtual objects within the virtual environment during a simulation cycle;

generate graphical state data based at least in part on the simulation state data generated for the simulation cycle;

write the graphical state data for a least a subset of the virtual objects to a state data package during the simulation cycle; and

write the state data package to a state stream during the simulation cycle, wherein the state stream is a portion of volatile memory allocated to receive the state data package;

by the presentation engine,

select at least a first state data package of a plurality of state data packages during a rendering cycle;

read at least the first state data package from the state stream during the rendering cycle;

update a graphical state of the virtual environment based at least in part on the first state data package,

generate a frame based at least in part on the updated graphical state of the virtual environment;

render the frame during the rendering cycle;

determine at least the first state data package is ready for disposal; and

delete at least the first state data package from the state stream.

12. The computing system of claim 11 , wherein the presentation engine executes the rendering cycle without further input from the simulation engine after receiving the state data package.

13. The computing system of claim 11 , wherein the one or more hardware processors are configured with computer-executable instructions that further configure the presentation engine to interpolate the graphical state data included in the first state data package a second state data package, wherein the second state data package was generated by the same simulation engine that generated the first state data package, generate a plurality of frames based on the interpolation of the graphical state data, and render the plurality of frames.

14. The computing system of claim 11 , the one or more hardware processors are configured with computer-executable instructions that further configure the game application to execute a plurality of simulation engines, wherein each simulation engine is configured to control simulation of a different virtual environment, wherein each virtual environment comprises a plurality of virtual objects registered to the corresponding simulation engine.

15. The computing system of claim 14 , wherein the plurality of simulation engines are executed on different user computing systems and writing state data packages to the state stream on the user computing system over a network.

16. The computing system of claim 11 , wherein the one or more hardware processors are configured with computer-executable instructions that further configure the simulation engine to write the state data package to a location in non-volatile storage simultaneously with writing the state data package to the state stream.

17. The computing system of claim 11 , wherein the graphical state data of a state data package comprises state data necessary to recreate a graphical scene within the virtual environment of at a point in time.

18. The computing system of claim 11 , wherein the state data package is generated in less time than a length of the simulation cycle, wherein there is a period of time between writing the state data package to the state stream and initiation of a subsequent simulation cycle.

19. The computing system of claim 11 , wherein the simulation engine generates simulation state data for each virtual object within the virtual environment during a simulation cycle.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2022
From: KARLSSON, PER HENRIK BENNY
To: ELECTRONIC ARTS INC.
Reel/Frame 059197/0893 →
Continuity (2)
Continuation 16369514 · Mar 29, 2019
Related Publication 20220184493A1 · Jun 16, 2022