IP Library › Granted Patent US 12,357,908
Granted Patent B2
US 12,357,908 · App. 18/482,291 · Granted Jul 15, 2025

Tracking file system read operations for instant play of video games, and for client-side discarding and prefetching of game data

Inventor: Pierre-Loup Miguel Griffais (Mercer Island, WA)
Assignee: Valve Corporation
A63F13/352A63F13/335A63F2300/534
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,357,908
App. No.
18/482,291
Granted
Jul 15, 2025
Kind
B2
Abstract

Client machines running game executables of a video game(s) may utilize a file system proxy component that is configured to track read operations made by the game executable during a game session, to generate access data based on the tracked read operations, and to report the access data to a remote system. This telemetry approach allows the remote system to collect access data reported by multiple client machines, to catalogue the access data according to client system configuration, and to analyze the access data to generate data that is usable by client machines to implement various game-related features including, without limitation, “instant play” of video games, discarding of unused blocks of game data to free up local memory resources, and/or local prefetching of game data for reducing latency during gameplay.

Claims (56)

1. A method comprising:

sending, by a computing device, to a remote system, a request to acquire a program;

receiving, by the computing device, from the remote system, executable code of the program;

starting to download, by the computing device, to non-volatile memory of the computing device, blocks of data for the program;

preventing, by a processor of the computing device, execution of the executable code until at least one of:

a lapse of a period of time since the blocks started to download; or

an occurrence of an event, and

in response to at least one of the lapse of the period of time or the occurrence of the event, executing, by the processor, the executable code on the computing device while at least some of the blocks are still being downloaded.

2. The method of claim 1 , further comprising receiving, by the computing device, from the remote system, download-sequence data specifying a sequence of the blocks, wherein the blocks start to download in accordance with the sequence.

3. The method of claim 2 , wherein:

the request includes a configuration of the computing device; and

the download-sequence data is associated with the configuration.

4. The method of claim 1 , further comprising:

receiving, by the processor, a read operation made by the executable code to a file system of the computing device, the read operation requesting to read a block of the blocks;

determining, by the processor, that the block has been downloaded to the non-volatile memory; and

reading, by the processor, the block using the file system.

5. The method of claim 1 , wherein the event occurs when a threshold number of the blocks have been downloaded to the non-volatile memory.

6. The method of claim 1 , wherein the program comprises a video game, the method further comprising outputting, by the computing device, a notification indicating that the video game is ready for instant play.

7. A computing device comprising:

a processor; and

non-transitory computer-readable media storing computer-executable instructions that, when executed by the processor, cause the computing device to:

send, to a remote system, a request to acquire a program;

receive, from the remote system, executable code of the program;

start to download, to non-volatile memory of the computing device, blocks of data for the program;

prevent, using the processor, execution of the executable code until at least one of:

a lapse of a period of time since the blocks started to download; or

an occurrence of an event, and

in response to at least one of the lapse of the period of time or the occurrence of the event, execute, using the processor, the executable code on the computing device while at least some of the blocks are still being downloaded.

8. The computing device of claim 7 , wherein the computer-executable instructions, when executed by the processor, further cause the computing device to receive, from the remote system, download-sequence data specifying a sequence of the blocks, wherein the blocks start to download in accordance with the sequence.

9. The computing device of claim 8 , wherein the sequence positions the blocks that are more likely to be accessed first towards a start of the sequence, and the blocks that are less likely to be accessed first towards an end of the sequence.

10. The computing device of claim 7 , wherein the computer-executable instructions, when executed by the processor, further cause the computing device to:

receive, via the processor, a read operation made by the executable code to a file system of the computing device, the read operation requesting to read a block of the blocks;

determine, using the processor, that the block has not finished downloading to the non-volatile memory;

send, to the remote system, a second request for the block;

receive the block from the remote system; and

read the block using the file system.

11. The computing device of claim 7 , wherein the computer-executable instructions, when executed by the processor, further cause the computing device to receive, from the remote system, instructions to wait for at least one of the lapse of the period of time or the occurrence of the event before allowing the execution of the executable code, wherein preventing the execution of the executable code is based at least in part on receiving the instructions from the remote system.

12. The computing device of claim 7 , wherein the program comprises a video game, and the computer-executable instructions, when executed by the processor, further cause the computing device to output a notification indicating that the video game is ready for instant play.

13. The computing device of claim 7 , wherein the event occurs when a threshold number of the blocks have been downloaded to the non-volatile memory.

14. The computing device of claim 7 , wherein the computer-executable instructions, when executed by the processor, further cause the computing device to:

receive, via the processor, a read operation made by the executable code to a file system of the computing device, the read operation requesting to read a block of the blocks;

determine, using the processor, that the block has been downloaded to the non-volatile memory; and

read the block using the file system.

15. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by processor of a computing device, cause the computing device to:

