U.S. Pat. No. 7,278,913
RACING GAME PROGRAM AND VIDEO GAME DEVICE
AssigneeNintendo Co., Ltd.
Issue DateOctober 20, 2004
Illustrative Figure
Abstract
A racing game in which a player moving object controlled by a human player and a plurality of non-player moving objects automatically controlled based on a predetermined algorithm race together on a course in a virtual space is provided, wherein: different target places are set for the plurality of non-player moving objects; a driving performance value preset for each non-player moving object is changed according to the target place thereof; and each non-player moving object is automatically controlled according to the changed driving performance value thereof. Thus, it is possible to provide a thrilling racing game.
Description
DETAILED DESCRIPTION An exemplary illustrative embodiment will now be described with reference to the drawings. FIG. 1is a view generally illustrating a configuration of a video game system according to one exemplary illustrative embodiment, andFIG. 2is a block diagram thereof. Referring toFIG. 1andFIG. 2, the video game system includes a TV monitor11, a DVD-ROM13, a video game device15, a memory card17and a controller19. The DVD-ROM13and the memory card17can be mounted/dismounted onto/from the video game device15. The controller19is connected, via a connection cable, to the connector of one of a plurality (four inFIG. 1) of controller ports of the video game device15. The TV monitor11is connected to the video game device15via an AV cable, or the like. Note that the connection between the video game device15and the controller19may be a wireless connection. Referring toFIG. 2, each section of the video game system will now be described in greater detail. The DVD-ROM13statically stores the game program, game data, etc. When the player plays the game, the DVD-ROM13is mounted onto the video game device15. Instead of the DVD-ROM13, the means for storing the game program, etc., may be any other suitable computer-readable recording medium such as, for example, a CD-ROM, an MO disk, a memory card or a ROM cartridge. The memory card17includes, as a backup memory35, a rewritable storage medium such as a flash memory. Data, e.g., saved game data, is stored on the backup memory35. The video game device15reads out the program recorded on the DVD-ROM13, and performs various processes according to the program. The controller19is an input device with which the player gives inputs to the game, and includes a plurality of control switches. In response to the player's operation (e.g., pressing) of the control switches, the controller19outputs corresponding operation data to the video game device15. The TV monitor11displays image ...
DETAILED DESCRIPTION
An exemplary illustrative embodiment will now be described with reference to the drawings.
FIG. 1is a view generally illustrating a configuration of a video game system according to one exemplary illustrative embodiment, andFIG. 2is a block diagram thereof. Referring toFIG. 1andFIG. 2, the video game system includes a TV monitor11, a DVD-ROM13, a video game device15, a memory card17and a controller19. The DVD-ROM13and the memory card17can be mounted/dismounted onto/from the video game device15. The controller19is connected, via a connection cable, to the connector of one of a plurality (four inFIG. 1) of controller ports of the video game device15. The TV monitor11is connected to the video game device15via an AV cable, or the like. Note that the connection between the video game device15and the controller19may be a wireless connection. Referring toFIG. 2, each section of the video game system will now be described in greater detail.
The DVD-ROM13statically stores the game program, game data, etc. When the player plays the game, the DVD-ROM13is mounted onto the video game device15. Instead of the DVD-ROM13, the means for storing the game program, etc., may be any other suitable computer-readable recording medium such as, for example, a CD-ROM, an MO disk, a memory card or a ROM cartridge.
The memory card17includes, as a backup memory35, a rewritable storage medium such as a flash memory. Data, e.g., saved game data, is stored on the backup memory35.
The video game device15reads out the program recorded on the DVD-ROM13, and performs various processes according to the program.
The controller19is an input device with which the player gives inputs to the game, and includes a plurality of control switches. In response to the player's operation (e.g., pressing) of the control switches, the controller19outputs corresponding operation data to the video game device15.
The TV monitor11displays image data outputted from the video game device15.
A configuration of the video game device15will now be described. Referring toFIG. 2, the video game device15includes a CPU21, a work memory23, an external memory I/F25for exchanging data with the memory card17, a controller I/F27for receiving operation data from the controller19, a VRAM29being a memory dedicated for image processing, a GPU31for producing game images, and an optical disk drive33for reading data from the DVD-ROM13.
At the start of the game, the optical disk drive33loads the DVD-ROM13mounted on the video game device15. The game program read from the DVD-ROM13is stored in the work memory23. The game program on the work memory23is executed by the CPU21, thus starting the game process. After the start of the game, the player operates the controller19, in response to which the controller19outputs the corresponding operation data to the video game device15. The CPU21performs the game process based on the operation data. While the hardware configuration of the present exemplary illustrative embodiment includes a separate memory dedicated for image processing, the present invention is not limited to this, but may employ, for example, a unified memory architecture (UMA) in which a portion of the work memory23is used as a memory for image processing.
A memory map of the DVD-ROM13will now be described with reference toFIG. 3. The DVD-ROM13stores a racing game program41and racing game data55used by the racing game program41.
The racing game program41at least includes a target place setting program43, a driving performance value changing program45, an automatic control program47, a current place obtaining program49, a target place changing program51, a total score calculation program53.
The racing game data55at least includes basic driving performance value data57and offset data59.
The operation of the video game system of the present embodiment will now be described.
FIG. 4shows an example of a game image of the racing game played with the present video game system. This is a racing game in which a player kart controlled by a human player and a plurality of non-player karts automatically controlled based on a predetermined algorithm race together on a course in a virtual space. In this racing game, the karts race against one another in a series of five races for total scores, and each kart is awarded certain points after each race according to its results in that race. The kart with the highest end-of-series total score wins the game. While the present exemplary illustrative embodiment is directed to a kart racing game, the techniques disclosed herein may be applied to other racing games in which other types of moving objects, such as aircrafts or humans, race together.
Referring to the flow chart ofFIG. 5, the flow of an exemplary illustrative game operation will now be described.
As the game process is started, the CPU21first prompts the player to choose one kart from among a plurality of karts (seven karts A to G in the illustrated example) (S101). Referring toFIG. 6, each kart is assigned basic driving performance values (the basic maximum speed and the basic acceleration), which are stored in the DVD-ROM13as the basic driving performance value data57. While each kart has different basic driving performance values in the example shown inFIG. 6, these values are determined so that the total performance of one kart is unlikely to be significantly different from others. Alternatively, all the karts may be assigned substantially the same basic driving performance values. The kinds of the basic driving performance values are not limited to the maximum speed and the acceleration, but may also be other parameters related to the driving performance, such as the deceleration and the minimum speed.
Assume that the player chooses Kart B in step101. Thus, the player controls Kart B as the player kart to race against the other, non-player karts (Karts A, C to G).
Then, the CPU21chooses two karts as rival karts from among those karts not chosen by the player in step101(Karts A, C to G in the illustrated example) (S103). A rival kart is a special kart among other non-player karts, and is a kart expected to win a higher total score than the other non-player karts (hereinafter referred to as the “normal karts”). Thus, each rival kart will be a strong rival for the player kart. The rival karts may be chosen randomly or by a predetermined rule. Where the rival karts are chosen randomly, different karts are likely to be chosen as the rival karts each time even if the player chooses to control the same kart over a number of games, whereby the player will not be playing against the same rival karts over and over.
Assume that Karts A and D are chosen as the rival karts in step102.
Then, the CPU21determines the target place for each non-player kart based on the target place setting program43shown inFIG. 3(S105). The target place of one rival kart is set to 1st, and that of the other rival kart to 2nd. The normal karts are assigned target places of 3rd or lower. The rival kart whose target place is set to 1st may be determined randomly or by a predetermined rule. Similarly, the target places of the normal karts may be determined randomly or by a predetermined rule.
The target places assigned to the non-player karts in step105are stored in the work memory23in the form of target place data as shown inFIG. 7. It is assumed herein that the non-player karts are assigned, in step105, the target places as shown inFIG. 7. The target places determined in step105influence step205ofFIG. 10to be described later, in which the driving performance values of the non-player karts are determined. Specifically, offset values determined according to the target places as shown inFIG. 8are added to the basic driving performance values shown inFIG. 6, thus determining the driving performance values of each non-player kart. For example, Kart A whose target place is 1st has a maximum speed of 130×1.3=169 and an acceleration of 2.5×1.2=3.0. Data shown inFIG. 8is stored in the DVD-ROM13as the offset data59.
After the above-described operation, the CPU21starts the race process (S107). As described above, for each non-player kart, offset values determined according to the target places are added to the driving performance values in step205ofFIG. 10to be described later, whereby non-player karts with higher target places are likely to be in higher places during the race as illustrated inFIG. 9. Particularly, the two rival karts are quite likely to be in 1st and 2nd places among the non-player karts (i.e., excluding the player kart).
Referring to the flow chart ofFIG. 10, the race process of step107will now be described in detail.
As the race process is started, the CPU21first reads operation data from the controller19(S201). Then, the CPU21calculates the speed of the player kart based on the operation data (S203).
Then, the CPU21determines the driving performance values of the non-player karts based on the driving performance value changing program45ofFIG. 3(S205). Specifically, offset values determined according to the target places are added to the basic driving performance values shown inFIG. 6based on the offset data59shown inFIG. 8, thereby determining the driving performance values of the non-player karts.
Then, the CPU21detects the current place of each non-player kart based on the current place obtaining program49ofFIG. 3(S207). Note that the “current place” as used herein refers to the place among all the non-player karts (excluding the player kart). For example, the current place of Kart F inFIG. 9is 5th.
Then, the CPU21calculates the speed of each non-player kart based on the automatic control program47ofFIG. 3(S209). The speed of each non-player kart is controlled so that the non-player kart will be in, or come closer to, a position according to its target place. Referring to the flow chart ofFIG. 11, an example of such a control will now be described.
Referring toFIG. 11, the CPU21first selects a non-player kart to be controlled (S301). Then, it is determined whether or not the current place (excluding the player kart) of the selected kart is higher than the target place (S303). If the current place is higher than the target place, the selected kart is decelerated (S307). If the current place is lower than or equal to the target place, the selected kart is accelerated (S305). For example, referring toFIG. 12, Kart D is decelerated because the current place (1st) of Kart D is higher than its target place (2nd), whereas Kart A is accelerated because the current place (2nd) of Kart A is lower than its target place (1st). In step305, a kart is accelerated so that the speed after the acceleration will not exceed the maximum speed thereof determined in step205ofFIG. 10. In step307, a kart is decelerated so that the speed after the deceleration will not be under a predetermined lower speed limit. The lower speed limit is used for preventing the non-player kart from being so slow as to give the player an unnatural feel. Then, the CPU21determines whether or not the process has been done for all of the non-player karts (S309). If there is any non-player kart for which the process has not been done, the process returns to step301.
The specific process of step209is not limited to that shown inFIG. 11as long as the speed of each non-player kart is controlled so that the non-player kart will be in, or come closer to, a position according to its target place. For example, referring toFIG. 13, the distance AD between the subject non-player kart and another non-player kart of a higher target place may be monitored, and the subject non-player kart may be accelerated or decelerated so that the distance ΔD is equal to, or come closer to, a predetermined value.
Since the speed of each non-player kart is controlled in step209, the non-player kart will basically be in a position according to its target place as illustrated inFIG. 9. However, accidents, such as spinning, getting off the course, blocking and collision, may occur, whereby the non-player karts will not always be running in the expected order as shown inFIG. 9.
Referring back toFIG. 10, after step209, the CPU21updates the positions of the karts (the player kart and the non-player karts) in a virtual space based on the results from step203and step209(S211). Then, the CPU21(or the GPU31) produces a game image as shown inFIG. 4, and outputs a video signal for displaying the game image to the TV monitor11(S213).
Then, the CPU21performs the target place changing process for the rival karts based on the target place changing program51ofFIG. 3(S215).FIG. 14shows step215in detail. Referring toFIG. 14, the CPU21first determines whether or not the rival kart whose target place is 1st (Kart A in the illustrated example) is significantly behind the rival kart whose target place is 2nd (Kart B in the illustrated example) (S401). Whether the difference is significant may be determined based on whether or not the distance therebetween exceeds a predetermined value, whether or not the difference between the current places of the two rival karts exceeds a predetermined value, or whether or not the difference therebetween in the time they pass a checkpoint along the course exceeds a predetermined value. If it is determined that the rival kart whose target place is 1st is significantly behind the rival kart whose target place is 2nd, the target places of the two rival karts are switched around (S403). Specifically, the target place data ofFIG. 7stored in the work memory23is changed as shown inFIG. 15.
The advantage of the provision of step215will now be described.
Assume a case where step215is not provided. Then, assume that Kart A whose target place is 1st and which is running in the position as shown inFIG. 9gets off the course and drops to last place. Thus, Kart D whose target place is 2nd is moved up to 1st place, and it will start decelerating, attempting to be in a place where it is supposed to be according to its target place. Since Kart D will keep decelerating until it is overtaken by Kart A, the player kart may be able to easily take over 1st place, thus making the game less thrilling.
In contrast, with the provision of step215, the target places of Karts A and D are switched around when Kart A drops to last place, so that the new target place of Kart A is 2nd and that of Kart D is 1st. Therefore, Kart D will keep running in 1st place without decelerating, avoiding such a problem as described above. Thus, even if the rival kart whose target place is 1st falls significantly behind by an accident, the race will remain thrilling.
Referring toFIG. 10, after step215, the CPU21performs the target place changing process for the normal karts based on the target place changing program51ofFIG. 3(S217).FIG. 16shows step217in detail. Referring toFIG. 16, the CPU21first selects a normal kart to be subject to the process (S501). Then, it is determined whether or not the current place (excluding the player kart) of the selected kart is equal to its target place (S503). If the current place is different from the target place, the target place of the normal kart is changed to the value of the current place (S505). For example, in a case where Kart C whose target place is 3rd and which is running in the position as shown inFIG. 9drops to last place, the target place data ofFIG. 7stored in the work memory23is changed as shown inFIG. 17. The purpose of this process is as follows. If Kart C falls significantly behind by an accident and the current place of Kart E is moved up from 4th to 3rd, and if the target place of Kart E remains to be 4th, Kart E will decelerate and fall excessively behind Kart D. Such a problem can be avoided by this process. Then, the CPU21determines whether or not the process has been done for all of the normal karts (S507). If there is any normal kart for which the process has not been done, the process returns to step501.
Referring toFIG. 10, after step217, the CPU21determines whether or not the race has finished (S219). If the race has not finished, the process returns to step201. Otherwise, the race process is terminated.
Referring back toFIG. 5, when the race process is terminated, the CPU21awards each kart certain points according to the results of the race in step107and calculates the current total score for each kart based on the total score calculation program53shown inFIG. 3. Then, the CPU21produces a game image for displaying the calculation results (S111). The game image produced in step111is displayed on the TV monitor11as shown inFIG. 18. Referring toFIG. 18, the TV monitor11displays the total score of each kart after the third race. As can be seen fromFIG. 18, a non-player kart of a higher target place basically has a higher total score.
Then, the CPU21determines whether or not all of the races (the first to fifth races in the illustrated example) have been completed (S113). If so, the game process is terminated. Otherwise, the process proceeds to step115.
In step115, the CPU21performs the target place changing process for the rival karts based on the target place changing program51ofFIG. 3.FIG. 19shows step115in detail.
Referring toFIG. 19, the CPU21first determines whether or not the player kart is significantly ahead of the two rival karts (S601). Specifically, whether the difference is significant may be determined based on whether or not the difference between the total score of the player kart and those of the rival karts exceeds a predetermined value. If it is determined that the player kart is significantly ahead of the two rival karts, the target places of the two rival karts are both set to 1st (S603). For example, in the example shown inFIG. 20, since the player kart (Kart B) is significantly ahead of the two rival karts (Karts A, D), the target place data ofFIG. 7stored in the work memory23is changed as shown inFIG. 21. As a result, in the next race, the two rival karts will be racing both aiming to win 1st place, whereby it will be more difficult for the player kart to win 1st place, thus making the race even more thrilling.
If “No” is returned in step601ofFIG. 19, the CPU21determines whether or not either rival kart is significantly ahead of the player kart (S605). Whether the difference is significant may be determined, for example, based on whether or not the difference between the total score of the player kart and that of either rival kart exceeds a predetermined value, or whether or not the difference between the overall standing of the player kart and that of either rival kart exceeds a predetermined value. If it is determined that either rival kart is significantly ahead of the player kart, the target place of the rival kart with the higher total score is set to 2nd and that of the other rival kart to 1st (S607). For example, in the example ofFIG. 22, since the rival kart (Kart A) is significantly ahead of the player kart (Kart B), the target place data ofFIG. 7stored in the work memory23is changed as shown inFIG. 23. As a result, Kart A is less likely to win 1st place in the next race. Thus, it is possible to avoid a situation where the total score of Kart A is so much higher than that of the player kart as to make the player less motivated.
Thus, according to an exemplary illustrative embodiment, it is likely that the total scores of the rival karts stay close to that of the player kart, whereby the player will be kept thrilled.
As described above, in an exemplary illustrative embodiment, if a rival kart whose target place is 1st (Kart X) falls significantly behind the other rival kart whose target place is 2nd (Kart Y) by an accident, the target place of Kart X is changed to 2nd. The target place is changed only if the difference between the two rival kart is significant for the following reason. If the target place of Kart X is more easily changed to 2nd, Kart X is less likely to win 1st place in that race, and the total score of Kart X will likely be lowered, thus decreasing the difficulty of the game. Moreover, in an exemplary illustrative embodiment, if Kart X falls significantly behind Kart Y, the target place of Kart X is lowered only to 2nd, instead of lowering it down to the value of the current place as with the normal karts, for the following reason. If the target place of a rival kart is set excessively low, the total score of the rival kart will be excessively low, whereby the rival kart can no longer be a strong rival for the player kart.
While the racing game program41is loaded from the DVD-ROM13to the video game device15in an exemplary illustrative embodiment, the present invention is not limited to this. Alternatively, the racing game program41may be pre-stored in any recording medium in the video game device15, or the racing game program41may be loaded to the video game device15through a communications medium such as a wired or wireless communications line or a communications cable.
Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the present invention being limited only by the terms of the appended claims.
Claims
- A computer-readable recording medium, storing a racing game program for playing a racing game in which a player moving object controlled by a human player and a plurality of non-player moving objects automatically controlled based on a predetermined algorithm race together on a course in a virtual space, wherein the racing game program instructs a computer to function as: a target rank setter for setting different target ranks for at least two of the plurality of non-player moving objects, the target ranks being set irrespective of a current rank associated with any of the non-player moving objects in the race;a driving performance value changer for changing a driving performance value preset for each of the non-player moving objects according to the target rank thereof set by the target rank setter;and an automatic controller for automatically controlling each of the non-player moving objects according to the driving performance value thereof which has been changed by the driving performance value changer.
- The computer-readable recording medium according to claim 1 , wherein the driving performance value includes at least one of a maximum speed performance value and an acceleration performance value.
- The computer-readable recording medium according to claim 1 , wherein: the racing game program instructs the computer to function further as a current rank obtainer for obtaining a current rank of each non-player moving object running on the course among the plurality of non-player moving objects;and the automatic controller controls a speed of each non-player moving object so that the current rank thereof comes closer to the target rank thereof.
- The computer-readable recording medium according to claim 1 , wherein the racing game program instructs the computer to function further as a target rank changer for changing the target ranks set by the target rank setter.
- The computer-readable recording medium according to claim 4 , wherein the target rank changer changes the target ranks of the non-player moving objects while the non-player moving objects are running on the course.
- The computer-readable recording medium according to claim 5 , wherein: the plurality of non-player moving objects include two rival moving objects and at least one normal moving object;the target rank setter sets the target rank of a first one of the two rival moving objects to 1st while setting the target rank of a second one of the two rival moving objects to 2nd;and if the first rival moving object whose target rank is 1st falls significantly behind the second rival moving object whose target rank is 2nd, the target rank changer switches the target ranks of the first and second rival moving objects.
- The computer-readable recording medium according to claim 4 , wherein: the racing game is such that a plurality of moving objects, including the player moving object and the non-player moving objects, compete against one another for total scores determined based on results of a series of races;the racing game program instructs the computer to function further as a total score calculator for calculating a total score of each moving object after each race;and the target rank changer changes the target ranks based on the calculation by the total score calculator after a race is finished and before a next race begins.
- The computer-readable recording medium according to claim 7 , wherein: the plurality of non-player moving objects include two rival moving objects and at least one normal moving object;the target rank setter sets the target rank of a first one of the two rival moving objects to 1st while setting the target rank of a second one of the two rival moving objects to 2nd;and after a race, if the total score of either one of the two rival moving objects or an overall standing thereof determined based on the total score is significantly higher than that of the player moving object, the target rank changer changes the target ranks of the two rival moving objects so that the target rank of the rival moving object with a higher total score is 2nd while that of the rival moving object with a lower total score is 1st.
- The computer-readable recording medium according to claim 7 , wherein: the plurality of non-player moving objects include two rival moving objects and at least one normal moving object;the target rank setter sets the target rank of one of the two rival moving objects to 1st while setting the target rank of the other rival moving object to 2nd;and after a race, if the total scores of the two rival moving objects are both significantly lower than that of the player moving object, the target rank changer changes the target ranks of the two rival moving objects so that the target ranks of the first and second rival moving objects are both 1st.
- The computer-readable recording medium according to claim 1 , wherein the target rank setter initially sets the different target ranks for said at least two of the plurality of non-player moving objects before a race process between the player moving object and the non-player moving objects provided by execution of the racing game program by the computer begins.
- A video game device, comprising the computer-readable recording medium according to claim 1 , and a computer for executing the racing game program stored in the computer-readable recording medium.
- A method of executing a racing game in which a player moving object is controlled by a human player and a plurality of non-player moving objects are automatically controlled based on a predetermined algorithm race together on a course in a virtual space, the method comprising: setting different target ranks for at least two of the plurality of non-player moving objects, the target ranks being set irrespective of a current rank associated with any of the non-player moving objects in the race;changing a driving performance value preset for each of the non-player moving objects according to the target rank thereof;and automatically controlling each of the non-player moving objects according to the driving performance value thereof which has been changed.
- The method of claim 12 , wherein the driving performance value includes at least one of a maximum speed performance value and an acceleration performance value.
- The method of claim 12 , further comprising: obtaining a current rank of each non-player moving object running on the course among the plurality of non-player moving objects;and automatically controlling a speed of each non-player moving object so that the current rank thereof comes closer to the target rank thereof.
- The method of claim 12 , further comprising changing the target ranks set by the target rank setting step.
- The method of claim 15 , wherein the target rank changing step changes the target ranks of the non-player moving objects while the non-player moving objects are running on the course.
- The method of claim 16 , wherein: the plurality of non-player moving objects include two rival moving objects and at least one normal moving object;the target rank setting step sets the target rank of a first one of the two rival moving objects to 1st while setting the target rank of a second one of the two rival moving objects to 2nd;and if the first rival moving object whose target rank is 1st falls significantly behind the second rival moving object whose target rank is 2nd, the target rank changer switches the target ranks of the first and second rival moving objects.
- The method of claim 15 , further comprising calculating a total score of each moving object after each race;wherein the racing game is such that a plurality of moving objects, including the player moving object and the non-player moving objects, compete against one another for total scores determined based on results of a series of races, and wherein the target rank changing step changes the target ranks based on the calculation by the total score calculator after a race is finished and before a next race begins.
- The method of claim 18 , wherein: the plurality of non-player moving objects include two rival moving objects and at least one normal moving object;the target rank setting step sets the target rank of a first one of the two rival moving objects to 1st while setting the target rank of a second one of the two rival moving objects to 2nd;and after a race, if the total score of either one of the two rival moving objects or an overall standing thereof determined based on the total score is significantly higher than that of the player moving object, the target rank changing step changes the target ranks of the two rival moving objects so that the target rank of the rival moving object with a higher total score is 2nd while that of the rival moving object with a lower total score is 1st.
- The method of claim 18 , wherein: the plurality of non-player moving objects include two rival moving objects and at least one normal moving object;the target rank setting step sets the target rank of one of the two rival moving objects to 1st while setting the target rank of the other rival moving object to 2nd;and after a race, if the total scores of the two rival moving objects are both significantly lower than that of the player moving object, the target rank changing step changes the target ranks of the two rival moving objects so that the target ranks of the first and second rival moving objects are both 1st.
- The method of claim 12 , wherein the setting different target ranks step is executed before a race process between the player moving object and the non-player moving objects provided by execution of the racing game begins.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.