US12357908B2ActiveUtilityA1

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

Assignee: VALVE CORPPriority: Mar 17, 2020Filed: Oct 6, 2023Granted: Jul 15, 2025
Est. expiryMar 17, 2040(~13.6 yrs left)· nominal 20-yr term from priority
A63F 13/335A63F 2300/534A63F 2300/535A63F 13/77A63F 13/352
77
PatentIndex Score
0
Cited by
32
References
20
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
       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.

Join the waitlist — get patent alerts

Track US12357908B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.