U.S. Pat. No. 9,138,648

SYSTEM AND METHOD FOR DYNAMICALLY LOADING GAME SOFTWARE FOR SMOOTH GAME PLAY

AssigneeSony Interactive Entertainment America LLC

Issue DateJune 21, 2004

Patent Arcade analysis Read the full post

U.S. Patent No. 9,138,648: System and method for dynamically loading game software for smooth game play

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

Summary:
“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.

Abstract:
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.

Illustrative Claim:
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.

Illustrative Figure

Abstract

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.

Description

DETAILED DESCRIPTION OF THE INVENTION FIG. 1is a block diagram of one embodiment of an electronic entertainment system100according to the invention. System100includes, but is not limited to, a main memory110, a central processing unit (CPU)112, vector processing units VU0111and VU1113, a graphics processing unit (GPU)114, an input/output processor (IOP)116, an IOP memory118, a controller interface120, a memory card122, a Universal Serial Bus (USB) interface124, and an IEEE 1394 interface126. System100also includes an operating system read-only memory (OS ROM)128, a sound processing unit (SPU)132, an optical disc control unit134, and a hard disc drive (HDD)136, which are connected via a bus146to IOP116. System100is preferably an electronic gaming console; however, system100may also be implemented as, for example, a general-purpose computer, a set-top box, or a hand-held gaming device. CPU112, VU0111, VU1113, GPU114, and IOP116communicate via a system bus144. CPU112communicates with main memory110via a dedicated bus142. VU1113and GPU114may also communicate via a dedicated bus140. CPU112executes programs stored in OS ROM128and main memory110. Main memory110may contain prestored programs and may also contain programs transferred via IOP116from a CD-ROM, DVD-ROM, or other optical disc (not shown) using optical disc control unit134. IOP116controls data exchanges between CPU112, VU0111, VU1113, GPU114and other devices of system100, such as controller interface120. Although a CPU112is described, any other type of processor is within the scope of the invention. GPU114executes drawing instructions from CPU112and VU0111to produce images for display on a display device (not shown). VU1113transforms objects from three-dimensional coordinates to two-dimensional coordinates, and sends the two-dimensional coordinates to GPU114. SPU132executes instructions to produce sound signals that are output on an audio device (not shown). A user of system100provides instructions via controller interface120to CPU112. For example, the user may instruct CPU112to store certain game information on memory card122or may instruct a character in a game to perform some specified action. Other ...

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1is a block diagram of one embodiment of an electronic entertainment system100according to the invention. System100includes, but is not limited to, a main memory110, a central processing unit (CPU)112, vector processing units VU0111and VU1113, a graphics processing unit (GPU)114, an input/output processor (IOP)116, an IOP memory118, a controller interface120, a memory card122, a Universal Serial Bus (USB) interface124, and an IEEE 1394 interface126. System100also includes an operating system read-only memory (OS ROM)128, a sound processing unit (SPU)132, an optical disc control unit134, and a hard disc drive (HDD)136, which are connected via a bus146to IOP116. System100is preferably an electronic gaming console; however, system100may also be implemented as, for example, a general-purpose computer, a set-top box, or a hand-held gaming device.

CPU112, VU0111, VU1113, GPU114, and IOP116communicate via a system bus144. CPU112communicates with main memory110via a dedicated bus142. VU1113and GPU114may also communicate via a dedicated bus140. CPU112executes programs stored in OS ROM128and main memory110. Main memory110may contain prestored programs and may also contain programs transferred via IOP116from a CD-ROM, DVD-ROM, or other optical disc (not shown) using optical disc control unit134. IOP116controls data exchanges between CPU112, VU0111, VU1113, GPU114and other devices of system100, such as controller interface120. Although a CPU112is described, any other type of processor is within the scope of the invention.

GPU114executes drawing instructions from CPU112and VU0111to produce images for display on a display device (not shown). VU1113transforms objects from three-dimensional coordinates to two-dimensional coordinates, and sends the two-dimensional coordinates to GPU114. SPU132executes instructions to produce sound signals that are output on an audio device (not shown).

A user of system100provides instructions via controller interface120to CPU112. For example, the user may instruct CPU112to store certain game information on memory card122or may instruct a character in a game to perform some specified action. Other devices may be connected to system100via USB interface124and IEEE 1394 interface126.

