US20130137518A1 - System for Pre-Caching Game Content Based on Game Selection Probability - Google Patents

System for Pre-Caching Game Content Based on Game Selection Probability Download PDF

Info

Publication number
US20130137518A1
US20130137518A1 US13/306,415 US201113306415A US2013137518A1 US 20130137518 A1 US20130137518 A1 US 20130137518A1 US 201113306415 A US201113306415 A US 201113306415A US 2013137518 A1 US2013137518 A1 US 2013137518A1
Authority
US
United States
Prior art keywords
game
client
games
selection
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/306,415
Inventor
Keith V. Lucas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Roblox Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US13/306,415 priority Critical patent/US20130137518A1/en
Assigned to ROBLOX CORPORATION reassignment ROBLOX CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LUCAS, KEITH V.
Publication of US20130137518A1 publication Critical patent/US20130137518A1/en
Assigned to JPMORGAN CHASE BANK, N.A. reassignment JPMORGAN CHASE BANK, N.A. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ROBLOX CORPORATION
Assigned to ROBLOX CORPORATION reassignment ROBLOX CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Abandoned legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device

Definitions

  • the present invention is in the field of network gaming and pertains particularly to methods and apparatus for predicting game selection and pre-caching game resources relative to those predicted selections.
  • a content server analogous to a game server serves the game scripting and resources to the client machine to enable loading of a selected game.
  • Much opportunity for delay in the game-loading process exists.
  • a client's browser is served the universal resource locator (URL) and other information to retrieve the game resources.
  • the user operating the client machine then waits while the game metadata (often XML) is retrieved and the game resources including sounds, images, assets and other resources are loaded before the user may enter and play the game successfully.
  • the imposed wait period or delay can be substantial for many clients, adding a few to several minutes of idle time before the game is playable on the client's machine.
  • a system and methods for predicting game selection and pre-caching the most probable game resources before a game is selected may reduce or eliminate delays in loading game resources from a remote content server.
  • Every network-based gaming system is driven by numerous gaming clients accessing and playing individual games, one by-product of which is an abundance of gaming content that must be downloaded to client gaming applications before play can commence.
  • Most such systems employ Web servers and gaming servers including software to orchestrate active game streaming to multiple clients playing a game, and server/client applications are typically a part of such apparatus.
  • the present inventor realized in an innovative moment that if, prior to game selection, gaming content relative to one or more games that a client is most likely to select could be downloaded and pre-cached to the client machine for quick load, significant delay in launching a next game might be reduced or eliminated.
  • the inventor therefore constructed a unique predictive system for Internet gaming that allowed gaming content deemed most relative to a client's probable game selection to be downloaded to the client machine and pre-cached for faster game loading. A significant reduction in time to load results with no impediment to the gaming experience.
  • a system for serving digital games to clients comprising an Internet-connected server, a digital data repository coupled to the Internet-connected server, the data repository storing digital resources for playing a plurality of games on a computerized appliance, and software executing on the Internet-connected server from a non-transitory physical medium, the software providing a first function determining for a specific client a list of games by probability of subsequent client selection, a second function causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with client, beginning with the most probable game in the list.
  • the data repository includes client game-selection history, and probability of game selection is based in part on the client game selection history. Also in one embodiment the data repository includes client demographics, and probability of game selection is based in part on the client demographics. In another embodiment the data repository includes statistics regarding game popularity among multiple clients, and probability for game selection is based in part on the popularity statistics. In yet another embodiment the data repository includes information on game component purchase history, and probability of game selection is based in part on the game component purchase history for the client.
  • the resources may comprise one or more of metadata, scripting, images, audio, and game objects.
  • resources from more than one game are transmitted serially from most probable to least probable for the listed games. In some cases resources from more than one game are transmitted in parallel, sharing a single path or over plural pathways. In some cases there is a selection feedback channel for reporting client game selection in real time. Also in some embodiments client navigation is tracked in a game, and the probability of game selection in based in part on the client navigation.
  • a method for serving digital games to clients comprising the steps of (a) determining for a specific client a list of games by probability of subsequent client selection; and (b) causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with specific client, beginning with the most probable game in the list.
  • determination in step (a) includes client game-selection history. Also in some embodiments determination in step (a) includes client demographics. Further in some embodiments determination in step (a) includes statistics regarding game popularity among multiple clients. In still other embodiments determination in step (a) includes information on game component purchase history.
  • the resources comprise one or more of metadata, scripting, images, audio, and game objects.
  • resources from more than one game are transmitted serially from most probable to least probable for the listed games. In other cases resources from more than one game are transmitted in parallel, sharing a single path or over plural pathways. In still other cases there is a mechanism for gathering client game selection in real time via a feedback channel, and client navigation may be tracked in a game, and the probability of game selection in based in part on the client navigation.
  • FIG. 1 is an architectural overview of a gaming network supporting game prediction and pre-caching of game resource according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating the process of pre-caching gaming content relative to predicted games according to an embodiment of the present invention.
  • FIG. 3 is a process flow chart illustrating steps for predicting client game selection and pre-caching game resources for fast game loading according to an embodiment of the present invention.
  • FIG. 4 is a process flow chart illustrating steps for generating a hierarchical game list for a client machine to enable pre-caching of game resources before game selection according to an embodiment of the present invention.
  • the inventors provide a unique system and methods for predicting game selection on behalf of a client machine and pre-caching most relevant game resources on the client machine in advance of game selection by the client.
  • the present invention will be described in enabling detail using the following examples, which may describe more than one relevant embodiment falling within the scope of the present invention.
  • FIG. 1 is an architectural overview of a gaming network 100 supporting game prediction and pre-caching of game resources according to an embodiment of the present invention.
  • Gaming network 100 includes a wide area network (WAN) represented herein by a network backbone 101 .
  • Network 101 may in one embodiment, be the Internet network.
  • network 101 may be a municipal area network (MAN), a corporate WAN or another network without departing from the spirit and scope of the present invention.
  • backbone 101 represents all of the lines, equipment, and access points that make up the Internet as a whole. Therefore, there are no geographic limitations relative to the practice of the present invention.
  • Internet 101 supports a Web server (WS) 104 that includes a non-transitory physical storage medium that is adapted to store all of the software and data required to enable function as a Web server serving hosted Web pages to clients upon request.
  • WS 104 may be hosted by a third-party service or by a network gaming company.
  • a gaming Website 111 is available through accessing server 104 , the Website served upon request.
  • Website 111 is a gaming Website adapted to register clients for building and playing network-based games.
  • Web server 104 typically enables clients to select games from a list or catalogue.
  • Web server 104 further includes a load-ahead-service (LAS) software application 112 executing from the non-transitory physical medium.
  • LAS 112 is adapted to make a list of games that the client has a high probability of selecting.
  • LAS 112 may include several variant plug-in modules (not illustrated here) that are enabled to use existing statistics about the client to determine from a pool or collection of individual games, which games are most likely to be selected for play by that specific client.
  • Network backbone 101 in this embodiment supports a customer information system (CIS) 105 .
  • CIS 105 includes a non-transitory physical medium that contains all of the software and data required to enable function as a customer information system server.
  • CIS 105 has connection to a client database 106 .
  • Client database 106 includes information about clients including, but not limited to membership status, contact information, payment history, purchase history, demographics, game-playing history, friends list, and personal preferences relative to service interaction.
  • Network backbone 101 supports a gaming server (GS) 107 , also termed a content server in the art.
  • GS 107 includes a non-transitory physical medium that stores all of the software and data required to enable function as a gaming server.
  • GS 107 serves games to clients upon request and maintains and propagates game state changes as clients play a game.
  • GS 107 has connection to a gaming content repository 108 that is adapted to contain game resources for games hosted by the server.
  • Gaming content may include but is not limited to, images, sounds, animations, assets, metadata, scripting, and so on.
  • GS 107 may be linked by resource address to Website 111 for every game presented on the Website for play that the server hosts.
  • Carrier network 102 may be any wired or wireless network capable of serving as a sub-network to Internet network 101 .
  • Carrier network 102 may be a cellular network, a wireless fidelity network (WiFi), a local area network (LAN), a cable network, a fiber optics network, or a public switched telephone network (PSTN) without departing from the spirit and scope of the present invention.
  • gaming appliances 109 ( a - n ) are illustrated as connected to Internet 101 via carrier network 102 .
  • a gaming appliance may include an android device, a hand-held game machine, a personal computer (PC), a laptop, a gaming box connected to a cable or satellite television network, or any other appliance adapted to play Internet-based games.
  • Appliance 109 a is a hand-held gaming appliance
  • appliance 109 b is a personal gaming computer
  • appliance 109 n is a game box connected to a flat screen television.
  • Client software applications 110 execute on the gaming appliances 109 ( a - n ). Each client application may be customized to the appliance and platform from upon which it executes. Each appliance includes a non-transitory physical medium to host and enable local execution of the client applications.
  • Client appliances 109 ( a - n ) are illustrated as connected to an Internet service provider (ISP) 113 , which may in some cases be a wireless ISP (WISP). ISP 113 enables Internet access through a media gateway 103 . This example is logical only and may not represent actual Internet connectivity architecture for all appliances. There are several different ways to connect to the Internet using wired and wireless technologies known in the art and available to the inventor.
  • ISP Internet service provider
  • WISP wireless ISP
  • Each appliance 109 ( a - n ) is illustrated as in progress of game play. Game selection predictions may be initiated before a user starts any game, and after a user has selected and entered an existing game, a purpose is to predict the next game the user will select for play.
  • a user such as one operating appliance 109 a, connects to Website 111 through carrier network 102 , W/ISP 113 , and media gateway 103 .
  • the user performs a login and may browse games to play from a games page or other games presentation page.
  • a user may search for games to play wherein the gaming links (link to actual game) are returned in a search list.
  • the load-ahead service (LAS) 112 is launched for that user.
  • LAS load-ahead service
  • LAS 112 is launched upon recognition of the user before the user has selected any game to play.
  • LAS 112 may incorporate several plug-in modules that depend upon different criteria for weighting games from a standard pool or list of games. More information about various plug-in modules is detailed later in this specification. However, some plug-in modules are developed after some specific information becomes known about the user and thus may be used to help determine a hierarchical list of games the user is most likely to select. Other plug-in modules are stock and depend upon criteria that may not involve user data, such as most-played games or most popular games in general. One or more plug-in modules may contribute weights or scores assigned to specific games. Games receiving top weights are aggregated into a priority listing of the most probable games the user will select.
  • LAS 112 may run over Website 111 or it may be executed by a different service linked by the Website.
  • Client software 110 b executing from gaming device 109 a provides a function for receiving game suggestions (prioritized game list) from Website 111 and a function for initiating download from a content server such as game server 107 of game resources associated with one or more of the top suggested games.
  • Downloaded content is pre-cached in the media cache on the appliance and therefore may be loaded out of cache locally if the user selects one of the predicted games.
  • the number of predicted games served in a prioritized list may vary according to appliance capacity, cache size and other factors. Three games might be served in a list of games for one user while five or more games may be served in a list of games for another user. A user may also set a preference, such as serve the top five most relevant games only.
  • the client application consumes the list, including a URL to the content server and identification of the game resources required to load the individual games.
  • the client application connects to the game server or content server and initiates download of the most relevant content automatically.
  • the download activity occurs in the background and may be transparent to the client relative to download progress.
  • the appliance display may publish the most relevant game recommendations and current download status of the game data associated with each of the games. It is important to note that game resources may be downloaded in the background while the user is currently playing a game.
  • An object of the invention is that during the time that the user is occupied in game play, the resources for the game that the system predicts the user will select next are being cached locally and will be available upon the user's next game selection. The result (if user selects a predicted game) is that the game immediately loads from local cache, thereby reducing or eliminating traditional loading time for remote games.
  • Cached game data and resources are held in cache under typical cache strategies for aging and cache size. For example, if all of the game elements assigned to a game on the predictive game list are in cache, but the user does not select the game to play, the elements will eventually age out of cache. Cache size may be a factor in determining how many games may be pre-cached at one appliance. In one embodiment elements that are generic to more than one game on the list may be downloaded once to avoid redundancy. Such elements may be spared from purge in cache if shared by more than one game. Any information known about the user may be incorporated to help predict which games a user will likely select.
  • Data categories that may be tapped include client demographics, client game selection history, client spending patterns, client skills level, client-stated preferences, client game search history, and so on.
  • Stock plug-in modules may simply rely on public information gathered across the service like most played games, most popular games, most popular games played by friends of the user, and so on. In the case of multiple plug-in modules, weights assigned to specific games may be combined to generate a hierarchical game list with the most probable games at the top of the list.
  • client SW 110 ( a - n ) includes a feedback channel that reports current client/user activity back to LAS 112 .
  • This data may be propagated to relevant plug-in modules in order to refine weighting.
  • Each plug-in module fires one or more algorithms based on native data that results in a weight or score for each game relative to the likelihood of a user selecting that game.
  • the scores are propagated to LAS 112 , which in turn identifies and lists the top tier games after analyzing the scores from each active plug-in. For example, a single game may be weighted by more than one plug-in module while another game is weighted by only one plug-in module.
  • a content download occurring in the background may be orchestrated in parallel fashion or in serial fashion.
  • FIG. 2 is a block diagram 200 illustrating the process of pre-caching gaming content relative to predicted games according to an embodiment of the present invention.
  • Diagram 200 includes a game appliance 109 displaying a current game 201 in progress.
  • Game 201 may have or may not have been predicted by the system.
  • Client appliance 109 has a feedback channel to a client activity statistics (CAS) database 202 .
  • CAS 202 reports directly to LAS 112 and is forwarded to the relevant plug-in modules.
  • plug-in modules 205 ( a - n ) contribute weighting for each of the relevant games being “scored”.
  • a game list generator 204 is provided for generating a hierarchical list of games based on data input from the plug-in modules.
  • a teleport probability engine is provided as a plug-in.
  • a teleport or multi-port gaming system known to the inventor includes hyperlinks to other games such as are executable through a portal, a mirror, a level, a wall or other game feature.
  • a teleport system is able to track a user as the user jumps from game to game. The system uses a soft counter to calculate how many times a user has traversed specific teleport pathways (from one game to another).
  • a history is developed showing the navigation patterns of the user between teleport-accessible games.
  • the probability that a user chooses a specific teleport is computed as a function of (a) that teleport's count, (b) the total count of all teleports, and (c) the total visits to the game.
  • the probability engine returns the N most likely games the user will go to next based on the behavior of that user and other previous users.
  • the teleport probability engine may assign a score or weight to a game based on how many times it has been visited through teleporting navigation.
  • Game popularity engine 205 b is a stock or “service provided” plug-in that calculates the top most popular games among users by counting the times that the games were played over a defined period.
  • Engine 205 b may include one or more subcategories such as the overall most popular games, games most popular to friends of the user, etc.
  • a personal game recommendation engine 205 c may assign weights to games that are deemed more probable for selection based on user personal data and monitored user activities.
  • a sales-driven game recommendation engine 205 d may assign weights to games based on sales of assets or accessories associated with the game. This may be a system plug-in adapted to create weight for games that have high sales numbers associated with them.
  • a skills-based game recommendation engine 205 e provides weights assigned to games based on skills level of the game relative to skills level of a user (if available to the system). For this plug-in skill levels of the user are recorded and made available to the module. In this case each game may be rated by a skills-rating system and the plug-in attempts to predict that the user will select a game matching his or her skills level. Plug-in 205 n represents any other derived plug-in that may assign a weight to a game based on available data. There are many variant possibilities.
  • the final list may be published to the user as “games recommended” or the user may not see the list. Publishing the list implies that the system prompts the user to select a game from the list. This might be more appropriate if there are up-sale opportunities or cost-saving opportunities to the service provider involved in the recommended games.
  • the system is “predicting” the next game selection of the user and downloading the game elements relative to the predictive game candidates to cache, such that in the event the prediction is correct, less load time delay will occur on the client's machine.
  • a pure predictive system may not publish the list to the user, as that may negatively affect the ability to accurately predict future game selections.
  • Appliance 109 has a cache system 203 that may be optimized by client SW functionality.
  • LAS 112 After receiving weights for games by plug-in modules 205 ( a - n ), LAS 112 combines scores to determine the top games the system predicts that the user has the highest probability of selecting. The top few to several games are listed for the client by game list generator 204 .
  • Cache 203 is actively caching metadata and game resources for a game A, a game B, and a game C.
  • a logical status indication shaded boxes for each game shows progress of caching of the relevant elements.
  • FIG. 3 is a process flow chart 300 illustrating steps for predicting client game selection and pre-caching game resources for fast game loading according to an embodiment of the present invention.
  • a user is detected on a game presentation page of a Website hosting game play.
  • the system identifies the user. This may be accomplished during login before the user plays any games at the site.
  • the system determines whether the client is a new client (first time) or a repeat client. If the user is a new client and there is no current information known about the client, the system may gather demographics about the client using a registration process, a questionnaire, or other suitable methods.
  • LAS load-ahead service
  • the load-ahead service loads game suggestion or recommendation plug-ins based on categories of information known by the system about the client. In this regard, the load-ahead service is customized or personalized for each client.
  • the load-ahead service generates a list of games that is communicated to the client application over the network. The communication may include the priority status of the game predictions and the URL for initiating content download.
  • the client application initiates download of the most relevant game content. The process of retrieving the game content happens in the background in one embodiment and is transparent to the client.
  • the load-ahead service application may be run for a client before that client has selected any games to play. It is possible however that the client selects and enters a game before the load-ahead service is launched. In this case the service seeks to predict the client's next game selection. In this embodiment, feedback from the current gaming activity on the part of the client may be propagated to the service for updating plug-in modules.
  • the client application downloads the content in serial or parallel fashion. In serial fashion the content relative to the most probable game on the list is downloaded completely before content from the next probable game on the game list. In parallel fashion, the client application downloads content for a specified number of the most probable games simultaneously as described in FIG. 2 above. Three or more channels may be opened by the client application for downloading game elements consisting of images, XML, sounds, assets, and so on. Shared elements may be cached once to avoid redundancy.
  • the client application caches the game content as it is downloaded.
  • the user operating the gaming machine makes a game selection.
  • the client application determines if the selected game is on the communicated game list of predicted games. If the client selects a game that was not predicted, at step 313 the client applications initiates download of those game elements from the remote server. However, there may be some shared game elements already in cache. In this case the cached elements are loaded from local cache and may not be downloaded from the remote server.
  • the system monitors the user activity relative to the game being played at step 314 once the user has entered the game.
  • the activity may include game navigation, teleport activity, purchase activity, and so on.
  • the data collected from the user activity is reported to the load-ahead service at step 315 in the background transparent to the user.
  • the data is then propagated to the appropriate plug-in modules for refining game weighting. Elements in cache relative to games that were not selected are eventually purged from cache in the event that the user selects a game not on the list or in the event that the user decides not to select a game.
  • the elements for that game are loaded from local cache at step 312 instead of initiating download from the remote server. Elements not yet cached (download in progress) will be loaded immediately once they hit the cache. In one embodiment, if a user selects a listed game that has elements currently being cached, other games whose elements are also being cached may be paused from download to devote the rest of the bandwidth to download of only the elements of the game being loaded.
  • the system monitors the user activity once the user has entered the game. The activity data is forwarded to the load-ahead service at step 315 where it is distributed appropriately to refine future predictions.
  • a load-ahead service for a user may include one or more plug-in modules without departing from the spirit and scope of the present invention.
  • the games prediction list may evolve consistently while the user plays games with periodic updates to the list. Formerly predicted games on the list may be bumped by new games if game weighting and subsequent analysis by the game list generator finds new games that rate higher than any previously listed games.
  • all games listed in the communicated predictive games list have elements being cached once the client application receives and deciphers the list.
  • the list is encrypted for privacy concerns and is decoded at the client end.
  • FIG. 4 is a process flow chart 400 illustrating steps for generating a hierarchical game list for a client machine to enable pre-caching of game resources before game selection according to an embodiment of the present invention.
  • the client application sends a request to the load-ahead service for predicted games. This transaction may be part of a periodic polling of the look-ahead service asking the service to update the predictive games list.
  • the load-ahead service may load plug-in modules used to gauge probability for individual games available to the client.
  • the client plug-ins are already loaded when the system detects the client on the gaming site.
  • the user for example, may manage plug-ins by adding and deleting certain plug-in modules or creating new plug-in modules.
  • each individual plug-in loads its probability data including any recent updates. Probability data is analogous to any category of client data already known by the system.
  • each individual plug-in docked with the load-ahead service calculates and assigns weights to available games based on its own category of client data. The system may rate many different games available to the client before a top number of most probable game selections are determined. For example, a list of 100 games available to the client may be weighted at the load-ahead service before a list containing perhaps the five most probable games is communicated to the client application.
  • each plug-in module reports its top game predictions to the load-ahead service based on its own data resource.
  • Plug-in modules may be constrained to a certain number of games that they may list. Plug-in modules are not interdependent. That is to say that recommendations of one plug-in may not match another. Likewise, some plug-in module may share games designation.
  • the load-ahead service receives data from all of the installed and active plug-ins and analyzes the data to determine a top probability games list containing three to several weighted games in hierarchical order of weight or score.
  • Contributions from all of the plug-in modules may be incorporated into a final determination.
  • the determination of the top most probable selections may be made by adding weights assuming some games will be mentioned by more than one plug-in module.
  • games that are returned by only one of many plug-in modules may be thrown out in favor of games mentioned by at least two plug-in modules. Scores or weights assigned to a game by multiple plug-in modules may be averaged to determine one weight for a same game.
  • the load-ahead service sends the generated games list to the client before the user has made a next game selection. If a client makes a selection before receiving the generated list, the list may still be sent and may still be relevant for the next selection. As time progresses, the system becomes more accurate and is able to predict a user's next selection with increasing accuracy. The user will have a better experience as less time is spent waiting for a game to load if the user selected any game on the returned list of predicted games.

