IP Library › Granted Patent US 12,226,690
Granted Patent B2
US 12,226,690 · App. 18/081,931 · Granted Feb 18, 2025

Resolution-based scaling of real-time interactive graphics

Inventors: Dov Zimring (Belmont, CA); Paul Leventis (Mountain View, CA); Benjamin Frenkel (Mountain View, CA); Matthew Rodgers (San Jose, CA); Clinton Smullen (Mountain View, CA); Robert McCool (Menlo Park, CA)
Assignee: GOOGLE LLC
A63F13/358A63F13/323A63F13/335A63F13/40G06F9/45558A63F2300/534A63F2300/535
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 12,226,690
App. No.
18/081,931
Granted
Feb 18, 2025
Kind
B2
Abstract

An electronic game server receives a request from a client device to establish a real-time interactive gaming session, determines a device capability of an output device associated with the client device, determines a connection capability of the network connection, determines one or more target quality parameters for the real-time interactive gaming session based on the device capability and the connection capability, selects a first virtual machine of the plurality of virtual machines based on the one or more target quality parameters, establishes the real-time interactive gaming session with the client device, and provides to the real-time interactive gaming session, in accordance with the resource profile of the first virtual machine, resources for processing inputs from the client device and generating gameplay outputs in accordance with the processed inputs within the real-time interactive gaming session.

Claims (95)

1. A method, comprising:

receiving an input event during a current game state of a game session executing on a gaming device;

determining a first frame that was displayed by the gaming device at a time of the input event, the first frame being one of a plurality of output frames transmitted for the game session prior to receiving the input event;

determining a first game state associated with the first frame, the first game state occurring prior to the current game state;

processing a gameplay output based on the input event in accordance with the determined first game state; and

transmitting a response frame for display by the gaming device based on the gameplay output.

2. The method of claim 1 , wherein determining the first game state comprises:

determining a game time index associated with the first frame; and

determining a game state that existed at a time corresponding to the game time index associated with the first frame.

3. The method of claim 1 , wherein processing the gameplay output comprises

providing the input event to a game engine that determines gameplay outputs based on input events and game states.

4. The method of claim 1 , wherein processing the gameplay output comprises:

introducing a new virtual object or modifying an existing virtual object;

including the new virtual object or the modified existing virtual object in the response frame; and

generating a subsequent game state in accordance with the new or modified virtual object.

5. The method of claim 1 , wherein the current game state is associated with a second frame reflecting a game state which is inconsistent with an intended game state reflecting the input event; and

wherein processing the gameplay output comprises reconciling the current game state with the intended game state.

6. The method of claim 5 , wherein reconciling the current game state with the intended game state comprises modifying a frame depicting the current game state to generate a subsequent frame depicting the intended game state.

7. The method of claim 1 , further comprising:

receiving, at a server during the game session, a plurality of display events from the gaming device, each respective display event being associated with frame identification data for a respective frame that was displayed by the gaming device during the display event;

wherein determining the first frame comprises:

determining which of the plurality of display events was received closest in time to the input event; and

identifying the first frame based on the frame identification data for the determined display event.

8. The method of claim 1 , wherein the input event is associated with a first timestamp indicating a timing of the input event; and

wherein determining the first frame comprises:

assigning a second timestamp to the input event indicating a time the input event was received at a server;

determining a first one-way transit time of the input event from the gaming device to the server based on a comparison of the first and second timestamps;

approximating a second one-way transit time from the server to the gaming device based on the first one-way transit time; and

identifying the first frame based on the approximated second one-way transit time.

9. The method of claim 1 , wherein the input event is associated with a first timestamp indicating a timing of the input event; and

wherein determining the first frame comprises:

including the first timestamp in metadata of the response frame; and

transmitting the response frame with the first timestamp to the gaming device for use in determining a controller-to-gaming device latency.

10. The method of claim 1 , further comprising, prior to receiving the input event:

rendering an output frame;

including a first timestamp in metadata of the output frame, the first timestamp indicating

a rendering timing or a transmission timing of the output frame; and

transmitting the output frame with the first timestamp to the gaming device for use in

determining a one-way server-to-gaming device latency;

wherein determining the first frame comprises:

receiving a display event from the gaming device at a server, the display event including an indication of the one-way server-to-gaming device latency; and

identifying the first frame based on the indicated one-way server-to-gaming device latency.

11. The method of claim 1 , further comprising, prior to receiving the input event:

rendering an output frame;

including a first timestamp in metadata of the output frame, the first timestamp indicating a rendering timing or a transmission timing of the output frame; and

transmitting the output frame with the first timestamp to the gaming device;

wherein determining the first frame comprises:

receiving a display event from the gaming device, the display event including the first timestamp and a second timestamp indicating a display timing of the output frame;

determining a one-way server-to-gaming device latency value based on a comparison of the first and second timestamps; and

