U.S. Patent No. 9,138,648: System and method for dynamically loading game software for smooth game play
Issued September 22, 2015, to Sony Interactive Entertainment America, LLC
Priority Date October 10, 2001
“See that mountain over there, you can climb it,” is the open world game’s promise that a player can travel to an object seen in the environment without encountering a load screen, no matter how far the object is from the player. U.S. Patent No. 9,138,648 (the ‘648 Patent) describes a system and method for a video game to load an environment without entering into a load screen. It is impossible for a game to load the entire environment because doing so would require too much computing power, which ultimately would slow down other aspects of the game. Loading the environment in pieces allows for the game to present large environments without sacrificing other elements, but could slow down the game’s pacing or compromise the openness feeling. The ‘648 Patent solves this problem by loading the next environment piece while the player is traveling in the game. Loading boundaries are set so that when a player crosses the boundary, the game begins to load in the next section. The boundary is set to give the game enough time to load correctly. New loading boundaries are set once the player has crossed into the new environment section. The previous section eventually becomes another loading boundary. Using this method for dynamically loading a game creates the illusion that the entire game world is persistent without overloading the system.
A system and method are disclosed for dynamically loading game software for smooth game play. A load boundary associated with a game environment is identified. A position of a character in the game environment is then monitored. Instructions corresponding to a next game environment are loaded into a memory when the character crosses the load boundary, such that game play is not interrupted.
1. A method for dynamically loading game software, the method comprising: generating a display of a current game environment, wherein the current game environment is associated with a plurality of next game environments; determining a load time for each of the plurality of next game environments, wherein the next game environments are not yet displayed; identifying in the current game environment a plurality of different load boundaries that are each associated with loading one or more of the plurality of next game environments, wherein the location of each load boundary in the current game environment is based on the load time of the associated next game environment; identifying that a character has crossed a load boundary in the current game environment associated with one of the plurality of next game environments; determining a direction in which the character has crossed the crossed load boundary; identifying one of the next game environments for loading based on the crossed load boundary and the determined direction in which the character has crossed the load boundary, wherein the next game environment associated with the load boundary is identified for loading when the character is determined to have crossed the load boundary moving in a forward direction toward one of the next game environments associated with the load boundary, and a different next game environment is identified for loading when the character is determined to have crossed the load boundary in a backward direction away from the one of the next game environments associated with the crossed load boundary; and loading instructions corresponding to the identified next game environment into a memory prior to the character entering the identified next game environment, loading of the instructions commencing when the character crosses the load boundary in the current game environment in the determined direction such that game play is not interrupted by loading instructions for display of the identified next game environment when the character enters the identified next game environment.