Patent Description:
Control devices, such as computer mice, keyboards and game controllers, are used for controlling game characters in video games. Some video games provide preprogrammed actions such as a punch or kick, a glance in a rear-view mirror of a race car, etc., that are pre-assigned to a particular button of the control device by the video game application. It is not necessary for the operator of the controller to do anything more than press the assigned button to execute these preprogrammed moves.

Other game character movements are not preprogrammed and are continuously adjustable using the controller. These non-programmed movements generally include the orientation of the game character's view of the game environment and the direction and speed in which the game character moves.

The orientation of the game character's view of the game environment can generally be moved left, right, up or down. In some games, the player must constantly be moving the orientation of a game character's view. For instance, in a fast paced first-person shooter game, the player is often forced to move the game character's view continuously to locate predatory characters that may be to the side or behind the game character.

There is continuous need for more efficient game controls, particularly as the complexity of the controls and the speed of game play increases.

Moreover, it is known from <CIT> a video game machine that includes, amongst others a coordinate storage unit for storing pairs of coordinates set so as to be related to a plurality of leading characters and a game screen obtained by using, as a viewpoint, any one of the pairs of coordinates. It is described that viewpoints are used when a game screen is displayed and are set so as to correspond to a plurality of leading characters. The viewpoint is switched from one to another. Described is a coordinate storage unit for storing pairs of coordinates set so as to be related to the leading characters and a viewpoint is any one of the pairs of coordinates. For a viewpoint-switching operation, from the pair of coordinates of the viewpoint is switched to another pair of coordinates. Specifically, a pair of coordinates is related to a first leading character <NUM> and another pair of coordinates is related to the second leading character <NUM>. These pair of coordinates are stored beforehand as part of the game program. The viewpoint-switching has the functions of rapidly moving the viewpoint from a pair of in-cockpit coordinates to above the second leading character, and the pairs of relative coordinates of the first leading character <NUM> on the cockpit side and the second leading character on the field side are switched from each other, while the pair of coordinates of the enemy boss character is changed so as to be adapted for the position of the second leading character.

Finally, it is known from <CIT> a controller for video games including a mechanism for recording, storing and retrieving a sequence of instructions. When playing a relatively complex game involving a relatively complex sequence of instructions which are used repetitively, these instructions need be entered only once and can be retrieved as required.

Therefore, it is the object of the present invention to provide improved methods and systems for supporting end user in orienting while using a video game.

This objective problem is solved by the subject matter of the independent claims.

Preferred embodiments are the subject of the dependent claims.

Embodiments are generally directed to control systems and methods for allowing a player to calibrate a desired operator-controlled movement of an orientation of a character view of a game character of a game environment and assign the calibrated movement to a macro button of a control device. One embodiment of the control system comprises a control device comprising a programmable macro button, a memory containing view change settings, a driver program and a microprocessor. The driver program includes a view change output that is produced in response to actuation of the macro button and is based on the view change settings. The microprocessor is configured to move the orientation of the character view of the game environment from a beginning orientation to an ending orientation in response to the view change output.

In one embodiment of the method, a view orientation move is calibrated comprising storing view change settings in memory. A view change output is produced in response to actuation of a macro button of a control device. The orientation of the character view of the game environment is then moved from a beginning orientation to an ending orientation based on the view change settings in response to the view change output.

The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.

<FIG> is a simplified block diagram of an exemplary game system <NUM> in accordance with embodiments. The game system comprises a video game application <NUM> stored in memory 104A, a display <NUM> and a control system <NUM>. The control system <NUM> includes a control device <NUM>, a driver program <NUM> stored in memory 104B, view change settings <NUM> stored in memory 104C and a microprocessor or central processing unit <NUM>.

