System and method for utilizing vectors in a video game
A system and method for recording and displaying vectors along a graphical path in a video game is provided. Upon initiation of a video game event, a player views vectors associated with the game paths of one or more player characters. The vectors may be net resultant force vectors generated in real time that act on each player character to determine each player character's dynamics of motion. Furthermore, the vectors may be net resultant force vectors associated with a previous game path, such as a “best time” path. The previous game path may comprise a “worst time” path and an “average time” path. Additionally, the net resultant force vectors may convey player character state travel information via one or more colors. In one embodiment of the present invention, the player may gauge game progress, future game maneuvers, and obstacle avoidance via observation of the net resultant force vectors.
This application is a continuation-in-part application of U.S. patent application Ser. No. 10/691,929 filed on Oct. 22, 2003 entitled “System and Method for Recording and Displaying a Graphical Path in a Video Game,” which is hereby incorporated by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
This invention relates generally to computer-generated images and more particularly to a system and method for utilizing vectors in a video game.
2. Description of the Background Art
One appealing aspect of video games is competition. Presently video game developers develop games that capitalize upon the competitive nature of many game players by recording aspects of a previous run, and then allowing subsequent game players access to previous run data. That is, subsequent players may compete against performances of previous players. The previous run may be, for example, based upon a fastest time, most points accumulated, a most efficient use of player character energy reserves, or any combinations of these or other attributes.
In such video games, a player character associated with a previous run may be simultaneously displayed with a current player character on a graphical display. Thus, a current player may observe a position of the player character associated with the previous run, and directly compete with this previous character. Although the current player may observe a single position of the previous character at any given time, the current player does not observe data associated with a path of the previous character. A current player character with access to path data associated with a previous run may be able to use the path data during game play.
It would be advantageous to implement a system and method for recording and dynamically displaying data along a graphical path associated with a previous game run, such as a previous “best game” run, thereby allowing a subsequent player of the video game to base competitive game decisions upon a previous game graphical path, and other data associated with the previous game graphical path.
SUMMARY OF THE INVENTIONIn accordance with embodiments of the present invention, a system and method is disclosed for utilizing vectors in a video game. The method comprises initiating a current video game session, computing vectors along one or more graphical paths of the video game, where each of the graphical paths are associated with a player character of the video game, and displaying the plurality of vectors along the graphical paths. In a further embodiment of the present invention, the method comprises computing net resultant force vectors, where the vectors are computed in real time and are based upon phenomenological and/or physical laws of nature.
In another embodiment of the present invention, the method comprises retrieving graphical path data associated with one or more previous runs, displaying the graphical path data as a string of vectors, and determining a color for each vector based upon an elapsed time of the current video game session and an elapsed time associated with the vector. In addition, the color of each vector may be based upon a player character state. The player character state represents a state of the player character, and includes states such as an “on the ground” state, an “airborne” state, and a “crashed” state.”
A system of the present invention comprises a data cache configured to store graphical path data associated with a current video game session and one or more previous video game sessions, a processor configured to compute a plurality of force vectors associated with one or more graphical paths, and a display device configured to display the plurality of force vectors. In a further embodiment, the processor is configured to compute a color of a force vector from the plurality of force vectors, where the color of each force vector indicates a player character state.
In further embodiments of the present invention, the graphical path data may be associated with previous game runs, including, but not limited to, previous “best time” runs, previous “worst time” runs, previous “average time” runs, and selectively chosen runs associated with a current game player or other game players.
BRIEF DESCRIPTION OF THE DRAWINGS
In a video game, a game player maneuvers a player character through a game environment from a starting point to an end point. For example, the player character traverses a racecourse in a time trial mode. Video game software records a path of the player character as it moves from the starting point to the end point. The path is recorded as a series of points represented by (x,y,z) Cartesian coordinates, for example. The game software also records a total time that it takes the player character to arrive at the end point and an elapsed time to each point in the path. For example, the elapsed time may be measured from an initial starting time associated with the starting point. The game software may also record other data at each point along the player character's path including, but not limited to, a magnitude and a direction of each force acting on the player character, an instantaneous energy consumption by the player character, a total energy consumption by the player character, and a player character travel state. In one embodiment of the present invention, the player character travel state may indicate that the character is “airborne,” “on the ground,” or “crashed.” Other player character states may be utilized in further embodiments.
A user of the system 100 provides instructions via the controller interface 120 to the CPU 112. For example, the user may instruct the CPU 112 to store certain game information on the memory card 122 or may instruct a character in a game to perform some specified action. Other devices may be connected to the system 100 via the USB interface 124 and the IEEE 1394 interface 126.
The CPU 112, the VPU 113, the GPU 114 and the IOP 116 communicate via a system bus 144. The CPU 112 communicates with the main memory 110 via a dedicated bus 142, and with the data cache 111 via a dedicated bus 148. The VPU 113 and the GPU 114 may also communicate via a dedicated bus 140. The CPU 112 executes programs stored in the OS ROM 128 and the main memory 110. The main memory 110 may contain pre-stored programs and may also contain programs transferred via the IOP 116 from a CD-ROM, a DVD-ROM or other optical disc (not shown) using the optical disc control unit 134. The IOP 116 controls data exchanges between the CPU 112, the VPU 113, the GPU 114 and other devices of the system 100, such as the controller interface 120. The SPU 132 executes instructions to produce sound signals that are output on an audio device (not shown). Alternative embodiments may provide different communication paths between the various components.
In one embodiment of the present invention, the CPU 112 stores and retrieves data associated with previous paths or runs (such as a “best time” run) in the data cache 111. The data cache 111 is discussed further below in conjunction with
When the player begins a new run of a racecourse, the game software retrieves recorded data associated with a selected previous run, and then displays the data on a game screen as the character moves through the game environment, allowing the player character to race against the selected previous run. The GPU 114 executes drawing instructions from the CPU 112 and the VPU 113 to produce images for display on a display device (not shown). Typically, the VPU 113 transforms objects from three-dimensional coordinates to two-dimensional coordinates, and sends the two-dimensional coordinates to the GPU 114.
In one embodiment of the present invention, the game software displays the data associated with the previous run, such as previous run data, as a string of dynamically changing colored path markers situated in the game environment. In another embodiment of the present invention, the string of colored path markers displays a game developer's “best time” path through the game environment. In a further embodiment, the string of colored path markers displays a previous run path through the game environment by one game player from a group of game players.
In a further embodiment of the present invention, a path marker's color conveys information. For example, when the player selects a racecourse, the game software retrieves recorded data associated with a “best time” path before the current player character begins a time trial run, and displays a string of path markers. Each path marker of the string of path markers is initially a color co. In one embodiment of the present invention, the color co is gray. However, any color may represent the color co. In this embodiment, a path marker colored gray indicates that a player character associated with the “best time” run (hereinafter referred to as the “best time” player character) has not yet reached the path marker's position at a given elapsed time. Thus at any given elapsed time during game play, if the current player character is ahead of the “best time” player character, then the current player observes a string of path markers colored gray that represents the “best time” path.
However, if the current player character is behind the “best time” player character at any given elapsed time, then the current player observes path markers of a different color. For example, a path marker may change from the color c0 to a color c1 when the “best time” player character is positioned at the path marker and is traveling on the ground. In addition, a path marker may change from the color c0 to a color c2 when the “best time” player character is positioned at the path marker and is traveling in the air. Finally, a path marker may change from the color c0 to a color c3 when the “best time” player character is positioned at the path marker and is crashed. In exemplary embodiments of the present invention, the color c1 is green, the color c2 is blue, and the color c3 is red. The scope of the present invention covers other colors for the above-described path markers. Further, other colored path markers may represent alternate player character states, such as an energy level, an applied force magnitude, and an applied force direction, for example.
In an exemplary “best time” embodiment of the present invention, the CPU 112 (
As the player character proceeds along the time-trial run for the above example, the CPU 112 repeats the above-described process of generating and storing data associated with new path markers in the “best time” sub-cache 210. Preferably, each new path marker is located at a predefined player character travel distance s from a previous path marker position.
Continuing with the above example, in one embodiment of the present invention, if the player character crashes before the player character travels the predefined distance s measured from the previous path marker, then the CPU 112 generates a path marker at or near the crash site, and stores the data associated with the crash site path marker in the “best time” sub-cache 210.
In an alternate embodiment of the present invention, the CPU 112 generates and stores data associated with new path markers in the “best time” sub-cache 210, where new path markers are separated by a predefined time interval.
In one embodiment, if the player decides to repeat the time-trial run, the CPU 112 retrieves the data from the “best time” sub-cache 210, and displays a string of path markers on the display device (not shown). The string of path markers indicates the player character's path recorded during the “best time” run, for example. In one embodiment of the present invention, the “best time” path markers initially have a color co. As the current player character initiates the repeat time-trial run, the CPU 112 generates and records current path markers and data associated with the current path markers to the current sub-cache 220.
Further, during the repeat time-trial run the CPU 112 compares a current elapsed time with an elapsed time t retrieved from the “best time” sub-cache 210. For each “best time” path marker with an associated elapsed time t that is less than the current elapsed time, the CPU 112 changes the “best time” path marker color based upon the “best time” player character state associated with the “best time” path marker. For example, if the “best time” player character state indicates that the “best time” player character is on the ground at a given path marker, then the CPU 112 instructs the GPU 114 to change the color of the given path marker from c0 to c1. Similarly, if the “best time” player character state indicates that the “best time” player character is in the air at the given path marker, then the CPU 112 instructs the GPU 114 to change the color of the given path marker from c0 to c2. Finally, if the “best time” player character state indicates that the “best time” player character crashed at the given path marker, then the CPU 112 instructs the GPU 114 to change the color of the given path marker from c0 to c3.
At the end of the repeat time-trial run, the CPU 112 compares an elapsed time t associated with the marker m from the current sub-cache 220 (also referred to as a total elapsed time) with an elapsed time t associated with the marker n from the “best time” sub-cache 210 (also referred to as a “best time” total elapsed time). If the total elapsed time from the repeat time-trial run is less than the “best time” total elapsed time, then the CPU 112 overwrites data of the “best time” sub-cache 210 with data of the current sub-cache 220. Thus, data from the repeat time-trial run is now stored in the “best time” sub-cache 210. Subsequently, data generated from subsequent time-trial runs and stored in the current sub-cache 220 are compared to data stored in the “best time” sub-cache 210.
In an alternate embodiment, data associated with a “best time” run may already be stored or predetermined in the “best time” sub-cache 210 prior to initiation of the time-trial run. In this embodiment, upon initiation of the time trail run, the CPU 112 retrieves the data from the “best time” sub cache 210 and displays a string of path markers on the display device (not shown) that indicate a path of a “best time” player character.
In exemplary embodiments of the present invention, the CPU 112 computes a net resultant force acting on the player character at each of the path markers generated during the time-trial run. In one embodiment of the present invention, the net resultant force comprises Cartesian components (Fx, Fy, Fz). However, the scope of the invention covers net resultant force components defined with respect to any coordinate system. These forces may be based upon the governing laws of physics and/or any artificially contrived laws. For example, the CPU 112 may compute the net resultant forces based upon phenomenological laws (i.e., contrived physical laws) that dictate motion of a player character as the player character collides with extraneous objects, for example. Extraneous objects comprise any objects within a game environment, but external to the player character. For example, given that the player character is a rider on a bicycle, extraneous objects may include, but are not limited to, a roadway surface, rocks, ledges, holes, bumps, walls, other game characters, and other player characters. In this embodiment of the present invention, the game software comprises phenomenological laws which the CPU 112 processes to direct the motion of the player character when the player character interacts with an extraneous object. For example, if the player character hits a rock, the CPU 112 retrieves from main memory 110 (
In addition, the CPU 112 may compute net resultant forces based upon real laws of nature, such as the law of gravity, or laws based upon water and wind resistance. For example, resistive frictional forces, such as water and wind resistance forces, may depend upon a shape and a size of a player character or of apparel worn by the player character.
In a further embodiment of the present invention, the CPU 112 may compute net resultant forces based upon a combination of phenomenological laws and real laws of nature. For example, if a bicycle hits a wall, the CPU 112 may compute a gravitational force, a frictional wind force, and a phenomenological impact force due to a collision with the wall. The CPU 112 then computes a net resultant force acting on the bicycle as a vector sum of the gravitational force, wind force, and impact force. The CPU 112 may then instruct the GPU 114 (
During play of a video game, a multitude of force vectors acting on a player character may be calculated. For example,
In game play, the net resultant forces may be recorded during a time trial, and then graphically displayed during subsequent runs to inform game players of previous actions and assist in game decisions that may improve game play performance. Additionally, the net resultant forces may be computed and graphically displayed in real time during one or more game players' current runs to provide additional information regarding path smoothness and/or locations of impediments to travel, such as obstacle or barriers. Other applications may be considered as well.
In another embodiment of the present invention, a player selects player character A (
In yet a further embodiment of the present invention, a game developer may utilize the computed and displayed net resultant force vectors to develop and debug new versions of video games, or fine tune game dynamics of existing video games. Other uses of net resultant force vectors are contemplated and covered by the present invention.
In one embodiment of the present invention, the CPU 112 (
In operation, one embodiment of the present invention allows a player to view a color-coded previous game path via path markers or net resultant force vectors that dynamically change color dependent upon (1) a current elapsed time t associated with a current time-trial run as compared to elapsed times recorded in a previous game run and (2) previous player character states. Thus, the player can quickly gauge game progress as measured against the previous game path, and subsequently optimize variations on player character input controls as determined by viewing the previous player character state via color-coded path markers or color-coded net resultant force vectors. In one embodiment of the present invention, the previous game path is a “best time” path, and the previous player character states are the “best time” player character states.
In a further embodiment, the present invention dynamically computes net resultant force vectors in real time, and displays the net resultant force vectors along paths of one or more player characters. The net resultant force vectors may or may nor be color-coded. A non-color coded net resultant force vector displayed at a given point on a given path associated with a given player character represents the net resultant force acting on the given player character at the given point. A color-coded net resultant force vector acting on a player character offers additional game information, such as the player character state.
In step 610, the player decides whether to race against a previous run via inputs to the controller interface 120. If, in step 610, the player decides to race against the previous run, then the CPU 112 retrieves previous run path data from the memory card 122 (
In step 620, the player initiates game play, and the CPU 112 instructs the GPU 114 to dynamically change appearance of the force vectors, such as force vector color, as a player character traverses a course associated with the selected game event. For example, the CPU 112 compares an elapsed time of the selected game event with elapsed times associated with the previous run force vectors and path markers, and changes colors of those previous run force vectors with elapsed times less than or equal to the elapsed time of the present game event. According to exemplary embodiments, the color of a given force vector changes based upon the previous character state. For example, the color of the force vector changes from the color c0 to a color c1 if a player character associated with the previous run event (i.e., the previous run player character) is in contact with the ground at the given path marker. In another embodiment, the color of a given force vector changes from the color c0 to a color c2 if the previous run player character is airborne at the given path marker. In yet a further embodiment, the color of a given force vector changes from the color c0 to a color c3 if the previous run player character crashes at the given path marker.
In addition, the CPU 112 computes and stores path data associated with the selected game event in the current sub-cache 220 (
In step 625, the CPU 112 compares a total elapsed time of the completed game event with a total elapsed time of the previous run event. In step 630, the CPU 112 records data associated with the completed event as previous run path data in the previous sub-cache 210. In one embodiment in which the previous run event is a “best time” event, if the CPU 112 determines that the total elapsed time of the completed game event is less than the total elapsed time of the “best time” event, then the CPU 112 transfers the path data of the completed game event from the current sub-cache 220 to the previous sub-cache 210, overwriting any “best time” data stored in the previous sub-cache 210. In alternate embodiments, the current run data may be stored as a previous run data in any of a plurality of previous “non-best time” sub-caches (not shown), or a user may chose whether to save data associated with the completed run to the previous sub-cache 210 or any of the previous “non-best time” sub-caches. Finally, the player decides whether to play again in step 635. If the player decides to play again, then the method continues at step 610. However, if the player decides to not race again, the method is complete.
Referring back to step 630, in another embodiment of the present invention the player may instruct the CPU 112 to store the path data of the completed game event on the memory card 122 (
The present invention has been described above with reference to exemplary embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. For example, the CPU 112 may store and retrieve data from “non-best time” sub-caches associated with “non-best time” game paths, including, but not limited to, “worst time” paths associated with a current player or any player, “average time” paths associated with a current player or any player, a previous path of a current player selected from one or more previous paths, or a previous path of another player selected from one or more of the other player's previous paths. The game software then displays the data stored in the “non-best time” sub-caches as a string of dynamically changing colored path markers in which each path marker's color conveys information. Alternatively, the game software displays the data stored in the “non-best time” sub-caches as a string of dynamically changing colored force vectors in which each force vector's color, direction, and magnitude conveys information. In one embodiment of the present invention, if a current player chooses to race against a “worst time” path, data stored in the “worst time” sub-cache is overwritten with data from the current player's game run if the total elapsed game time associated with the current player's game run is greater than the total elapsed time stored in the “worst time” sub-cache. In other embodiments of the present invention, a current player selectively chooses whether to save data associated with a completed current game run in any of the sub-caches. For example, a current player may selectively choose not to allow data associated with a completed current game run to be compiled with the data stored in an “average time” sub-cache.
The present invention may readily be implemented using configurations other than those described in the preferred embodiments above. In a further example, the present invention may be utilized in any type of racing game such as, but not limited to, car racing, horse jumping, air racing, etc. Therefore, these and other variations upon the preferred embodiments are intended to be covered by the present invention.
Claims
1. A method for utilizing vectors in a video game, comprising:
- computing a plurality of vectors along one or more graphical paths, each of the one or more graphical paths associated with a player character; and
- displaying the plurality of vectors along the one or more graphical paths.
2. The method of claim 1, wherein the plurality of vectors are a plurality of net resultant force vectors.
3. The method of claim 1, wherein computing further comprises computing the plurality of vectors based upon phenomenological laws.
4. The method of claim 1, wherein the computing further comprises computing the plurality of vectors based upon physical laws of nature.
5. The method of claim 1, wherein the computing further comprises computing the plurality of vectors in real time.
6. The method of claim 1, wherein the displaying further comprises displaying the plurality of vectors along the one or more graphical paths as a plurality of colored vectors, a color of a vector of the plurality of vectors indicating a character state.
7. The method of claim 1, further comprising
- retrieving previous graphical path data associated with a previous run; and
- displaying the previous graphical path data as a string of vectors.
8. The method of claim 7, further comprising
- determining a color for a vector of the string of vectors based upon an elapsed time of a current video game session and an elapsed time associated with the vector of the string of vectors.
9. The method of claim 8, wherein the determining further comprises selecting a first color for the vector if the elapsed time associated with the vector is greater than the elapsed time of the current video game session.
10. The method of claim 8, wherein the determining further comprises selecting a color for the vector based upon a character state associated with the vector if the elapsed time associated with the vector is less than or equal to the elapsed time of the current video game session.
11. The method of claim 10, wherein the character state associated with the vector is an “on the ground” state.
12. The method of claim 10, wherein the character state associated with the vector is an “airborne” state.
13. The method of claim 10, wherein the character state associated with the vector is a “crashed” state.
14. The method of claim 7, wherein the previous run is a “best time” run.
15. The method of claim 7, wherein the previous run is a run selected from one or more previous runs.
16. The method of claim 1, further comprising storing the plurality of vectors along the one or more graphical paths to a data cache.
17. The method of claim 1, further comprising using the plurality of vectors to debug the video game.
18. An electronic-readable medium having embodied thereon a program, the program being executable by a machine to perform a method for utilizing vectors in a video game, the method comprising:
- computing a plurality of resultant force vectors in real time along one or more graphical paths, each of the one or more graphical paths associated with a player character; and
- displaying the plurality of resultant force vectors along the one or more graphical paths.
19. The electronic-readable medium of claim 18, wherein the displaying further comprises displaying the plurality of resultant force vectors in real time along the one or more graphical paths as a plurality of colored resultant force vectors, a color of a resultant force vector of the plurality of resultant force vectors indicating a character state.
20. The electronic-readable medium of claim 18, further comprising
- retrieving previous graphical path data associated with a previous run; and
- displaying the previous graphical path data as a string of resultant force vectors.
21. The electronic-readable medium of claim 20, further comprising determining a color for a resultant force vector of the string of resultant force vectors based upon an elapsed time of a current video game session and an elapsed time associated with the resultant force vector of the string of resultant force vectors.
22. The electronic-readable medium of claim 21, wherein the determining further comprises selecting a first color for the resultant force vector if the elapsed time associated with the resultant force vector is greater than the elapsed time of the current video game session.
23. The electronic-readable medium of claim 21, wherein the determining further comprises selecting a color for the resultant force vector based upon a character state associated with the resultant force vector if the elapsed time associated with the resultant force vector is less than or equal to the elapsed time of the current video game session.
24. The electronic-readable medium of claim 20, wherein the previous run is a “best time” run.
25. The electronic-readable medium of claim 18, further comprising storing the plurality of resultant force vectors to a data cache.
26. An electronic entertainment system for utilizing vectors in a video game, comprising:
- a data cache configured to store graphical path data associated with a current video game session and one or more previous video game sessions;
- a processor configured to compute a plurality of force vectors associated with one or more graphical paths, each of the one or more graphical paths associated with a player character; and
- a display device configured to display the plurality of force vectors.
27. The electronic entertainment system of claim 26, wherein the graphical path data includes the plurality of force vectors.
28. The electronic entertainment system of claim 26, wherein the processor is further configured to compute a color of a force vector from the plurality of force vectors, the color of the vector from the plurality of force vectors indicating a character state.
29. The electronic entertainment system of claim 26, wherein the processor is further configured to retrieve the graphical path data associated with one of the one or more previous game sessions and to generate a string of force vectors.
30. The electronic entertainment system of claim 29, wherein the processor is further configured to determine a color of a force vector of the string of force vectors based upon an elapsed time of the current video game session and an elapsed time associated with the force vector.
31. The electronic entertainment system of claim 29, wherein the processor is further configured to determine a color of a force vector of the string of force vectors based upon a character state associated with the force vector.
32. The electronic entertainment system of claim 26, further comprising a memory card configured to store the graphical path data.
33. The electronic entertainment system of claim 26, wherein the processor is further configured to generate and store graphical path data of the current video game session in the data cache.
34. The electronic entertainment system of claim 27, wherein the processor is further configured to store graphical path data of the current video game session as “best time” run graphical path data if a total elapsed time of the current video game session is less than total elapsed times associated with the one or more previous video game sessions.
35. A system for utilizing vectors in a video game session, comprising:
- means for computing a plurality of vectors along one or more graphical paths, each of the one or more graphical paths associated with a player character; and
- means for displaying the plurality of vectors along the one or more graphical paths.
Type: Application
Filed: Dec 15, 2003
Publication Date: Apr 28, 2005
Inventor: Scott Campbell (Bountiful, UT)
Application Number: 10/737,143