FIG. 2is a block diagram of one embodiment of main memory110ofFIG. 1, according to the invention. Main memory110includes, but is not limited to, game software202, a memory segment206, and a memory segment208. Game software202includes instructions executable by CPU112, VU0111, VU1113, and SPU132that allow a user of system100to play a game. In theFIG. 2embodiment, game software202is related to an action adventure game in which a user controls a character on a journey. In other embodiments, game software202may be related to any other type of game, including but not limited to other action adventure games, a role-playing game (RPG), and a civilization-building simulation game. Game software202also includes an environment management module204.

Memory segment206and memory segment208are portions of memory110configured to store game environments. Environment management engine204loads an environment to memory segment206from a disc in optical disc control unit134. Environment management engine204loads another environment to memory segment208from the disc. One of memory segment206and memory segment208stores a current environment, while the other of memory segment206and memory segment208stores a next environment. Although two memory segments206,208are shown inFIG. 2, any number of memory segments is within the scope of the invention.

FIG. 3is a flowchart illustrating dynamic loading of game software utilizing environment management engine204ofFIG. 2according to one embodiment of the invention. In step302, environment management engine204identifies a load boundary associated with the current game environment. The current game environment is generally the environment that the character is presently exploring. A load boundary is a threshold that, when reached or crossed by the character, indicates to environment management engine204that the next environment should be loaded to memory segment206or memory segment208. A process of establishing a load boundary during production of game software202will be discussed in conjunction withFIG. 4.

Next, in step304, environment management engine204monitors the position of a character in the current game environment. In order to monitor the position of the character, environment management engine204tracks input of a user. For instance, if the user moves the character forward, towards the next environment, this input is tracked by environment management engine204. Similarly, if the user moves the character backwards, towards a previously executed environment, environment management engine204tracks this input. Accordingly, environment management engine204constantly tracks movements of the character in order to determine when the load boundary is crossed, or otherwise reached.

In step306, environment management engine204determines whether the load boundary has been crossed by the character. If the character has not crossed the load boundary, environment management engine204continues to query whether the boundary has been crossed until environment management engine204determines that an affirmative response can be returned. When the character has crossed the load boundary, environment management engine204loads a next game environment into the one of memory segment206or memory segment208that does not hold the current game environment, in step308. The next game environment becomes the current game environment when the character enters the environment. Accordingly, the current game environment becomes a previous environment when the character enters the next environment.

When the character crosses, or reaches, the load boundary, environment management engine204is triggered to load the next game environment. Generally, triggers to load the next game environment include situations in which the user can see the next environment or the user will soon need the next environment, or previous environment where appropriate, as discussed herein. The load boundary is a trigger that may represent these situations.

As stated above, in step308, environment management engine204loads the next environment to either memory segment206or memory segment208from the disc in optical disc control unit134(FIG. 1). Since it is assumed that the character is progressing forward in the game, the next environment is the environment that is loaded. However, if the character regresses in the game, the previously executed environment will be re-loaded. In other words, if the user chooses to move the character backwards, away from the next environment, the load boundary will be crossed in the backwards direction and environment management engine204will load the previously executed environment in order to allow the user to return the character to the previously executed environment should the user choose such a route.

In step310, environment management engine204determines whether the character has reached an end of the current game environment. If the character has not reached the end of the current game environment, environment management engine204continues to query whether the character has reached the end of the current game environment until a positive answer can be established. If the character has reached the end of the current game environment, the next game environment is displayed in step312.

FIG. 4is a flowchart illustrating a process for establishing a load boundary according to one embodiment of the invention. TheFIG. 4process for establishing a load boundary relates to processes performed during design and production of game software202and/or environment management engine204. In step402, a designer calculates a load time for an environment. Load time is the amount of time, or duration of time, that is required to load instructions for a particular environment from a disc to memory110. The load time for each environment typically varies, depending upon the complexity of the environment. The load time for each environment may be any length of time suitable for use with the invention. For instance, the load times for each environment may be equivalent or approximately equivalent. As another example, successive environments may require load times that are shorter in duration than preceding environments.