The microprocessor <NUM> represents one or more devices that are configured to control the operations of the game system <NUM> and the control system <NUM>. The microprocessor <NUM> may be a component of a personal computer, a game console (e.g., Xbox <NUM>) or other computing device. Exemplary operations that could be performed by the microprocessor <NUM> include data communications in the system <NUM> including data communications with accessible memory of the system, such as memory 104A, 104B and 104C; network data communications; responses to input signals <NUM> received from one or more of the control devices <NUM>; the execution of instructions stored on a tangible medium, such as the instructions of the video game application <NUM> and the driver program <NUM>; the generation of output signals that control one or more output devices, such as a display signal <NUM> that controls the display <NUM>; and other functions.

The memories 104A-C represent physical storage mediums that can be separate from each other or combined. The physical storage mediums 104A-C can take on many different forms, such as CD-ROM's, digital versatile disks (DVD) or other optical disk storage media, flash memory drives, hard drives, RAM, ROM, EEPROM, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired video game application <NUM>, driver program <NUM> and the view change settings <NUM>.

The control device <NUM> may be any suitable input device to the control system <NUM> for controlling operations of a game character within the game environment of the video game. Embodiments of the control device <NUM> include a computer mouse <NUM>, a game controller (i.e., a control device that is generally dedicated to gaming) <NUM> and a keyboard <NUM>, which are respectively illustrated in <FIG>. The control device <NUM> includes control components <NUM> (<FIG>) that, when actuated, generate the input signals <NUM>. The driver program <NUM> translates the input signals <NUM> into information that is used by the video game application <NUM> under the control of the microprocessor <NUM> to produce an action within the video game, such as movement of the game character or other action.

Exemplary control components <NUM> of the mouse <NUM> include buttons <NUM>, a scroll wheel <NUM>, the mechanical or optical components (not shown) that translate lateral or side-to-side movement of the mouse into movement of the game character, and other components. Exemplary control components <NUM> of the game controller <NUM> include buttons <NUM>, a directional pad <NUM>, a joystick <NUM>, finger triggers (not shown) and other components. Exemplary control components <NUM> of the keyboard <NUM> include the keys <NUM>, such as the arrow keys 142A-D, and other components.

As discussed above, the video game application <NUM> assigns predefined actions to the control components <NUM> of the control device <NUM>. The actuation of some of the control components <NUM> results in the execution of the predefined action of the game character, such as a jump or a kick, for example. Other movements of the game character in response to actuation of some of the control components <NUM> include operator or player controlled movements that do not fall into this predefined action category, such as the orientation of the game character's view and the direction and speed at which the game character travels.

The video game application <NUM> can comprise any game in which embodiments are useful. Exemplary video games include first-person games (e.g., Halo®, racing games), in which the display <NUM> presents the player (i.e., the operator of the control device) a view of the game environment as seen by the game character (i.e., human, creature, mechanical device, etc.) he or she controls, and third-person games (e.g., role playing games such as Dungeon Siege® II), in which the display <NUM> presents a distant view of the game character within the game environment. Whether the video game provides a first-person display of the game environment or a third-person display of the game environment, the game character has a view (hereinafter "character view"), which has a particular orientation.

<FIG> illustrates an exemplary view of a portion of a game character <NUM> within a game environment <NUM> as produced by the execution of the video game application <NUM>. When the game application <NUM> produces a first-person video game, the display <NUM> presents the view of the game environment <NUM> as seen by the game character <NUM>, which is represented by the projection <NUM>. Objects within the projection <NUM> that are viewable to the game character <NUM> are provided on the display <NUM> of the game system <NUM>. Thus, the orientation of the character view <NUM> determines what the player sees on the display <NUM>.

When the video game application <NUM> produces a third-person game, the display <NUM> presents the game character <NUM> (only a portion shown) and the surrounding game environment <NUM>. The third-person game character <NUM> has a "view" of the game environment corresponding to the orientation of the game character's "head" or "eyes", for example. Thus, movements of the head of the third-person game character <NUM> results in a movement of the orientation of the game character view.

The movement of the orientation of the third-person game character view can be important in, for example, role playing games where the game character <NUM> can interact with other objects and inhabitants of the game environment <NUM>. Typically, the interaction between the game character <NUM> and an object or inhabitant of the game environment <NUM> is driven, in part, by the orientation of the character view <NUM> or where the game character is "looking".

