A method, computer program and apparatus for preparing to prefetch resources of a video game

A machine learning model in video games predicts and prefetches resources based on game context, addressing slow memory access issues and enhancing performance by reducing latency and improving efficiency.

GB2636087APending Publication Date: 2025-06-11SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
GB2023018120
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-28
Publication Date
2025-06-11

AI Technical Summary

Technical Problem

Memory read operations in video games are significantly slower than algebraic operations, leading to increased latency and impacting performance and enjoyment, particularly in complex games where frequent resource access is required.

Method used

A method using a machine learning model trained with game information and resource data to predict and prefetch resources, allowing for faster and more efficient access by anticipating resource needs based on game context.

Benefits of technology

Reduces latency and improves resource access efficiency by accurately predicting and prefetching required resources, tailoring predictions to individual player styles and game situations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method prefetching a video game resource comprising providing game information as an input to a machine learning model which has been trained to associate game information with video game resources
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND Field of the Disclosure The present disclosure relates to a method, computer program and apparatus for preparing to prefetch resources of a video game. Description of the Related Art The "background" description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in the background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly or impliedly admitted as prior art against the present invention. In computer processing, some of the highest latency operations are related to memory access. Memory read operations can take orders of magnitudes longer to conduct than algebraic operations such as adding, subtracting, multiplying and dividing. Memory read operations are required in order to access resources during execution of the program. A resource may include a graphical resource (such as a texture map or an animation), a sound resource (such as a sound effect) or the like. In some computer processing applications, such as video games, it may be necessary to perform read operations frequently. The number of read operations may increase as the complexity of the software being executed. For example, memory operations may be required in order to access a certain resource at a certain point during the video game. However, as the video game progresses to a different phase, access to a number of different resources may be required. Given the time which may be required to perform memory read operations there is a risk that latency can increase when executing complex computer processing applications (such as video games). This is particularly problematic for video games, where latency can significantly impact the performance and enjoyment of the video game. Accordingly, there is a desire for faster and more efficient processing when accessing resources in video games. SUMMARY A brief summary about the present disclosure is provided hereinafter to provide a basic understanding related to certain aspects of the present disclosure. Embodiments of the present disclosure are defined by the independent claims. Further aspects of the disclosure are defined by the dependent claims. In accordance with embodiments of the disclosure, faster and more efficient use of resources within a video game can be achieved. The present disclosure is not particularly limited to this advantageous technical effect. Other technical effects will become apparent for the skilled person when reading the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein: Figure 1 illustrates, an apparatus in accordance with embodiments of the disclosure; Figure 2 illustrates, an entertainment system in accordance with embodiments of the disclosure; Figure 3 illustrates a method in accordance with embodiments of the disclosure; Figure 4 illustrates a configuration of an apparatus in accordance with embodiments of the disclosure; Figure 5 illustrates a selection of a machine learning model in accordance with embodiments of the disclosure; and Figure 6 illustrates an example of a videogame executed on a server in accordance with embodiments of the disclosure. DESCRIPTION OF THE EMBODIMENTS: Referring to Figure 1, an apparatus 1000 (an example of an information processing device) according to embodiments of the disclosure is shown. Typically, an apparatus 1000 according to embodiments of the disclosure is a computer device such as a personal computer, an entertainment system or video game console, or a terminal connected to a server. Indeed, in embodiments, the apparatus may also be a server. The apparatus 1000 is controlled using a microprocessor or other processing circuitry 1002. In some examples, the apparatus 1000 may be a portable computing device such as a mobile phone, laptop computer or tablet -computing device. The processing circuitry 1002 may be a microprocessor carrying out computer instructions or may be an Application Specific Integrated Circuit. The computer instructions are stored on storage medium 1004 which maybe a magnetically readable medium, optically readable medium or solid state type circuitry. The storage medium 1004 may be integrated into the apparatus 1000 or may be separate to the apparatus 1000 and connected thereto using either a wired or wireless connection. The computer instructions may be embodied as computer software that contains computer readable code which, when loaded onto the processor circuitry 1002, configures the processor circuitry 1002 to perform a method according to embodiments of the disclosure. Additionally, an optional user input device 1006 is shown connected to the processing circuitry 1002. The user input device 1006 may be a touch screen or may be a mouse or stylist type input device. The user input device 1006 may also be a keyboard, controller, or any combination of these devices. In some examples, the user input device 1006 may be a microphone or other device. The user to may then provide input via sounds or speech. A network connection 1008 may optionally be coupled to the processor circuitry 1002. The network connection 1008 may be a connection to a Local Area Network or a Wide Area Network such as the Internet or a Virtual Private Network or the like. The network connection 1008 may be connected to a server allowing the processor circuitry 1002 to communicate with another apparatus in order to obtain or provide relevant data. The network connection 1002 may be behind a firewall or some other form of network security. Additionally, shown coupled to the processing circuitry 1002, is a display device 1010. The display device 1010, although shown integrated into the apparatus 1000, may additionally be separate to the apparatus 1000 and may be a monitor or some kind of device allowing the user to visualize the operation of the system (e.g. a display screen or a head mounted display). In addition, the display device 1010 may be a printer, projector or some other device allowing relevant information generated by the apparatus 1000 to be viewed by the user or by a third party. Consider, now, Figure 2 of the present disclosure. Figure 2 illustrates an example of an entertainment system. The entertainment system 10 is a computer or console. The entertainment system 10 comprises a central processor or CPU 20. The entertainment system also comprises a graphical processing unit or GPU 30, and RAM 40. Two or more of the CPU, GPU, and RAM may be integrated as a system on a chip (SoC). Further storage may be provided by a disk 50, either as an external or internal hard drive, or as an external solid state drive, or an internal solid state drive. The entertainment device may transmit or receive data via one or more data ports 60, such as a USB port, Ethernet® port, Wi-Fi® port, Bluetooth® port or similar, as appropriate. It may also optionally receive data via an optical drive 70. Audio / visual outputs from the entertainment device are typically provided through one or more A / V ports 90 or one or more of the data ports 60. Where components are not integrated, they may be connected as appropriate either by a dedicated data link or via a bus 100. An example of a device for displaying images output by the entertainment system is a head mounted display 'HMD' 120, worn by a user 1. Interaction with the system is typically provided using one or more handheld controllers 130, and / or one or more VR controllers (130A-L,R) in the case of the HMD. An entertainment system, such as that described in Figure 2 of the present disclosure, may be used by a user in order to play a video game. Video games are complex pieces of software, which utilize a number of different resources (graphical resources, sound resources and the like) during execution. Furthermore, it is important that the video game can be executed with low latency, as an increase in the latency in execution of the video game can have significant impact on the performance and enjoyment of the video game. Consider an example where a person is playing a first person shooter type of video game. If the latency in execution of the video game increases, the user may experience may lag a short time behind the game environment. In such a situation, a user may be unable to provide necessary input instructions to avoid a negative experience within the video game (as, due to the latency, they experience the game a short time behind the game environment (and hence, by the time they provide input instructions, it may already be too late to prevent a negative experience within the video game)). As explained in the Background, memory read operations (such as those operations required to access resources during execution of the video game) are slow and may take orders of magnitudes longer to conduct than algebraic operations such as adding, subtracting, multiplying and dividing. As such, these memory read operations can increase the latency of the video game. Accordingly, for these reasons (as explained also in the Background) there is a desire for faster and more efficient processing when accessing resources in video games. Therefore, in accordance with embodiments of the disclosure, a method, computer program and apparatus for preparing to prefect resources in a video game are provided. <Method> In accordance with embodiments of the disclosure a method of preparing to prefetch resources of a video game is provided. Figure 3 illustrates a method of the present disclosure. The method of Figure 3 may be computer implemented method. In examples, the method may be executed by an apparatus as described with reference to Figure 1 of the present disclosure or an entertainment system as described with reference to Figure 2 of the present disclosure. The method of Figure 3 starts at step S3000 and proceeds to step S3002. In step S3002, the method comprises providing game information as input data to a machine learning model, the machine learning model having been trained with game information and resources of the video game, to associate game information with the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information. In step S3004, the method comprises prefetching one or more resources of the video game using the output of the machine learning model. The method then proceeds to and ends with step S3006. In accordance with embodiments of the present disclosure, it becomes possible to more accurately and reliably predict resources which are going to be required in upcoming game play during execution of the video game, which enables these resources to be prefetched such that they can be accessed quickly and easily if and / or when required. As such, faster and more efficient use of resources within a video game can be provided. For example, latency arising from time required from requesting to access a resource for a video game (e.g. a resource such as a video game assets including one or more of graphics-related data and audio data on) to obtaining the resource can potentially be reduced and / or removed. In particular, as the prediction as to whether a resource should be prefetched is made by the trained model with game information as input data, it becomes possible to more appropriately tailor the prediction of which resources to prefetch for different users (thus accounting for different styles of game play and the like). Therefore, the resources which are most likely to be required for a given user based on the game information can be prefetched. This reduces cost associated with prefetching a resource which is not likely to be required by a specific user while increasing the likelihood that the required resources can be quickly and easily accessed (having been prefetched). Therefore, more generally faster and more efficient use resources within a video game can be provided. It will be appreciated that the present disclosure is not particularly limited to the example method illustrated with reference to Figure 3 of the present disclosure. For example, it will be appreciated that a number of additional steps may also be performed in addition to those steps illustrated in Figure 3 of the present disclosure. Moreover, while the steps of Figure 3 are shown in a certain order, the present disclosure is not particularly limited in this respect. For example, after step S3004, the method may return to step S3002 (instead of step S3006 as illustrated in Figure 3 of the present disclosure). In other words, the method may be used in order to continually predict the resources which should be prefetched during the execution of the video game. In examples, the prediction may be updated as changes in the game information occur. However, it will be appreciated that Figure 3 provides an example of a method in accordance with embodiments of the disclosure. <Computer Program> Furthermore, it will be appreciated that the methods of the present disclosure may be carried out on conventional hardware (such as that described previously herein) suitably adapted as applicable by software instruction or by the inclusion or substitution of dedicated hardware. Thus, the required adaptation to existing parts of a conventional equivalent device may be implemented in the form of a computer program product comprising processor implementable instructions stored on a non-transitory machine-readable medium such as a floppy disk, optical disk, hard disk, PROM, RAM, flash memory or any combination of these or other storage media, or realized in hardware as an ASIC (application specific integrated circuit) or an FPGA (field programmable gate array) or other configurable circuit suitable to use in adapting the conventional equivalent device. Separately, such a computer program may be transmitted via data signals on a network such as an Ethernet, a wireless network, the Internet, or any combination of these or other networks. <Apparatus> Figure 4 of the present disclosure illustrates an example configuration of an apparatus in accordance with embodiments of the disclosure. The apparatus 4000 comprises circuitry 4002. The circuitry 4002 may be processing circuitry such as a microprocessor carrying out computer instructions or may be an Application Specific Integrated Circuit. The circuitry 4002 of apparatus 4000 is configured to provide game information as input data to a machine learning model of the apparatus 4000; the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information. Furthermore, the circuitry 4002 of apparatus 4000 is configured to prefetch one or more resources of the video game using the output of the machine learning model. Thus, Figure 4 provides an example of an apparatus in accordance with embodiments of the disclosure. Further details of embodiments of the disclosure will now be provided. <Resources> As explained, during execution of a videogame, a number of different resources may be required. Typically, these resources are stored in memory and accessed when required by a memory read operation. The memory may be local memory such as a storage unit within the device executing the video game, for example (such as storage unit 1004 described with reference to Figure 1 of the present disclosure). In the case of a server-based video game (e.g. a server associated with a cloud gaming service), the memory may be local memory such as a storage unit within the given server executing the video game or an associated content server accessible to the given server. The resources which are required in a videogame are not particularly limited and may depend on the specific situation to which the embodiments of the disclosure are applied. However, it will be appreciated that the resources may include graphical resources (required for graphics processing). Examples of graphical resources include animation data (which may include three-dimensional animation data for an object within a game environment of the video game), texture information (describing a texture to be applied to a model within the game environment), image data (such as an image of a background, or an image for a Graphical User Interface), video data (such as a movie file or a cut-scene to be played within the game environment), model data (e.g. comprising one or more point clouds and / or one or more polygonal meshes) or the like. Animation data may for example comprise animation frames which specify an animation sequence one or more objects. In examples, texture information may include texture maps. Texture maps can be used in order to provide a realistic appearance to objects within a game environment. Texture maps provide information concerning colour, transparency, surface orientations and the like which can be applied to model data for an object (such as a three-dimensional model) within a game environment. Each unit within the texture map is called a texel (or texture pixel). During graphical processing, the texels are then mapped to appropriate pixels in the output picture in order to create an image for display. The resources which may be used for a video game and prefetched using the output of the machine learning model are not limited to graphical resources (i.e. resources required for graphical processing). In examples, the resources may also include other resources such as audio resources. Audio resources may include music, sound effects, dialogue or other audio which should be provided to a user within the videogame. Alternatively, or in addition the resources may include haptic resources for providing haptic interaction for a user via one or more peripheral devices (e.g. a handheld controller and / or an head-mountable display "HMD"). Furthermore, in examples, other resources include resources related to the game environment itself. In examples, this may include map data or the like (with the map data defining a different portion of the game environment). As such, a number of different resources may be required during execution of the videogame. When a resource is required, the resource has to be read from memory. However, memory read operations can be slow. Therefore, accessing the resources only at a time when required may impact the performance and execution of the videogame. In order to address this, a process of prefetching resources from the memory can be performed. Prefetching of resources is a technique which can be used for speeding up fetch operations (memory read operations) by beginning a fetch operation whose result is expected to be needed soon. The prefetch operation is performed before the resource is actually required. As such, there is potentially a risk of wasteful use of processing when prefetching data that will not actually be required. Furthermore, prefetch operations are only effective in speeding up these memory operations when the resource that is required has actually been prefetched. As explained, the present disclosure addresses these problems by predicting one or more resources that will be required using a trained model (a machine learning model). Game information is provided to the machine learning model in order that it can make a prediction of the resources which will be required. Predicting the resources which will be required in this manner enables a more reliable and accurate prediction of the resources to be made. This means the overheads incurred when prefetching resources which are not required can be reduced. Furthermore, the actual resources which are required in any given situation are more likely to have been prefetched (based on the prediction from the machine learning model). Therefore, faster and more efficient use resources within a video game can be provided. <Game lnformation> The provision of the game information as input to the machine learning model (once trained) makes it possible for the prediction of the resources to prefetch to be tailored for different gameplay situations. That is, the trained machine learning model (training of which is described in more detail below) is responsive to the game information as input to make a prediction of the resource which should be prefetched. The game information may include any information concerning the game environment of the video game being played by the user (also referred to as the player). Indeed, in the present disclosure, the game information can be considered as information associated with the execution of the video game (i.e. information generated by, used by or otherwise accessible to the video game during its execution). For example, game information may include at least one of: a state of the video game, a level of a player of the video game, a health status of a character in the video game, position information of a character in the video game, control input information and / or telemetry information. The state of the video game includes a situation or condition of the video game. Consider, for example, a video game where a user controls a car (a type of video game object) as they drive the car around a race track (a type of game environment). The state of the video game may include information concerning the type of car being driven by the user, the type of race track the user is driving the car around, or the like. The level of the player in the video game may increase as the player gains certain experience points within the video game. For example, a user who has been playing a certain video game for a long time may have gained a number of experience points and therefore be at a higher level within the video game than a player who has been playing the video game only for a short amount of time. In some games, a character being controlled by a user may have an associated health status. For example, in an action game, a character being controlled by a player may have a limited amount of health. At the start of the game, the character may have the maximum amount of health. Then, as the player plays the game, the character may get injured through events which occur in the game. Accordingly, the character's health may decrease as they get injured as the user plays the game. In some games, a player may be able to perform a certain action (such as applying a potion or moving to a preset location) in order to restore health points. Position information of the character in the video game may indicate a location of the character within the game environment. For example, considering, again, a racing game, the position information may indicate the location of the car being driven by the player on the racetrack. Alternatively, in an action game, the position information may indicate the position of the player in the game world or environment. The position information may include an absolute location. Alternatively, in examples, the position information may include a relative position (such as the proximity of the user to a certain object within the game). Control input information may include specific control instructions or input being provided by a user who is playing the video game. For example, this may include a button operation, sequence of button operations, control stick movements, and / or tracked controller movements being made by a user playing the video game. Finally, telemetry of the video game includes any data which can be obtained within the video game environment. For example, telemetry may include information regarding the number or types of objects located in the video game environment, data concerning an action or action of players in the game or the like. Telemetry may include a combination of the other examples of data (such as control information and position information, for example). Therefore, telemetry of the video game provides detailed information regarding how a user interacts with the game. Hence more generally, the game information may be indicative of one or more current properties for the execution of the video game and can be input to the machine learning model. The game information may include a current state of the video game, a current level of a player of the video game, a current health status of a character in the video game, current position information of a character in the video game, current control input information and / or current telemetry information. It will be appreciated that these are only a specific number of limited examples of the type of information which can be included in the state of the game and that the present disclosure is not particularly limited in this regard. However, it will be appreciated that by using the game information (internal information of the video game) a more complete understanding of the game can be obtained which enables a more accurate prediction of the resource or resources to be prefetched to be made. Consider an example of an action video game, where a character being controlled by a player is low on health. In such a situation, a number of different options are available to a person playing the video game. As a first option, a player may consider controlling their character in order to use a potion (or other similar object) in the game in order to restore the health of their character. This first option would require resources corresponding to the use of the potion (such as a specific animation, sound effect or the like). On the other hand, a second option may be to control the character to move to a certain location in order to restore health (such as controlling the character in order that they went to sleep in a bed). However, this second option may require a different set of resources than the first option (such as a different animation or a different sound effect). Using the trained model (training of which is described in more detail below) it is possible to more accurately predict one or more resources which will be required and thus which resources should be prefetched. For example, a certain player may show a strong preference for using a potion for restoring health (i.e. the first option) while a second player may show a strong preference for the second option. Therefore, the machine learning model may predict that the resources related to the first option should be prefetched in a low health situation for the first player, while resources related to the second option should be prefetched in a low health situation for the second player. Accordingly, by providing the game information as input to the trained model, a more appropriate prediction of the resources to be prefetched can be made, thus enabling faster and more efficient use of resources within the video game. <Machine Learning Model> As has been explained, once the game information is provided to the (trained) machine learning model, the machine learning model makes a prediction of the resource(s) which should be prefetched. However, before the machine learning model can be used in order to make this prediction, the machine learning model must be trained. That is, the model which is used to make the prediction is a model which has been trained with game information and corresponding resources of the video game, to associate game information with the resources of the video game. Training of the trained model will now be described. In the present disclosure, the machine learning model may be trained using either supervised or unsupervised learning. Consider supervised learning. Here, the supervised learning model may be trained using labelled training data to learn a function that maps inputs (typically provided as feature vectors) to outputs (i.e. labels). Thus, the labelled training data comprises pairs of inputs and corresponding output labels. The output labels are typically provided by an operator to indicate the desired output for each input. The supervised learning model processes the training data to produce an inferred function that can be used to map new (i.e. unseen) inputs to a label. The input data (during training and / or inference) may comprise various types of data, such as numerical values, images, video, text, or audio. In the present disclosure, the input data includes the game information which has been described hereinbefore. Raw input data may be pre-processed to obtain an appropriate feature vector used as input to the model - for example, features of an image or audio input may be extracted to obtain a corresponding feature vector. Taking control information as an example of game information, the raw input data (such as the button pressed by the user) may be pre-processed in order to obtain the action or function which is being performed by the user (i.e. the action or function being performed by the user). It will be appreciated that the type of input data and techniques for pre-processing of the data (if required) may be selected based on the specific task the supervised learning model is used for. In the present disclosure, a labelled training data set may be obtained based on previous gameplay (e.g. by real players and / or non-player characters). Taking a recording of previous game play, processing can be performed to identify game information from the previous game play and a one or more corresponding resources that were used following the occurrence of the game state. Hence more generally, in some embodiments of the disclosure a machine learning model which is used to make the prediction may be a trained machine learning model which has been trained with training data comprising game information and corresponding target output resources. For example, game information comprising one or more properties for the game may be labeled with one or more corresponding target output resources. This represents one possible example of obtaining labelled training data from previous game play. Once prepared, the labelled training data set (here, the game information with corresponding resources) can be used to train the supervised learning model. During training the model adjusts its internal parameters (e.g. weights) so as to optimize (e.g. minimize) an error function, aiming to minimize the discrepancy between the model's predicted outputs and the labels provided as part of the training data. In the present disclosure, the label provided as part of the training data includes the resource(s) which should be prefetched for the given input. In some cases, the error function may include a regularization penalty to reduce overfitting of the model to the training data set. The supervised learning model may use one or more machine learning algorithms in order to learn a mapping between its inputs and outputs (i.e. between the game information and the resource(s) which should be prefetched). Example suitable learning algorithms include linear regression, logistic regression, artificial neural networks, decision trees, support vector machines (SVM), random forests, and the K-nearest neighbour algorithm. Once trained, the supervised learning model may be used for inference - i.e. for predicting outputs (the resource which should be prefetched) for previously unseen input data (game information). The supervised learning model may perform classification and / or regression tasks. In a classification task, the supervised learning model predicts discrete class labels for input data, and / or assigns the input data into predetermined categories. In a regression task, the supervised learning model predicts labels that are continuous values. In some cases, limited amounts of labelled data may be available for training of the model (e.g. because labelling of the data is expensive or impractical). In such cases, the supervised learning model may be extended to further use unlabelled data and / or to generate labelled data. Alternatively or in addition, training data for training the model may be obtained from other video games that are related to or similar to the video game. For example, training data may be obtained for a plurality of respective video game titles each corresponding to a same video game series for training the machine learning model. Similarly, training data may be obtained for a plurality of respective video game titles each corresponding to a same video game genre (e.g. a racing game genre, first person shooter genre and so on) for training the machine learning model. Considering using unlabelled data, the training data may comprise both labelled and unlabelled training data, and semi-supervised learning may be used to learn a mapping between the model's inputs and outputs. For example, a graph-based method such as Laplacian regularization may be used to extend a SVM algorithm to Laplacian SVM in order to perform semi-supervised learning on the partially labelled training data. Considering generating labelled data, an active learning model may be used in which the model actively queries an information source (such as a user, or operator) to label data points with the desired outputs. Labels are typically requested for only a subset of the training data set thus reducing the amount of labelling required as compared to fully supervised learning. The model may choose the examples for which labels are requested - for example, the model may request labels for data points that would most change the current model, or that would most reduce the model's generalization error. Semi-supervised learning algorithms may then be used to train the model based on the partially labelled data set. Typically, the more data that the machine leaning model is trained upon, the more accurate the predictions of the machine learning model may become. In examples, the machine learning model may be trained on historical data (such as data generated when the videogame has previously been played). In examples, the machine learning model may be trained on simulated data (such as simulations of the playing of the videogame). In examples, the machine learning model may be trained on the training data of a single player (such that the machine learning model is specific to that player). In other examples, the machine learning model may be trained on training data from a number of different players. In examples, the machine learning model may be trained on data for a single video game. In examples, the machine learning model may be trained on data for multiple different video games. In examples, the machine learning model may be trained on data for a given type or genre of videogame (such as action video games, puzzle videogames, racing videogames, role playing videogames, strategy videogames or the like). Hence more generally, the machine learning model may be trained on training data obtained from recordings of previous game play, potentially by a single user or by a number of users. Therefore, it will be appreciated that the machine learning model may be trained on training data such that it is able to predict, for previously unseen game information, resources which should be prefetched. By predicting future resources which are required in this manner, it becomes possible to predict future memory accesses (corresponding to the future resources). Therefore, a processor (such as a GPU of the entertainment system 10) can preemptively fetch future memory accesses, thereby greatly reducing latency associated with memory accesses for execution of a video game. Taking telemetry data as an example of the data used to train the machine learning model, it will be appreciated that the machine learning model may be trained in order that it correlates the utilization of a given set of game resources to telemetry data from the game (such as telemetry data of the player). This can be performed using supervised learning (with labelled trained data, for example). Then, once trained, the trained machine learning model may then be used in order to predict resources which should be prefetched based on previously unseen telemetry data. For example, the trained model may be provided with previously unseen telemetry data (e.g. the player pointing a rocket launcher at a building within the game environment) and may then predict which resources should be prefetched based upon this previously unseen training data (e.g. resources required to simulate the building being destroyed, for example). In examples, by providing the machine learning model with training data of a specific user, the machine learning model may essentially learn the style of play of the user and may select the appropriate game assets (or resources) based on the style of play of that user. In examples, the machine learning model may be trained (as described above) in order to predict the resource which should be prefetched based on the game information which has been provided. In order to access the resource from the memory (and thus prefetch the resource) a processor performing the prefetch operation may therefore identify a memory address or location corresponding to the resource which has been predicted by the machine learning model. Hence, the machine learning model may be operable to provide an output for indicating one or more resources of the video game (e.g. any suitable indexing scheme for indexing resources may be used and which can be referenced using the output). Using the output, a processor (e.g. CPU and / or GPU) may thus perform pre-fetching of one or more resources of the video game. In examples, the machine learning model may be trained (as described above) in order to predict the resource which should be prefetched based on the game information which has been provided and to output the memory address or location of the resource corresponding to this resource. A processor performing the prefetch operation may therefore access the resource from the memory location directly identified by the machine learning model. Thus, in examples, the machine learning model may be operable to output a memory address corresponding to the resource of the video game and the method comprises prefetching resources of the video game using the output of the machine learning model. <Selection of Machine Learning Model> In some examples, a different machine learning model may be used in different situations. The different machine learning models may be trained on different training data. The selection of the different machine learning models may therefore change the nature of the prediction made (and thus the resources which will be prefetched for any given situation (i.e. any given game information as input information). Consider, now, Figure 5 of the present disclosure. Figure 5 of the present disclosure illustrates an example selection of a machine learning model. In this example, a number of machine learning models (machine learning model A, machine learning model B and machine learning model C) are provided. The machine learning models A, B and C are machine learning models which have been trained on training data A, training data B and training data C respectively. That is, while these models have been trained as described above (e.g. using supervised learning) the training data which has been used to train the models is different. Therefore, as these models have been trained using different training data, the prediction that they produce of the resources which should be prefeteched may be different for certain situations. This is advantageous as it enables different machine learning models to be selected in different situations. Consider a situation where different players play a video game (player (or user) A, player (or user) B and player (or user) C). Each of the different players may have a different style of play. For example, player A may be an adventurous player who takes an active approach when playing a video game. On the other hand, player B may be a cautious player, who takes a stealthy approach when playing a video game. In this example, the machine learning model A may be trained on training data A comprising data of game information for player A. Taking supervised learning as an example, the labelled training data provided to model A during the training phase may include game information of player A and the corresponding resources which should be prefetched for player A. On the other hand, machine learning model B may be trained on training data B comprising data of game information for player B. Taking supervised learning as an example, the labelled training data provided to model B during the training phase may include game information of player B and the corresponding resources which should be prefetched for player B. Thus, in some embodiments, the machine learning model has been trained with game information corresponding to a specific player of the video game. Moreover, in some embodiments, the game information provided as input to the machine learning model corresponds to an instance of the video game being played by a specific user, and the machine learning model has been trained with previous game information corresponding to that specific user. Hence, game information for an instance of a given video game being played by a specific user can be input to a machine learning model that has been trained with previously generated game information for that specific user (e.g. from earlier in the instance of the given video game and / or from previously executed instances) to obtain an output indicative of one or more resources to be pre-fetched. As the machine learning model A is trained on the training data of player A, it will be tailored towards the style of play of player A. That is, the machine learning model A essentially is trained for (or put different has learned a function for mapping an input to and output target resource which is dependent on) the style of play of player A and accordingly predicts the appropriate game resources for prefetching based on that style of play. As an example, the machine learning model A may prioritise prefetching explosion-related resources over assassination animations if the user has a more explosive style of play than a stealthy one. Machine leaning model B is trained on the training data of the player B. Therefore, machine learning model B essentially is trained for the style of play of player B. Therefore, in a same situation within a video game (i.e. for same game information) the machine learning model B may priorities prefetching assassination animations if the user has a more stealthy style of play than an explosive one. Likewise, machine learning model C may be trained on training data of player C. Therefore, the machine learning model C may be tailored towards the style of play of the player C and will therefore prioritise prefetching resources which are most likely to be required in consideration of the style of play of that player. Thus, in examples, the method comprising selecting a machine learning model from among a plurality of machine learning models in accordance with user identification information identifying a user of the video game, each respective machine learning model being trained on game information for a corresponding player of the video game. The model selector illustrated in Figure 5 of the present disclosure therefore makes a selection of the machine learning model to be used (here, model A, B or C) in accordance with the identification information (here, player ID) and thus sends the input information (the game information) to the machine learning model which has been selected. The machine learning model which has been selected (here, model A) will then make the prediction of the resource which should be prefetched in accordance with the game information which has been provided. In examples, the information identifying the player (identification information) may be information such as a user credentials identifying the player. For example, the user may sign-in to their account before playing the game. The user account may then be used to identify the player and thus may be used in order to make a selection of the machine learning model to be used. In examples, the information identifying the player may be other information such as image information (e.g. captured from a camera), sound information (e.g. captured from a microphone) or biometric identification information (e.g. captured from a biometric sensor). This information may be used in order to identify the player and therefore may be used in a selection of the machine learning model to be used when predicting the resources which should be prefetched for given game information. While it will be appreciated that different machine learning models (trained on different training data) may be used for different players, the present disclosure is not particularly limited in this regard. That is, in other examples, the machine leaning model may be trained on data from a plurality of different players. In this situation, the prediction made by the machine learning model would provide a prediction of the resource which should be prefetched based on the resources which are most often required for that game information. However, in examples, by using different models for different players, a more appropriate prediction of the resource to be prefetched may be made for a specific player. In some examples, the training of the machine learning model may be performed during the game play. For example, as the user plays the game, further information will be generated concerning the game information and the resources which were required for that game information. In other words, as the user plays the game, new training data will be generated. This new training data can then be used in order to train the machine learning model. In examples, the new training data (generated as the user plays the game) may be used in order to update (or re-train) the machine learning model. In examples, the machine leaning model may initially be trained on training data from a plurality of different players. Then, when a player starts to play the game for the first time, new training data specific to that user will be generated. This new training data may then be used in order to update the machine learning model in order that it is retrained on training data specific to that player. Essentially, as the player plays the game, the machine learning model will adapt (i.e. change the mapping between the input data (the game information) and the output data (the resource to be prefetched)) based on the training generated during the gameplay, such that the machine learning model will adapt to the style of play of the player. Therefore, as the player plays the game, the machine learning model will become more adept at predicting the resources to be prefetched for that specific player, thus leading to more efficient use of the resources. Therefore, in examples, the method comprises training the machine learning model during the video game. <Multiplayer Environment> In some examples, a videogame may be played by a player on a single entertainment system (with the videogame being executed on the entertainment system). In these examples, the device executing the videogame (here, the entertainment system) may perform the prefetching of the resources based on the game information for that player. However, in some examples, a videogame may be played by multiple players. In some examples, the multiple players may be playing the video game using a number of different client devices, with at least a portion of the execution of the videogame being performed by a server side device. In this situation, the players may control a character located within a game environment. In examples, two characters may be shown a same portion of the game environment, when the field of view of their characters within the game environment overlaps. The action or actions of one player within the game environment may therefore impact the resources required by another player. For example, if a first player (player A) causes an explosion to occur within a portion of the game environment being shown to a second player (player B), then that second player may also require access to certain resources (such as an animation of an explosion, or the like). More generally, if a player character associated with a first user is within a predetermined distance in the game environment of a player character associated with another user, then one or more resources required by one of the users may also be required by the other user (e.g. audio data for an explosion or other event which may or may not be within a current field of view). Consider, now, Figure 6 of the present disclosure. Figure 6 illustrates an example of a videogame executed on a server in accordance with embodiments of the disclosure. In this example, a player A is playing a multiplayer videogame which is executed, at least in part, by a server. The player A is playing the videogame on a client device A. The client device A may perform at least a part of the processing required for execution of the video game. In particular, the client device may receive and process control information from the player A. The client device may also access certain locally stored resources on the client side (including graphical information) and use this to prepare a visualization of the game environment for display to the player B. The server may perform processing in response to information from the client devices and update the game environment in response to this information. Furthermore, in this example, the client device B is being used by a player B who is also playing this same multiplayer videogame. The client device B sends certain information to the server (not shown in Figure 6) corresponding to the game information (such as control information) from the player B. The client device B performs certain processing for preparing a visualization of the game environment for display to the player B in response to information from the server. The above describes one possible example for providing session for a multiplayer game using a server and client devices and other similar techniques may be used. More generally, the player A and the player B can control characters within the same game environment. For example, in a so-called role playing game (RPG), the player A and player B may control respective characters within a virtual world. An action taken by player A may therefore impact the game of player B (and vice versa). As explained in the Background, memory access operations (required to access a resource) can be very slow relative to other operations (such as arithmetic operations). This may introduce a certain delay in the processing of the videogame. For example, client B may need to perform a read operation in response to an action taken by player A in the game environment (e.g. accessing an explosion animation in response to the character of player A causing an explosion in the game environment). Therefore, in examples, the method comprises determining whether a character of a second player is within a predetermined distance of a character of a first player within the game environment; and instructing a client device of the second player to prefetch one or more resources of the video game that are the same as one or more resources of the video game that are pre-fetched for the first player using the output of the machine learning model in accordance with the game information of the first player. Alternatively or in addition to using a condition of a predetermined distance between characters in the game environment, a condition of whether at least a portion of a field of view associated with a first character overlaps (e.g. spatially overlaps at a same time) with at least a portion of a field of view associated with a second character may be used. That is, the client device A may provide game information to the server. The server may then provide this game information to a machine learning model as input in order to produce (as output) a prediction of a resource (or set of resources) which should be prefetched by the client device A. The server may then provide an indication of the resource (or set of resources) to client device A in order that the client device A may perform the necessary prefetch operation. Thus, in examples, the game information is game information corresponding to a first player of the video game and the method comprises instructing a client device of the first player of the video game to perform the step of prefetching the resources of the video game using the output of the machine learning model. In addition, in examples, the server may provide an indication of the resource (or set of resources) to client device B, insofar as those resources may also be required by client B. In other words, the output of the machine learning model which has generated a prediction of the resources which may be required by client device A may also be used in order to prefetch resources for the client device B (and vice versa). This enables a client device (e.g. client device B) to prefetch resources related to the game information of the player using that client device (e.g. player B) and also to prefetch resources related to the game information of the player using another client device (e.g. player A). This means a more appropriate set of resources can be prefetched (responsive also to other players within the game environment) thus providing a more efficient use of resources with a faster (and more responsive) gameplay. Indeed, as a specific example, the predictive model (trained model) may determine that a first player is likely to perform a first action in the videogame (e.g. blow up a building, due to pointing a rocket at that building) and so determines that the first player's client device needs to prefetch appropriate resources (such as explosion animations). It may then further be determined which other player's client devices need to prefetch those resources based on a condition as discussed above (e.g. whether the character or the building in question is within the other users' field of view within the game environment). This enables appropriate resources to be obtained by a client device in response to actions taken by other players within the game environment (e.g. players who use a client device other than that client device). Therefore, in examples, the method may comprise determining whether a second player (second user) shares a portion of a view in the game environment with the first player (first user); and instructing a client device of the second player to prefetch resources of the video game using the output of the machine learning model in accordance with the game information of the first player. More generally, in examples the method may comprise determining whether a player character associated with a second user is within a predetermined distance in the game environment of a player character associated with a first user; and in response to prefetching one or more resources of the video game for the first user using the output of the machine learning model, instructing a client device of the second user to prefetch one of more of the resources of the video game. In some examples, instructing the client device of the second user to prefetch one of more of the resources of the video game may comprise one or more of pushing one or more of the resources (e.g. by the server or the client device of the first user) and / or pulling one or more of the resources by the client device of the second user. While Figure 6 illustrates an example with two players (players A and B) it will be appreciated that the present disclosure is not particularly limited in this regard. Many more players may be provided within a multiplayer environment. Furthermore, while a certain separation of the processing between the client and server side has been described with reference to Figure 6, the present disclosure is not particularly limited in this regard. In some examples, more processing may be performed on the client side (by the client side devices). On the other hand, in other examples, more processing may be performed on the server side. Indeed, in some examples, the client side devices may be so-called dummy devices (client side devices on which very limited processing is performed) with the majority of the processing being performed on the serve side. <Advantageous Technical Effect> As explained, in embodiments of the disclosure, game information is provided to a trained model in order to predict resources which should be prefeteched during execution of a videogame. The resources predicted by the trained model can then be prefetched in order that they can be quickly accessed when required. Use of the trained model in this manner enables a more accurate prediction of the resources to be obtained. Accordingly, faster and more efficient use of resources within a video game can be achieved. The present disclosure is not particularly limited to these advantageous technical effects. Other technical effects will become apparent to the skilled person when reading the disclosure. <Clauses> In addition, embodiments of the present disclosure may be arranged in accordance with the following numbered clauses: 1. A method of preparing to prefetch one or more resources of a video game, the method comprising: providing game information as input data to a machine learning model; the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with at least some of the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information; and prefetching one or more resources of the video game using the output of the machine learning model. 2) The method according to clause 1, wherein the one or more resources of the video game include at least one of a list comprising of: animation data, sound effect data, model data and / or texel information. 3) The method according to clause 2, wherein the texel information includes texel location information of a texel of a texture map to be sampled for application to a three-dimensional model. 4) The method according to clause 2, wherein the animation data includes three-dimensional animation data for one or more objects within a game environment of the video game. 5) The method according to any preceding clause, wherein the game information includes at least one of a list comprising of: a state of the video game, a level of a player of the video game, a health status of a character in the video game, position information of a character in the video game, control input information and / or telemetry information. 6) The method according to any preceding clause, wherein the game information provided as input to the machine learning model corresponds to an instance of the video game being played by a specific user, and the machine learning model has been trained with previous game information corresponding to that specific user. 7) The method according to any preceding clause, comprising selecting the machine learning model from among a plurality of machine learning models in accordance with user identification information identifying a user of the video game, 8) The method according to clause 7, wherein each respective machine learning model of the plurality of machine learns models has been trained on previous game information associated with a different user to learn to a function for associating game information for that user with at least some of the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information associated with that user. 9) The method according to any one of clauses 6 to 8, wherein the machine learning model has been trained with previous game information corresponding to that specific user to learn a function for associating game information for that user with at least some of the resources of the video games so as to predict whether a resource of the video game should be prefetched for certain game information associated with that user, in which the function is dependent on a play style of that specific user. 10) The method according to any preceding clause, wherein the machine learning model outputs a memory address corresponding to one or more of the resources of the video game and the method comprises prefetching one or more of the resources of the video game using the output of the machine learning model. 11) The method according to any preceding clause, wherein the game information is game information corresponding to a first user of the video game and the method comprises instructing a client device of the first user of the video game to perform the step of prefetching the one or more resources of the video game using the output of the machine learning model. 12) The method according to any preceding clause, wherein a plurality of users each have an associated player character occupying a game environment within the video game and the method comprises: determining whether a player character associated with a second user is within a predetermined distance in the game environment of a player character associated with a first user; and in response to prefetching one or more resources of the video game for the first user using the output of the machine learning model, instructing a client device of the second user to prefetch one of more of the resources of the video game. 13) The method according to any preceding clause, comprising training the machine learning model during the video game. 14) A computer program comprising instructions which, when implemented by a computer, cause the computer to perform a method of preparing to prefetch one or more resources of a video game, the method comprising: providing game information as input data to a machine learning model; the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with at least some of the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information; and prefetching one or more resources of the video game using the output of the machine learning model. 15) A non transitory computer readable storage medium storing the computer program according to clause 14. 16) An apparatus for preparing to prefetch one or more resources of a video game, the apparatus comprising circuitry configured to: provide game information as input data to a machine learning model; the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with at least some of the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information; and prefetch one or more resources of the video game using the output of the machine learning model. While certain features of the claimed invention have been described with reference to specific example situations, it will be appreciated that the present disclosure is not particularly limited in this regard. In particular, embodiments of the present disclosure may be applied to any videogame environment and are not limited to any specific type of videogame. Furthermore, it will be appreciated that numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the disclosure may be practiced otherwise than as specifically described herein. In so far as embodiments of the disclosure have been described as being implemented, at least in part, by software-controlled data processing apparatus, it will be appreciated that a non-transitory machine-readable medium carrying such software, such as an optical disk, a magnetic disk, semiconductor memory or the like, is also considered to represent an embodiment of the present disclosure. It will be appreciated that the above description for clarity has described embodiments with reference to different functional units, circuitry and / or processors. However, it will be apparent that any suitable distribution of functionality between different functional units, circuitry and / or processors may be used without detracting from the embodiments. Described embodiments may be implemented in any suitable form including hardware, software, firmware or any combination of these. Described embodiments may optionally be implemented at least partly as computer software running on one or more data processors and / or digital signal processors. The elements and components of any embodiment may be physically, functionally and logically implemented in any suitable way. Indeed the functionality may be implemented in a single unit, in a plurality of units or as part of other functional units. As such, the disclosed embodiments may be implemented in a single unit or may be physically and functionally distributed between different units, circuitry and / or processors. Although the present disclosure has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Additionally, although a feature may appear to be described in connection with particular embodiments, one skilled in the art would recognize that various features of the described embodiments may be combined in any manner 5 suitable to implement the technique.

Claims

1. A method of preparing to prefetch one or more resources of a video game, the method comprising:providing game information as input data to a machine learning model;the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with at least some of the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information; andprefetching one or more resources of the video game using the output of the machine learning model.

2. The method according to claim 1, wherein the one or more resources of the video game include at least one of a list comprising of: animation data, sound effect data, model data and / or texel information.

3. The method according to claim 2, wherein the texel information includes texel location information of a texel of a texture map to be sampled for application to a three-dimensional model.

4. The method according to claim 2, wherein the animation data includes three-dimensional animation data for one or more objects within a game environment of the video game.

5. The method according to any preceding claim, wherein the game information includes at least one of a list comprising of: a state of the video game, a level of a player of the video game, a health status of a character in the video game, position information of a character in the video game, control input information and / or telemetry information.

6. The method according to any preceding claim, wherein the game information provided as input to the machine learning model corresponds to an instance of the video game being played by a specific user, and the machine learning model has been trained with previous game information corresponding to that specific user.

7. The method according to any preceding claim, comprising selecting the machine learning model from among a plurality of machine learning models in accordance with user identification information identifying a user of the video game,8. The method according to claim 7, wherein each respective machine learning model of the plurality of machine learns models has been trained on previous game information associated with a different user to learn to a function for associating game information for that user with at least someof the resources of the video game so as to predict whether a resource of the video game should be prefetched for certain game information associated with that user.

9. The method according to any one of claims 6 to 8, wherein the machine learning model has been trained with previous game information corresponding to that specific user to learn a function for associating game information for that user with at least some of the resources of the video games so as to predict whether a resource of the video game should be prefetched for certain game information associated with that user, in which the function is dependent on a play style of that specific user.

10. The method according to any preceding claim, wherein the machine learning model outputs a memory address corresponding to one or more of the resources of the video game and the method comprises prefetching one or more of the resources of the video game using the output of the machine learning model.

11. The method according to any preceding claim, wherein the game information is game information corresponding to a first user of the video game and the method comprises instructing a client device of the first user of the video game to perform the step of prefetching the one or more resources of the video game using the output of the machine learning model.

12. The method according to any preceding claim, wherein a plurality of users each have an associated player character occupying a game environment within the video game and the method comprises: determining whether a player character associated with a second user is within a predetermined distance in the game environment of a player character associated with a first user; and in response to prefetching one or more resources of the video game for the first user using the output of the machine learning model, instructing a client device of the second user to prefetch one of more of the resources of the video game.

13. The method according to any preceding claim, comprising training the machine learning model during the video game.

14. A computer program comprising instructions which, when implemented by a computer, cause the computer to perform a method of preparing to prefetch one or more resources of a video game, the method comprising:providing game information as input data to a machine learning model;the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with at least some of the resources of thevideo game so as to predict whether a resource of the video game should be prefetched for certain game information; andprefetching one or more resources of the video game using the output of the machine learning model.5 15. An apparatus for preparing to prefetch one or more resources of a video game, the apparatuscomprising circuitry configured to:provide game information as input data to a machine learning model;the machine learning model having been trained with game information and corresponding resources of the video game, to associate game information with at least some of the resources of the10 video game so as to predict whether a resource of the video game should be prefetched for certain game information; andprefetch one or more resources of the video game using the output of the machine learning model.15

Citation Information

Patent Citations

  • Asynchronous loading device and asynchronous loading method

    KR102257891B1

  • Methods And Systems For Providing Shortcuts For Fast Load When Moving Between Scenes In Virtual Reality

    US20190250773A1

  • Predictive data preloading

    US20200391118A1

  • Input prediction for pre-loading of rendering data

    US20230168736A1