Program mode switching
First Claim
1. A method of providing a computer game, the method comprising:
- receiving a command for processing by the computer game at a video server system, the command received from a remote client directing execution of the computer game;
executing game logic of the computer game on the video server system in accordance with the command received from the remote client, execution of the game logic resulting in generation of a video game environment based on a game state and on the command received from the remote client;
operating a graphics processing unit at the video server system to render the video game environment to video data;
processing the video data through an encoding pipeline at the video server system to encode the video data into a data format compatible with a codec present at the remote client;
providing the encoded video data from the video server system to the remote client over a communication network; and
providing executable game logic of the computer game to the remote client in addition to the encoded video data;
executing the executable game logic of the computer game on the remote client to generate video of the computer game at the remote client based on the game state and on commands for processing by the computer game as provided at the remote client; and
in conjunction with executing the executable game logic of the computer game on the remote client, stopping provision of the encoded video data from the video server system to the remote client over the communication network.
4 Assignments
0 Petitions
Accused Products
Abstract
A computing system is configured to execute a computer program on a server and to provide a video stream of the program output to a geographically remote client over a communication network. The computing system is further configured to provide executable content of the computer program to the client over the communication network in parallel with the video stream. When a sufficient amount of the executable content has been provided to the client execution of the computer program is transitioned from the server to the client. The transition optionally includes communicating a state of the computer program from the server to the client. The executable content can be provided to the client in an order that is determined based on the state of the computer program. Those parts of the executable content deemed most likely to be necessary to support game play on the client are given priority.
52 Citations
33 Claims
-
1. A method of providing a computer game, the method comprising:
-
receiving a command for processing by the computer game at a video server system, the command received from a remote client directing execution of the computer game; executing game logic of the computer game on the video server system in accordance with the command received from the remote client, execution of the game logic resulting in generation of a video game environment based on a game state and on the command received from the remote client; operating a graphics processing unit at the video server system to render the video game environment to video data; processing the video data through an encoding pipeline at the video server system to encode the video data into a data format compatible with a codec present at the remote client; providing the encoded video data from the video server system to the remote client over a communication network; and providing executable game logic of the computer game to the remote client in addition to the encoded video data; executing the executable game logic of the computer game on the remote client to generate video of the computer game at the remote client based on the game state and on commands for processing by the computer game as provided at the remote client; and in conjunction with executing the executable game logic of the computer game on the remote client, stopping provision of the encoded video data from the video server system to the remote client over the communication network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A method of providing a computer game, the method comprising:
-
executing game logic of the computer game on a video server system or a first client, execution of the game logic resulting in generation of a video game environment based on a game state; operating a graphics processing unit at the video server system of the first client to render the video game environment to video data; processing the video data through an encoding pipeline at the video server system to encode the video data into a data format compatible with a codec present at a remote second client; providing the encoded video data from the video server system or the first client to the remote second client over a communication network; and providing executable game logic to the remote second client from the first client in parallel with the encoded video data, the executable game logic configured to execute on the remote second client to generate game video at the remote second client based on the game state, wherein executing game logic of the computer game on the video server system or the first client is done in accordance with command data received from the remote second client; executing the executable game logic on the remote second client to generate game video at the remote second client based on the game state; and in conjunction with executing the executable game logic on the remote second client, stopping provision of the encoded video data from the video server system or the first client to the remote second client over the communication network and stopping execution of game logic of the computer game on the video server system or the first client. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
-
33. A method of providing a computer game, comprising:
-
executing game logic of the computer game on a video server system or a first client, execution of the game logic resulting in generation of a video game environment based on a game state; operating a graphics processing unit at the video server system of the first client to render the video game environment to video data; processing the video data through an encoding pipeline at the video server system to encode the video data into a data format compatible with a codec present at a remote second client; providing the encoded video data from the video server system or the first client to a remote second client over a communication network; providing executable game logic to the remote second client from the first client in parallel with the encoded video data, the executable game logic configured to execute on the remote second client to generate game video at the remote second client based on the game state; transitioning from a streaming mode in which the encoded video data is provided to the remote second client to a client mode in which the executable game logic is used to generate video of the computer game on the remote second client; and after transitioning to the client mode, transferring game state data from the remote second client to the video server system during execution of the executable game logic in the client mode or after completing a session of the execution of the executable game logic in the client mode; and after transitioning to the client mode, stopping provision of the encoded video data from the video server system or the first client to the remote second client over the communication network.
-
Specification