As mentioned above, the orientation of the first-person or third-person character view of the game environment <NUM>, represented by the arrow <NUM> in <FIG>, can generally be moved using one of the control components <NUM> of the control device <NUM>. In most games, the orientation <NUM> of the character view can rotate about a vertical axis <NUM> in clockwise and counterclockwise directions, as indicated by the arrow <NUM> shown in the simplified top plan view of the game character <NUM> in <FIG>. Thus, the orientation <NUM> may move from a starting orientation <NUM> to an ending orientation <NUM> by rotating the orientation <NUM> about the vertical axis <NUM> in the counterclockwise direction indicated by arrow <NUM>, or the clockwise direction.

Additionally, the orientation <NUM> of the character view may also pivot upward and downward about an axis <NUM>, as represented by the arrow <NUM> in the simplified side view of the game character <NUM> shown in <FIG>. Thus, the orientation <NUM> may move from a starting orientation <NUM> to an ending orientation <NUM> by pivoting the orientation <NUM> about the vertical axis <NUM> in the upward direction indicated by arrow <NUM>, as shown in <FIG>.

The movements of the orientation <NUM> of the character view may also include both the rotation about the vertical axis <NUM> and the pivoting about the axis <NUM> in response to the actuation of one or more of the control components <NUM> of the device <NUM>.

When the control device <NUM> is a computer mouse, such as mouse <NUM> shown in <FIG>, the orientation <NUM> of the game character's view can be rotated about the vertical axis <NUM> and/or pivoted up or down about the axis <NUM> in response to movements of the mouse across a surface <NUM>. For instance, movement of the mouse <NUM> across the surface in the directions indicated by arrow <NUM> can cause the orientation of the character view to rotate about the axis <NUM> in either a clockwise or counterclockwise direction. Similarly, movement of the mouse <NUM> across the surface in the direction indicated by arrow <NUM> can cause the orientation <NUM> of the character view to pivot upward or downward.

When the controller is a game controller, such as game controller <NUM> shown in <FIG>, the up, down, clockwise and counterclockwise movements of the orientation of the character view are typically performed in response to movements of the directional pad <NUM> or the joystick <NUM>, for example.

When the control device <NUM> is a keyboard, such as the keyboard <NUM> shown in <FIG>, the up, down, clockwise and counterclockwise movements of the orientation <NUM> of the character view are performed in response to actuation of separate keys <NUM>, such as the arrow keys 142A-D, for example.

The signals <NUM> produced by the control device <NUM> in response to actuations of the control components <NUM> that result in movements of the orientation <NUM> of the character view generally provide distance and direction information to the driver program <NUM> in accordance with conventional methods. The distance and direction information generally comprises a linear count of distance units in the given direction over a unit of time. The driver program <NUM> translates the distance and direction information from the signals <NUM> into movement information <NUM> (<FIG>) that is used by the microprocessor <NUM> to move the orientation <NUM> in the indicated direction in accordance with the video game application <NUM>. For example, when the signals <NUM> indicate a movement of <NUM> units of distance in a given direction, the driver program <NUM> translates the signals <NUM> such that they can be processed to produce a corresponding rotational movement of the orientation <NUM> of the character view about the one of the axes <NUM> and <NUM> in accordance with the video game application <NUM>.

When the control component <NUM> is a button, such as an arrow button 142A-D of the keyboard <NUM> (<FIG>), the signals <NUM> produced in response to actuation of the key indicate movement in the given direction, a distance and speed of which is based on each strike of the key and/or the duration of time that the key is pressed. Thus, for example, <NUM> strikes of the key over a period of one second, or depressing and holding the key for <NUM> second, may each constitute <NUM> units of distance to the driver program <NUM>. That distance and speed is then communicated to the microprocessor <NUM> which rotates the orientation <NUM> about the corresponding axis <NUM> or <NUM> in accordance with the video game application <NUM>.