In step404, the designer sets the minimum duration of a new environment equal to twice the calculated load time of the other environment. The minimum duration of the environment is measured as the least amount of time it takes a character to traverse the environment. The minimum duration is set to twice the load time of the other environment so that when the character passes through the midpoint of the environment, there will be sufficient time to load the next environment into memory segment206or memory segment208.

In step406, the designer establishes the load boundary at the midpoint of the new environment. By establishing the load boundary at the midpoint of a current environment (e.g., the new environment), initiation of loading for a next environment can proceed when this midpoint is reached or crossed by the character. Because loading time of the next environment is equal to or less than half of the running time of the current environment, loading of the next environment will be completed by the time the character reaches the end of the current environment. Thus, the user can seamlessly enter the character into the next environment without experiencing interruption or delay. Further, the user will not notice any transitioning time from the current environment to the next environment. AlthoughFIG. 4illustrates a process for establishing a boundary that is at the midpoint of the environment, any process for establishing a boundary may be utilized in accordance with the invention.

Due to the creation of a midpoint as a load boundary, the user can move the character to any one of many environments from a particular midpoint. In other words, the character need not move from the current environment to the next environment in a linear manner. As discussed herein, the user does not necessarily proceed to the immediate successor environment with respect to level of difficulty. The midpoint of each environment is far enough away from the other environments that instructions for that game environment will be loaded to memory segment206or memory segment208by the time the character reaches one of the other environments.

In another embodiment of the invention, continuation points may be established. Continuation points trigger the process of loading the next environment to continue, or otherwise be maintained. Thus, when the character crosses continuation points, the next environment continues to be loaded into level memory206or level memory208. In this embodiment, loading of the next environment may cease if the character fails to cross a particular continuation point. As many or as few continuation points as desired may be established in any game environment. The continuation points may act as a trigger to continue the next environment loading process and/or the continuation points may be utilized to help monitor the position of the character.

FIG. 5is a diagram of game environments according to one embodiment of the invention. The user is allowed to move character508towards environment “V”510via virtual hallway510a, “W”512via virtual hallway512a, “Y”514via virtual hallway514a, or “Z”516via virtual hallway516a. Thus, the user can move character508to any number of environments from load boundary502in environment “X”506. While the user can move character508to any number of environments, the user can see only two environments at a time, as well as a low resolution of a third environment, where desired, or as otherwise appropriate.

Character508crosses load boundary502into one of the virtual hallways. The virtual hallway that character508enters indicates to the environment management engine204which environment should be loaded next. For instance, if character508enters virtual hallway514a, environment management engine204loads environment “V”514to memory segment206or memory segment208. Other environments may have more or fewer virtual hallways. InFIG. 5, for example, environment “V”514only has two virtual hallways (not shown) because character508can only move towards environment “X”506or environment “W”512from environment “V”514. Each virtual hallway is a defined area, such as a pathway. Accordingly, character508cannot traverse outside the virtual hallway, directly to another virtual hallway, for example.

Seamless transitioning from one environment to another is accomplished by switching back and forth between game environments stored in memory segment206and memory segment208. Because there are two or more memory segments206and208, the user's character can be in one level and either one other level or no other level is visible to the user. By configuring memory110to include memory segment206and memory segment208, a “virtual hallway,” such as the virtual hallways illustrated inFIG. 5, is created. Unlike traditional “hallways,” the virtual hallway is a level unto itself. Accordingly, each environment essentially has no borders. The user moves the character from one environment to another environment without delay or interruption in game play.

FIG. 6is a flowchart illustrating a process for loading game software for the next environment in accordance with an embodiment of the invention. In step602, environment management engine204identifies the next environment602. The next environment may be any environment accessible to the character from the current environment. In other words, the next environment is not necessarily the next immediate successor environment following the current environment. The next environment may skip an environment or level, skip two environments, skip no environments, and so on.

In step604, environment management engine204identifies an available memory segment. In one embodiment, one of memory segment206and memory segment208does not include the current environment. In step606, environment management engine204loads the next environment to the available memory segment. For example, memory segment206(FIG. 2) may contain a previously executed environment and thus, is available to receive the next environment, while memory segment208stores the currently executing environment.

When the midpoint of the currently executed environment is crossed by the character, environment management engine204loads the next environment into memory segment206over the previously executed environment. As discussed herein, if the user causes the character to turn around and run back towards the previously executed environment, the character would cross the midpoint load boundary again, in the opposite direction. The midpoint load boundary being crossed by the character causes the previously executed environment to be loaded to memory segment206again.