send, to a remote system, a request to acquire a program;

receive, from the remote system, executable code of the program;

start to download, to non-volatile memory of the computing device, blocks of data for the program;

prevent, using the processor, execution of the executable code until at least one of:

a lapse of a period of time since the blocks started to download; or

an occurrence of an event, and

in response to at least one of the lapse of the period of time or the occurrence of the event, execute, using the processor, the executable code on the computing device while at least some of the blocks are still being downloaded.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the computer-executable instructions, when executed by the processor, further cause the computing device to receive, from the remote system, download-sequence data specifying a sequence of the blocks, wherein the blocks start to download in accordance with the sequence.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the sequence is specific to a user of the computing device based at least in part on unique access patterns exhibited in access data associated with the user.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the program comprises a video game, and the computer-executable instructions, when executed by the processor, further cause the computing device to display a recommendation to wait for the period of time, or a different period of time, after starting to download the blocks to play the video game.

19. The one or more non-transitory computer-readable media of claim 15 , wherein the program comprises a video game, and the computer-executable instructions, when executed by the processor, further cause the computing device to output a notification indicating that the video game is ready for instant play.

20. The one or more non-transitory computer-readable media of claim 15 , wherein the event occurs when a threshold number of the blocks have been downloaded to the non-volatile memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2023
From: GRIFFAIS, PIERRE-LOUP MIGUEL
To: VALVE CORPORATION
Reel/Frame 065147/0370 →
Continuity (3)
Continuation 17458054 · Aug 26, 2021
Continuation 16821716 · Mar 17, 2020
Related Publication 20240033623A1 · Feb 1, 2024
References Cited (32)
US 6571282B1 · Bowman-Amuah · 2003 [cited by applicant]
US 9969856B2 · Menashi · 2018 [cited by examiner]
US 10569164B1 · Bleasdale-Shepherd · 2020 [cited by applicant]
US 11123634B1 · Griffais · 2021 [cited by applicant]
US 11508125B1 · Latta et al. · 2022 [cited by applicant]
US 20050193139A1 · Vinson et al. · 2005 [cited by applicant]
US 20070010329A1 · Craig · 2007 [cited by examiner]
US 20090054140A1 · Beser et al. · 2009 [cited by applicant]
US 20090164754A1 · Cheriton · 2009 [cited by applicant]
US 20090233705A1 · Lemay · 2009 [cited by applicant]
US 20100255909A1 · McNamara · 2010 [cited by applicant]
US 20110077086A1 · Grube · 2011 [cited by examiner]
US 20110145362A1 · Jones et al. · 2011 [cited by applicant]
US 20120110347A1 · Bigelow, Jr. et al. · 2012 [cited by applicant]
US 20120192171A1 · Tanaka et al. · 2012 [cited by applicant]
US 20120322563A1 · Nguyen · 2012 [cited by applicant]
US 20140129665A1 · Chan · 2014 [cited by applicant]
US 20140179441A1 · Morrison, III · 2014 [cited by applicant]
US 20140344283A1 · Nicholls · 2014 [cited by applicant]
US 20190168124A1 · Haile et al. · 2019 [cited by applicant]
US 20200188793A1 · Haile et al. · 2020 [cited by applicant]
US 20210291049A1 · Griffais · 2021 [cited by applicant]
US 20210387086A1 · Griffais · 2021 [cited by applicant]
US 20230044756A1 · Poe · 2023 [cited by examiner]
EP 0681298A2 · 1995 [cited by applicant]
EP 2621594B1 · 2016 [cited by applicant]
European Search Report mailed Jan. 19, 2024 for European Application No. 21770759.5, a foreign counterpart to U.S. Pat. No. 11,123,634, 15 pages. [cited by applicant]
Wikipedia, “Internet Download Manager”, retrieved from <<https://en.wikipedia.org/w/index.php?title=Internet_Download_Manager&oldid=938930872>>, Feb. 3, 2020. pp. 1-2. [cited by applicant]
Boutilier, “Video game companies are collecting massive amounts of data about you”, Toronto Star Newspapers, Dec. 29, 2015, 3 pages, retrieved on May 20, 2021 from <<https://www.thestar.com/news/canada/2015/12/29/how-mu… [cited by applicant]
Office Action for U.S. Appl. No. 17/458,054, mailed on Mar. 21, 2023, Inventor #1 Pierre-Loup Miguel Griffais, “Tracking File System Read Operations for Instant Play of Video Games, and for Client-Side Discarding and Pr… [cited by applicant]
PCT Search Report mailed Jun. 11, 2021 for PCT Application No. PCT/US21/22815, 10 pages. [cited by applicant]
Extended European Search Report mailed Apr. 19, 2024 for European Application No. 21770759.5, a foreign counterpart to U.S. Pat. No. 11,123,634, 17 pages. [cited by applicant]