When the control component <NUM> corresponds to the components of the mouse <NUM> that detect travel of the mouse across the surface <NUM>, the signals <NUM> produced in response to such movement of the mouse <NUM> indicate distances traveled in the directions <NUM> or <NUM> in which the mouse <NUM> is moved. The signals <NUM> also provide speed information based on the distance traveled by the mouse <NUM> per unit of time. Each unit of distance the mouse <NUM> travels in a given direction <NUM> or <NUM> is translated by the driver program <NUM> into the movement information <NUM> that moves the orientation <NUM> of the character view, as presented on the display <NUM>, an amount and direction as determined by the video game application <NUM>.

When the control component <NUM> is a directional pad <NUM> or a joystick <NUM> of the game controller <NUM>, the signals <NUM> generally indicate a direction in which the pad <NUM> or joystick <NUM> is deflected. The amount of the deflection from the quiescent state of the pad <NUM> or joystick <NUM> can be used to indicate a speed of the desired movement. The driver program <NUM> translates the direction, distance and speed of movement indicated by the signals <NUM> and provides the resultant movement information <NUM> to the microprocessor <NUM>, which operates to move the orientation <NUM> in accordance with the video game application <NUM>.

Embodiments are directed to systems, such as control system <NUM>, and methods for allowing a player to calibrate a desired operator-controlled movement of the orientation <NUM> of the game character view and assign the calibrated movement to a macro button <NUM> (<FIG>) of the control device <NUM>. The calibrated movement is stored by the view change settings <NUM>. Actuation of the macro button <NUM> then produces the calibrated movement of the orientation <NUM> of the game character view based on the view change settings <NUM>. Accordingly, embodiments allow a player to actuate the macro button <NUM> to perform a rotation of the orientation <NUM> of the character view about the vertical axis <NUM> (<FIG>), the horizontal axis <NUM> (<FIG>), or both the vertical and horizontal axes <NUM> and <NUM>. For example, rather than having to move the mouse <NUM> across the surface <NUM>, pressing a button or key for a period of time or a select number of times, or moving a directional pad <NUM> or joystick <NUM> in a given direction for a period of time, the operator only needs to press the macro button <NUM> to execute the player-operated movement of the orientation <NUM> as defined by the view change settings <NUM>.

One advantage of this "quick turn" feature is that it reduces the complexity of the controls for the video game by eliminating the need to use the control components <NUM> to execute a desired movement of the orientation <NUM>. For instance, in fast-paced first-person "shooter" video games, the player must constantly be looking for predator game characters in the game environment including performing <NUM> degree turns about the vertical axis <NUM> to see if anyone is lurking behind the game character <NUM>. Embodiments allow the player to set the view change settings <NUM> such that the game character <NUM> performs the desired <NUM> degree turn of the orientation <NUM> in response to actuation of the macro button <NUM>. The use of the macro button <NUM> thus frees the player from having to concentrate on making the desired <NUM> degree rotational movement of the orientation <NUM> using the control components <NUM> of the control device <NUM>.

Thus, in one embodiment of the control system <NUM>, the control device <NUM> includes the macro button <NUM>. Actuation of the macro button <NUM> produces a macro actuation signal <NUM> (<FIG>). The macro button <NUM> is distinct from the control components <NUM> that are programmed for use during play of the video game application <NUM>. The driver program <NUM> produces a view change output <NUM> (i.e., movement information) in response to the actuation of the macro button <NUM> and reception of the macro actuation signal <NUM>. The view change output <NUM> is based on the view change settings <NUM> stored in the memory 104C. The microprocessor <NUM> is configured to move the orientation <NUM> of the character view of the gaming environment <NUM> from a beginning orientation <NUM> to an ending orientation <NUM> based on the view change settings <NUM> in response to the view change output <NUM>, as illustrated in the simplified plan view of a game character <NUM> provided in <FIG>. As used herein, the view change output <NUM>, which is based on the view change settings <NUM>, mirrors the signal or information that would have been generated by the driver program <NUM> in response to the actuation of the control components <NUM> of the control device <NUM> that the player would have performed in order to move the orientation <NUM> from the beginning orientation <NUM> to the ending orientation <NUM>. Thus, the amount and direction that the orientation <NUM> moves in response to the actuation of the macro button <NUM> is determined, at least in part, by the view change settings <NUM>. Additional embodiments of the control system <NUM> will be described in combination with embodiments of the method illustrated in <FIG>.

