Patent Publication Number: US-6699127-B1

Title: Real-time replay system for video game

Description:
This application claims the benefit of provisional application Ser. No. 60/212,672 filed Jun. 20, 2000. 
    
    
     FIELD OF THE INVENTION 
     The instant invention is directed to interactive graphics systems, such video games, and more particularly, to an enhanced video game feature which enables real-time replay or rewind during gameplay, as well as the ability to take-over game action while viewing a previously saved gameplay sequence or “video”. A further feature of the instant invention relates to improved real-time viewing angle, camera features and speed for video games. 
     BACKGROUND OF THE INVENTION 
     Many different types of video games have been provided in the past for the purpose of providing entertainment and enjoyment for video game players. Many of these prior games provide a gameplay environment that enables the player to control a game character or other movable element in the game environment in a manner which enables the player to perform various stunts or moves during the game. Such games are designed to require that the player become skilled at the particular game in order to gain the ability to control the character in a manner which enables difficult stunts or movements to be successfully performed. For example, skateboard games have been provided in the past which enable a player to manipulate a game character (skateboarder) through a gameplay course, such as a simulated street, mall, skate park or other environment, which provides various environmental features, such as rails, ramps, drops, etc., on which the game character can perform various stunts or moves. Other exemplary games require the player to use skill to avoid various hazards while navigating through a game course and/or to out-maneuver or out-run other game characters being controlled automatically by the game program, such as racing games (e.g. autoracing, ski racing, showboard racing, motorcycle racing etc.) 
     The gameplay goal of many of these and similar games is to maximize the game score achieved during a game or run, by controlling the character in a manner which generates a high score. For example, in skateboard games, the score can be increased by performing particularly difficult stunts (tricks) or series of tricks at various points in the game and by avoiding falling and/or crashing during the game. In other words, such games often provide a number of opportunities during the game for the player to cause the character to attempt a trick, either simply for enjoyment or to increase the game score. For example, the game may provide ten locations or points in the game where a trick or other type of move (depending on the type of game) can be attempted. The game score will increase for each successful trick. In other words, if the player successfully performs tricks at all ten locations in the game, then the score will typically be higher than if the player successfully performs tricks at only eight of the locations but falls or crashes while attempting tricks at the other two locations. 
     In such games, once a player falls or crashes, he must live with that fact and either continue the game from the crash point or restart the entire game from the beginning (i.e. begin a new game). Thus, once a fall, crash or other undesirable event occurs during a game, that adverse event becomes a permanent part of the game result. As a result, the player only has two options: continue the game from the crash point, knowing that the player&#39;s score will never be as good as it could have been without the crash, or quit the present game and start a new game (which requires starting again from the beginning of the game). 
     Being limited to only these two options upon crashing (or other adverse event), can result in frustration for the player upon the occurrence of an adverse event, thereby reducing the players enjoyment of the game. For example, if a player has performed well for the first fifty seconds of a game, but then suddenly crashes, the player may lose interest in continuing the present game knowing that the score will be adversely effected by the crash. The player may also not want to restart the game from the beginning due to the length of time it will take to make it back to the location of the crash in the previous game. In other words, it can be frustrating for the player to have to start a new game, thereby having to re-perform the same parts of the game that were previously performed successfully in order to reach a corresponding place in the previous game where the adverse event (e.g. crash) occurred. Moreover, even if the player decides to continue the game where the crash occurred, it can be difficult and/or burdensome to reposition the game character in the game environment in such a way that enables the unsuccessful trick to be attempted again. In other words, in some games it is desirable (or even necessary) to perform a particular trick successfully at a particular location in the game prior to moving on to a new aspect of the game. For example, in such a skate game, when a player crashes during a jump, the player must cause the character to push back up a ramp or other structure in order to reposition the character at a place which enables the jump to be re-attempted. This repositioning of the player can waist significant game time and is typically not enjoyable for the player, thereby reducing the overall enjoyment of the game. 
     Some prior games have enabled a “video” of the game to be saved after completion of the game in order to allow the particular game to be watched again. For example, the autoracing game entitled “Driver” offered by Sony Corporation for the Playstation game console, allows a “video” to be made of the race, so that the resulting video can be watched by the player (or others) immediately after the game or at a later time. In this way, the player can enjoy watching the results of his game or showing the results to others who may not have been present or watching during the actual game. This feature has one benefit of allowing successful game runs to be saved for future viewing and enjoyment. Such prior art games, however, do not enable the player to edit, fix or overwrite adverse events that may have occurred during the game that has been recorded for future playback. 
     Prior art games have also had various camera or viewing angle features designed to enhance the enjoyment of the game. For example, in Sony Corporation&#39;s Driver game, the game allows the video of a previously played game to be viewed from different camera angles at certain points thereof. The Driver game has a “director” feature that can be selected prior to replaying a saved game, wherein this feature enables the game action to be viewed from various predetermined different directions at different predetermined locations for the purpose of making the playback more enjoyable or exciting to watch. For instance, the game may place a panning, dolly or other type of known virtual camera on a particular straightaway on the race course to show the race action from a perspective other than the driver&#39;s viewpoint along that straightaway. While the player can select the “director” option for use in the showing the saved game, the game does not allow that player to place or choose cameras during the actual game at desired locations for causing selective real-time changes in the viewing perspectives of the actual game. In other words, prior games, like Sony&#39;s Driver game, do not enable real-time placement of cameras or real-time selection of speed for a playback sequence. 
     In view of the above, there is a need for improved videogames or the like which overcome the deficiencies of such prior art games. 
     SUMMARY OF THE INVENTION 
     The instant invention provide improved features for video games of the type discussed above where adverse or undesirable events may occur during gameplay. More particularly, the instant invention provides a real-time replay feature which enables portions of the game to actually be “rewound” or “replayed” in real-time at the option of the player. In other words, in accordance with the invention, the player can, at any point in time during the game, cause the game to be backed-up or rewound in order to, for example, re-attempt a trick, stunt, move or the like that was not successfully performed on the previous attempt during the same game. Thus, the invention provides a method and a system that enables the player to cause the game character (and the game itself) to travel back in game time to a desired point from which the player desires to replay the game. For example, if the player has performed well up to a certain point where he crashes, falls or experiences some other adverse event, the invention enables the player to selectively back-up in the game to a time and place prior to the adverse event and pick-up the action from that time and place for the purpose of attempting to replay that part of the game with a different or better result. In this manner, the player can retry any part in the game in order to, for example, improve his performance during that part of the game, thereby also improving his overall performance and resulting score for that particular game. 
     In accordance with another aspect of the instant invention, when the player selects the replay option during an actual game, resulting in the game being rewound to a desired point in the game, the game is operable to replay the game using saved controller information from the previous time that that portion of the game was played during the same game, thereby enabling the player to playback and watch any desired portions of the game. In an exemplary embodiment, the game is rewound three seconds each time the replay option is selected, and then the game replays each of the three second portions of the game automatically using the stored controller information. In other words, the player can rewind a portion of the game and simply watch the previous results of that portion of the game or the player can operate the game controller during the playback sequence so as to change the results of that portion of the game. Thus, during playback, the game is selectively controlled by the previously stored controller inputs (thereby not changing the results of the actual game) or based on actual (new) real-time controller inputs from the player during the replay period (thereby changing the result of the actual game). 
     In accordance with another aspect of the game, the game is recorded as it is being played so that all of the real-time action is saved based on the last time that each portion of the game was played during the game. In other words, if a portion of the game is replayed using the replay option numerous times until the player is satisfied with the result, the video of the game will only include the last replay of that portion. In this manner, the invention enables a seamless video to be generated which shows the entire game from start to finish as if the replay had not been invoked and the player had performed as desired the first time through the game. This feature enables the creation of a “perfect run” including only the desired or successful attempts at each portion of the game course. In other words, by allowing the player to go back in the game and correct any mistakes (such as crashes, falls, missed tricks, or the like) that were made during the game, the player can create a seamless video of the game that looks as if the player made a perfect run with no mistakes. 
     In addition, by enabling the player to replay any desired portion of the game simply by selecting the replay option, the player can practice any desired trick over and over until the player performs the trick as desired without wasting actual game time and without the need to manually reposition the game character at a location where the trick can be retried. Once the trick is performed properly, the player simply continues through the remainder of the game and the properly performed trick becomes part of the savable and replayable resulting game, as if it had been performed properly the first time. 
     In accordance with another aspect of the invention, the replay of a previously played portion of a game can be frozen at any point in the replay and changes in the virtual camera&#39;s position, behavior (follow, static, dolly, etc.) camera characteristics (zoom, distance, etc.) and/or actual playback speed (fast/slow motion) can be selectively made by the player. These changes are then recorded, in accordance with the invention, together with information that determines on which frame of the playback the change(s) take effect. In this manner, the player can stop and rewind the actual game at any desired point in the game, stop the playback of the rewound portion of the game, and then modify the camera features to be used for that portion of the playback of the game. This enables the player to, for example, selectively show a particularly entertaining or successful trick from a desired perspective, such as a panning, side view, and zooming camera, and to have the selected change in the camera saved as part of the game, so that the next playback of that particular sequence will include the desired changes. Similarly, the speed (i.e. fast/slow motion) of any part of the playback can be changed and saved to further enhance the way in which the playback sequence is shown. 
     In accordance with another aspect of the invention, once a game is completed and saved, the playback of the saved game can be taken over at any point, so that the player can begin real-time play from any desired point in the playback. This enables saved games to be further enhanced or modified through different and/or improved real-time play of the game at any point in the playback of the saved game. The real-time play introduced into the playback sequence then becomes a part of the saved game, thereby resulting in a new playback sequence. 
     These and other features of the instant invention are achieved using a playback system that will be described in detail below. In a preferred embodiment of the invention, the playback system uses a combination of “inline keyframe recording”, “controller stream recording”, and “random keyframe recording.” The inline keyframe is a snapshot of the current state of the game universe. In other words, the snap shot or keyframe includes all information on the present state of the game at a particular time during the game. A keyframe is recorded at predetermined times during gameplay. The particular times or frequency at which a keyframe is recorded will generally depend on the amount of usable memory available on the game platform. For example, a keyframe may be recorded every second if eight megabytes of RAM are available or every five seconds if only four megabytes are available. However, any other suitable constant or variable length time periods may be used for recording keyframes. The state of the game controller being operated by the player (i.e. buttons pressed, joystick position, etc.) is recorded every time it is read, such as twenty times per second. A wrapper buffer is used to store each keyframe generated during the game. The size of the wrapper buffer may vary based on the amount of memory available on the particular game machine and/or type of game in which the instant invention is implemented. When the end of the buffer is reached, recording starts over from the beginning of the buffer, thereby overwriting the oldest keyframe (like a tape loop). 
     To initiate the playback or replay feature of the present invention, the wrapper buffer is “rewound” a predetermined amount of time, such as three seconds, and the nearest keyframe is located. The playback sequence then begins from that keyframe. The “game universe” is then restored from the keyframe, and, as the playback (simulation) progresses, the controller information is read from the buffer memory used previously to store the controller commands. During playback, commands from the real controller are processed independently so as to allow the player to take over the playback at any point during the playback and begin real-time play from that point in the playback. 
     Preferably, the recording is based on the internal logic rate, and not based on the speed of either the internal processor or the video refresh rate, both of which can vary from console to console. This enables playback at any speed, not necessarily a multiple of the console speed, without loss of synchronization. Thus, the instant invention enables the player to exit playback mode directly into recording mode without disturbing the previous playback sequence, thereby facilitating the creation of long, seamless sequences. 
     In addition, a system of “random keyframes” is preferably utilized. As explained above, the playback of a sequence can be frozen at any time so that changes to the camera and/or the playback speed can be selectively made. These changes are recorded in an array of “random keyframe buffers”, along with information that determines on which frame of playback the changes take effect. This system allows the standard playback keyframes to be much smaller, thereby resulting in the ability to recorded longer sequences. 
     In accordance with the invention, when a playback sequence is saved to any of the rather limited non-volatile memory systems typically available on game consoles, only the first inline keyframe is saved. Further, when a saved playback sequence is loaded from non-volatile memory for viewing, a flag is set which causes the game software to begin recording inline keyframes (as described above) from the playback, thereby restoring the ability for the player to replay or rewind into any part of the sequence to view again, move cameras, select speed or even take over the action to begin real-time replay of the game from a desired point in the saved playback sequence. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other objects, features and advantages of the instant invention will be further understood from the following detailed description of the invention, when viewed in conjunction with the following drawings, in which: 
     FIG. 1 shows an overall videogame system capable of playing games or other similar programs incorporating the instant invention; 
     FIG. 2 shows an example of the principal component of the videogame system of FIG. 1; 
     FIG. 3 shows an exemplary memory map in accordance with the instant invention; 
     FIG. 4 shows a flow chart representing a preferred embodiment of the steps taken in accordance with the instant invention to enable creation, real-time replay and editing of a playback sequence; 
     FIG. 5 shows a flow chart representing a preferred embodiment of the steps taken in accordance with the instant invention to playback a saved playback sequence, as well to enable real-time replay and editing of the saved gameplay sequence; 
     FIGS. 6 and 7 show tables representing exemplary menu options for camera and speed changes available to the player during playback, in accordance with the instant invention; 
     FIGS. 8 a - 8   h  show selected frames of an exemplary skateboard game incorporating the instant invention; and 
     FIGS. 9 a  and  9   b  show exemplary frames from the playback sequence of FIGS. 8 a  and  8   h , respectively, with selected changes in the virtual camera made by the player of the game. 
    
    
     DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENT(S) 
     FIG. 1 shows an example embodiment video game system  50  that can be used to execute videogames and the like incorporating the instant invention. Video game system  50  in this example includes a main unit  52 , a video game storage device  54 , and handheld controllers  56  (or other user input devices). In this example, main unit  52  connects to a conventional home color television set  58 . Television set  58  preferably displays 3D video game images or similar images generated by the main unit  52  on its television screen  60  and reproduces stereo sound through its loud speakers  62   a  and  62   b.    
     In this example, the video game storage device  54  is in the form of a replaceable memory cartridge insertable into a slot  64  on a top surface  66  of main unit  52 . Video game storage device  54  can comprise, for example, a plastic housing  68  encasing a read only memory (ROM) chip  76 . The read only memory  76  contains video game software in this example. When the video game storage device  54  is inserted into main unit slot  64 , cartridge electrical contacts  74  mate with corresponding edge connector electrical contacts within the main unit. This action electrically connects the storage device&#39;s read only memory  76  to the electronics within main unit  52 . 
     A read only memory (ROM) chip  76  stores software instructions and other information pertaining to a particular video game. The read only memory chip  76  in one storage device  54  may, for example, contain instructions and other information for a stunt game, such as a skate boarding game. The read only memory chip  76  in another storage device  54  may contain instructions and information to play a driving or car race game. The read only memory chip  76  of still another storage device  54  may contain instructions and information for playing an educational game. To play one game as opposed to another, the user of video game system  50  simply plugs the appropriate storage device  54  into main unit slot  64  thereby connecting the storage device&#39;s read only memory chip  76  (and any other circuitry the storage device may contain) to the main unit  52 . This enables the main unit  52  to access the information contained within read only memory  76 , which information controls the main unit to play the appropriate video game by displaying images and reproducing sound on color television set  58  as specified under control of the video game software in the read only memory. 
     To play a video game using video game system  50 , the user first connects main unit  52  to his or her color television set  58  by hooking a cable  78  between the two. Main unit  52  produces both video signals and audio signals for controlling color television set  58 . The video signals are what controls the images displayed on the television screen  60 , and the audio signals are played back as sound through television loudspeakers  62   a  and  62   b . Depending on the type of color television set  58 , it may be necessary to use an additional unit called an RF modulator in line between main unit  52  and color television set  58 . An RF modulator (not shown) converts the video and audio outputs of main unit  52  into a broadcast type television signal (e.g., on television channel  2  or  3 ) that can be received and processed using the television set&#39;s internal tuner. 
     The user also needs to connect main unit  52  to a power source. This power source may comprise a conventional AC adapter (not shown) that plugs into a standard home electrical wall socket and converts the house current into a lower DC voltage signal suitable for powering main unit  52 . 
     The user may then connect hand controllers  56   a ,  56   b  to corresponding connectors  80  on main unit front panel  82 . Controllers  56  may take a variety of forms. In this example, the controllers  56  shown each include various push buttons  84  and a directional switch or other control  86 . The directional switch  88  can be used, for example, to specify the direction (up, down, down or right) that a character displayed on television screen  60  should move and/or to specify a point of view in a 3D world. Other possibilities include, for example, joysticks, mouse pointer controls and other conventional user input devices. In this example, up to four controllers  56  can be connected to main unit  52  to allow 4-player games to be played. 
     The user then selects a storage device  54  containing the video game he or she wants to play, and inserts that storage device into main unit slot  64  (thereby electrically connecting read only memory  76  to the main unit electronics via a printed circuit board  70  and associated edge contacts  74 ). The user may then operate a power switch  88  to turn on the video game system  50 . This causes main unit  52  to begin playing the video game based on the software stored in read only memory  54 . The player may operate controllers  86  to provide inputs to main unit  52  and thus affect the video game play. For example, depressing one of push buttons  84  may cause the game to start. As mentioned before, moving directional switches  86  can cause animated characters to move on the television screen  60  in different directions or can change the user&#39;s point of view in a 3D world. Depending upon the particular video game stored within the storage device  54 , these various controls  84 ,  86  on the controller  56  can perform different functions at different times. If the user wants to restart game play, he or she can press a reset button  90 . 
     FIG. 2 shows that the principal electronics within main unit  52  includes, for example, a main processor  100 , a coprocessor  200 , and main memory  300 . Main processor  100  is a computer that runs the video game program provided by storage device  54  based on inputs provided by controllers  56 . Coprocessor  200  generates images and sound based on instructions and commands it gets from main processor  100 . Main memory  300  is a fast memory that stores the information main processor  100  and coprocessor  200  need to work, and is shared between the main processor and the coprocessor. In this example, all accesses to main memory  300  are through coprocessor  200 . 
     In this example, the main processor  100  accesses the video game program through coprocessor  200  over a communication path  102  between the main processor  100  and the coprocessor  200 . Main processor  100  can read from storage device  54  via another communication path  104  between the coprocessor and the video game storage device. The main processor  100  can copy the video game program from the video game storage device  54  into main memory  300  over path  106 , and can then access the video game program in main memory  300  via coprocessor  200  and paths  102 ,  106 . 
     Main processor  100  generates, from time to time, lists of commands that tell the coprocessor  200  what to do. Coprocessor  200  in this example preferably comprises a special purpose high performance application specific integrated circuit (ASIC) having an internal design that is optimized for rapidly processing 3-D graphics and digital audio. In response to commands provided by main processor  100  over path  102 , coprocessor  200  generates video and audio for application to color television set  58 . The coprocessor  200  uses graphics, audio and other data stored within main memory  300  and/or video game storage device  54  to generate images and sound. 
     FIG. 2 shows that coprocessor  200  in this example includes a signal processor  400  and a display processor  500 . Signal processor  400  is an embedded programmable microcontroller that performs graphics geometry processing and audio digital signal processing under control of a microcode computer program supplied by video game storage device  54 . Display processor  500  is a high speed state machine that renders graphics primitives, thereby creating images for display on television  58 . The signal processor  400  and display processor  500  work independently, but the signal processor can supervise the display processor by sending graphics commands to it. Both signal processor  400  and display processor  500  can be controlled directly by main processor  100 . 
     It is noted that the above-described game platform is only an exemplary platform and that the instant invention can be implemented on any suitable platform, including game consoles which are different from that described above, personal computers or any other information processing device or system, regardless of the type, and as long as the platform is capable of executing and displaying a video game or other similar interactive software programs. Inasmuch as the instant invention is directed mainly to software features of game programs and the like, and not to the specific consoles or systems on which such game programs are run, additional details regarding such known game systems, such as system  50 , are not provided herein. In other words, the construction and operation of game consoles and other systems capable of running interactive game programs are generally well known. For example, the instant invention can be implemented on the known N64 game console offered by Nintendo®. Thus, in order not to obscure the instant invention with unnecessary details regarding known systems, further details regarding the game platform itself will not be provided herein, except where such further explanation will help to clarify the instant invention. 
     FIG. 3 shows an exemplary memory map for main memory  300  in accordance with the instant invention. The main memory includes, for example, the video game program  302  (which is typically copied from the ROM cartridge  54  upon starting a game on the game console  52 , graphics and audio data  304  and texture data  306  for use by the system, display frame buffers  308 , audio buffers  310 , other general purpose memory  312 , and a reserved memory area  314 . The above-listed items  302 - 314  in main memory  300  are generally standard and known items provided in typical main memories of video game systems. However, as will be explained in detail below, the wrapper buffer  316 , controller input memory  318 , and random keyframe buffers  320  are provided and used in accordance with instant invention to enable the real-time replay features of the invention to be realized. Thus, the following description will focus on operation of the software and its particular usage of the inline keyframe buffer  316 , controller memory  318  and random keyframe buffers  320 . It is noted, however, that the invention is not limited to the particular memory configuration shown in FIG. 3, but that any type or configuration of memory may be used, as long as the functionality described below is enabled thereby. 
     FIG. 4 shows a general and exemplary flow chart of the overall operation of a video game incorporating the instant invention. The game may be any type of game which requires real-time interaction with the player (not show) through the use of a game controller or the like. It is noted, however, that the invention is particularly advantageous when used in connection with stunt games, such as skateboarding, snowboarding, skiing, and the like, as well as racing games, such as autoracing, motorcycle racing and the like. 
     Referring to FIG. 4, when the new game begins, a record mode is entered, wherein an inline keyframe is recorded at periodic intervals during the game. The inline keyframe is a “snap shot” of the game universe at a particular point in time, and includes all data necessary to begin the game from the point in game time where the inline keyframe was recorded. Controller information is also recorded every time the controller is read, such as twenty times per second. The inline keyframes are preferably stored in a wrapper buffer  316  which may be defined in a portion of the main memory available on the particular game console being used, such as main memory  300  shown in FIGS. 1 and 3. The wrapper buffer may be any suitable size and may depend on the amount of usable memory available on the particular game platform being used. The wrapper buffer is like a tape loop, in that after it becomes full with inline keyframes, the oldest inline keyframes are overwritten with the newest inline keyframes. In this way, the wrapper buffer can be used to continuously record inline keyframes during gameplay. 
     If the replay option is not selected by the player at anytime during the game, the game eventually ends like a normal game, at which time the player is preferably given the option of saving the game so that it can be viewed again at a later time. When saving the game, the game is preferably programmed such that only the first inline keyframe is saved, together with all of the controller inputs from the player during the game. In this way, the game can be retrieved from memory and played back simply by using the saved first inline keyframe to restore the entire game universe, and then using the stored controller inputs to control the game so as to identically simulate the previously saved game. In other words, when a game is saved, the entire game is not saved as an actual video, but instead, the particular game is re-shown to the player (or others) using only the stored first inline keyframe and the stored controller inputs. This enables the entire game to be effectively saved and reshown using much less memory than would be required to actual save the game as a video image. 
     If, on the other hand, the player selects the replay option during the game then the real-time replay feature of the instant invention is invoked. More particularly, the game is programmed so that, upon selection of a predetermined controller input, such as the L button on an N64 controller, the game enters a replay or playback mode. Upon entry of playback mode, the wrapper buffer is “rewound” to the nearest saved inline keyframe corresponding to the back-up location desired by the player. For example, the game may be programmed to cause the game to back-up or rewind a set distance in game time for each time the replay button is pressed, such as three seconds for each press. The game may also be programmed to cause the game to rewind all the way to the beginning of the game if the replay button (or another designated button or controller function) is continuously pressed for a set period of time, such as for one-half of a second. 
     Once the nearest inline keyframe is located, the entire game universe is restored based on that keyframe, so that the state of the game identically corresponds to the point in game time when that particular keyframe was recorded. Once the game is restored, the game begins to playback the game from the rewound point using the saved controller input so that the playback simulates what previously occurred in the game prior to the initiation of the replay option. This enables the player to watch the previously played portion of the game in real-time (i.e. prior to the game actually being completed). Once the playback sequence is finished, the user can then continue the game in real-time to completion, with the option of again playing back any desired portion of the game using the replay button at anytime during the game. 
     In accordance with another feature of the instant invention, the player can, at anytime during a playing back of a previously played game sequence, take-over control of the game (i.e. enter real-time play of the game) using the game controller, thereby enabling the player to change the result of the game or retry portions of the game in real-time. In order to achieve this functionality, the actual controller inputs are processed independently of the saved controller inputs, so that upon detection of an actual controller input, such as the z button on an N64 controller, the program exits playback mode and enters real-time play or record mode. This enables the player to take-over the action from the playback sequence to again begin actual play of the game using the actual controller from a location in the playback sequence corresponding to the location where the controller input is detected by the program. Upon entering real-time play, the recording of the inline keyframes and the controller information is again performed, as explained above, in order to again provide the player with the option of backing-up and replaying desired portions of the game in real-time. If the player does select the replay option, the process described above is repeated, i.e. the game is back-up to the nearest keyframe, the game is restored from the keyframe, and playback is initiated from the keyframe using stored controller inputs. The user then has the option of again taking-over the action (and entering record mode) at anytime during the playback, as explained above. Once the game is finally completed, the player has the option of saving the game in the manner described above. 
     In accordance with another aspect of the instant invention, the game is preferably programmed to enable the player to make real-time changes to the virtual camera(s) or viewpoints used during the game to show the game action. For example, during any playback sequence, the player can select a predefined controller button, such as the R button or C buttons on an N64 controller, to freeze the playback sequence and enable the player to add and/or change cameras and/or the change the speed of the playback, thereby enhancing and/or changing the viewing of the playback sequence. In an alternative embodiment, the screen overlay or status bar can be shown upon entering the replay mode, e.g. upon pressing the L button on an N64 controller. Once the action is frozen, the status bar is preferably shown on the screen which displays the buttons and analog functions available for the playback sequence. For convenience of the player, this display is preferably provided in a form which at least generally corresponds to the layout of the particular controller being used. The overlay information provides a menu which can be used by the player to select cameras feature and/or the speed (fast/slow motion) for the playback sequence, thereby enabling the player to customize the playback sequence in real-time. 
     FIGS. 6 and 7 show the C button settings and analog stick modes for an exemplary embodiment of the invention designed for use with the N64controller (not shown). In this N64 embodiment of the invention, the L button is used to initiate the replay feature. Once the L button is pressed, the game status bar is switched to display the button and analog functions shown in FIGS. 6 and 7. The analog left/right control element on the N64 controller is operable to slow down and speed up the playback sequence. Preferably, any camera change made returns the replay mode to a normal speed. The R button is preferably used to stop and start the playback sequence. The B button enables the player to back up through the menus provided by the tables of FIGS. 6 and 7, while keeping any changes thereto. The Z button enables the player to take over the playback sequence and enter actual play mode from a desired point in the playback sequence. The D pad (cross-switch) on the N64 controller enables the player to save a replay (Up/right) or replay a saved sequence (Down/left). As can be seen from FIGS. 6 and 7, the game program preferably enables the player to position a camera at any point in the game space for viewing the playback sequence, to change the camera behavior (follow, dolly, static, etc.), and to change the camera characteristics (zoom, distance, etc.), as well as the actual playback speed, which is coordinated with the changes made to the camera. In this way, the player can customize and watch the playback sequence in real-time. 
     Referring again to FIG. 4, and more particularly, to the bottom portion thereof, any changes in the camera or speed as explained above, are preferably recorded in a random keyframe buffer, such as buffer  320  shown in FIG. 3, together with information that tells the game program on what frame the change(s) is to take effect. In this way, the size of the standard playback keyframes can be significantly smaller, thereby enabling longer sequences to be recorded. Thus, during playback, the random keyframe buffers are checked for changes to be incorporated during the playback. For example, if the player places a panning zoom camera and slows the speed down (slow motion), these changes will take effect the next time that the sequence is played back and will become a permanent part of the sequence until changed again (if desired). In this manner, the player can, for example, “check-out” a cool trick in slow motion (and over and over if desired) from a cool perspective that enhanced the visual appearance of the trick, thereby increasing the enjoyment of the game. 
     As explained above, a finished game can be saved for playback at a future time. For example, the game can be saved to a non-volatile memory, such as a memory provided in an expansion pack for an N64 console. FIG. 5 shows a preferred embodiment of the overall operation of the game software during playback of a saved game sequence. Once a saved game (playback sequence) is selected by the player for playback, the program restores the game universe from the first inline keyframe, which was previously stored at the end of the game, and then begins playback from the first inline keyframe using the previously stored controller inputs. In addition, when the playback sequence is loaded from non-volatile memory, a flag is set in order to tell the software that inline keyframes (as described above) should be rebuilt during playback, in order to restore the ability for the player to selectively replay or rewind into any point in the playback sequence (as described above with respect to playing of an actual game). If the player does not select the replay option during playback of the saved sequence, the game simply shows a simulation (video) of the previously played game for enjoyment by the player and/or others. On the other hand, if the player selects the replay option during replay of the saved game, the game is backed up to the nearest inline keyframe, the game universe is restored based on the inline keyframe and playback is initiated from the inline keyframe using the stored controller inputs. 
     As explained above, the player has the option during playback of a saved sequence to take-over the playback and begin real-time (actual) playing of the game at any point in the saved playback sequence. If the player chooses not to exercise this take-over option, and lets the playback finish, the playback simply ends. On the other hand, if the player decides to take-over the playback (by, for example, pressing the Z button in the N64 embodiment described above), the playback mode is exited and the record mode is entered (see right side of FIG.  5 ). Upon entry of the record mode, the inline keyframes and real controller inputs are recorded, as explained above with respect to a new game. The game then provides the player with substantially the same options and functionality as described above with respect to the playing of a new game (see FIG.  4 ). 
     It is noted that while FIG. 5 does not show the camera and speed change capability of FIG. 4, this same capability is preferably provided in connection with a saved playback sequence in the same manner described with respect to FIG.  4 . In other words, the player can change cameras and/or speed of the playback at any place in the playback, regardless of whether the player starts with a saved game (FIG. 4) or a new game (FIG.  5 ), and regardless of whether the player takes over the action during playback of a saved sequence or a new game sequence. For clarity only, these camera and speed features have been left off the flow chart of FIG.  5 . 
     The main features of the invention will now be further described with respect to an exemplary skateboard embodiment. In this exemplary embodiment, the instant invention has been incorporated into a known type of skateboarding game, wherein the player controls a skateboarding character through a skateboarding course while attempting to perform various tricks, moves, stunts and/or the like. 
     Referring now to FIG. 8 a , there is shown a first frame of a skateboard game, wherein the skateboard character  500  is about to begin the game course. This first frame may be used as the first inline keyframe as described above for the purpose of replay and/or saving a played game. FIG. 8 b  shows the character  500  at a position where he is about to attempt a trick using ramp  502 . More particularly, the character  500  plans to attempt a jump from ramp  502  and to land and slide on rail  504 . FIG. 8 c  shows the character  500  successfully performing the planned trick, by landing and sliding on the rail  504 . FIG. 8 d  shows the character  500  planning to attempt another trick by jumping onto the downwardly angled rail  506  and sliding along same to the landing area  510 . FIG. 8 e  shows the character  500  missing the trick by failing to land on the rail  506  and landing instead directly on the landing area  510  below the rail  506 . This missed trick constitutes and adverse event for the player. Thus, in accordance with the instant invention, the player decides to hit the replay button once, thereby causing the game to backup or rewind three seconds in game time (i.e. from game time 0:12 back to game time 0:09, thereby placing the character back in the same position he was prior to missing the trick, as shown in FIG. 8 f . In other words, in this embodiment of the invention, hitting the replay button once causes the game to backup or rewind three seconds in game time (note “game time” clock in FIGS. 8 a - 8   h ). This is done using the nearest recorded inline keyframe as explained above. This enables the player to have the character  500  back at the identical position shown in FIG. 8 d , so that the trick can be attempted again, thereby providing a real-time replay feature for the player. As shown in  8   d , the player is able to make the character  500  successfully perform the trick by landing the character on the rail  506  and sliding down same to the landing area  510 . FIG. 8 h  shows an exemplary frame constituting the end of the game. Of course, FIGS. 8 a - 8   g  only show selected frames rather than the entire video game, in which normally the game would typically last for at least one minute or more and provide the player with numerous opportunities to attempt tricks. However, FIGS. 8 a - 8   h  demonstrate how the player can replay and attempt to correct errors made or overcome other undesirable events during the game. The player can preferably replay any section of the course as many times as he chooses in order to achieve the desired result at each section of the course. Thus, even though the actual game time is only one minute in this example, the actual viewing time can be much longer as a result of the available replay option that can be used as many times as the player desires during the game. 
     As explained above, this replay feature is enabled in this embodiment by the recording of inline keyframes and controller information. Thus, each time the player replays a section of the course, only the last replay is maintained for use with the next replay, if any. Thus, upon replaying the entire game shown in FIGS. 8 a - 8   h , the frame of FIG. 8 e  will no longer be included as part of the game, due to the fact that this portion of the game was replayed with a different result as shown in FIG. 8 g . It is noted that, in this example, the player took over the game action at the frame shown in FIG. 8 f , thereby enabling the player to correct the previously missed trick, as shown in FIG. 8 e . Alternatively, the player could have simply let the replay playback with the stored controller inputs, thereby simply watching the same result as shown in FIG. 8 e  without intervention. If no intervention or take over had occurred by the player during the playback, then the resulting video or playback sequence would have still included the missed trick shown in FIG. 8 e  and not that of FIG. 8 g.    
     FIGS. 9 a  and  9   b  demonstrate the camera changing feature of the instant invention, as described above. Specifically, during a playback of the first successful trick shown in FIG. 8 c , the player has frozen the action and changed the camera placement and camera angle so that the playback of this same sequence is from a different viewing perspective, as shown in FIG. 9 a . The player has also changed the viewing perspective of the second successful trick, as now shown in FIG. 9 b . As explained above, the player may also selectively change the speed of the playback. The camera changes and speed changes are then stored in the random keyframe buffer  320 , together with information as to what frame the changes take place, so that the next playback will include these changes. One advantage of the camera aspect of the instant invention, is that it provides complete flexibility for camera locations and features, as well as coordinates the selected camera locations and features with the playback speed which is also set by the player. At the end of the game the player is preferably given the option to save the game to a non-volatile memory for playback at a future time, as explained above. The saved game is then available for playback as described above with respect to FIG.  5 . 
     As is apparent from the above-description, the wrapper buffer  316  is always either being used for recording or for playback, depending on what mode the game is currently in. Preferably, the recording is based on the internal logic rate, and not based on the speed of either the internal processor or the video refresh rate, both of which can vary from console to console. This enables playback at any speed, not necessarily a multiple of the console speed, without loss of synchronization. Thus, the instant invention enables the player to exit playback mode directly into recording mode without disturbing the previous playback sequence, thereby facilitating the creation of long, seamless sequences. As a result, one advantage of the instant invention is that it enables a player to create “video” of a “perfect run”, by trying tricks or moves over and over again until they are performed in the desired manner. The player can then store the “perfect run” for himself and others to enjoy at a future time. In addition, the saved video can be taken over during playback by the player so that a new (and possibly further improved) game sequence can be generated from any point in the saved video. 
     While the preferred forms and embodiments of the invention have been illustrated and described, various changes and modifications may be made to the invention without deviating from the true spirit and scope of the invention, as will be understood by one skilled in the art. It is intended by the appended claims to cover all such modifications and variations, and this claimed invention is not meant to be limited by the specific exemplary embodiments described herein.