identifying, as the first frame, the output frame based on the determined one-way server-to-gaming device latency value.

12. The method of claim 1 , further comprising, prior to receiving the input event:

rendering an output frame;

tagging the output frame with a first audio signal;

transmitting the output frame with the first audio signal to the gaming device; and

associating a transmission timing of the output frame with a first timestamp;

wherein determining the first frame comprises:

receiving, with the input event, (i) an acknowledgement by the gaming device of the first audio signal, and (ii) a second timestamp indicating a transmission timing of the input event from the gaming device to a server;

determining a one-way server-to-gaming device latency value based on a comparison of the first and second timestamps;

determining a one-way gaming device-to-server latency value based on a comparison of the one-way server-to-gaming device latency value and a round-trip-time (RTT) latency value between the server and the gaming device; and

identifying, as the first frame, the output frame based on the determined one-way gaming device-to-server latency value.

13. The method of claim 1 , further comprising, prior to receiving the input event:

rendering an output frame;

tagging the output frame with a first image pattern;

transmitting the output frame with the first image pattern to the gaming device; and

associating a transmission timing of the output frame with a first timestamp;

wherein determining the first frame comprises:

receiving, with the input event, (i) an acknowledgement, the image pattern acknowledgement by the gaming device of the first image pattern; and (ii) a second timestamp indicating a transmission timing of the input event from the gaming device to a server;

determining a one-way server-to-gaming device latency value based on a comparison of the first and second timestamps;

determining a one-way gaming device-to-server latency value based on a comparison of the one-way server-to-gaming device latency value and a round-trip-time (RTT) latency value between the server and the gaming device; and

identifying, as the first frame, the output frame based on the determined one-way gaming device-to-server latency value.

14. A server, comprising:

one or more processors; and

memory storing one or more programs for execution by the one or more processors, the one or more programs comprising instructions for:

receiving an input event during a current game state of a game session executing on a gaming client;

determining a first frame that was displayed by the gaming client at a time of the input event, the first frame being one of a plurality of output frames transmitted for the game session prior to receiving the input event;

determining a first game state associated with the first frame, the first game state occurring prior to the current game state;

processing a gameplay output based on the input event in accordance with the determined first game state; and

transmitting a response frame for display by the gaming client based on the gameplay output.

15. The server of claim 14 , wherein determining the first game state comprises:

determining a game time index associated with the first frame; and

determining a game state that existed at a time corresponding to the game time index associated with the first frame.

16. The server of claim 14 , wherein processing the gameplay output comprises providing the input event to a game engine that determines gameplay outputs based on input events and game states.

17. The server of claim 14 , wherein processing the gameplay output comprises:

introducing a new virtual object or modifying an existing virtual object;

including the new virtual object or the modified existing virtual object in the response frame; and

generating a subsequent game state in accordance with the new or modified virtual object.

18. The server of claim 14 , wherein the current game state is associated with a second frame reflecting a game state which is inconsistent with an intended game state reflecting the input event; and

wherein processing the gameplay output comprises reconciling the current game state with the intended game state.

19. The server of claim 18 , wherein reconciling the current game state with the intended game state comprises modifying a frame depicting the current game state to generate a subsequent frame depicting the intended game state.

20. A non-transitory computer readable storage medium storing instructions that, when executed by one or more processors of a gaming server, cause the gaming server to:

receive an input event during a current game state of a game session executing on a gaming client;

determine a first frame that was displayed by the gaming client at a time of the input event, the first frame being one of a plurality of output frames transmitted for the game session prior to receiving the input event;

determine a first game state associated with the first frame, the first game state occurring prior to the current game state;

process a gameplay output based on the input event in accordance with the determined first game state; and