<FIG> is a flowchart illustrating a method of using a control system, such as control system <NUM>, to move an orientation <NUM> of a character view of a gaming environment <NUM> in a video game, in accordance with embodiments. The method steps are generally performed in response to execution of instructions of the driver program <NUM> and the video game application <NUM> respectively stored in the tangible mediums represented by memories 104B and 104A, respectively, by the microprocessor <NUM>.

At step <NUM>, a view orientation move is calibrated including storing the view change settings <NUM> in memory 104C (<FIG>). Next, at step <NUM>, the view change output <NUM> is produced in response to the actuation of the macro button <NUM> or reception of the actuation output signal <NUM>. The orientation <NUM> of the character view of the gaming environment <NUM> is moved, at step <NUM>, from the beginning orientation <NUM> to the ending orientation <NUM> based on the view change settings <NUM> in response to the view change output <NUM>, as mentioned above and illustrated in the simplified plan view of a game character <NUM> provided in <FIG>. The movement of the orientation <NUM> is generally a rotation about an axis <NUM>, as indicated by arrow <NUM>. The direction of the rotation is determined by the view change settings <NUM>.

In one embodiment, the beginning orientation <NUM> corresponds to the orientation <NUM> of the character view during game play when the macro button <NUM> is actuated. The orientation <NUM> then moves to the ending orientation <NUM>, based on the view change settings <NUM>, during play of the video game <NUM>.

In order to simplify the discussion of the embodiments, the movement of the orientation <NUM> in accordance with embodiments will be described with reference to rotations about a single axis <NUM>, shown in <FIG>. The axis <NUM> represents one or more axes about which the control components <NUM> of the control device <NUM> are configured to rotate the orientation <NUM> of the character view. Thus, the movements described below may alternatively involve a rotation about the horizontal axis <NUM> alone, or simultaneous rotations about the vertical and horizontal axes <NUM> and <NUM>, based on the signals <NUM> produced by the control device <NUM>, for example. Accordingly, in one embodiment of step <NUM>, the axis <NUM> represents a single axis, which may correspond to the vertical axis <NUM> (<FIG>) or the horizontal axis <NUM> (<FIG>), about which the orientation <NUM> moves (i.e., rotates) from the beginning orientation <NUM> to the ending orientation <NUM> during step <NUM> based on the view change settings <NUM>. In another embodiment, the axis <NUM> represents a combination of the vertical and the horizontal axes <NUM> and <NUM>, and the orientation <NUM> moves or rotates from the beginning orientation <NUM> to the ending orientation <NUM> about the axis <NUM> during step <NUM>.

One embodiment of the calibrating step <NUM> is illustrated in the flowchart of <FIG>. At step <NUM> the calibration routine is started. In one embodiment, the calibration routine is started by pressing and holding the macro button <NUM> and, after a predetermined period of time, releasing the macro button <NUM>. In one embodiment, the predetermined period of time is approximately one second or more.

In one embodiment, the calibration routine is started during play of the video game <NUM>. Upon starting the calibration routine, the orientation <NUM> of the character view has a beginning orientation <NUM>, shown in <FIG>.

At step <NUM>, the orientation <NUM> of the character view is moved from a beginning orientation <NUM> to an ending orientation <NUM> about an axis <NUM> as indicated by arrow <NUM> during play of the video game <NUM>, as illustrated in <FIG>. As discussed above with regard to axis <NUM>, axis <NUM> can represent one or more axes about which the control components <NUM> of the control device <NUM> are configured to rotate the orientation <NUM> of the character view.

