U.S. Pat. No. 9,889,385

VIDEO GAME STORAGE MANAGEMENT

AssigneeActivision Publishing, Inc.

Issue DateMay 4, 2015

Illustrative Figure

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

DETAILED DESCRIPTION FIG. 1is a block diagram illustrating an exemplary system100in accordance with aspects of the present invention. System100includes a communication network110, which may be the Internet, for example. System100includes a game server170. Game server170provides function related to the online distribution, operation, and, in some embodiments, hosting of video games. In some embodiments, game server170may distribute one or more video games by, for example, making the one or more video games available for download to player computers120-160. In some embodiments, game server170may 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. System100also includes player computers120-160and game server170. Player computers120-160may comprise various compute devices suitable for executing video games and communicating over communications network110. In this example, system100comprises a game console120with 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, tablet130, smartphone140, desktop computer150, and laptop computer160. The player computers120-160each have one or more processors, memory, communication circuitry, and associated hardware. Player computers120-160may communicate with other player computers120-160and/or components of system100by sending and receiving data through communication network110. Of course, the number of devices shown inFIG. 1is merely exemplary, and in many embodiments, many more devices may be present. During game play the player computers120-160execute 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. The player computers120-160receive, over the communications network110, video game information from game server170. The video game information may comprise executable ...

DETAILED DESCRIPTION

FIG. 1is a block diagram illustrating an exemplary system100in accordance with aspects of the present invention. System100includes a communication network110, which may be the Internet, for example.

System100includes a game server170. Game server170provides function related to the online distribution, operation, and, in some embodiments, hosting of video games. In some embodiments, game server170may distribute one or more video games by, for example, making the one or more video games available for download to player computers120-160. In some embodiments, game server170may 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.

System100also includes player computers120-160and game server170. Player computers120-160may comprise various compute devices suitable for executing video games and communicating over communications network110. In this example, system100comprises a game console120with 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, tablet130, smartphone140, desktop computer150, and laptop computer160. The player computers120-160each have one or more processors, memory, communication circuitry, and associated hardware. Player computers120-160may communicate with other player computers120-160and/or components of system100by sending and receiving data through communication network110. Of course, the number of devices shown inFIG. 1is merely exemplary, and in many embodiments, many more devices may be present.

During game play the player computers120-160execute 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.

The player computers120-160receive, over the communications network110, video game information from game server170. 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.

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.

FIG. 2is an example of a block diagram of a portion of a game server, for example the game server170ofFIG. 1, useful in accordance with aspects of the invention. The portion of the game server may be considered a content server200. Content server200is coupled to a network (not explicitly shown), for example the Internet. In some implementations, content server200may comprise one or more of electronic storage202, processor(s)204, external resources206, and/or other components. The various components of content server200may 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 server200may 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 server200directly 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 server200may be part of an application-related server, such as a videogame server or media streaming server. Additionally or alternatively, content server200may be separate from an application-related server, such as a videogame server or media streaming server.

Processor(s)204may be configured to provide information processing capabilities within content server200. For example, processor(s)204may be configured to execute computer program modules that may include one or more of a social networking module210, a data collection module212, a user profile module214, an authentication module216, a communication module218, a predictive delivery module220, a content encoding module222, and/or other modules. In various embodiments, these modules may perform various operations as further discussed herein.

In some embodiments, content encoding module222performs operations relating to encoding a content file into a plurality of channels. In some embodiments, content encoding module222encodes content files based in part on information stored in other modules, such as social networking module210, data collection module212, and user profile module214.

In some embodiments, predictive delivery module220performs operations relating to predictively pre-delivering content to end users. In some embodiments, predictive delivery module220mines data collected by other modules such as social networking module210, data collection module212, and user profile module214.

In some embodiments, social networking module210provides the framework for user-to-user interactions. Social networking module210may include a database that stores user relationships, user profiles, user messages, and user social data. Social networking module210may provide for social networking features in accordance with the present invention. For example, social networking module210may provide the framework to allow predictive pre-delivery of content based on the behavior and consumption patterns of an end user'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.

In some embodiments, data collection module212performs 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 module210, predictive delivery module220, and content encoding module222.

In some embodiments, user profile module214receives 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 module214determines a storage parameter which may be used to determine items to be stored, prior to a game session, on a user computer device.

In some embodiments, authentication module216performs operations relating to authentication of end users. In some embodiments, communications module218performs 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.