transmit a response frame for display by the gaming client based on the gameplay output.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2022
From: ZIMRING, DOV; LEVENTIS, PAUL; FRENKEL, BENJAMIN; RODGERS, MATTHEW; SMULLEN, CLINTON; MCCOOL, ROBERT
To: GOOGLE LLC
Reel/Frame 062148/0331 →
Continuity (4)
Continuation 17223226 · Apr 6, 2021
Continuation 16368801 · Mar 28, 2019
Provisional Application 62651662 · Apr 2, 2018
Related Publication 20230117969A1 · Apr 20, 2023
References Cited (56)
US 5995518A · Burns et al. · 1999 [cited by applicant]
US 6393582B1 · Klecka et al. · 2002 [cited by applicant]
US 7015909B1 · Morgan, III et al. · 2006 [cited by applicant]
US 20060004874A1 · Hutcheson · 2006 [cited by examiner]
US 20080055463A1 · Lerner et al. · 2008 [cited by applicant]
US 20080102955A1 · D'Amora · 2008 [cited by examiner]
US 20090119730A1 · Perlman · 2009 [cited by examiner]
US 20100167816A1 · Perlman et al. · 2010 [cited by applicant]
US 20110110376A1 · Jiang · 2011 [cited by applicant]
US 20120215975A1 · Catrouillet et al. · 2012 [cited by applicant]
US 20140228108A1 · Bruno et al. · 2014 [cited by applicant]
US 20140304481A1 · Iwasaki · 2014 [cited by applicant]
US 20150221063A1 · Kim et al. · 2015 [cited by applicant]
US 20160043739A1 · Taylor · 2016 [cited by applicant]
US 20180290061A1 · Payzer · 2018 [cited by examiner]
US 20190344163A1 · Mada · 2019 [cited by applicant]
CN 1642249A · 2005 [cited by applicant]
CN 101889422A · 2010 [cited by applicant]
CN 102789305A · 2012 [cited by applicant]
CN 104991827A · 2015 [cited by applicant]
CN 105933727A · 2016 [cited by applicant]
CN 107096221A · 2017 [cited by applicant]
JP 2003236251A · 2003 [cited by applicant]
JP 2007336260A · 2007 [cited by applicant]
JP 2015033051A · 2015 [cited by applicant]
KR 1020040091599A · 2004 [cited by applicant]
KR 101036421B1 · 2009 [cited by applicant]
KR 1020110132609A · 2011 [cited by applicant]
KR 1020150092440A · 2015 [cited by applicant]
WO 2013069655A1 · 2013 [cited by applicant]
WO 2014179595A1 · 2014 [cited by applicant]
Translation of Korean Office Action mailed Sep. 25, 2023 for KR Application No. 10-2023-7002848, 58 pages. [cited by applicant]
Corrected Notice of Allowability mailed Apr. 24, 2023 for U.S. Appl. No. 17/223,226, 7 pages. [cited by applicant]
Notice of Allowance mailed Feb. 1, 2023 for U.S. Appl. No. 17/223,226, 41 pages. [cited by applicant]
Notice of Allowance mailed Feb. 13, 2023 for U.S. Appl. No. 15/734,275, 53 pages. [cited by applicant]
Notice of Allowance mailed Feb. 13, 2023 for U.S. Appl. No. 16/844,937, 327 pages. [cited by applicant]
English Translation of Korean Office Action mailed Mar. 3, 2022 for KR Application No. 10-2022-7023033, 8 pages. [cited by applicant]
Notice of Allowance mailed Mar. 27, 2023 for U.S. Appl. No. 17/521,133, 7 pages. [cited by applicant]
Corrected Notice of Allowability mailed Apr. 28, 2023 for U.S. Appl. No. 15/734,275, 10 pages. [cited by applicant]
Non-Final Office Action mailed May 12, 2023 for U.S. Appl. No. 17/402,761, 37 pages. [cited by applicant]
Notice of Allowance mailed Apr. 28, 2023 for EP Application No. 21169156.3, 97 pages. [cited by applicant]
Notice of Allowance mailed Mar. 7, 2023 for EP Application No. 18797260.9, 118 pages. [cited by applicant]
Notice of Allowance mailed Jun. 7, 2023 for U.S. Appl. No. 17/216,115, 70 pages. [cited by applicant]
Supplemental Notice of Allowability mailed May 16, 2023 for U.S. Appl. No. 17/521,133, 6 pages. [cited by applicant]
Extended European Search Report mailed Dec. 16, 2022 for European Application No. 22202122.2, 10 pages. [cited by applicant]
Translation of First Office Action mailed Dec. 6, 2023 for CN Application No. 202210695936.5, 13 pages. [cited by applicant]
Extended European Search Report mailed Nov. 22, 2023 for EP Application No. 23193975.2, 12 pages. [cited by applicant]
European Notice of Allowance mailed Jan. 8, 2024 for EP Application No. 19714045.2, 110 pages. [cited by applicant]
Translation of Indian Notice of Grant and Report on Accumulated Annuities issued Dec. 8, 2023 for IN Application No. 202047027952, 4 pages. [cited by applicant]
Translation of Korean Notice of Allowance issued Oct. 19, 2023 for Korean patent Application No. 10-2022-7006647, 4 pages. [cited by applicant]
Final Office Action mailed Nov. 24, 2023 for U.S. Appl. No. 17/402,761, 21 pages. [cited by applicant]
Translation of Korean Office Action mailed Feb. 17, 2024 for KR Application No. 10-2023-7042902, 6 pages. [cited by applicant]
Translation of Chinese Office Action mailed Jan. 31, 2024 for CN Application No. 201980006039.5, 18 pages. [cited by applicant]
Extended European Search Report mailed Mar. 5, 2024 for EP Application No. 24157044.9, 11 pages. [cited by applicant]
Translation of Chinese Office Action mailed Jul. 25, 2024 for CN Application No. 201980006039.5, 15 pages. [cited by applicant]
Translation of Notification for Patent Registration Formalities mailed Aug. 19, 2024 for CN Application No. 201980006052.0, 6 pages. [cited by applicant]