In one embodiment, the movement of the orientation <NUM> of the character view in step <NUM> comprises adjusting the orientation <NUM> of the character view using a control component <NUM> of the control device <NUM> that are generally pre-set to perform the desired movement of the orientation <NUM> during play of the video game <NUM>. Thus, the movement of the orientation <NUM> of the character view is performed without the use of the macro button <NUM>.

When the control device <NUM> is in the form of a computer mouse <NUM> (<FIG>), the step <NUM> can be performed using the control components <NUM> that are traditionally used to move the orientation <NUM> of the character view. For instance, the movement of the orientation <NUM> can be performed by moving the mouse <NUM> across the surface <NUM> in the direction indicated by arrow <NUM> and/or <NUM> to move the orientation <NUM> of the character view during play of the video game <NUM> from the beginning orientation <NUM> to the ending orientation <NUM>, as described above. Other embodiments include moving the orientation from the beginning orientation <NUM> to the ending orientation <NUM> using a game controller <NUM> (<FIG>) or a keyboard <NUM> (<FIG>), as described above.

At step <NUM>, the calibration routine is ended. The ending orientation <NUM> corresponds to the orientation <NUM> of the character view upon ending the calibration routine. In one embodiment, the calibration routine is ended by actuating the macro button <NUM>.

At step <NUM>, the view change settings <NUM> are produced based on the movement of the orientation <NUM> of the character view in step <NUM> and the view change settings are stored in the memory 104C at step <NUM>. In one embodiment, the view change settings <NUM> based on a difference between the beginning orientation <NUM> and the ending orientation <NUM>. Because the distance and direction information provided by the signals <NUM> of the control device <NUM> that correspond to movement of the orientation <NUM> are generally a linear count of distance units in the given direction over a unit of time, the difference between the first and second orientations can be obtained by simply subtracting the position value of the first orientation from the position value of the second orientation. The sign of the resulting difference indicates the direction in which the orientation <NUM> was moved. For instance, the beginning orientation <NUM> and the ending orientation <NUM> may have a set angular position relative to a reference <NUM>. In that case, the difference between the beginning and ending orientations <NUM> and <NUM> is equal to the angular position of the ending orientation <NUM> relative to the reference <NUM> less the angular position of the beginning orientation <NUM> relative to the reference <NUM>.

In one embodiment, the movement of the orientation <NUM> in step <NUM> following actuation of the macro button <NUM> matches the movement of the orientation <NUM> during the moving step <NUM>. That is the view change settings <NUM> are set to rotate the orientation <NUM> from the beginning orientation <NUM> in response to actuation of the macro button <NUM> by an amount that matches the difference between the beginning and ending orientations <NUM> and <NUM> set during the calibration routine.

In one embodiment of step <NUM>, the player uses the control component <NUM> of the control device <NUM> to move the orientation <NUM> of the character view about the vertical axis <NUM> approximately <NUM>. This is helpful when it is desired to have the view change settings <NUM> indicate <NUM> degrees and other specific angular turns. For instance, during play of a first-person video game, it may be desired to program the macro button <NUM> to perform a <NUM> degree turn to allow the game character <NUM> to quick take a look behind him or her. However, the game environment <NUM>, in which the game character <NUM> resides, may make it difficult to determine with any real precision a <NUM> degree turn from the beginning orientation <NUM> of the calibration routine. By having the player move the orientation <NUM> a full <NUM> degrees from the beginning orientation <NUM> of the calibration routine, the view change settings <NUM> can be set to one half the measured movement during the calibration routine to more precisely set the desired <NUM> degree turn.

In accordance with another embodiment, the view change settings <NUM> are set such that the movement of the orientation <NUM> in the moving step <NUM> does not match the difference between the beginning and ending orientations <NUM> and <NUM> set during the calibration routine. In one embodiment, the view change settings <NUM> are set such that the orientation <NUM> moves a fraction of the difference between the beginning and ending orientations <NUM> and <NUM> set during the calibration routine. Embodiments of the fraction include one-fourth, one-half and three-fourths of the difference between the beginning and ending orientations <NUM> and <NUM>.