Abstract

A system for serving digital games to clients has an Internet-connected server, a digital data repository coupled to the Internet-connected server, the data repository storing digital resources for playing a plurality of games on a computerized appliance; and software executing on the Internet-connected server from a non-transitory physical medium, the software providing a first function determining for a specific client a list of games by probability of subsequent client selection, a second function causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with client, beginning with the most probable game in the list.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention is in the field of network gaming and pertains particularly to methods and apparatus for predicting game selection and pre-caching game resources relative to those predicted selections.
  • 2. Discussion of the State of the Art
  • In the art of network-based gaming, it is desirable that games selected by clients download quickly with minimal load time on the client machine. In typical application, a content server analogous to a game server serves the game scripting and resources to the client machine to enable loading of a selected game. Much opportunity for delay in the game-loading process exists. Typically a client's browser is served the universal resource locator (URL) and other information to retrieve the game resources. The user operating the client machine then waits while the game metadata (often XML) is retrieved and the game resources including sounds, images, assets and other resources are loaded before the user may enter and play the game successfully. The imposed wait period or delay can be substantial for many clients, adding a few to several minutes of idle time before the game is playable on the client's machine.
  • Therefore, what is clearly needed is a system and methods for predicting game selection and pre-caching the most probable game resources before a game is selected. A system such as this may reduce or eliminate delays in loading game resources from a remote content server.
  • SUMMARY OF THE INVENTION
  • The problem stated above is that expediency of game loading is desirable for an Internet gaming machine, but many of the conventional means for obtaining and loading game content, such as by requesting and subsequent downloading, also create delay. The inventors therefore considered functional elements of a gaming system, looking for elements that exhibit interoperability that could potentially be harnessed to provide more expedient game content loading but in a manner that would not add delay.
  • Every network-based gaming system is driven by numerous gaming clients accessing and playing individual games, one by-product of which is an abundance of gaming content that must be downloaded to client gaming applications before play can commence. Most such systems employ Web servers and gaming servers including software to orchestrate active game streaming to multiple clients playing a game, and server/client applications are typically a part of such apparatus.
  • The present inventor realized in an innovative moment that if, prior to game selection, gaming content relative to one or more games that a client is most likely to select could be downloaded and pre-cached to the client machine for quick load, significant delay in launching a next game might be reduced or eliminated. The inventor therefore constructed a unique predictive system for Internet gaming that allowed gaming content deemed most relative to a client's probable game selection to be downloaded to the client machine and pre-cached for faster game loading. A significant reduction in time to load results with no impediment to the gaming experience.
  • Accordingly, in an embodiment of the present invention, a system for serving digital games to clients is provided, comprising an Internet-connected server, a digital data repository coupled to the Internet-connected server, the data repository storing digital resources for playing a plurality of games on a computerized appliance, and software executing on the Internet-connected server from a non-transitory physical medium, the software providing a first function determining for a specific client a list of games by probability of subsequent client selection, a second function causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with client, beginning with the most probable game in the list.
  • In one embodiment the data repository includes client game-selection history, and probability of game selection is based in part on the client game selection history. Also in one embodiment the data repository includes client demographics, and probability of game selection is based in part on the client demographics. In another embodiment the data repository includes statistics regarding game popularity among multiple clients, and probability for game selection is based in part on the popularity statistics. In yet another embodiment the data repository includes information on game component purchase history, and probability of game selection is based in part on the game component purchase history for the client. The resources may comprise one or more of metadata, scripting, images, audio, and game objects.
  • In some cases resources from more than one game are transmitted serially from most probable to least probable for the listed games. In some cases resources from more than one game are transmitted in parallel, sharing a single path or over plural pathways. In some cases there is a selection feedback channel for reporting client game selection in real time. Also in some embodiments client navigation is tracked in a game, and the probability of game selection in based in part on the client navigation.
  • In another aspect of the invention a method for serving digital games to clients is provided, comprising the steps of (a) determining for a specific client a list of games by probability of subsequent client selection; and (b) causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with specific client, beginning with the most probable game in the list.
  • In some embodiments of the method determination in step (a) includes client game-selection history. Also in some embodiments determination in step (a) includes client demographics. Further in some embodiments determination in step (a) includes statistics regarding game popularity among multiple clients. In still other embodiments determination in step (a) includes information on game component purchase history. In embodiments of the invention the resources comprise one or more of metadata, scripting, images, audio, and game objects.
  • In some cases resources from more than one game are transmitted serially from most probable to least probable for the listed games. In other cases resources from more than one game are transmitted in parallel, sharing a single path or over plural pathways. In still other cases there is a mechanism for gathering client game selection in real time via a feedback channel, and client navigation may be tracked in a game, and the probability of game selection in based in part on the client navigation.
  • BRIEF DESCRIPTION OF THE DRAWING FIGURES
  • FIG. 1 is an architectural overview of a gaming network supporting game prediction and pre-caching of game resource according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating the process of pre-caching gaming content relative to predicted games according to an embodiment of the present invention.
  • FIG. 3 is a process flow chart illustrating steps for predicting client game selection and pre-caching game resources for fast game loading according to an embodiment of the present invention.
  • FIG. 4 is a process flow chart illustrating steps for generating a hierarchical game list for a client machine to enable pre-caching of game resources before game selection according to an embodiment of the present invention.
  • DETAILED DESCRIPTION
  • The inventors provide a unique system and methods for predicting game selection on behalf of a client machine and pre-caching most relevant game resources on the client machine in advance of game selection by the client. The present invention will be described in enabling detail using the following examples, which may describe more than one relevant embodiment falling within the scope of the present invention.
  • FIG. 1 is an architectural overview of a gaming network 100 supporting game prediction and pre-caching of game resources according to an embodiment of the present invention. Gaming network 100 includes a wide area network (WAN) represented herein by a network backbone 101. Network 101 may in one embodiment, be the Internet network. In another embodiment, network 101 may be a municipal area network (MAN), a corporate WAN or another network without departing from the spirit and scope of the present invention. In this Internet embodiment backbone 101 represents all of the lines, equipment, and access points that make up the Internet as a whole. Therefore, there are no geographic limitations relative to the practice of the present invention.
  • Internet 101 supports a Web server (WS) 104 that includes a non-transitory physical storage medium that is adapted to store all of the software and data required to enable function as a Web server serving hosted Web pages to clients upon request. WS 104 may be hosted by a third-party service or by a network gaming company. A gaming Website 111 is available through accessing server 104, the Website served upon request. In a preferred embodiment, Website 111 is a gaming Website adapted to register clients for building and playing network-based games. Web server 104 typically enables clients to select games from a list or catalogue.
  • In this embodiment Web server 104 further includes a load-ahead-service (LAS) software application 112 executing from the non-transitory physical medium. LAS 112 is adapted to make a list of games that the client has a high probability of selecting. LAS 112 may include several variant plug-in modules (not illustrated here) that are enabled to use existing statistics about the client to determine from a pool or collection of individual games, which games are most likely to be selected for play by that specific client.
  • Network backbone 101 in this embodiment supports a customer information system (CIS) 105. CIS 105 includes a non-transitory physical medium that contains all of the software and data required to enable function as a customer information system server. CIS 105 has connection to a client database 106. Client database 106 includes information about clients including, but not limited to membership status, contact information, payment history, purchase history, demographics, game-playing history, friends list, and personal preferences relative to service interaction.
  • Network backbone 101 supports a gaming server (GS) 107, also termed a content server in the art. GS 107 includes a non-transitory physical medium that stores all of the software and data required to enable function as a gaming server. GS 107 serves games to clients upon request and maintains and propagates game state changes as clients play a game. GS 107 has connection to a gaming content repository 108 that is adapted to contain game resources for games hosted by the server. There may be more than one server in a game content delivery network without departing from the spirit and scope of the present invention. One server is illustrated here and is deemed sufficient for explanatory purposes. Gaming content may include but is not limited to, images, sounds, animations, assets, metadata, scripting, and so on. In normal practice, GS 107 may be linked by resource address to Website 111 for every game presented on the Website for play that the server hosts.
  • Carrier network 102 may be any wired or wireless network capable of serving as a sub-network to Internet network 101. Carrier network 102 may be a cellular network, a wireless fidelity network (WiFi), a local area network (LAN), a cable network, a fiber optics network, or a public switched telephone network (PSTN) without departing from the spirit and scope of the present invention. In this example, gaming appliances 109(a-n) are illustrated as connected to Internet 101 via carrier network 102. A gaming appliance may include an android device, a hand-held game machine, a personal computer (PC), a laptop, a gaming box connected to a cable or satellite television network, or any other appliance adapted to play Internet-based games. Appliance 109 a is a hand-held gaming appliance, appliance 109 b is a personal gaming computer, and appliance 109 n is a game box connected to a flat screen television. There are numerous and variant possibilities.
  • Client software applications 110(a-n) execute on the gaming appliances 109(a-n). Each client application may be customized to the appliance and platform from upon which it executes. Each appliance includes a non-transitory physical medium to host and enable local execution of the client applications. Client appliances 109(a-n) are illustrated as connected to an Internet service provider (ISP) 113, which may in some cases be a wireless ISP (WISP). ISP 113 enables Internet access through a media gateway 103. This example is logical only and may not represent actual Internet connectivity architecture for all appliances. There are several different ways to connect to the Internet using wired and wireless technologies known in the art and available to the inventor. Each appliance 109(a-n) is illustrated as in progress of game play. Game selection predictions may be initiated before a user starts any game, and after a user has selected and entered an existing game, a purpose is to predict the next game the user will select for play.
  • In practice, a user, such as one operating appliance 109 a, connects to Website 111 through carrier network 102, W/ISP 113, and media gateway 103. The user performs a login and may browse games to play from a games page or other games presentation page. In one embodiment a user may search for games to play wherein the gaming links (link to actual game) are returned in a search list. Once the user has been identified at the Website, information about that user may be retrieved and the load-ahead service (LAS) 112 is launched for that user.
  • In one embodiment, LAS 112 is launched upon recognition of the user before the user has selected any game to play. LAS 112 may incorporate several plug-in modules that depend upon different criteria for weighting games from a standard pool or list of games. More information about various plug-in modules is detailed later in this specification. However, some plug-in modules are developed after some specific information becomes known about the user and thus may be used to help determine a hierarchical list of games the user is most likely to select. Other plug-in modules are stock and depend upon criteria that may not involve user data, such as most-played games or most popular games in general. One or more plug-in modules may contribute weights or scores assigned to specific games. Games receiving top weights are aggregated into a priority listing of the most probable games the user will select. LAS 112 may run over Website 111 or it may be executed by a different service linked by the Website.
  • Client software 110 b executing from gaming device 109 a provides a function for receiving game suggestions (prioritized game list) from Website 111 and a function for initiating download from a content server such as game server 107 of game resources associated with one or more of the top suggested games. Downloaded content is pre-cached in the media cache on the appliance and therefore may be loaded out of cache locally if the user selects one of the predicted games. The number of predicted games served in a prioritized list may vary according to appliance capacity, cache size and other factors. Three games might be served in a list of games for one user while five or more games may be served in a list of games for another user. A user may also set a preference, such as serve the top five most relevant games only.
  • The client application consumes the list, including a URL to the content server and identification of the game resources required to load the individual games. The client application connects to the game server or content server and initiates download of the most relevant content automatically. The download activity occurs in the background and may be transparent to the client relative to download progress. However in one embodiment, the appliance display may publish the most relevant game recommendations and current download status of the game data associated with each of the games. It is important to note that game resources may be downloaded in the background while the user is currently playing a game. An object of the invention is that during the time that the user is occupied in game play, the resources for the game that the system predicts the user will select next are being cached locally and will be available upon the user's next game selection. The result (if user selects a predicted game) is that the game immediately loads from local cache, thereby reducing or eliminating traditional loading time for remote games.
  • Cached game data and resources are held in cache under typical cache strategies for aging and cache size. For example, if all of the game elements assigned to a game on the predictive game list are in cache, but the user does not select the game to play, the elements will eventually age out of cache. Cache size may be a factor in determining how many games may be pre-cached at one appliance. In one embodiment elements that are generic to more than one game on the list may be downloaded once to avoid redundancy. Such elements may be spared from purge in cache if shared by more than one game. Any information known about the user may be incorporated to help predict which games a user will likely select.
  • Data categories that may be tapped include client demographics, client game selection history, client spending patterns, client skills level, client-stated preferences, client game search history, and so on. Stock plug-in modules may simply rely on public information gathered across the service like most played games, most popular games, most popular games played by friends of the user, and so on. In the case of multiple plug-in modules, weights assigned to specific games may be combined to generate a hierarchical game list with the most probable games at the top of the list.
  • In one embodiment, client SW 110(a-n) includes a feedback channel that reports current client/user activity back to LAS 112. This data may be propagated to relevant plug-in modules in order to refine weighting. Each plug-in module fires one or more algorithms based on native data that results in a weight or score for each game relative to the likelihood of a user selecting that game. The scores are propagated to LAS 112, which in turn identifies and lists the top tier games after analyzing the scores from each active plug-in. For example, a single game may be weighted by more than one plug-in module while another game is weighted by only one plug-in module. A content download occurring in the background may be orchestrated in parallel fashion or in serial fashion.
  • FIG. 2 is a block diagram 200 illustrating the process of pre-caching gaming content relative to predicted games according to an embodiment of the present invention. Diagram 200 includes a game appliance 109 displaying a current game 201 in progress. Game 201 may have or may not have been predicted by the system. Client appliance 109 has a feedback channel to a client activity statistics (CAS) database 202. CAS 202 reports directly to LAS 112 and is forwarded to the relevant plug-in modules. In this example, plug-in modules 205(a-n) contribute weighting for each of the relevant games being “scored”. A game list generator 204 is provided for generating a hierarchical list of games based on data input from the plug-in modules.
  • In this example, there are several operating plug-ins 205(a-n) adapted to process different categories of data. Reading from left to right, a teleport probability engine is provided as a plug-in. A teleport or multi-port gaming system known to the inventor includes hyperlinks to other games such as are executable through a portal, a mirror, a level, a wall or other game feature. A teleport system is able to track a user as the user jumps from game to game. The system uses a soft counter to calculate how many times a user has traversed specific teleport pathways (from one game to another). A history is developed showing the navigation patterns of the user between teleport-accessible games.
  • The probability that a user chooses a specific teleport is computed as a function of (a) that teleport's count, (b) the total count of all teleports, and (c) the total visits to the game. The probability engine returns the N most likely games the user will go to next based on the behavior of that user and other previous users. The teleport probability engine may assign a score or weight to a game based on how many times it has been visited through teleporting navigation.
  • Other plug-ins connected to LAS 112 include a game popularity engine 205 b. Game popularity engine 205 b is a stock or “service provided” plug-in that calculates the top most popular games among users by counting the times that the games were played over a defined period. Engine 205 b may include one or more subcategories such as the overall most popular games, games most popular to friends of the user, etc. A personal game recommendation engine 205 c may assign weights to games that are deemed more probable for selection based on user personal data and monitored user activities. A sales-driven game recommendation engine 205 d may assign weights to games based on sales of assets or accessories associated with the game. This may be a system plug-in adapted to create weight for games that have high sales numbers associated with them.
  • A skills-based game recommendation engine 205 e provides weights assigned to games based on skills level of the game relative to skills level of a user (if available to the system). For this plug-in skill levels of the user are recorded and made available to the module. In this case each game may be rated by a skills-rating system and the plug-in attempts to predict that the user will select a game matching his or her skills level. Plug-in 205 n represents any other derived plug-in that may assign a weight to a game based on available data. There are many variant possibilities.
  • The final list may be published to the user as “games recommended” or the user may not see the list. Publishing the list implies that the system prompts the user to select a game from the list. This might be more appropriate if there are up-sale opportunities or cost-saving opportunities to the service provider involved in the recommended games. In typical application though, the system is “predicting” the next game selection of the user and downloading the game elements relative to the predictive game candidates to cache, such that in the event the prediction is correct, less load time delay will occur on the client's machine. A pure predictive system may not publish the list to the user, as that may negatively affect the ability to accurately predict future game selections.
  • Appliance 109 has a cache system 203 that may be optimized by client SW functionality. In this example, after receiving weights for games by plug-in modules 205(a-n), LAS 112 combines scores to determine the top games the system predicts that the user has the highest probability of selecting. The top few to several games are listed for the client by game list generator 204. Cache 203 is actively caching metadata and game resources for a game A, a game B, and a game C. In this example, a logical status indication (shaded boxes) for each game shows progress of caching of the relevant elements.
  • Based on shading, it can be seen that resources for game A are mostly cached with game B running second and game C having the least data cached at the point in time of observation. It follows that game A is the most probable game the user will select next followed by game B and then by game C. If the prediction is correct and the user selects game A, B, or C (the top three weighted games), the games load from local cache, reducing or eliminating delay time relative to loading game elements from a remote server after game selection.
  • FIG. 3 is a process flow chart 300 illustrating steps for predicting client game selection and pre-caching game resources for fast game loading according to an embodiment of the present invention. In step 301, a user is detected on a game presentation page of a Website hosting game play. At step 302 the system identifies the user. This may be accomplished during login before the user plays any games at the site. At step 303 the system determines whether the client is a new client (first time) or a repeat client. If the user is a new client and there is no current information known about the client, the system may gather demographics about the client using a registration process, a questionnaire, or other suitable methods.
  • In the case of a new client, demographic information will enable game selection prediction using stock plug-in modules that do not depend on client history with the service for game selection prediction. If the system determines that the client is a repeat client at step 303, then there is recorded history of the client and the additional history data can be tapped to enable other more customized plug-in modules to the load-ahead service (LAS). After gathering demographics for a client that is new or a first time user, the process moves to step 305 wherein the load-ahead service application is launched for that client. If the system determines that the client is a repeat client the load-ahead service is immediately launched for that client. The load-ahead service (LAS) application may be installed over the Website as a functional application that works with a client on the accessing gaming appliance.
  • At step 306, the load-ahead service loads game suggestion or recommendation plug-ins based on categories of information known by the system about the client. In this regard, the load-ahead service is customized or personalized for each client. At step 307, the load-ahead service generates a list of games that is communicated to the client application over the network. The communication may include the priority status of the game predictions and the URL for initiating content download. At step 308, the client application initiates download of the most relevant game content. The process of retrieving the game content happens in the background in one embodiment and is transparent to the client.
  • It is noted herein that the load-ahead service application may be run for a client before that client has selected any games to play. It is possible however that the client selects and enters a game before the load-ahead service is launched. In this case the service seeks to predict the client's next game selection. In this embodiment, feedback from the current gaming activity on the part of the client may be propagated to the service for updating plug-in modules.
  • The client application downloads the content in serial or parallel fashion. In serial fashion the content relative to the most probable game on the list is downloaded completely before content from the next probable game on the game list. In parallel fashion, the client application downloads content for a specified number of the most probable games simultaneously as described in FIG. 2 above. Three or more channels may be opened by the client application for downloading game elements consisting of images, XML, sounds, assets, and so on. Shared elements may be cached once to avoid redundancy.
  • At step 309, the client application caches the game content as it is downloaded. At step 310 the user operating the gaming machine makes a game selection. At step 311, the client application determines if the selected game is on the communicated game list of predicted games. If the client selects a game that was not predicted, at step 313 the client applications initiates download of those game elements from the remote server. However, there may be some shared game elements already in cache. In this case the cached elements are loaded from local cache and may not be downloaded from the remote server.
  • The system monitors the user activity relative to the game being played at step 314 once the user has entered the game. The activity may include game navigation, teleport activity, purchase activity, and so on. The data collected from the user activity is reported to the load-ahead service at step 315 in the background transparent to the user. The data is then propagated to the appropriate plug-in modules for refining game weighting. Elements in cache relative to games that were not selected are eventually purged from cache in the event that the user selects a game not on the list or in the event that the user decides not to select a game.
  • If a user selected a game on the communicated game list of predicted games at step 311, the elements for that game are loaded from local cache at step 312 instead of initiating download from the remote server. Elements not yet cached (download in progress) will be loaded immediately once they hit the cache. In one embodiment, if a user selects a listed game that has elements currently being cached, other games whose elements are also being cached may be paused from download to devote the rest of the bandwidth to download of only the elements of the game being loaded. At step 314, the system monitors the user activity once the user has entered the game. The activity data is forwarded to the load-ahead service at step 315 where it is distributed appropriately to refine future predictions.
  • It will be apparent to one with skill in the art that a load-ahead service for a user may include one or more plug-in modules without departing from the spirit and scope of the present invention. The more experience the user has with the system results in more accurate and personalized game predictions as a wider base of data is available to refine the process. In one embodiment, the games prediction list may evolve consistently while the user plays games with periodic updates to the list. Formerly predicted games on the list may be bumped by new games if game weighting and subsequent analysis by the game list generator finds new games that rate higher than any previously listed games. In one embodiment, all games listed in the communicated predictive games list have elements being cached once the client application receives and deciphers the list. In this embodiment, if the user selects a listed game, at least some or the components have already been cached avoiding unnecessary delay for the user. In one embodiment, the list is encrypted for privacy concerns and is decoded at the client end.
  • FIG. 4 is a process flow chart 400 illustrating steps for generating a hierarchical game list for a client machine to enable pre-caching of game resources before game selection according to an embodiment of the present invention. At step 401 the client application sends a request to the load-ahead service for predicted games. This transaction may be part of a periodic polling of the look-ahead service asking the service to update the predictive games list. At step 402, the load-ahead service may load plug-in modules used to gauge probability for individual games available to the client. In one aspect of the process, the client plug-ins are already loaded when the system detects the client on the gaming site. In one embodiment, the user, for example, may manage plug-ins by adding and deleting certain plug-in modules or creating new plug-in modules.
  • At step 403, each individual plug-in loads its probability data including any recent updates. Probability data is analogous to any category of client data already known by the system. At step 404, each individual plug-in docked with the load-ahead service calculates and assigns weights to available games based on its own category of client data. The system may rate many different games available to the client before a top number of most probable game selections are determined. For example, a list of 100 games available to the client may be weighted at the load-ahead service before a list containing perhaps the five most probable games is communicated to the client application.
  • At step 405, each plug-in module reports its top game predictions to the load-ahead service based on its own data resource. Plug-in modules may be constrained to a certain number of games that they may list. Plug-in modules are not interdependent. That is to say that recommendations of one plug-in may not match another. Likewise, some plug-in module may share games designation. At step 406, the load-ahead service receives data from all of the installed and active plug-ins and analyzes the data to determine a top probability games list containing three to several weighted games in hierarchical order of weight or score.
  • Contributions from all of the plug-in modules may be incorporated into a final determination. In one embodiment, the determination of the top most probable selections may be made by adding weights assuming some games will be mentioned by more than one plug-in module. In one embodiment, games that are returned by only one of many plug-in modules may be thrown out in favor of games mentioned by at least two plug-in modules. Scores or weights assigned to a game by multiple plug-in modules may be averaged to determine one weight for a same game.
  • At step 407, the load-ahead service sends the generated games list to the client before the user has made a next game selection. If a client makes a selection before receiving the generated list, the list may still be sent and may still be relevant for the next selection. As time progresses, the system becomes more accurate and is able to predict a user's next selection with increasing accuracy. The user will have a better experience as less time is spent waiting for a game to load if the user selected any game on the returned list of predicted games.
  • It will be apparent to one with skill in the art that the game selection predictive system of the invention may be provided using some or all of the mentioned features and components without departing from the spirit and scope of the present invention. It will also be apparent to the skilled artisan that the embodiments described above are specific examples of a single broader invention that may have greater scope than any of the singular descriptions taught. There may be many alterations made in the descriptions without departing from the spirit and scope of the present invention.