Depending upon the location of the character with respect to the midpoint, the user can observe the currently executed environment and either the next environment or the previous environment. In other words, if the character is in a location in the current environment prior to the midpoint thereof, the user can view the previous environment as well as the current environment. However, if the user's character is located in the current environment after the midpoint of the current environment, the user can see the next environment ahead, as well as the current environment, but not the previous environment.

In order to accomplish this type of display prior to completion of loading the previous or the next environment, a portion of the particular environment is displayed before or after the current environment, depending upon the location of the character. In other words, only a fraction of the particular environment towards which the character is progressing is displayed to the user. Thus, the user can observe the particular environment. Since an environment will be loaded and ready to be fully displayed by the time the character reaches the particular environment, the character can enter the particular environment when the particular environment is reached by the character.

In step608, the next environment is run at the cessation of the current environment. As discussed herein, the next environment is loaded when the character crosses the load boundary of the currently executing environment. Thus, when the character reaches the end of the currently executing environment, the next environment is already loaded and is ready to run. By dynamically loading each next environment, the user experiences smooth game play since no pause or interruption in the game occurs. As discussed herein, traditionally, the user waited for the next environment to load at the conclusion of the current environment, a “loading” or blank screen displayed to the user during this game delay. The invention offers smooth game play to the user by pre-loading the next environment, avoiding the game interruptions and delays of prior art gaming software.

In one embodiment of the invention, three environments, or portions of the environments, may be displayed at a particular time. In order to accomplish the presentation of three levels at a time, low resolution versions of particular environments are displayed. In other words, low resolution versions of previous levels or levels that the user should be able to see from any environment are displayed.

For example, as a character proceeds through a city, two environments of the city are viewable at a time, as discussed herein. However, the user should be able to see the tops of the buildings within the city from any environment within the city. Accordingly, low resolution versions of the tops of buildings are displayed to the user in addition to the two other environments.

In addition, as a character moves through an environment, various details related to that environment may be loaded to memory110and released as appropriate. For instance, speech for a specific person in the environment may be triggered if the character approaches the specific person. The software for speech for the specific person is loaded to memory110and executed when the character approaches the person. Depending upon the current environment, the software for speech for the person may be loaded to memory segment206or memory segment208. When the character moves away from the person, the software for speech for that person is released. Conversely, if the character fails to approach the person, speech software for the person is not loaded to memory110. Thus, details can be added to the particular environment without taxing the system by utilizing vast amounts of memory.

FIG. 7is a flowchart illustrating a process for preventing a user from viewing non-environment display according to one embodiment of the invention. In step702, environment management engine204displays an environment. The environment may be a currently executed environment or a next environment, for which execution is commencing.

In step704, environment management engine204determines whether the character has passed the load boundary. If the character has not passed the load boundary, environment management engine204continues to inquire as to whether or not the load boundary has been passed by the character until the character has passed the load boundary. Once the character has passed the load boundary, the environment management engine204loads the next environment to memory segment206or memory segment208, in step706.

In step708, environment management engine204determines whether the character has reached the end of the environment being displayed in step702. If the character has not reached the end of the environment, environment management engine204continues to monitor the position of the character in order to determine when the character reaches the end of the environment. When the character has reached the end of the environment, environment management engine204determines whether the next environment is ready for display, in step710. If the next environment is ready for display, environment management engine204displays the next environment, in step702. TheFIG. 7process continues until the game ends.

However, as shown inFIG. 7, if the next environment is not ready for display, environment management engine204restricts the character's movement, in step712. For example, environment management engine204may cause the character to trip and fall, and to be unmovable by the user. Once the character's movement has been restricted, such as by tripping and falling, environment management engine204continues to query whether the next environment is ready for display (step710).

If the next environment becomes ready for display, the next environment is displayed, in step702, and the character is once again movable. The next environment may be delayed with respect to availability for display due to an old system, for example, that takes longer than expected to load the next environment. As another example, the DVD ROM may have a skip or other problem that causes delays in loading the next environment. Any number of problems may contribute to a delay in loading the next environment.