In one embodiment, the view change settings <NUM> are configured to move the orientation <NUM> one-half of the difference between the beginning and ending orientations <NUM> and <NUM> achieved during the moving step <NUM>. This embodiment is particularly useful when it is desired to set the quick turn feature to execute a <NUM> degree turn upon actuation of the macro button <NUM> when it is difficult to know the degree to which the orientation <NUM> of the character view of the game character <NUM> has rotated from the beginning position <NUM> during the moving step <NUM>. In accordance with this embodiment, the player rotates the orientation <NUM> of the character view a full <NUM> degrees during play of the video game <NUM> (hereinafter "<NUM> degree calibration"), such that the beginning and ending orientations <NUM> and <NUM> are approximately aligned with each other, as illustrated in <FIG>. The view change settings <NUM> are then set to move the orientation <NUM> from the beginning position <NUM> approximately <NUM> degrees about the axis <NUM> to the ending position <NUM> during the moving step <NUM> upon actuation of the macro button <NUM>, as illustrated in <FIG>.

In accordance with another embodiment, following the <NUM> degree calibration, the view change settings <NUM> produced in step <NUM> are configured to move the orientation <NUM> from the beginning orientation <NUM> one quarter of the <NUM> degree calibrated turn or approximately <NUM> degrees to the ending orientation <NUM> during the moving step <NUM>. This quarter turn allows the player to take a quick look to the side through actuation of the macro button <NUM>.

In yet another embodiment, following the <NUM> degree calibration, the view change settings <NUM> produced in step <NUM> are configured to move the orientation <NUM> from the beginning orientation <NUM> three quarters or approximately <NUM> degrees to the ending orientation <NUM> during the moving step <NUM>. This three quarter turn allows the player to look to the opposite side of the game player <NUM> than that produced by the above-described quarter turn. Alternatively, this three quarter turn can be accomplished using the one quarter turn values for the view change settings <NUM>, but with a change in the designated direction, such that the view <NUM> is moved in the opposite direction than that of the quarter turn described above.

In one embodiment of the method illustrated in <FIG>, the orientation <NUM> of the character view is moved from the ending orientation <NUM> to the beginning orientation <NUM>, at step <NUM>. This generally occurs in response to a view return output contained in the movement information <NUM> that is generated by the driver program <NUM>. As used herein, the view change output <NUM> generally mirrors the movement information <NUM> that would have been generated by the driver program <NUM> in response to the actuation of the control components <NUM> of the control device <NUM> that the player would have performed in order to move the orientation <NUM> from the ending orientation <NUM> to the beginning orientation <NUM>.

In one embodiment, the view change output <NUM> is generated in response to a subsequent actuation of the macro button <NUM>. That is, following a first actuation of the macro button <NUM>, which triggers the moving step <NUM>, a second actuation of the macro button <NUM> triggers the moving step <NUM> and the microprocessor <NUM> moves the orientation <NUM> from the ending orientation <NUM> to the beginning orientation <NUM>.

In accordance with another embodiment, the view change output <NUM> is generated automatically by the driver program <NUM> after a predetermined period of time following the moving step <NUM>. Thus, after the player initially actuates the macro button <NUM>, the orientation <NUM> moves from the beginning orientation <NUM> to the ending orientation <NUM>. Then, after the predetermined period of time, the microprocessor <NUM> moves the orientation <NUM> from the ending orientation <NUM> back to the beginning orientation <NUM>.

In one embodiment, the actuation of the macro button <NUM> to trigger the moving step <NUM> comprises pressing and holding the macro button <NUM>. That is, the pressing and holding of the macro button <NUM> causes the production of the view change output (movement information <NUM>), which in turn causes the microprocessor <NUM> to move the orientation <NUM> from the beginning orientation <NUM> to the ending orientation <NUM>. While the macro button <NUM> is held, the orientation <NUM> remains substantially in the ending orientation <NUM>, unless possibly adjusted through actuation of one of the control components <NUM> of the control device <NUM>. The release of the macro button <NUM> causes the driver program <NUM> to produce the view return output (movement information <NUM>) and the microprocessor <NUM> responds by moving the orientation <NUM> from the ending orientation <NUM> to the beginning orientation <NUM>, in accordance with step <NUM>.