In some implementations, electronic storage202may include content and information relating to content and end users. In some implementations, electronic storage202may comprise non-transitory electronic storage media that electronically stores information. Electronic storage202may include one or both of system storage that is provided integrally (e.g., substantially non-removable) with content server200and/or removable storage that is removably connectable to content server200via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage202may 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 storage202may include virtual storage resources, such as storage resources provided via a cloud and/or a virtual private network. Electronic storage202may store software algorithms, information determined by processor204, and/or other information that enables content server200to function properly. Electronic storage202may be a separate component within content server200, or electronic storage202may be provided integrally with one or more other components of content server200. For example, in certain implementations, the non-transitory electronic storage media of electronic storage202may include a cache (e.g., L1 cache, L2 cache, etc.) of processor204.

In some implementations, electronic storage202, processor(s)204, external resources206, 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 storage202, processor(s)204, external resources206, and/or other components may be operatively linked via some other communication media.

In some implementations, the external resources206may include services and information sources external to content server200, for example, third-party social networking services external to content server200, 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 resources206may be provided by resources included in content server200.

In some implementations, processor(s)204may 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)204is shown inFIG. 2as a single entity, this is for illustrative purposes only. In some implementations, processor(s)204may include a plurality of processing units. These processing units may be physically located within the same device, or processor(s)204may represent processing functionality of a plurality of distributed devices operating in coordination.

Processor(s)204may be configured to execute social networking module210, data collection module212, user profile module214, authentication module216, communication module218, predictive delivery module220, content encoding module222, and/or other modules. Processor(s)204may be configured to execute modules210,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.

It should be appreciated that although modules210,212,214,216,218,220, and222are illustrated inFIG. 2as being co-located within a single processing unit, in implementations in which processor(s)204includes multiple processing units, one or more of modules210,212,214,216,218,220, and222may be located remotely from the other modules. The description of the functionality provided by the different modules210,212,214,216,218,220, and222provided below is for illustrative purposes, and is not intended to be limiting, as any of modules210,212,214,216,218,220, and222may provide more or less functionality than is described. For example, one or more of modules210,212,214,216,218,220, and222may be eliminated, and some or all of its functionality may be provided by other ones of modules210,212,214,216,218,220, and222. As another example, processor204may be configured to execute one or more additional modules that may perform some or all of the functionality attributed below to one of modules210,212,214,216,218,220, and222.

FIG. 3is a block diagram showing an inference engine311. 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.

The inference engine determines, or infers, a storage parameter331based on user game play related data321. 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.

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.

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.

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.

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.

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.

FIG. 4is a flow diagram of a process in accordance with aspects of the invention. The process ofFIG. 4may be performed by a player computer device or a player computer device and a server, depending on implementation.

In block411the process determines a storage parameter based on user game related data. The processing of block411may be performed, for example, by the inference engine ofFIG. 3.

In block413the 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.

In block415the process stores the video game information on the player computer device.

The process thereafter returns.

FIG. 5is a flow diagram of a process in accordance with aspects of the invention. The process ofFIG. 5may be performed by a player computer device or a player computer device and a server, depending on implementation.

In block511the process determines a representative game player persona match. The operations of block511may be performed, for example, by the inference engine ofFIG. 3.

In block513the 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.

In block515the 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.

The process thereafter returns.

FIG. 6is a flow diagram of a process in accordance with aspects of the invention. The process ofFIG. 6may be performed by a server or components of a server, for example as discussed with respect toFIGS. 1 and/or 2.

In block611the 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.

In block613the 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 block613are performed during periods in which the player computer device is not being used for play of the video game.

In block615the 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.

The process thereafter returns.

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.

Claims

  1. 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 computer device associated with the user, the first information for use in providing for game play of the video game by the computer device, the first information being an amount of information determined based on the storage parameter, the first information comprising executable code;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 computer device, the additional information comprising level data;wherein the user game play related information comprises at least one 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.
  1. The method of claim 1 , wherein the user game play related information comprises the indication of the quantity of time of game play of the video game by the user within the interval of time.
  2. The method of claim 1 , wherein a plurality of toys are associated with the video game, and the user game play related information comprises an indication of the number of the toys owned by the user.
  3. The method of claim 1 , wherein the storage parameter indicates a game player category.
  4. The method of claim 1 , wherein the storage parameter is a normalized score.
  5. The method of claim 1 , wherein the storage parameter is a function of at least a plurality of: the quantity of time of game play of the video game by the user within the interval of time;the quantity of time of continuous game play of the video game by the user;the number of toys associated with the video game owned by the user;the available storage space on the computer device, the user game play level history, the user game character usage;and the user network connection metrics.
  6. The method of claim 1 , wherein the first information further comprises at least some of character data or level data.
  7. The method of claim 1 , wherein the additional information further comprises character data.
  8. The method of claim 1 , wherein the first information additionally includes at least some character data and/or level data, with an amount of character data and/or level data based on the storage parameter.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.