# US 12,179,097 B2 · Dynamic streaming video game client

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,179,097 B2
- Document ID: US12179097B2
- Status: Granted
- Kind: B2
- Application number: 18/449,626
- Filed: 2023-08-14
- Published: 2024-04-04
- Granted: 2024-12-31
- Earliest claimed: 2019-03-29
- Assignees: Electronic Arts Inc.
- Applicants: Electronic Arts Inc.
- Inventors: Per Henrik Benny Karlsson
- Web page: https://patentgrep.com/patent/US12179097B2

## CPC

- A63F 13/355: Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
- A63F 13/352: involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
- A63F 2300/538: for performing operations on behalf of the game client, e.g. rendering
- A63F 2300/5593: involving scheduling aspects
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR

## Abstract

Embodiments of the present application provide a phased streaming system and process using a dynamic video game client. The dynamic video game client can utilize a state stream game engine in combination with a game application streaming service to provide users with the ability to begin playing games quickly on a huge range of devices.

## Claims

### Claim 1

A computer-implemented method for dynamically streaming a game application to a user computing system:
by a server computing system comprising at least one hardware processor configured with computer executable instructions:
initiating streaming of a first gameplay session of a game application;
executing the game application in a distributed streaming phase, wherein the game application includes a first simulation engine configured to execute game logic that is configured to control simulation of a virtual environment, and a first presentation engine configured to render frames based on state data generated by the first simulation engine, wherein executing the game application in the distributed streaming phase comprises:
executing the first simulation engine on a first client instance using hardware computing resources of on the server computing system, and
executing the first presentation engine on the user computing system using hardware computing resources of the user computing system;
during the distributed streaming phase:
transferring assets to the user computing system to execute a second simulation engine on the user computing system; and
based on a determination that the second simulation engine is executing on the user computing system, transferring control of execution of the first simulation engine to the second simulation engine within the game application on the user computing system.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising, during the distributed streaming phase:
receiving user inputs from the user computing system,
generating, by the first simulation engine, distributed streaming phase state data based at least in part on user inputs, and
transmitting the distributed streaming phase state data generated by the first simulation engine to the user computing system for use by the first presentation engine.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the first simulation engine executes independent of the first presentation engine, wherein the first presentation engine generates and renders frames independent of the first simulation engine that generated the distributed streaming phase state data.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein during the distributed streaming phase, the first presentation engine is configured to render portions of a virtual environment of the game application without requesting additional distributed streaming phase state data from the first simulation engine.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 further comprising, initiating a remote streaming phase of the game application prior to the distributed streaming phase, wherein during the remote streaming phase, the first presentation engine executes on the first client instance.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5 further comprising, during the remote streaming phase,
receiving user inputs from the user computing system,
generating, by the first simulation engine, state data based at least in part on the user inputs,
rendering frames of the game application as a video based at least in part on the state data, and
transmitting the video to the user computing system for display within a thin client on the user computing system.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein the thin client is a web browser.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the user computing system is a virtual reality system.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein transitioning from the distributed streaming phase to execution on the user computing system does not end the first gameplay session of the game application.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1 further comprising, executing the first simulation engine on the first client instance concurrently with the second simulation engine on the user computing system.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1 further comprising, prior to the distributed streaming phase, writing distributed streaming phase state data to a network state stream queue and encoding the distributed streaming phase state data for transfer over a network to a state stream on the user computing system.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, further comprising transferring assets to the user computing system to execute a second simulation engine on the user computing system based on a determination that hardware computing resources of the user computing system satisfy requirements of a local execution phase of the game application.

### Claim 13

A server computing system for dynamically streaming a game application to a user computing system comprising:
one or more hardware processors configured with computer executable instructions that configure the server computing system to:
initiate streaming of a first gameplay session of a game application;
execute the game application in a distributed streaming phase, wherein the game application includes a first simulation engine configured to execute game logic that is configured to control simulation of a virtual environment, and a first presentation engine configured to render frames based on state data generated by the first simulation engine, wherein executing the game application in the distributed streaming phase comprises:
execute the first simulation engine on a first client instance using hardware computing resources of on the server computing system, and
execute the first presentation engine on the user computing system using hardware computing resources of the user computing system;
during the distributed streaming phase:
transfer assets to the user computing system to execute a second simulation engine on the user computing system; and
based on a determination that the second simulation engine is executing on the user computing system, transfer control of execution of the first simulation engine to the second simulation engine within the game application on the user computing system.

### Claim 14 (depends on 13)

The server computing system of claim 13, wherein the computer executable instructions further configure the server computing system to, during the distributed streaming phase:
receive user inputs from the user computing system,
generate, by the first simulation engine, distributed streaming phase state data based at least in part on user inputs, and
transmit the distributed streaming phase state data generated by the first simulation engine to the user computing system for use by the first presentation engine.

### Claim 15 (depends on 14)

The server computing system of claim 14, wherein the first simulation engine executes independent of the first presentation engine, wherein the first presentation engine generates and renders frames independent of the first simulation engine that generated the distributed streaming phase state data.

### Claim 16 (depends on 13)

The server computing system of claim 13, wherein during the distributed streaming phase, the first presentation engine is configured to render portions of a virtual environment of the game application without requesting additional distributed streaming phase state data from the first simulation engine.

### Claim 17 (depends on 13)

The server computing system of claim 13, wherein the computer executable instructions further configure the server computing system to initiate a remote streaming phase of the game application prior to the distributed streaming phase, wherein during the remote streaming phase, the first presentation engine executes on the first client instance.

### Claim 18 (depends on 13)

The server computing system of claim 13, wherein the user computing system is a virtual reality system.

### Claim 19 (depends on 13)

The server computing system of claim 13, wherein the computer executable instructions further configure the server computing system to execute the first simulation engine on the first client instance concurrently with the second simulation engine on the user computing system.

### Claim 20 (depends on 13)

The server computing system of claim 13, wherein the computer executable instructions further configure the server computing system to, prior to the distributed streaming phase, write distributed streaming phase state data to a network state stream queue, and encode the distributed streaming phase state data for transfer over a network to a state stream on the user computing system.
