Predictive Server-Side Rendering for Cloud Gaming Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based gaming platforms face high latency issues due to network congestion and distance, which can lead to frustrating delays and impractical gameplay, especially when buffering is used, as it can increase user-perceived latency by introducing communication time lag between user input and response.

Innovation Solution

A server device and method for predictive server-side rendering that calculates a predicted future navigation input based on current user input and application state, rendering a future scene with a larger field of view, and sending it to the client device, allowing for reduced perceived latency by interpolating pixel data to fill visual holes and using techniques like spatial and temporal interpolation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If content buffering is used to handle network latency, then playback continuity is improved, but user-perceived latency increases due to communication time lag between user input and content display

Engineering Contradiction:
Improveplayback continuityVSAvoiduser-perceived latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The server performs preliminary rendering of multiple future scenes ahead of time based on predicted user navigation inputs. By calculating predicted future navigation inputs from current user input and application state, and rendering corresponding future scenes in advance, the system prepares content before it is actually needed, eliminating the need for buffering and reducing user-perceived latency.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If cloud-based streaming is used to enable high-end graphics on less powerful devices, then accessibility is improved, but network latency degrades real-time interactivity

Engineering Contradiction:
Improvedevice accessibilityVSAvoidnetwork latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The server renders multiple future scenes in advance based on predicted user navigation inputs, preparing content before network transmission is needed. This preliminary action compensates for network latency, allowing real-time interactivity to be maintained even over wide area networks.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors current user input and application state to recalculate predicted future navigation inputs. This feedback loop ensures that the pre-rendered scenes remain accurate reflections of user intent, maintaining responsiveness and interactivity despite the use of cloud-based streaming.

Inventive Principle:
Principle #23Feedback

3Loss of time

If predictive rendering is used to reduce perceived latency, then responsiveness is improved, but data transmission volume increases due to larger field of view rendering

Engineering Contradiction:
Improveperceived latencyVSAvoiddata transmission volume
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system renders future scenes with a larger field of view than the current viewport, but only in regions that are likely to become visible based on predicted user navigation. This selective rendering approach maintains responsiveness while minimizing unnecessary data transmission by focusing computational resources on locally relevant areas.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10805662B2Predictive server-side rendering of scenes
Publication Date: 2020.10.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10805662B2 patent drawing
  • US10805662B2 patent drawing
  • US10805662B2 patent drawing

AI summary

A server device and method are provided for use in predictive server-side rendering of scenes based on client-side user input. The server device may include a processor and a storage device holding instructions for an application program executable by the processor to receive, at the application program, a current navigation input in a stream of navigation inputs from a client device over a network, calculate a predicted future navigation input based on the current navigation input and a current application state of the application program, render a future scene based on the predicted future navigation input to a rendering surface, and send the rendering surface to the client device over the network.