Claims (20)

What is claimed is:
1. A system for serving digital games to clients comprising:
an Internet-connected server;
a digital data repository coupled to the Internet-connected server, the data repository storing digital resources for playing a plurality of games on a computerized appliance; and
software executing on the Internet-connected server from a non-transitory physical medium, the software providing:
a first function determining for a specific client a list of games by probability of subsequent client selection; and
a second function causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with client, beginning with the most probable game in the list.
2. The system of claim 1, wherein the data repository includes client game-selection history, and probability of game selection is based in part on the client game selection history.
3. The system of claim 1, wherein the data repository includes client demographics, and probability of game selection is based in part on the client demographics.
4. The system of claim 1, wherein the data repository includes statistics regarding game popularity among multiple clients, and probability for game selection is based in part on the popularity statistics.
5. The system of claim 1, wherein the data repository includes information on game component purchase history, and probability of game selection is based in part on the game component purchase history for the client.
6. The system of claim 1, wherein the resources comprise one or more of metadata, scripting, images, audio, and game objects.
7. The system of claim 1, wherein resources from more than one game are transmitted serially from most probable to least probable for the listed games.
8. The system of claim 1, wherein resources from more than one game are transmitted in parallel, sharing a single path or over plural pathways.
9. The system of claim 1, further comprising a selection feedback channel for reporting client game selection in real time.
10. The system of claim 1, wherein client navigation is tracked in a game, and the probability of game selection in based in part on the client navigation.
11. A method for serving digital games to clients comprising the steps of:
(a) determining for a specific client a list of games by probability of subsequent client selection;
(b) causing transmission of resources for the list of games determined by the first function, directed to a computerized appliance associated with specific client, beginning with the most probable game in the list.
12. The method of claim 11, wherein determination in step (a) includes client game-selection history.
13. The method of claim 11, wherein determination in step (a) includes client demographics.
14. The method of claim 11, wherein determination in step (a) includes statistics regarding game popularity among multiple clients.
15. The method of claim 11, wherein determination in step (a) includes information on game component purchase history.
16. The method of claim 11, wherein the resources comprise one or more of metadata, scripting, images, audio, and game objects.
17. The method of claim 11, wherein resources from more than one game are transmitted serially from most probable to least probable for the listed games.
18. The method of claim 11, wherein resources from more than one game are transmitted in parallel, sharing a single path or over plural pathways.
19. The method of claim 11, further comprising gathering client game selection in real time via a feedback channel.
20. The method of claim 1, wherein client navigation is tracked in a game, and the probability of game selection in based in part on the client navigation.
US13/306,415 2011-11-29 2011-11-29 System for Pre-Caching Game Content Based on Game Selection Probability Abandoned US20130137518A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/306,415 US20130137518A1 (en) 2011-11-29 2011-11-29 System for Pre-Caching Game Content Based on Game Selection Probability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/306,415 US20130137518A1 (en) 2011-11-29 2011-11-29 System for Pre-Caching Game Content Based on Game Selection Probability

