Abstract:
Aspects of the invention provide for management of storage space utilized by video game information based in part on the engagement of the video game user. For example, one aspect of the invention provides a method of providing information for play of a video game, comprising determining a storage parameter based on user game play related information, the storage parameter indicative of level of commitment of the user to the video game; outside of a game play session of the video game, providing, over a communications network, first information to a compute device associated with the user, the first information for use in providing for game play of the video game by the compute device, the first information being an amount of information determined based on the storage parameter; and during a game play session of the video game, providing additional information for use in providing for game play of the video game by the compute device.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 62/020,789, filed on Jul. 3, 2014, the disclosure of which is incorporated by reference herein. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    The present invention relates generally to video games, and more particularly to provision of video game content to memory resource constrained devices. 
         [0003]    Video games provide fun and enjoyment for many. Video games allow users to participate in a variety of simulated activities. Video games allow users, using computer devices, to perform roles and experience activities that the users may not be able or desire to experience directly, whether due to cost, danger, or equipment concerns, or simply due to a role or activity being a fantasy. In providing those simulated activities, video games generally allow a user to immerse him or herself in a richly detailed and extensive virtual world populated by a cast of characters, at least one of which is usually controlled by the user. 
         [0004]    Video games are often played on compute devices in the form of game consoles or personal computers. Often, however, users may additionally or instead have a compute device in the form of a tablet, smartphone, or other device. These compute devices often exhibit differences from the game consoles and personal computers generally used for video game play. These differences may include differences in device input, for example tablets and smartphones often use touchscreen inputs, and reduced device capabilities. One capability that may be reduced, for example in tablets and smartphones, is memory available for storage of video game play program instructions and data. 
         [0005]    Video games often utilize large amounts of data in providing for video game play. Display of colorful, detailed, and/or possibly realistic screen displays of characters in a virtual world may increase enjoyment of video game play, but such displays often require significant amounts of stored data. For some devices, such as smartphones or other resource constrained devices, full and complete sets of program instructions and data for a video game may overwhelm the device. Even if a particular device may have a capability to store program instructions and data for a full video game, a user may, at times, desire that the device instead store other voluminous data, for example large numbers of large audio, video, or audiovisual files. 
         [0006]    Device resource constraint may therefore impact a user&#39;s ability to fully enjoy video games, at least without causing the user to forego possibly some other utilization of their device. 
       BRIEF SUMMARY OF THE INVENTION 
       [0007]    Aspects of the invention provide for management of storage space utilized by video game information. One aspect of the invention provides a method of providing information for play of a video game, comprising determining a storage parameter based on user game play related information, the storage parameter indicative of level of commitment of the user to the video game; outside of a game play session of the video game, providing, over a communications network, first information to a compute device associated with the user, the first information for use in providing for game play of the video game by the compute device, the first information being an amount of information determined based on the storage parameter; and during a game play session of the video game, providing additional information for use in providing for game play of the video game by the compute device. 
         [0008]    These and other aspects of the invention are more fully comprehended upon review of this disclosure. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0009]      FIG. 1  is a block diagram including elements of systems in accordance with aspects of the invention. 
           [0010]      FIG. 2  is a block diagram of a server system in accordance with aspects of the invention. 
           [0011]      FIG. 3  is a block diagram of a portion of a system useful in providing for storage management in accordance with aspects of the invention. 
           [0012]      FIG. 4  is a flow diagram of a process in accordance with aspects of the invention. 
           [0013]      FIG. 5  is a flow diagram of a further process in accordance with aspects of the invention. 
           [0014]      FIG. 6  is a flow diagram of a further process in accordance with aspects of the invention. 
           [0015]      FIG. 7  is a flow diagram of a further process in accordance with aspects of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]      FIG. 1  is a block diagram illustrating an exemplary system  100  in accordance with aspects of the present invention. System  100  includes a communication network  110 , which may be the Internet, for example. 
         [0017]    System  100  includes a game server  170 . Game server  170  provides function related to the online distribution, operation, and, in some embodiments, hosting of video games. In some embodiments, game server  170  may distribute one or more video games by, for example, making the one or more video games available for download to player computers  120 - 160 . In some embodiments, game server  170  may host one or more instances of multiplayer online video games, or coordinate the hosting of such games, and allow a plurality of players to join and participate in the multiplayer online video game. 
         [0018]    System  100  also includes player computers  120 - 160  and game server  170 . Player computers  120 - 160  may comprise various compute devices suitable for executing video games and communicating over communications network  110 . In this example, system  100  comprises a game console  120  with associated monitor and game controller. In addition to the game console, player computers in various embodiments may instead or in addition comprise any other suitable compute devices such as, for example, tablet  130 , smartphone  140 , desktop computer  150 , and laptop computer  160 . The player computers  120 - 160  each have one or more processors, memory, communication circuitry, and associated hardware. Player computers  120 - 160  may communicate with other player computers  120 - 160  and/or components of system  100  by sending and receiving data through communication network  110 . Of course, the number of devices shown in  FIG. 1  is merely exemplary, and in many embodiments, many more devices may be present. 
         [0019]    During game play the player computers  120 - 160  execute program instructions to provide for play of the video game. Video game players provide game play inputs using their respective input devices, for example touchscreens, game controllers, keyboards, mice, etc., and the associated displays and monitors display game play events. 
         [0020]    The player computers  120 - 160  receive, over the communications network  110 , video game information from game server  170 . The video game information may comprise executable program instructions for executing a video game, and/or game data used during execution of the video game. The game data may comprise, for example, some or all of user controlled character data, level data, animation data, or other data. The level data may include, for example, some or all of data regarding a virtual world or a portion of a virtual world, and/or information of video game controlled virtual characters populating the virtual world. 
         [0021]    In many embodiments, the executable program instructions are provided to the player computers prior to a user playing the game, e.g., prior to a game play session. None, some, or all of the game data may also be provided to the player computers prior to the game session, dependent on a storage parameter for the user. In some embodiments, the storage parameter is based on user game play related information. The user game play related information may include some or all of a quantity of time of game play of the video game by the user within an interval of time, a quantity of time of continuous game play of the video game by the user, a number of toys associated with the video game owned by the user, available storage space on the computer device, user game play level history, user game character usage, and user network connection metrics. Game data not provided prior to a game play session may be provided to a particular player computer during game play, for example, upon a request by the particular player computer. 
         [0022]      FIG. 2  is an example of a block diagram of a portion of a game server, for example the game server  170  of  FIG. 1 , useful in accordance with aspects of the invention. The portion of the game server may be considered a content server  200 . Content server  200  is coupled to a network (not explicitly shown), for example the Internet. In some implementations, content server  200  may comprise one or more of electronic storage  202 , processor(s)  204 , external resources  206 , and/or other components. The various components of content server  200  may be configured for electronic communication among one another. Such communication may be accomplished via one or more networks, one or more direct connections, one or more wireless connections, one or more wired connections, and/or other electronic communication media. Content server  200  may be in communication with end user devices and other client computing platforms using a client/server architecture. End users, using end user devices, access content server  200  directly or indirectly through an interface internal to an application such as a videogame or media streaming application or client application and/or through a web browser. In some embodiments, content server  200  may be part of an application-related server, such as a videogame server or media streaming server. Additionally or alternatively, content server  200  may be separate from an application-related server, such as a videogame server or media streaming server. 
         [0023]    Processor(s)  204  may be configured to provide information processing capabilities within content server  200 . For example, processor(s)  204  may be configured to execute computer program modules that may include one or more of a social networking module  210 , a data collection module  212 , a user profile module  214 , an authentication module  216 , a communication module  218 , a predictive delivery module  220 , a content encoding module  222 , and/or other modules. In various embodiments, these modules may perform various operations as further discussed herein. 
         [0024]    In some embodiments, content encoding module  222  performs operations relating to encoding a content file into a plurality of channels. In some embodiments, content encoding module  222  encodes content files based in part on information stored in other modules, such as social networking module  210 , data collection module  212 , and user profile module  214 . 
         [0025]    In some embodiments, predictive delivery module  220  performs operations relating to predictively pre-delivering content to end users. In some embodiments, predictive delivery module  220  mines data collected by other modules such as social networking module  210 , data collection module  212 , and user profile module  214 . 
         [0026]    In some embodiments, social networking module  210  provides the framework for user-to-user interactions. Social networking module  210  may include a database that stores user relationships, user profiles, user messages, and user social data. Social networking module  210  may provide for social networking features in accordance with the present invention. For example, social networking module  210  may provide the framework to allow predictive pre-delivery of content based on the behavior and consumption patterns of an end user&#39;s social connections. Examples of social networks include websites such as Facebook and Twitter, and also include social networks within other frameworks such as those found in Xbox Live and the PlayStation Network. 
         [0027]    In some embodiments, data collection module  212  performs operations relating to the collection of information regarding end users, social networks, application data, and network connection quality indicators. In some embodiments, the data collected is used by other modules such as social networking module  210 , predictive delivery module  220 , and content encoding module  222 . 
         [0028]    In some embodiments, user profile module  214  receives and/or determines end user information, for example end user login names and passwords, email addresses, user skill levels, device capabilities, subscriptions, demographics, application preferences, and/or financial information (e.g., credit card information, billing addresses, and any other information required to complete potential e-commerce transaction). In addition, in some embodiments user profile module  214  determines a storage parameter which may be used to determine items to be stored, prior to a game session, on a user computer device. 
         [0029]    In some embodiments, authentication module  216  performs operations relating to authentication of end users. In some embodiments, communications module  218  performs operations relating to communication with storage and/or external resources, as well as communicating data to end users and other content servers over a network, for example the Internet. 
         [0030]    In some implementations, electronic storage  202  may include content and information relating to content and end users. In some implementations, electronic storage  202  may comprise non-transitory electronic storage media that electronically stores information. Electronic storage  202  may include one or both of system storage that is provided integrally (e.g., substantially non-removable) with content server  200  and/or removable storage that is removably connectable to content server  200  via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage  202  may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. Electronic storage  202  may include virtual storage resources, such as storage resources provided via a cloud and/or a virtual private network. Electronic storage  202  may store software algorithms, information determined by processor  204 , and/or other information that enables content server  200  to function properly. Electronic storage  202  may be a separate component within content server  200 , or electronic storage  202  may be provided integrally with one or more other components of content server  200 . For example, in certain implementations, the non-transitory electronic storage media of electronic storage  202  may include a cache (e.g., L1 cache, L2 cache, etc.) of processor  204 . 
         [0031]    In some implementations, electronic storage  202 , processor(s)  204 , external resources  206 , and/or other components (e.g., additional instances of content servers) may be operatively linked via one or more electronic communication links. For example, such electronic communication links may be established, at least in part, via a network such as the Internet and/or other networks. It will be appreciated that this is not intended to be limiting, and that the scope of this disclosure includes implementations in which electronic storage  202 , processor(s)  204 , external resources  206 , and/or other components may be operatively linked via some other communication media. 
         [0032]    In some implementations, the external resources  206  may include services and information sources external to content server  200 , for example, third-party social networking services external to content server  200 , third-party content databases and catalogs, web hosting services, game server services, media streaming services, etc. In some implementations, some or all of the functionality attributed herein to external resources  206  may be provided by resources included in content server  200 . 
         [0033]    In some implementations, processor(s)  204  may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information. Although processor(s)  204  is shown in  FIG. 2  as a single entity, this is for illustrative purposes only. In some implementations, processor(s)  204  may include a plurality of processing units. These processing units may be physically located within the same device, or processor(s)  204  may represent processing functionality of a plurality of distributed devices operating in coordination. 
         [0034]    Processor(s)  204  may be configured to execute social networking module  210 , data collection module  212 , user profile module  214 , authentication module  216 , communication module  218 , predictive delivery module  220 , content encoding module  222 , and/or other modules. Processor(s)  204  may be configured to execute modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 ,  222 , and/or other modules by software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or other mechanisms for configuring processing capabilities on processor(s)  204 . 
         [0035]    It should be appreciated that although modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222  are illustrated in  FIG. 2  as being co-located within a single processing unit, in implementations in which processor(s)  204  includes multiple processing units, one or more of modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222  may be located remotely from the other modules. The description of the functionality provided by the different modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222  provided below is for illustrative purposes, and is not intended to be limiting, as any of modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222  may provide more or less functionality than is described. For example, one or more of modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222  may be eliminated, and some or all of its functionality may be provided by other ones of modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222 . As another example, processor  204  may be configured to execute one or more additional modules that may perform some or all of the functionality attributed below to one of modules  210 ,  212 ,  214 ,  216 ,  218 ,  220 , and  222 . 
         [0036]      FIG. 3  is a block diagram showing an inference engine  311 . The inference engine resides in either a player computer device or a game server, depending on implementation. In many embodiments the inference engine comprises program instructions executed by a processor, for example a process of the player computer device or the game server.  100371  The inference engine determines, or infers, a storage parameter  331  based on user game play related data  321 . The storage parameter is used to determine an amount of video game information to store on the player computer device outside of game play sessions. In some embodiments the inference engine determines the storage parameter based on some or all of a quantity of time of game play of the video game by the user within an interval of time, a quantity of time of continuous game play of the video game by the user, a number of toys associated with the video game owned by the user, available storage space on the computer device, user game play level history, user game character usage, and user network connection metrics. 
         [0037]    In some embodiments the inference engine calculates a score based on the user game play related data, and maps the score to a predefined category. In some embodiments the predefined category may be considered a representative game player persona, which may be, for example, an avid game player, a serious game player, a regular game player, or an infrequent game player. In effect, a user may be mapped to a representative game player persona by the inference engine, and the representative game player persona may be considered the storage parameter. In some embodiments different amounts of video game information may be provided and/or stored on a particular player computer device depending on the determined representative game player persona for the user. For example, increased amounts of video game information may be stored on a player computer device if the user is an avid game player instead of a regular game player. 
         [0038]    In some embodiments the score is directly used as the storage parameter, instead of mapping the score to a range of categories that is less than a range of possible scores. 
         [0039]    In some embodiments the storage parameter may also be adjusted in view of a user request. For example, in some embodiments a user may request that increased storage be utilized, or conversely that decreased storage be utilized. The request may, in some embodiments, be used to bias the storage parameter either up or down. 
         [0040]    In some embodiments the inference engine is implemented on a server, for example a server providing video game information. In such embodiments, the server may receive information from the player computer device regarding user game play patterns and other information, and determine the storage parameter. The storage parameter may be used by the server to determine video game information to provide to the player computer device outside of a game play session. The storage parameter may also be transmitted to the player computer device to allow the player computer device to determine files or information to delete from storage at conclusion of a game play session. 
         [0041]    In some embodiment the inference engine is implemented on a player computer device. In such embodiments the inference engine may track user game play patterns and other information, and determine the storage parameter. The player computer device may use the storage parameter to determine which video game information to request and to store outside of game play sessions. 
         [0042]      FIG. 4  is a flow diagram of a process in accordance with aspects of the invention. The process of  FIG. 4  may be performed by a player computer device or a player computer device and a server, depending on implementation. 
         [0043]    In block  411  the process determines a storage parameter based on user game related data. The processing of block  411  may be performed, for example, by the inference engine of  FIG. 3 . 
         [0044]    In block  413  the process supplies and/or receives video game information. In most embodiments this occurs outside of, and generally prior to, a game play session. The process may supply video game information from a game server, with the process receiving the video game information at the player computer device, depending on whether the process is being performed by the server, by the player computer device, or both. The video game information supplied or received depends, in many embodiments on the determined storage parameter. 
         [0045]    In block  415  the process stores the video game information on the player computer device. 
         [0046]    The process thereafter returns. 
         [0047]      FIG. 5  is a flow diagram of a process in accordance with aspects of the invention. The process of  FIG. 5  may be performed by a player computer device or a player computer device and a server, depending on implementation. 
         [0048]    In block  511  the process determines a representative game player persona match. The operations of block  511  may be performed, for example, by the inference engine of  FIG. 3 . 
         [0049]    In block  513  the process determines a default allocated game storage amount for a user. The default allocated game storage amount is based on the representative game player persona match, and, in some embodiments, may also be based on device characteristics of a player computer device associated with the user. In some embodiments the default allocated game storage amount may also be based on characteristics, for example as determined by metrics, of a computer network linking the player computer device and a game server. 
         [0050]    In block  515  the process modifies, or biases, the default allocated game storage amount based on a user input to obtain a biased allocated game storage amount. The user input may be, for example, a numeric entry, or entered by way of an adjustable slider display, or some other user input. The user input may reflect a request by the user to increase or decrease amount of storage utilized for game data. 
         [0051]    The process thereafter returns. 
         [0052]      FIG. 6  is a flow diagram of a process in accordance with aspects of the invention. The process of  FIG. 6  may be performed by a server or components of a server, for example as discussed with respect to  FIGS. 1  and/or  2 . 
         [0053]    In block  611  the process determines an allocated game storage amount. The allocated game storage amount may be based on a determined storage parameter, for example as discussed with respect to the other figures. 
         [0054]    In block  613  the process transmits, over a communications network and to a player computer device, game information sized for the allocated storage amount. The game information generally includes program instructions for execution of a video game, and some data used in such execution. Generally the operations of block  613  are performed during periods in which the player computer device is not being used for play of the video game. 
         [0055]    In block  615  the process transmits, over the communications network and to the player computer device, further game information. The further game information may include, for example, information related to a virtual world of game play, and may be specific to a particular level of game play. In some embodiments the information is transmitted in response to receipt of a request from the player computer for further game information. In most embodiments the request is provided while the player computer device is being used for play of the video game. 
         [0056]    The process thereafter returns. 
         [0057]    Although the invention has been discussed with respect to various embodiments, it should be recognized that the invention comprises the novel and non-obvious claims supported by this disclosure.