Tracking file system read operations for instant play of video games, and for client-side discarding and prefetching of game data
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-modifiedWhat 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.