Publications (1)

Publication Number Publication Date
US20130137518A1 true US20130137518A1 (en) 2013-05-30

Family

ID=48467374

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/306,415 Abandoned US20130137518A1 (en) 2011-11-29 2011-11-29 System for Pre-Caching Game Content Based on Game Selection Probability

Country Status (1)

Country Link
US (1) US20130137518A1 (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140094315A1 (en) * 2012-06-29 2014-04-03 Brian Michael Christopher Pre-loading translated code in cloud based emulated applications
WO2014193403A1 (en) * 2013-05-31 2014-12-04 Empire Technology Development Llc Cache-influenced video games
US20150019677A1 (en) * 2013-07-10 2015-01-15 Tencent Technology (Shenzhen) Company Limited Systems and Methods for Browser-Based Games
WO2015006581A3 (en) * 2013-07-12 2015-05-07 Alibaba Group Holding Limited Providing history-based data processing
US9248374B2 (en) 2012-06-29 2016-02-02 Sony Computer Entertainment Inc. Replay and resumption of suspended game
US9258012B2 (en) 2013-03-15 2016-02-09 Sony Computer Entertainment Inc. Compression of state information for data transfer over cloud-based networks
US20160080442A1 (en) * 2014-09-17 2016-03-17 Microsoft Corporation Intelligent streaming of media content
US9498715B2 (en) 2011-11-10 2016-11-22 Empire Technology Development Llc Speculative rendering using historical player data
US9623327B2 (en) 2012-06-29 2017-04-18 Sony Interactive Entertainment Inc. Determining triggers for cloud-based emulated games
US9656163B2 (en) 2012-06-29 2017-05-23 Sony Interactive Entertainment Inc. Haptic enhancements for emulated video game not originally designed with haptic capabilities
US9680945B1 (en) * 2014-06-12 2017-06-13 Audible, Inc. Dynamic skill-based content recommendations
US9707476B2 (en) 2012-09-28 2017-07-18 Sony Interactive Entertainment Inc. Method for creating a mini-game
US9830636B1 (en) 2014-09-16 2017-11-28 Audible, Inc. Multi-format content recommendations to improve format fluency
US9849372B2 (en) 2012-09-28 2017-12-26 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US20180001190A1 (en) * 2016-06-30 2018-01-04 Roblox Corporation Uniform Game Display Across Multiple Devices
US9925468B2 (en) 2012-06-29 2018-03-27 Sony Interactive Entertainment Inc. Suspending state of cloud-based legacy applications
US10354443B2 (en) 2012-09-28 2019-07-16 Sony Interactive Entertainment Inc. Adaptive load balancing in software emulation of GPU hardware
US10376784B2 (en) 2011-12-09 2019-08-13 Empire Technology Development Llc Predictive caching of game content data
CN112770820A (en) * 2018-10-10 2021-05-07 深圳市欢太科技有限公司 Game access method and related equipment
US11013993B2 (en) 2012-09-28 2021-05-25 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US11033824B2 (en) * 2019-06-14 2021-06-15 Roblox Corporation Predictive data preloading
US11052313B2 (en) * 2015-03-07 2021-07-06 Sony Interactive Entertainment LLC Using connection quality history to optimize user experience
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
WO2023125875A1 (en) * 2021-12-30 2023-07-06 Lei Xu Correlation-based streaming method for game data

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020094869A1 (en) * 2000-05-29 2002-07-18 Gabi Harkham Methods and systems of providing real time on-line casino games
US20040153557A1 (en) * 2002-10-02 2004-08-05 Joe Shochet Multi-user interactive communication network environment
US20040198498A1 (en) * 1999-12-08 2004-10-07 Kabushiki Kaisha Sega Enterprises Communication game system and communication game processing method
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
US20070281770A1 (en) * 2006-05-17 2007-12-06 Marcus Michael B Methods and Contests for Estimating Events or Conditions
US20090118022A1 (en) * 2007-11-07 2009-05-07 Lyons Martin S Enhanced method of presenting multiple casino video games
US20090170607A1 (en) * 2007-12-31 2009-07-02 Industrial Technology Research Institute System for downloading real-time interaction data through mobile and broadcast converged networks and method thereof
US20100160038A1 (en) * 2008-12-15 2010-06-24 Eui-Joon Youm Interactive asynchronous computer game infrastructure
US20120009997A1 (en) * 2008-12-15 2012-01-12 Eui-Joon Youm Interactive asynchronous game offline play architecture
US20120122552A1 (en) * 2008-12-15 2012-05-17 Eui-Joon Youm Interactive asynchronous game bucketing facility
US8496531B2 (en) * 2008-12-15 2013-07-30 Tetris Online, Inc. Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040198498A1 (en) * 1999-12-08 2004-10-07 Kabushiki Kaisha Sega Enterprises Communication game system and communication game processing method
US20020094869A1 (en) * 2000-05-29 2002-07-18 Gabi Harkham Methods and systems of providing real time on-line casino games
US20040153557A1 (en) * 2002-10-02 2004-08-05 Joe Shochet Multi-user interactive communication network environment
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
US20070281770A1 (en) * 2006-05-17 2007-12-06 Marcus Michael B Methods and Contests for Estimating Events or Conditions
US20090118022A1 (en) * 2007-11-07 2009-05-07 Lyons Martin S Enhanced method of presenting multiple casino video games
US20090170607A1 (en) * 2007-12-31 2009-07-02 Industrial Technology Research Institute System for downloading real-time interaction data through mobile and broadcast converged networks and method thereof
US20100160038A1 (en) * 2008-12-15 2010-06-24 Eui-Joon Youm Interactive asynchronous computer game infrastructure
US20120009997A1 (en) * 2008-12-15 2012-01-12 Eui-Joon Youm Interactive asynchronous game offline play architecture
US20120122552A1 (en) * 2008-12-15 2012-05-17 Eui-Joon Youm Interactive asynchronous game bucketing facility
US8496531B2 (en) * 2008-12-15 2013-07-30 Tetris Online, Inc. Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9498715B2 (en) 2011-11-10 2016-11-22 Empire Technology Development Llc Speculative rendering using historical player data
US10376784B2 (en) 2011-12-09 2019-08-13 Empire Technology Development Llc Predictive caching of game content data
US10668390B2 (en) 2012-06-29 2020-06-02 Sony Interactive Entertainment Inc. Suspending state of cloud-based legacy applications
US9623327B2 (en) 2012-06-29 2017-04-18 Sony Interactive Entertainment Inc. Determining triggers for cloud-based emulated games
US20170296915A1 (en) * 2012-06-29 2017-10-19 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US10293251B2 (en) * 2012-06-29 2019-05-21 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US9717989B2 (en) 2012-06-29 2017-08-01 Sony Interactive Entertainment Inc. Adding triggers to cloud-based emulated games
US9248374B2 (en) 2012-06-29 2016-02-02 Sony Computer Entertainment Inc. Replay and resumption of suspended game
US9694276B2 (en) * 2012-06-29 2017-07-04 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US11724205B2 (en) 2012-06-29 2023-08-15 Sony Computer Entertainment Inc. Suspending state of cloud-based legacy applications
US20140094315A1 (en) * 2012-06-29 2014-04-03 Brian Michael Christopher Pre-loading translated code in cloud based emulated applications
US9925468B2 (en) 2012-06-29 2018-03-27 Sony Interactive Entertainment Inc. Suspending state of cloud-based legacy applications
US9656163B2 (en) 2012-06-29 2017-05-23 Sony Interactive Entertainment Inc. Haptic enhancements for emulated video game not originally designed with haptic capabilities
US10518182B2 (en) 2012-09-28 2019-12-31 Sony Interactive Entertainment Inc. Method for creating a mini-game
US11660534B2 (en) 2012-09-28 2023-05-30 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US10354443B2 (en) 2012-09-28 2019-07-16 Sony Interactive Entertainment Inc. Adaptive load balancing in software emulation of GPU hardware
US11013993B2 (en) 2012-09-28 2021-05-25 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US11904233B2 (en) 2012-09-28 2024-02-20 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in graphics processing
US9707476B2 (en) 2012-09-28 2017-07-18 Sony Interactive Entertainment Inc. Method for creating a mini-game
US10525359B2 (en) 2012-09-28 2020-01-07 Sony Interactive Entertainment Inc. Method for creating a mini-game
US10350485B2 (en) 2012-09-28 2019-07-16 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US10953316B2 (en) 2012-09-28 2021-03-23 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in graphics processing
US9849372B2 (en) 2012-09-28 2017-12-26 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US9258012B2 (en) 2013-03-15 2016-02-09 Sony Computer Entertainment Inc. Compression of state information for data transfer over cloud-based networks
US9658776B2 (en) 2013-03-15 2017-05-23 Sony Interactive Entertainment Inc. Compression of state information for data transfer over cloud-based networks
US9358466B2 (en) * 2013-05-31 2016-06-07 Empire Technology Development Llc Cache-influenced video games
CN105246567A (en) * 2013-05-31 2016-01-13 英派尔科技开发有限公司 Cache-influenced video games
US20150258437A1 (en) * 2013-05-31 2015-09-17 Empire Technology Development Llc Cache-influenced video games
US9079108B2 (en) 2013-05-31 2015-07-14 Empire Technology Development Llc Cache-influenced video games
WO2014193403A1 (en) * 2013-05-31 2014-12-04 Empire Technology Development Llc Cache-influenced video games
US9923988B2 (en) * 2013-07-10 2018-03-20 Tencent Technology (Shenzhen) Company Limited Systems and methods for browser-based games
US10284675B2 (en) 2013-07-10 2019-05-07 Tencent Technology (Shenzhen) Company Limited Systems and methods for browser-based games
US20150019677A1 (en) * 2013-07-10 2015-01-15 Tencent Technology (Shenzhen) Company Limited Systems and Methods for Browser-Based Games
US20200402055A1 (en) * 2013-07-12 2020-12-24 Alibaba Group Holding Limited Providing history-based data processing
US10748152B2 (en) 2013-07-12 2020-08-18 Alibaba Group Holding Limited Providing history-based data processing
WO2015006581A3 (en) * 2013-07-12 2015-05-07 Alibaba Group Holding Limited Providing history-based data processing
US9588648B2 (en) 2013-07-12 2017-03-07 Alibaba Group Holding Limited Providing history-based data processing
US9680945B1 (en) * 2014-06-12 2017-06-13 Audible, Inc. Dynamic skill-based content recommendations
US9830636B1 (en) 2014-09-16 2017-11-28 Audible, Inc. Multi-format content recommendations to improve format fluency
US10154072B2 (en) * 2014-09-17 2018-12-11 Microsoft Technology Licensing, Llc Intelligent streaming of media content
US20160080442A1 (en) * 2014-09-17 2016-03-17 Microsoft Corporation Intelligent streaming of media content
US11052313B2 (en) * 2015-03-07 2021-07-06 Sony Interactive Entertainment LLC Using connection quality history to optimize user experience
US20210331069A1 (en) * 2015-03-07 2021-10-28 Sony Interactive Entertainment LLC Using Connection Quality History to Optimize User Experience
US10512838B2 (en) * 2016-06-30 2019-12-24 Roblox Corporation Uniform game display across multiple devices
US20180001190A1 (en) * 2016-06-30 2018-01-04 Roblox Corporation Uniform Game Display Across Multiple Devices
US10080961B2 (en) * 2016-06-30 2018-09-25 Roblox Corporation Uniform game display across multiple devices
CN112770820A (en) * 2018-10-10 2021-05-07 深圳市欢太科技有限公司 Game access method and related equipment
US11033824B2 (en) * 2019-06-14 2021-06-15 Roblox Corporation Predictive data preloading
EP3983097A4 (en) * 2019-06-14 2023-07-12 Roblox Corporation Predictive data preloading
US11511196B2 (en) * 2019-06-14 2022-11-29 Roblox Corporation Predictive data preloading
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
WO2023125875A1 (en) * 2021-12-30 2023-07-06 Lei Xu Correlation-based streaming method for game data

Similar Documents

Publication Publication Date Title
US20130137518A1 (en) System for Pre-Caching Game Content Based on Game Selection Probability
US10154104B2 (en) Intelligent delivery of actionable content
US10413819B2 (en) System for providing access to game progress data
US8595375B1 (en) Segmenting video based on timestamps in comments
US20190046868A1 (en) System, method and computer readable recording medium for providing game through connection with challenge opponent
US8694534B2 (en) Systems and methods for searching databases by sound input
US20140244762A1 (en) Application distribution platform for rating and recommending applications
KR101432394B1 (en) Open search assist
KR20190114016A (en) Dynamically loading contextual ontologies for predictive typing
US20110197130A1 (en) Method and system for determining viewing time of an online video
US8738733B1 (en) Dynamic control system for managing redirection of requests for content
US8414390B1 (en) Systems and methods for the electronic distribution of games
KR20130095308A (en) Enabling predictive web browsing
US20230036644A1 (en) Method and system for exploring a personal interest space
US9946794B2 (en) Accessing special purpose search systems
CN103650518A (en) Predictive, multi-layer caching architectures
KR20110057264A (en) Method, system, and apparatus for ranking media sharing channels
US8662997B1 (en) Systems and methods for in-game provisioning of content
JP2016507811A (en) Computer storage medium and prefetch method
US9656166B1 (en) Using game data for providing content items
US11126785B1 (en) Artificial intelligence system for optimizing network-accessible content
US11244257B2 (en) Systems and methods for determining a likelihood of a lead conversion event
US9919220B2 (en) Tracking and player-to-game matching system for online gaming
WO2021202042A1 (en) Searching and ranking modifiable videos in multimedia messaging application
US20220164755A1 (en) Systems and methods for determining a likelihood of a lead conversion event

Legal Events

Date Code Title Description
AS Assignment

Owner name: ROBLOX CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LUCAS, KEITH V.;REEL/FRAME:027306/0065

Effective date: 20111128

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK

Free format text: SECURITY INTEREST;ASSIGNOR:ROBLOX CORPORATION;REEL/FRAME:048346/0255

Effective date: 20190214

AS Assignment

Owner name: ROBLOX CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:055221/0252

Effective date: 20210210