However, if the next environment fails to become available for display, the character will remain unmovable, indicating to the user that there is a system100malfunction of some type. Most commonly, the user's DVD ROM is severely scratched or permanently damaged, preventing proper loading of the next environment. Further, the user's DVD ROM drive itself may be damaged or destroyed, precluding loading of the next environment. Any number of problems may prevent loading of the next environment altogether. Accordingly, the character remains unmovable by the user in such a scenario in order to prevent the user from viewing non-environment display. Because the DVD ROM, DVD ROM drive, etc. is ruined, the user is unable to play the game regardless. Thus, rendering the character unmovable does not present an obstacle to commencement of the game.

The invention has been explained above with reference to specific embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. The invention may readily be implemented using configurations other than those described in the preferred embodiments above. Additionally, the invention may effectively be used in conjunction with systems other than the one described above. Therefore, these and other variations upon the described embodiments are intended to be covered by the invention, which is limited only by the appended claims.

Claims

  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.
  1. The method of claim 1 , further comprising configuring the memory to include at least two memory segments.
  2. The method of claim 2 , wherein the current game environment is stored in one of the at least two memory segments and the identified next game environment associated with the crossed load boundary is stored in another of the at least two memory segments.
  3. The method of claim 1 , wherein the identified next game environment an immediate successor level to the current game environment.
  4. The method of claim 1 , further comprising restricting movement of the character if loading instructions corresponding to the identified next game environment associated with the crossed load boundary is not completed.
  5. The method of claim 1 , wherein a portion of the identified next game environment is displayed while the character traverses the current game environment.
  6. The method of claim 1 , wherein the crossed load boundary passes through a midpoint of the current game environment.
  7. The method of claim 1 , further comprising identifying a set of continuation points associated with each next game environment in the current game environment.
  8. The method of claim 8 , further comprising continuing the loading of the instructions corresponding to the identified next game environment when the character crosses one of the set of continuation points associated with the identified next game environment.
  9. The method of claim 1 , wherein the character is determined to have crossed the crossed load boundary in the backward direction and wherein loading instructions for the identified next game environment comprises loading instructions corresponding to a previous game environment.
  10. A system for dynamically loading game software, the system comprising: an environment management engine stored in main memory, the environment management engine executable by a processor to: generate a display of a current game environment, wherein the current game environment is associated with a plurality of next game environments, determine a load time for each of the plurality of next game environments, wherein the next game environments are not yet displayed, identify 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 of the load boundaries in the current game environment is based on the load time of the associated next game environment, identify that a character has crossed one of the plurality of different load boundaries in the current game environment;determine a direction in which the character has crossed the crossed load boundary;identify one of the next game environments for loading based on the crossed load boundary and the 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 next game environment associated with the crossed load boundary;and load instructions corresponding to the identified next game environment 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;and at least two memory segments configured to store instructions for the current game environment and for receiving and storing the instructions corresponding to the next game environment.
  11. The system of claim 11 , wherein at least one of the current game environment, the next game environment associated with the crossed load boundary, and a previous environment are executed from different memory segments among the at least two memory segments.
  12. The system of claim 12 , wherein the next game environment associated with the crossed load boundary is loaded to one of the at least two memory segments by writing over the previous game environment in the one of the at least two memory segments.
  13. The system of claim 12 , wherein the identified next game environment is the previous environment, and wherein the identified next game environment is loaded to one of the at least two memory segments by writing over the next game environment associated with the crossed load boundary.
  14. The system of claim 11 , wherein one of the at least two memory segments stores the current game environment and another of the at least two memory segments stores the identified next game environment.
  15. The system of claim 11 , wherein the crossed load boundary passes through a midpoint of the current game environment.
  16. The system of claim 11 , wherein the environment management engine is further executable to identify a set of continuation points associated with each next game environment.
  17. The system of claim 17 , wherein the character crossing continuation points associated with the identified next game environment associated with the crossed load boundary trigger the continued loading of the instructions corresponding to the identified next game environment associated with the crossed load boundary.
  18. A non-transitory computer-readable storage medium having embodied thereon a program, the program being executable by a processor to perform 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 a 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 of the plurality of load boundaries in the current game environment is based on the load time of the associated next game environment;identifying that a character has crossed one of the plurality of different load boundaries in the current game environment;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 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 next game environment 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.

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