In accordance with one embodiment, the driver program <NUM> comprises instructions executable by the microprocessor <NUM> to generate a graphical user interface, which can be used by the player to configure the quick turn settings. <FIG> is a simplified diagram of a graphical user interface <NUM> in accordance with various embodiments. One embodiment of the interface <NUM> includes turn fraction settings <NUM>. One embodiment of the turn fraction settings <NUM> includes one or more fractions of quick turn that was calibrated during the calibrating step <NUM> (<FIG>). Exemplary embodiments of the fractions include a one quarter turn 242A, a one half turn 242B, and a three quarters turn 242C. The user may select the desired turn fraction setting <NUM> by selecting the box <NUM> adjacent the desired turn. For example, the player performs a <NUM> degree calibration turn during the calibrating step <NUM>, the player can quickly select whether the quick turn (step <NUM>) that is executed in response to actuation of the macro button <NUM> will be a <NUM> degree turn, a <NUM> degree turn, or a <NUM> degree turn by selecting the corresponding box <NUM> in the interface <NUM>.

In accordance with another embodiment, the speed at which the quick turn (step <NUM>) is executed is automatically set to the speed at which it was performed by the player during the calibration routine (step <NUM>). In another embodiment, the speed at which the quick turn (step <NUM>) is executed is automatically set to a predefined value.

In yet another embodiment, the speed at which the quick turn (step <NUM>) is execute is user-selectable. In one embodiment, the graphical user interface <NUM> includes a turn speed setting <NUM> where the user may select the desired speed at which the quick turn is performed. In one embodiment, the turn speed setting <NUM> comprises a slide bar <NUM> that is adjustable between slow and fast speed settings. Other embodiments include the display of discrete speed settings, such as "slow", "normal" and "fast" (not shown).

In accordance with another embodiment of the invention, the user may select a direction in which the quick turn is performed about the axis <NUM> (<FIG>). In one embodiment, the direction options are provided in the graphical user interface <NUM> where the user may select the quick turn to be performed to the left or counterclockwise direction by selecting box 248A or to the right or clockwise direction by selecting box 248B.

In accordance with one embodiment, the control device <NUM> includes a plurality of macro buttons, such as macro button <NUM> and macro button <NUM>, shown in <FIG>. Each of the macro buttons generally operates in accordance with the embodiments described above.

In one embodiment, the macro buttons <NUM> and <NUM> comprise a macro button pair, in which the actuation of the macro button <NUM> results in the quick turn (steps <NUM> and <NUM>) to be performed in the clockwise direction about the axis <NUM> (<FIG>) and the actuation of the macro button <NUM> results in the quick turn to be performed in the counterclockwise direction about the axis <NUM>.

Claim 1:
A control system (<NUM>) for use in combination with a video game (<NUM>) presented on a display (<NUM>), the video game including a character (<NUM>) having a character view (<NUM>) of a game environment (<NUM>), the character view having an orientation (<NUM>), the system comprising:
a control device (<NUM>) comprising control components (<NUM>) and a macro button (<NUM>), the control components (<NUM>) enabling an end user of the control device to move the orientation (<NUM>) of the character view (<NUM>) from a beginning orientation (<NUM>) to an ending orientation (<NUM>) along one or more axes of rotation;
a memory (104C) that stores view change settings (<NUM>) produced based on a difference between the beginning orientation (<NUM>) and the ending orientation (<NUM>);
a driver program (<NUM>) having a view change output (<NUM>) that is produced in response to an actuation of the macro button (<NUM>) and based on the view change settings (<NUM>); and
a microprocessor (<NUM>) configured to move the orientation (<NUM>) of the character view (<NUM>) of the game environment from the beginning orientation (<NUM>) to the ending orientation (<NUM>) in response to the view change output.