State Stream Game Engine for Decoupled Simulation and Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing the synchronization between simulation and rendering processes in video games is challenging, especially as games become larger and more complex, leading to inconsistencies in frame rate and user experience.
Innovation Solution
A state stream game engine decouples simulation and rendering processes by using a simulation engine to generate state stream data packages (SSDPs) that are written to a state stream, which are then read and rendered by a presentation engine independent of the simulation engine, allowing for independent execution and interpolation to achieve smoother performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If simulation and rendering processes are tightly coupled with many dependencies, then the game logic can be executed accurately, but the frame rate becomes inconsistent and performance reliability deteriorates
Solution Approach 1:
The patent segments the game engine into separate simulation engines and a presentation engine, each operating independently with their own cycles. Simulation engines generate state data packages that are written to a state stream, while the presentation engine reads from this stream to render frames. This segmentation eliminates tight coupling and dependencies between simulation and rendering, allowing each to operate at optimal speeds without compromising frame rate consistency.
Solution Approach 2:
The patent introduces a state stream as an intermediary data structure between simulation engines and the presentation engine. Simulation engines write state data packages to this stream, and the presentation engine reads from it, eliminating direct dependencies. This intermediary buffer allows asynchronous operation where simulation and rendering can proceed independently, improving reliability of frame delivery.
2Adaptability or versatility
If multiple simulation engines execute with different cycle lengths, then each virtual environment can be simulated independently, but synchronizing their state data becomes more difficult
Solution Approach 1:
The patent implements preliminary action by having simulation engines pre-generate complete state data packages for their respective virtual environments before the presentation engine needs them. Each simulation engine executes its simulation cycle, computes all necessary state changes, and writes the complete state data package to the state stream in advance. This allows the presentation engine to read ready-made packages without waiting for simulation completion, eliminating synchronization delays.
Solution Approach 2:
The patent uses copying by creating state data packages that contain complete snapshots of virtual environment states. These packages are copied from simulation engine memory to the shared state stream, allowing the presentation engine to work with independent copies of the data. This copying mechanism enables different simulation engines with different cycle lengths to contribute their states without requiring real-time synchronization.
3Productivity
If the presentation engine waits for simulation engine input during rendering cycles, then rendering accuracy is maintained, but rendering efficiency and frame rate decrease
Solution Approach 1:
The patent enables continuity of useful action by allowing the presentation engine to continuously read and render frames from the state stream without waiting for simulation engine input. Simulation engines continuously write state data packages to the stream in the background, ensuring that the presentation engine always has available data to render. This continuous operation maintains both rendering efficiency and accuracy, as the presentation engine processes complete state packages that were prepared in advance.
Data Source
AI summary
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.


