Storage medium having game program stored therein, game system, game apparatus, and game processing method

The game program uses vibration and sound feedback to mitigate communication delays in multiplayer games, improving user experience by ensuring timely feedback.

JP2026000223APending Publication Date: 2026-01-05NINTENDO CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2024097442
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-17
Publication Date
2026-01-05

AI Technical Summary

Technical Problem

Existing multiplayer games face issues with communication delays that affect user experience, particularly in online battles where immediate feedback is crucial.

Method used

Implementing a game program that uses a vibration device on the operation device to provide immediate feedback through vibration, independent of communication delays, and optionally accompanied by sound, to enhance user experience.

Benefits of technology

The immediate feedback through vibration and sound improves the user's perception of responsiveness, reducing the impact of communication delays and enhancing the overall gaming experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026000223000001_ABST
    Figure 2026000223000001_ABST
Patent Text Reader

Abstract

To provide a game program, a game system, a game device, and a game processing method for further improving bodily sensation in a game taking measures against communication delay.SOLUTION: A computer of an information processing apparatus is caused to execute a multi-play game in which a player character is controlled based on an operation input to an operation device and an opponent character is controlled based on data acquired by communication with another information processing apparatus in a virtual space, a delay time of the communication is specified in the multi-play game, and when a first determination condition based on the operation input is satisfied, a signal for vibrating a vibration device provided in the operation device is output regardless of the delay time, and a first action is caused to be started by the player character after a period corresponding to the length of the delay time further elapses.SELECTED DRAWING: Figure 22
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a game process in which a game is played by moving an operating device itself. [Background technology]

[0002] Conventionally, there has been known a game that allows online battles in which a player character performs a predetermined action, specifically a punching motion, by swinging an operating device (hereinafter referred to as a controller) (see, for example, Patent Document 1). In this game, a process is performed to synchronize the transmission and reception of information on the result of game processing. In this case, to prevent communication delays, a receiving terminal that receives punching start information from a transmitting terminal starts the punching motion, then processes the punching motion to shorten the duration, and returns the result information to the transmitting terminal. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6944812 Summary of the Invention [Problem to be solved by the invention]

[0004] In games that take measures to prevent communication delays, there is room for further improvement in the user experience. [Means for solving the problem]

[0005] In view of the above, the following configuration example can be given.

[0006] (Configuration 1) Configuration 1 is a game program for causing a computer of an information processing device to play a multiplayer game in a virtual space, in which the computer controls a player character based on operation input to an operation device and controls an opponent character based on data acquired through communication with another information processing device. In the multiplayer game, a communication delay time is specified, and when a first determination condition based on the operation input is satisfied, a signal is output to vibrate a vibration device provided on the operation device regardless of the delay time, and after a period corresponding to the length of the delay time has elapsed, the player character is caused to start a first action.

[0007] According to the above configuration, even when the start of the player character's action is delayed as a countermeasure against communication delays, the vibration that serves as feedback to the user is output in advance without delay, thereby reducing the impression that the player character's reaction is delayed and improving the user's experience.

[0008] (Configuration 2) In a second aspect of the first aspect, the operation device may include an inertial sensor. The operation input may include at least inertial data based on an output of the inertial sensor, and the first determination condition may be a condition related to the inertial data.

[0009] According to the above configuration, by applying it to feedback when performing intuitive and bodily input based on the output of the inertial sensor, it is possible to further improve the bodily sensation.

[0010] (Configuration 3) Configuration 3 is the same as configuration 1, and may further cause the computer to output a sound associated with the first action when the first action is started.

[0011] According to the above configuration, in a situation where the appearance and sound of the player character's action are matched, the user can feel only the vibration first, thereby improving the bodily sensation of the operation performed by the user.

[0012] (Configuration 4) Configuration 4 may be configured in the above-described configuration 1, further causing the computer to output a signal that vibrates the vibration device and also output a sound associated with the first action.

[0013] According to the above configuration, the sound output is not delayed relative to the vibration output, thereby improving the bodily sensation.

[0014] (Configuration 5) In a fifth aspect of the present invention, in any one of the first to fourth aspects, the multiplayer game may be a ball game, and the first action may be a shooting action of shooting the ball toward a goal.

[0015] According to the above configuration, by making the feedback vibration corresponding to the shooting of a shot felt without any delay in the operation, even if the shooting action by the player character is delayed, it is less likely to feel slow to the user, improving the user's experience.

[0016] (Configuration 6) In configuration 6, in the above configuration 5, the computer may further cause the player character to perform a block action to block a shot by the opponent character when a second determination condition based on an operation input is satisfied.

[0017] According to the above configuration, in a multiplayer online game in which players shoot and block, it is highly necessary to delay the shooting action in response to communication delays. Even in such a situation, however, the user's physical sensation regarding the shooting operation can be maintained by outputting vibrations in advance. [Effects of the Invention]

[0018] According to this embodiment, it is possible to improve the user's experience in a ball game in which measures are taken to prevent communication delays. [Brief explanation of the drawings]

[0019] [Figure 1] 1 is a schematic diagram showing an overall image of an information processing system according to an embodiment of the present invention; [Figure 2] Block diagram showing the hardware configuration of the server 1000 [Figure 3] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. [Figure 4] FIG. 10 shows an example of a state in which the left controller 3 and the right controller 4 are detached from the main unit 2. [Figure 5] Six-sided views showing an example of the main unit 2 [Figure 6] Six-sided diagram showing an example of the left controller 3 [Figure 7] Six-sided diagram showing an example of the right controller 4 [Figure 8] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 9] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 10] An example of a game screen according to this embodiment [Figure 11] An example of the user's (controller's) posture during gameplay [Figure 12] FIG. 1 is a diagram illustrating the flow of the game according to the present embodiment. [Figure 13] An example of vertical swing operation [Figure 14] An example of a game screen according to this embodiment [Figure 15] An example of how to switch to shoot mode [Figure 16] An example of a game screen according to this embodiment [Figure 17] An example of swing-up operation [Figure 18] An example of a game screen according to this embodiment [Figure 19] An example of an injection operation [Figure 20] An example of a game screen according to this embodiment [Figure 21] A diagram for explaining the processing flow after the injection operation [Figure 22]FIG. 1 is a diagram for explaining an outline of vibration output timing in this embodiment. [Figure 23] A memory map showing an example of various data stored in the DRAM 85 [Figure 24] A flowchart showing details of game processing according to the present embodiment. [Figure 25] Flowchart showing details of stop state processing [Figure 26] Flowchart showing details of moving state processing [Figure 27] Flowchart showing details of shoot mode processing [Figure 28] Flowchart showing details of shoot preparation processing [Figure 29] Flowchart showing details of processing during jump [Figure 30] Flowchart showing details of shooting process [Figure 31] Flowchart showing details of shooting process DETAILED DESCRIPTION OF THE INVENTION

[0020] An embodiment will be described below. Fig. 1 is a schematic diagram showing an overall image of an information processing system according to this embodiment. The information processing system according to this embodiment includes a plurality of game systems 1 and a server 1000. The server 1000 and the game systems 1 are configured to be able to communicate with each other via a network such as the Internet. This embodiment illustrates a ball game process in which, with this configuration, game systems 1 play against each other while communicating with the server 1000 as necessary.

[0021] [Server hardware configuration] Next, the hardware configuration of the server 1000 will be described. FIG. 2 is a block diagram showing the hardware configuration of the server 1000. The server 1000 includes at least a processor 1001, a storage unit 1002, and a communication unit 1003. The processor 1001 executes various programs for controlling each server. The storage unit 1002 stores various programs executed by the processor 1001 and various data used by the processor 1001. The communication unit 1003 is connected to a network via wired or wireless communication, and transmits and receives predetermined data to and from the game device 1. Note that while the present embodiment illustrates an example in which there is one server 1000, the server 1000 may be a single server or may be configured as a group of servers performing distributed processing.

[0022] Next, the game system 1 will be described. An example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as the game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. The game system 1 can also be used with the main unit 2, the left controller 3, and the right controller 4 separate from each other (see FIG. 4). Below, the hardware configuration of the game system 1 in this embodiment will be described, followed by a description of the control of the game system 1 in this embodiment.

[0023] FIG. 3 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. As shown in FIG. 3, the left controller 3 and the right controller 4 are each attached to the main unit 2 and integrated together. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and the right controller 4 are devices that have operation units that allow the player to perform inputs.

[0024] Figure 4 is a diagram showing an example of the state in which the left controller 3 and the right controller 4 are detached from the main unit 2. As shown in Figures 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. Note that, below, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."

[0025] Fig. 5 is a six-sided view showing an example of the main unit 2. As shown in Fig. 5, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular.

[0026] The shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Furthermore, the main unit 2 alone or an integrated device in which the left controller 3 and right controller 4 are attached to the main unit 2 may be a portable device. Furthermore, the main unit 2 or the integrated device may be a handheld device. Furthermore, the main unit 2 or the integrated device may be a portable device.

[0027] 5, the main unit 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays images generated by the main unit 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.

[0028] The main device 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (for example, a resistive type).

[0029] The main unit 2 is provided with a speaker (i.e., speaker 88 shown in FIG. 8) inside the housing 11. As shown in FIG. 5, speaker holes 11a and 11b are formed in the main surface of the housing 11. The output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.

[0030] The main unit 2 also has a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via a wired connection, and a right terminal 21, which is a terminal for the main unit 2 to communicate with the right controller 4 via a wired connection.

[0031] As shown in FIG. 5, the main unit 2 includes a slot 23. The slot 23 is provided on the upper side of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be attached thereto. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used by the main unit 2 (e.g., application save data, etc.) and / or programs executed by the main unit 2 (e.g., application programs, etc.). The main unit 2 also includes a power button 28.

[0032] The main unit 2 has a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the all-in-one device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).

[0033] FIG. 6 is a six-sided view showing an example of the left controller 3. As shown in FIG. 6, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction in FIG. 6 (the y-axis direction shown in FIG. 6). The left controller 3 can also be held in a vertically long orientation when detached from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.

[0034] The left controller 3 is equipped with a left analog stick (hereinafter referred to as the left stick) 32, which is an example of a directional input device. As shown in FIG. 6, the left stick 32 is provided on the main surface of the housing 31. The left stick 32 can be used as a directional input unit that can input directions. By tilting the left stick 32, the player can input a direction corresponding to the tilt direction (and input a magnitude corresponding to the tilt angle). Note that the left controller 3 may be equipped with a cross key or a slide stick that can perform slide inputs, instead of an analog stick, as a directional input unit. In this embodiment, input can be made by pressing down the left stick 32.

[0035] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. The left controller 3 is also equipped with a record button 37 and a - (minus) button 47. The left controller 3 is equipped with a first L button 38 and a ZL button 39 on the upper left side of the housing 31. The left controller 3 is also equipped with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached to the main unit 2. These operation buttons are used to issue instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.

[0036] The left controller 3 also includes a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0037] FIG. 7 is a six-sided view showing an example of the right controller 4. As shown in FIG. 7, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction in FIG. 7 (the y-axis direction shown in FIG. 7). The right controller 4 can also be held in a vertically long orientation when detached from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.

[0038] Like the left controller 3, the right controller 4 is equipped with a right analog stick (hereinafter referred to as the right stick) 52 as a directional input unit. In this embodiment, the right stick 52 has the same configuration as the left stick 32 of the left controller 3. The right controller 4 may also be equipped with a cross key or a slide stick capable of slide input, instead of an analog stick. Like the left controller 3, the right controller 4 is equipped with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 is further equipped with a + (plus) button 57 and a home button 58. The right controller 4 is also equipped with a first R button 60 and a ZR button 61 on the upper right side of the housing 51. Like the left controller 3, the right controller 4 is also equipped with a second L button 65 and a second R button 66.

[0039] The right controller 4 also includes a terminal 64 for wired communication between the right controller 4 and the main unit 2.

[0040] Fig. 8 is a block diagram showing an example of the internal configuration of main unit 2. In addition to the configuration shown in Fig. 5, main unit 2 includes components 81-91, 97, and 98 shown in Fig. 8. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in housing 11.

[0041] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be composed of, for example, only a CPU (Central Processing Unit), or may be composed of an SoC (System-on-a-chip) that includes multiple functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various types of information processing by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium inserted into slot 23, etc.).

[0042] The main device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media built into the main device 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used primarily to store various types of data (which may be programs) saved in the main device 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.

[0043] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted into the slot 23 in accordance with instructions from the processor 81.

[0044] The processor 81 reads and writes data from and to the flash memory 84, DRAM 85, and the above-mentioned storage media as appropriate, to execute the above-mentioned information processing.

[0045] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with external devices using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a proprietary protocol or infrared communication) as a second communication mode. Note that wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication," in which data is transmitted and received by direct communication between multiple main units 2.

[0046] The main unit 2 is equipped with a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0047] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When performing wired communication with the right controller 4, the processor 81 transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0048] Here, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple left controllers 3. The main unit 2 can also communicate simultaneously (in other words, in parallel) with multiple right controllers 4. Therefore, multiple players can simultaneously input to the main unit 2 using their own sets of left controllers 3 and right controllers 4. For example, a first player can input to the main unit 2 using a first set of left controllers 3 and right controllers 4, while a second player can simultaneously input to the main unit 2 using a second set of left controllers 3 and right controllers 4.

[0049] The main device 2 includes a touch panel controller 86, which is a circuit that controls the touch panel 13. The touch panel controller 86 is connected between the touch panel 13 and the processor 81. Based on a signal from the touch panel 13, the touch panel controller 86 generates data indicating, for example, the position where a touch input was made, and outputs the data to the processor 81.

[0050] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside.

[0051] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speakers 88 and the audio input / output terminal 25.

[0052] The main device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each part of the main device 2 (specifically, each part that receives power from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on instructions from the processor 81.

[0053] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main device 2 via lower terminal 27, battery 98 is charged with the supplied power.

[0054] Figure 9 is a block diagram showing an example of the internal configuration of the main unit 2, left controller 3, and right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Figure 9 because they are shown in Figure 8.

[0055] The left controller 3 is equipped with a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 9 , the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 both via wired communication via the terminal 42 and via wireless communication without using the terminal 42. The communication control unit 101 controls the communication method used by the left controller 3 with the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. When the left controller 3 is detached from the main unit 2, the communication control unit 101 performs wireless communication with the main unit 2 (specifically, the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

[0056] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured, for example, by a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.

[0057] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes a left stick 32. Each button 103 and left stick 32 repeatedly outputs information relating to an operation performed on that button 103 and left stick 32 to the communication control unit 101 at an appropriate timing.

[0058] The left controller 3 is equipped with an inertial sensor. Specifically, the left controller 3 is equipped with an acceleration sensor 104. The left controller 3 is also equipped with an angular velocity sensor 105. In this embodiment, the acceleration sensor 104 detects the magnitude of acceleration along three predetermined axes (for example, the x, y, and z axes shown in FIG. 6). The acceleration sensor 104 may detect acceleration along one or two axes. In this embodiment, the angular velocity sensor 105 detects angular velocity around three predetermined axes (for example, the x, y, and z axes shown in FIG. 6). The angular velocity sensor 105 may detect angular velocity around one or two axes. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. The detection results of the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timing.

[0059] The communication control unit 101 acquires information about the input (specifically, information about the operation or the detection results by the sensors) from each input unit (specifically, each button 103, left stick 32, and each sensor 104 and 105). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a predetermined process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every predetermined time. The interval at which the information about the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0060] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input made to the left controller 3. That is, the main unit 2 can determine the operation of each button 103 and left stick 32 based on the operation data. Furthermore, the main unit 2 can calculate information regarding the movement and / or posture of the left controller 3 based on the operation data (specifically, the detection results of the acceleration sensor 104 and the angular velocity sensor 105).

[0061] The left controller 3 is equipped with a vibrator 107 for notifying the user by vibration. In this embodiment, the vibrator 107 is controlled by commands from the main unit 2. That is, when the communication control unit 101 receives the command from the main unit 2, it drives the vibrator 107 in accordance with the command. Here, the left controller 3 is equipped with a codec unit 106. When the communication control unit 101 receives the command, it outputs a control signal corresponding to the command to the codec unit 106. The codec unit 106 generates a drive signal for driving the vibrator 107 from the control signal from the communication control unit 101 and provides the drive signal to the vibrator 107. This causes the vibrator 107 to operate.

[0062] More specifically, the vibrator 107 is a linear vibration motor. Unlike conventional motors that perform rotary motion, a linear vibration motor is driven in a predetermined direction in response to an input voltage, allowing it to vibrate at an amplitude and frequency corresponding to the input voltage waveform. In this embodiment, the vibration control signal transmitted from the main unit 2 to the left controller 3 may be a digital signal representing the frequency and amplitude per unit time. In another embodiment, the main unit 2 may transmit information representing the waveform itself, but transmitting only the amplitude and frequency can reduce the amount of communication data. To further reduce the amount of data, the main unit 2 may transmit only the difference from the previous value instead of the current amplitude and frequency values. In this case, the codec unit 106 converts the digital signal representing the amplitude and frequency values ​​acquired from the communication control unit 101 into an analog voltage waveform and inputs a voltage corresponding to the waveform to drive the vibrator 107. Therefore, the main unit 2 can control the amplitude and frequency at which the vibrator 107 vibrates by changing the amplitude and frequency transmitted per unit time. The main unit 2 may transmit two or more amplitudes and frequencies to the left controller 3. In this case, the codec unit 106 can generate a voltage waveform for controlling the vibrator 107 by combining the waveforms indicated by the received multiple amplitudes and frequencies.

[0063] The left controller 3 is equipped with a power supply unit 108. In this embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).

[0064] As shown in FIG. 9, the right controller 4 is equipped with a communication control unit 111 that communicates with the main unit 2. The right controller 4 also has a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component, including the terminal 64. The communication control unit 111 and memory 112 have the same functions as the communication control unit 101 and memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both via wired communication via the terminal 64 and via wireless communication that does not use the terminal 64 (specifically, communication in accordance with the Bluetooth (registered trademark) standard), and controls the method of communication that the right controller 4 uses with the main unit 2.

[0065] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113, a right stick 52, and inertial sensors (an acceleration sensor 114 and an angular velocity sensor 115). These input units have the same functions as those of the left controller 3, and operate in the same manner.

[0066] The right controller 4 also includes a vibrator 117 and a codec unit 116. The vibrator 117 and the codec unit 116 operate in the same manner as the vibrator 107 and the codec unit 106 of the left controller 3. That is, the communication control unit 111 operates the vibrator 117 using the codec unit 116 in accordance with instructions from the main unit 2.

[0067] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3 and operates in the same manner.

[0068] [Outline of Game Processing in This Embodiment] Next, an overview of the operation of the game processing executed by the game system 1 according to this embodiment will be described. As described above, in the game system 1, the main unit 2 is configured so that the left controller 3 and the right controller 4 can be detachably attached to each other. When playing a game with the left controller 3 and the right controller 4 attached to the main unit 2, game images are output to the display 12. Furthermore, when the main unit 2 alone with the left controller 3 and the right controller 4 detached is attached to a cradle, the main unit 2 can also output game images to a stationary monitor or the like via the cradle. In this embodiment, the latter mode of gameplay will be described as an example. Specifically, the main unit 2 alone with the left controller 3 and the right controller 4 detached is attached to a cradle, and the main unit 2 outputs game images and the like to a stationary monitor or the like via the cradle.

[0069] In the following description, the left controller 3 and the right controller 4 may be collectively referred to simply as "controllers."

[0070] [About the assumed game] Next, an overview of the game assumed in this embodiment will be described. The game assumed in this embodiment is a ball game. In this embodiment, a basketball game will be taken as an example of a ball game. In this embodiment, a basketball game in which two players compete against each other via communication is assumed. FIG. 10 shows an example of a game screen of the basketball game in this embodiment (hereinafter simply referred to as the game). In addition, FIG. 11 shows an example of the posture of the user (controller) when playing the game. Both examples are assumed to be those immediately after game play has started.

[0071] In this game, the user controls a player character object (hereinafter referred to as a PC) using the right controller 4 or the left controller 3. In this embodiment, when starting to play the game, the user starts the game with the controller's initial orientation (reference orientation) set so that the tip of the controller to be used for play faces the monitor (the positive z-axis side of the real-space coordinate system in FIG. 11 , hereinafter referred to as the forward direction in real space) and the main surface of the controller faces upward in real space (the positive y-axis side of the real-space coordinate system in FIG. 11 , hereinafter referred to as the upward direction in real space). Specifically, when using the right controller 4 for play, the tip of the controller refers to the side where the first R button 60 and ZR button 61 are provided (the positive y-axis side in FIG. 7 ). When using the left controller 3 for play, the tip of the controller refers to the side where the first L button 38 and ZL button 39 are provided (the positive y-axis side in FIG. 6 ). The following description will primarily assume that the user is using the right controller 4, with reference made to the use of the left controller 3 as needed.

[0072] Next, the screen example in Fig. 10 will be described. In Fig. 10, a PC 201, a teammate character 202, and two opposing team characters (hereinafter referred to as ECs) 203 are present on a field in a virtual space simulating a basketball court. The movements of the teammate character 202 and the ECs 203 are controlled based on the operations of another user with whom the PC 201 is communicating. Also, part of the goal post is displayed at the back of the screen. Also, the PC 201 is in possession of a ball 204 and is dribbling the ball on the spot. Note that this example shows a case where game play is started with the player character in possession of the ball.

[0073] [Stopped and moving status summary] Next, the general flow of play and example operations in this game will be described. FIG. 12 is a schematic diagram showing the transition of the state of the PC 201 (hereinafter referred to as the PC state) as the flow of play in this game progresses. Immediately after game play begins, the PC 201 is in a "stopped state." The stopped state is a state in which the PC 201 is standing still and performing a dribbling motion without moving. In this stopped state, as shown in FIG. 13, if the user performs an operation of swinging the right controller 4 up or down in real space with the tip of the right controller 4 facing generally forward (hereinafter referred to as a vertical swing operation), the PC state can be transitioned to a "moving state." Thereafter, this moving state is maintained as long as the vertical swing operation is continued. The moving state is a state in which the PC 201 moves while dribbling toward a predetermined destination point on the field, specifically, a predetermined point below the basket. In other words, it is a state in which the PC 201 is performing a dribbling motion that involves movement. FIG. 14 shows an example screen when the PC 201 is in a moving state. FIG. 14 shows the PC 201 moving toward the goal while avoiding the EC 203.

[0074] The movement route of the PC 201 when it is moving is calculated as follows. First, the straight-line distance from the current position of the PC 201 to the destination point is calculated as the route. Then, if there is an obstacle such as an EC on this straight line, a route that bypasses it is calculated. If there is no obstacle, the straight-line route is used.

[0075] Furthermore, when the PC 201 is in the moving state, the user can stop the vertical swing operation to transition the PC 201 to the stopped state. By transitioning to the stopped state, the movement of the PC 201 can be stopped, and a dribbling motion can be performed on the spot.

[0076] [About Shoot Mode] Returning to FIG. 12, shooting will now be described. When the user performs a shoot mode transition operation while the PC 201 is in either a stationary or moving state, the PC 201 enters shoot mode. Shoot mode is a mode for shooting, and includes three states: a "shoot preparation state," a "jumping state," and a "shoot state," which will be described below. When the user performs a shoot mode transition operation, the PC state first transitions to the "shoot preparation state." The shoot preparation state is a state in which the PC 201 holds the ball 204 and waits. In this example, the shoot mode transition operation is performed by pressing the ZR button 61 when using the right controller 4, or by pressing the ZL button 39 when using the left controller 3. For example, when the user presses the ZR button 61 as shown in FIG. 15, a shoot mode screen such as that shown in FIG. 16 is displayed. Before entering shoot mode, the virtual camera is positioned to capture a fairly wide range of the field, as shown in FIGS. 10 and 14 above. On the other hand, during the shoot mode, the virtual camera moves to a position behind the PC 201 where the goal ring is displayed on the screen, and is zoomed in to a certain extent.

[0077] If the user performs a "swing-up operation" within a predetermined time after the PC 201 has transitioned to the shoot preparation state, the PC state transitions to a "jumping state." A swing-up operation is an operation in which the right controller 4 is swung upward in real space, as shown in FIG. 17. The jumping state is a state in which the PC 201 is performing an action of jumping with the ball raised (hereinafter referred to as a jumping action), as shown in FIG. 18. Note that in this embodiment, if a swing-up operation is not performed within the predetermined time, the shot is treated as having failed at that point (this is treated as a type of violation).

[0078] The jumping state continues until the jumping motion ends (the PC 201 lands). Then, during this jumping state, if the user performs an operation of swinging the right controller 4 down in a forward direction in real space (hereinafter referred to as a "shot operation"), as shown in FIG. 19, the PC state transitions to a "shooting state." During the shot operation, vibration is output to the right controller 4 (vibration will be described later). The shoot state is the state after the PC 201 shoots (shoots) the ball 204, as shown in FIG. 20. When the state transitions to the shoot state, the PC 201 starts a "shot motion" in which the PC 201 shoots the ball 204 toward the goal post, and the ball 204 starts moving. The movement trajectory of the ball 204 in the shoot state is calculated based on the acceleration and angular velocity detected by the right controller 4 when the shot operation is performed. In this embodiment, a case in which a shot operation is not performed during the jumping state is also treated as a failed shot.

[0079] [About the block action] Here, a "block action" performed by the EC 203 in the shoot mode will be described. In the above-mentioned FIGS. 16, 18, and 20, the EC 203 is shown to be located in close proximity to the PC 201. The EC 203 may perform a block action by jumping with both hands raised, as shown in the above-mentioned FIG. 20, in synchronization with the shooting movement of the PC 201. The block action may be performed based on a predetermined operation (hereinafter referred to as a "block operation") by the opponent player operating the EC 203. For example, a block operation is an operation of swinging the controller upward. If the block operation is performed at the right time, the shot by the PC 201 is blocked, and this case is also treated as a missed shot.

[0080] 16, 18, and 20 show examples in which the PC 201 (user) is on the offensive side. When the PC 201 is on the defensive side, the user can also block the opposing team's shot by performing the above-mentioned block operation.

[0081] Here, we will provide additional information about the outline of the processing related to the success or failure of the block. FIG. 21 shows an outline of the processing flow after the above-mentioned ejection operation is performed. In FIG. 21, the left side shows the processing performed by the game system 1 on the offensive side (PC 201 in possession of ball 204), and the right side shows the processing performed by the game system 1 on the defensive side. In this embodiment, the defensive side game system determines whether the block was successful and returns the result to the offensive side game system. Specifically, first, the offensive side game system 1 detects the ejection operation (P01). Next, the trajectory of the ball 204 is calculated based on the attitude and swing speed of the controller during the ejection operation (P02). Next, game data including information on the trajectory of the ball is transmitted from the offensive side game system 1 to the defensive side game system 1 (P03), indicating that the ejection operation has been performed.

[0082] Next, based on the received game data, the game system 1 on the defense side starts to control the action of the PC 201 (offense character) in the defense side's game system 1 regarding the shot and the movement of the ball 204. Furthermore, the game system 1 on the defense side then determines whether or not the above-mentioned block operation has been performed, and if so, determines the block result, i.e., whether or not the shot was successfully blocked, based on the timing of the operation, etc. (P04).

[0083] Once the block result is determined, information indicating the result is transmitted from the game system 1 on the defense side to the game system 1 on the offense side (P05).

[0084] Next, in the offensive game system 1, the movement of the EC 203 is controlled based on the received block result so that an expression reflecting the block result is produced (P06). Also, in the defensive game system 1, the movement of the PC 201 and the ball 204 is controlled so that an expression reflecting the block result is produced (P07).

[0085] After the above-described shot operation is performed, the result of the shot, whether the shot was successful or not, is determined, and one set of play ends. In this embodiment, if the ball 204 enters the goal ring, the shot is determined to be successful. If the shot is blocked, or if the ball 204 is not blocked but does not enter the goal ring, the shot is determined to be not successful. After the result of the shot is determined, the next set of play begins, and a screen like that shown in FIG. 8 is displayed.

[0086] The score for a successful shot is determined based on the position of PC 201 on the field when the shot transitions to the shooting preparation state. For example, if the shot is taken in the area outside the semicircle below the goal, which is set as the "3-point area" on the field, the score will be 3 points.

[0087] In this way, the game in this example involves moving PC201 toward the goal using a vertical swing operation, transitioning to a shooting preparation state at the appropriate time, performing a series of swing-up and swing-down operations to shoot, and then completing one set of play based on the result of the shot.

[0088] [About communication delays] As described above, the basketball game according to this embodiment is a game that allows online competition. To synchronize the game progress, data including operation information of each player is transmitted and received between each game system. However, communication delays may occur during communication between game systems. In consideration of such communication delays, this embodiment performs the following control regarding the processing related to the block action shown in FIG. 21.

[0089] In this embodiment, even when a shooting operation is detected in the game system 1 on the offensive side, the shooting motion and movement of the ball 204 are not immediately initiated at that timing. Instead, the shooting motion of the PC 201 and the movement of the ball 204 are delayed by a predetermined period corresponding to a communication delay before the shooting motion and movement of the ball 204 are initiated. This is because, if the shooting motion and movement of the ball 204 were initiated immediately at the timing when the shooting operation is detected, a communication delay could cause an unnatural display in the game system 1 on the offensive side. For example, even if a block is actually successful, the EC 203 may not perform a blocking action, or may appear to perform a blocking action with a delay, but the ball 204 may be bounced or the position of the ball may suddenly change. Conversely, if the block is too early, the ball 204 may appear to hit the EC 203 even though the block is not actually successful, or the ball 204 may pass through the EC 203's body and move. As described above, in this embodiment, the offensive game system 1 transmits a notification that a shot has been made to the defensive game system 1, the defensive game system 1 determines whether the block action was successful, and the offensive game system 1 receives the result. Considering the communication delay, there is a time lag corresponding to the communication delay between when the offensive game system 1 transmits a notification that a shot has been made to the defensive game system 1 and when the result of the block action is received. Therefore, if the ball 204 starts moving immediately after the shot operation is detected, it will move a certain distance before the result of the block action is received. As a result, a situation may occur in which, by the time the result of the block action is received and the EC 203 is caused to perform the block action motion to reflect that result, the position of the ball 204 has advanced toward the goal post relative to the position of the EC 203. This may result in the unnatural display described above.In consideration of this, in this embodiment, the timing to start the shooting motion and the movement of the ball 204 is controlled to be delayed by a period corresponding to the communication delay from the timing of detection of the shooting operation. This allows time to receive the results of the block action, making it less likely that an unnatural expression will be produced.

[0090] In this embodiment, the start of the ejection motion and the start of movement of ball 204 are controlled to occur at the same timing. This is because if there is a discrepancy in the start timing of the two, it may give the user a visual sense of incongruity, for example, as if the PC 201 is making a throwing motion but the ball 204 is not moving. In particular, when expressing an action of throwing a ball held in the hand, such as a basketball shot, if there is a large discrepancy between the motion of throwing the ball and the start of the movement of the ball, the visual sense of incongruity will increase, so it is effective to synchronize the start of the ejection motion and the start of movement of ball 204 as described above.

[0091] [About vibration] In this embodiment, when the ejection operation is performed, as shown in FIG. 19 , the controller is also vibrated (a vibration signal is output). This allows the user to intuitively recognize that the ejection operation (shot) has been performed. Regarding the timing of the controller vibration, in this embodiment, the controller is vibrated when the ejection operation is detected, rather than when the ejection motion starts. FIG. 22 is a schematic diagram showing the relationship between the timing of the ejection operation, the timing of the vibration output, and the timing of the ejection motion and the movement start of the ball 204 in this embodiment. FIG. 22 shows that vibration is output when the ejection operation is performed, and then the ejection motion and the movement of the ball 204 start after a time corresponding to a communication delay has elapsed. When vibration is output at the timing shown in FIG. 22 , strictly speaking, vibration is output when the ejection operation is detected, but in the game screen for that frame, the PC 201 is still in a jumping position, and the ejection motion has not yet started. In other words, since the actual ejection motion starts with a delay from the ejection operation, strictly speaking, there is a slight discrepancy between the ejection operation and the corresponding visual feedback. Regarding this point, for example, if the timing of the vibration output is synchronized with the start of the ejection motion, the tactile feedback and visual feedback via vibration will coincide, but because both are delayed, the overall sense of delay will be noticeable. However, by outputting only vibration first when the ejection operation is detected as described above, and allowing the user to experience the vibration as a shooting operation, the sense of discomfort caused by the delay in the visual feedback can be alleviated. In other words, because the tactile feedback in the form of vibration is obtained first, the user can intuitively recognize that the shot has been made, and even if the visual feedback is slightly delayed, the delay is not felt or the sense of discomfort can be alleviated.

[0092] [Details of the game processing of this embodiment] Next, the game processing in this embodiment will be described in more detail with reference to Figures 23 to 31. Here, the processing for controlling the PC 201 in possession of the ball 204 (the PC 201 on offense) will be mainly described, and a detailed description of the PC 201 on defense and other game processing will be omitted. The following description will be given taking the case where the right controller 4 is used as an example.

[0093] [About data usage] First, the various data used in this game processing will be described. Fig. 23 is a memory map showing an example of the various data stored in the DRAM 85 of the main unit 2. The DRAM 85 of the main unit 2 stores a game program 301, PC data 302, player character data 311, operation data 312, controller posture data 316, delay time data 317, a shot start flag 318, an end flag 319, end state data 320, other machine data 321, and shot position information 322.

[0094] The game program 301 is a program for executing the game processing in this embodiment.

[0095] The PC data 302 is data related to the PC 201. The PC data 302 includes current position data 303, PC movement parameters 304, movement status flag 305, shoot mode flag 306, preparation status flag 307, jumping status flag 308, shoot status flag 309, etc. Although not shown, the PC data 302 also includes various data required for game processing, such as data indicating the appearance of the PC 201 (polygon data, etc.) and various motion data (animation data) performed by the PC 201.

[0096] The current position data 303 indicates the current position of the PC 201 on the field.

[0097] The PC movement parameters 304 are data used to control the movement of the PC 201. For example, the PC movement parameters 304 include parameters indicating the movement direction and movement speed of the PC 201.

[0098] The moving state flag 305 is a flag that indicates whether the PC state is moving or stationary. When it is on, it indicates a moving state, and when it is off, it indicates a stationary state. The initial value of the moving state flag 305 is assumed to be off.

[0099] The shoot mode flag 306 is a flag that indicates whether or not the current mode is shoot mode. When it is on, it indicates that the current mode is shoot mode, and when it is off, it indicates that the current mode is not shoot mode. The initial value of the shoot mode flag 306 is off.

[0100] The ready state flag 307 is a flag that indicates whether the PC state is ready to shoot or not. When it is on, it indicates that the PC is ready to shoot, and when it is off, it indicates that the PC is not ready to shoot. The initial value of the ready state flag 307 is assumed to be off.

[0101] The jumping state flag 308 is a flag that indicates whether the PC state is in a jumping state. When it is on, it indicates that the PC is in a jumping state, and when it is off, it indicates that the PC is not in a jumping state. The initial value of the jumping state flag 308 is set to off.

[0102] The shoot state flag 309 is a flag that indicates whether the PC state is in a shoot state or not. When it is on, it indicates that the PC state is in a shoot state, and when it is off, it indicates that the PC state is not in a shoot state. The initial value of the shoot state flag 309 is assumed to be off.

[0103] Next, the player character data 311 is data relating to character objects other than the PC 201, specifically, the teammate characters 202 and the EC 203. The player character data 311 includes various parameters for controlling the actions of each character object.

[0104] Next, the operation data 312 is data obtained from the controller operated by the user. In other words, it is data indicating the operation content performed by the user. Here, data obtained from the right controller 4 is taken as an example, but if the left controller 3 is used, the operation data is obtained as operation data for the left controller 3. The operation data 312 includes at least button data 313, acceleration data 314, and angular velocity data 315. The button data 313 is data indicating the press states of various buttons on the right controller 4. The acceleration data 314 indicates the detection results of the acceleration sensor 114, and the angular velocity data 315 indicates the detection results of the angular velocity sensor 115.

[0105] Next, the controller attitude data 316 is data relating to the current attitude of the controller.

[0106] The delay time data 317 is data indicating the above-mentioned communication delay time. In this embodiment, as will be described later, the delay time is measured and identified in the processing for each frame, and is stored as the delay time data 317.

[0107] The shot start flag 318 is a flag for indicating whether the shot operation has been performed or has been performed (shoot state). The shot start flag 318 is set to ON when the shot operation is performed. The initial value is OFF.

[0108] The end flag 319 is a flag that indicates whether the result of the shot has been determined. The end flag 319 is initially off, and is set to on once the result of the shot has been determined.

[0109] The end state data 320 is data that indicates whether the shot was successful (a point was scored) or unsuccessful.

[0110] The other machine data 321 is data that temporarily stores data received from other game systems 1 in the session related to the current match. The other machine data 321 includes various information that indicates the operation content performed in the other game systems 1, the results of the above-mentioned block action, etc.

[0111] The shooting position information 322 is data indicating the position on the field when the PC 201 transitions to the shooting preparation state.

[0112] In addition, although not shown, data relating to the ball 204 (appearance data and parameters for movement control) and various data necessary for game processing such as score status are also generated as appropriate and stored in the DRAM 85.

[0113] [Details of the processing performed by Processor 81] Next, details of the game processing in this embodiment will be explained. Here, an example will be explained in which the user is playing using the right controller 4. Furthermore, the flowchart shown below is merely an example of the processing process. Therefore, the processing order of each step may be changed as long as the same results are obtained. Furthermore, the values ​​of variables and thresholds used in the determination steps are merely examples, and other values ​​may be used as necessary.

[0114] Fig. 24 is a flowchart showing details of the game processing according to this embodiment. The processing loop relating to steps S1 to S9 in Fig. 24 is repeatedly executed a predetermined number of times per second according to the frame rate. In Fig. 24, first, in step S1, processor 81 acquires operation data 312. Processor 81 also receives other-machine data 321 from each of the other game systems 1.

[0115] Next, in step S2, processor 81 identifies the communication delay time and stores it as delay time data 317. Any method may be used for this identification, but for example, when receiving other device data 321, the delay time in the current frame may be measured, the average value of delay times for several frames may be calculated, and this average value may be identified as the delay time.

[0116] Next, in step S3, processor 81 controls the actions of each character other than PC 201 based on the received other-device data 321. For example, if other-device data 321 includes information on the result of a block action, control is performed to cause EC 203 to execute the block action.

[0117] Next, in step S4, processor 81 determines whether shoot mode flag 306 is on. If the result of this determination is that shoot mode flag 306 is off (NO in step S4), then in step S5, processor 81 determines whether moving state flag 305 is on. If the result of this determination is that moving state flag 305 is off (NO in step S5), processor 81 performs stopped state processing in step S11. On the other hand, if moving state flag 305 is on (YES in step S5), processor 81 performs moving state processing in step S6. The stopped state processing and moving state processing will be described below in order.

[0118] [Stop state processing] 25 is a flowchart showing the details of the stop state process. First, in step S31, processor 81 causes PC 201 to perform a dribbling action on the spot.

[0119] Next, in step S32, processor 81 determines whether or not a condition for transitioning from a stopped state to a moving state is satisfied. For example, it is determined whether or not the vertical swing operation has been started, and if it has been started, it is determined that the condition for transitioning to a moving state is satisfied. If the result of this determination is that the condition for transitioning to a moving state is satisfied (YES in step S32), in step S35, processor 81 sets moving state flag 305 to ON. Thereafter, processor 81 ends the stopped state processing.

[0120] On the other hand, if the condition for transitioning to the moving state is not satisfied (NO in step S32), in step S36, processor 81 determines whether or not an operation for transitioning to the shoot mode has been performed, based on operation data 312. If the result of the determination is that an operation for transitioning to the shoot mode has been performed (YES in step S36), in step S37, processor 81 sets shoot mode flag 306 and preparation state flag 307 to ON. Next, in step S38, processor 81 changes the various settings of the virtual camera to settings for the shoot mode.

[0121] Next, in step S39, processor 81 sets shoot position information 322 based on the current position on the field of PC 201. After that, processor 81 ends the stop state process.

[0122] On the other hand, if the result of the determination in step S36 above is that the operation to transition to the shoot mode has not been performed (NO in step S36), the processes in steps S37 to S39 above are skipped and the stop state process ends.

[0123] [Movement state processing] Next, the moving state processing will be described. Fig. 26 is a flowchart showing the details of the moving state processing. First, in step S51, processor 81 calculates a route from the current position of PC 201 to the target point (for example, under the goal). Then, processor 81 moves PC 201 (and ball 204) along the route while causing PC 201 to perform a dribbling motion. After reaching the target point, PC 201 is controlled not to move any further and to perform a dribbling motion in place.

[0124] Next, in step S52, processor 81 determines whether a transition condition for transitioning from a moving state to a stopped state is satisfied. For example, whether a transition has occurred from a state in which a vertical swing operation is being performed to a state in which the vertical swing operation is stopped is determined based on operation data 312, and if a transition has occurred, it is determined that the transition condition for the stopped state is satisfied. If the result of this determination is that the transition condition for the stopped state is satisfied (YES in step S52), in step S55, processor 81 sets moving state flag 305 to OFF. Thereafter, processor 81 ends the moving state processing.

[0125] On the other hand, if the condition for transitioning to the stopped state is not satisfied (NO in step S52), in step S56, processor 81 determines whether or not a shoot mode transition operation has been performed, based on operation data 312. If the result of this determination is that a shoot mode transition operation has been performed (YES in step S56), in steps S57 to S59, the same processes as steps S37 to S39 in Figure 32 are performed. On the other hand, if a shoot mode transition operation has not been performed (NO in step S56), the processes of steps S57 to S59 are skipped, and the moving state process ends.

[0126] Returning to FIG. 24, next, the processing when the result of the determination in step S4 above is shoot mode (YES in step S4) will be described. In this case, in step S10, processor 81 executes shoot mode processing. FIG. 27 is a flowchart showing the details of shoot mode processing. In FIG. 27, first, in step S71, processor 81 determines whether or not the PC state is in a shoot preparation state based on preparation state flag 307. If the result of this determination is in a shoot preparation state (YES in step S71), processor 81 executes shoot preparation processing in step S72.

[0127] Figure 28 is a flowchart showing details of the shoot preparation processing. In Figure 28, first, in step S81, processor 81 determines whether a certain time has passed since preparation state flag 307 was set to ON, that is, since the transition to the shoot preparation state. If the result of this determination is that a certain time has passed (YES in step S81), processing is performed to end one set of play as the shot was unsuccessful. First, in step S82, processor 81 sets end flag 319 to ON. Next, in step S83, processor 81 sets end state data 320 to "shot failed." Thereafter, the shoot preparation processing ends.

[0128] On the other hand, if the result of the determination in step S81 above is that a certain amount of time has not elapsed since the transition to the shoot preparation state (NO in step S81), then in step S84, processor 81 determines, based on operation data 312, whether an operation of swinging the controller upward in real space (the above-mentioned swing-up operation) has been performed. If the result of the determination is that a swing-up operation has been performed (YES in step S84), then in step S85, processor 81 sets preparation state flag 307 to OFF and sets jumping state flag 308 to ON. On the other hand, if a swing-up operation has not been performed (NO in step S84), the processing of step S85 is skipped. Thereafter, the shoot preparation processing ends.

[0129] 27, if the result of the determination in step S71 above is that the PC is not in the shoot preparation state (NO in step S71), in step S73, processor 81 determines whether or not the PC state is in the jumping state, based on jumping state flag 308. If the result of this determination is that the PC state is in the jumping state (YES in step S73), in step S75, processor 81 executes jumping processing.

[0130] FIG. 29 is a flowchart showing details of the during-jump processing. In FIG. 29, first, in step S91, processor 81 causes PC 201 to perform a jumping motion. Next, in step S92, processor 81 determines whether a certain time has elapsed since the PC state transitioned to the during-jump state. This certain time is, for example, the time from the start to the end of the jump motion (playback of animation) of PC 201. If the result of this determination is that the certain time has not elapsed (NO in step S92), then in step S95, processor 81 determines whether the above-mentioned shooting operation has been performed based on operation data 312. If the result of this determination is that a shooting operation has been performed (YES in step S95), then in step S96, processor 81 sets during-jump state flag 308 to OFF and sets shoot state flag 309 to ON. Next, in step S97, processor 81 calculates the trajectory of the ball. In this embodiment, the trajectory of the ball is calculated based on the attitude and swing speed of the controller during the shooting operation.

[0131] Next, in step S98, processor 81 starts outputting a vibration signal to the controller to vibrate the controller. This causes vibration to start when a launch operation is detected. Then, the jump processing ends.

[0132] On the other hand, if the result of the determination in step S95 above is that the injection operation is not being performed (NO in step S95), the processes in steps S96 to S98 above are skipped and the jump process ends.

[0133] Next, a description will be given of the process when, as a result of the determination in step S92 above, a certain amount of time has passed since the PC state transitioned to the jumping state (YES in step S92). This case corresponds to the case where, after transitioning to the jumping state, the jumping motion ends without a shot being taken. Therefore, a process is performed to end one set of play by treating the shot as a failed shot. Specifically, in step S93, processor 81 sets end flag 319 to ON. Next, in step S94, processor 81 sets end state data 320 to "shot failed". Thereafter, the jumping process ends.

[0134] Returning to FIG. 27, next, if the result of the determination in step S73 above is that jumping state flag 308 is off (NO in step S73), processor 81 executes shoot processing in step S74. FIGS. 30 and 31 are flowcharts showing the details of the shoot processing. In FIG. 30, first, in step S101, processor 81 determines whether or not injection start flag 318 is on. If the result of this determination is that it is not on (NO in step S101), processor 81 determines in step S108 whether or not a period corresponding to the delay time has elapsed since the injection operation was performed. The period corresponding to the delay time is calculated based on delay time data 317. For example, the period corresponding to the delay time may be set to a time equal to the identified delay time.

[0135] As a result of the above determination, if the period corresponding to the delay time has not elapsed (NO in step S108), processor 81 ends the shoot process. On the other hand, if the period corresponding to the delay time has elapsed (YES in step S108), in step S109, processor 81 sets injection start flag 318 to ON.

[0136] Next, in step S110, processor 81 starts the firing motion of PC 201. Next, in step S111, processor 81 starts the movement of ball 204 based on the calculated ball trajectory.

[0137] Next, in step S112, processor 81 starts outputting a predetermined sound effect (hereinafter, "shot sound effect") that is pre-associated with the shot operation. This allows auditory feedback to be provided to the user in synchronization with the start of the shot motion. Thereafter, processor 81 ends the shoot process.

[0138] On the other hand, if the result of the determination in step S101 above is that shot start flag 318 is on (YES in step S101), then in step S102, processor 81 moves ball 204 along the calculated ball trajectory. At this time, if other machine data 321 above includes a determination result of a block action, processor 81 recalculates the trajectory of ball 204 in accordance with that result. That is, a trajectory is recalculated such that ball 204 is blocked and repelled by EC 203 (a trajectory that does not enter the goal).

[0139] Next, in step S103, processor 81 continues the shooting motion of PC 201 (which continues even after the shot). This process is executed until PC 201 lands after the shot.

[0140] Next, in step S104 of Figure 31, processor 81 determines whether ball 204 has entered the goal hoop. If the result of this determination is that ball 204 has entered the goal hoop (YES in step S104), in step S105, processor 81 adds points to the user's team according to shot position information 322. Next, in step S106, processor 81 sets end flag 319 to ON, and then in step S107, processor 81 sets end state data 320 to "shot successful". Thereafter, the shooting process ends.

[0141] On the other hand, if the result of the determination in step S104 above is that ball 204 has not entered the goal ring (NO in step S104), then in step S113 processor 81 determines whether it has been determined that ball 204 did not enter the goal ring, i.e., that the shot has failed. For example, if ball 204 lands without passing through the goal ring, it is determined that the shot has failed. If the result of this determination is that the shot has failed (YES in step S113), then in step S114 processor 81 sets end flag 319 to ON. In the following step S115, processor 81 sets end state data 320 to "shot failed". Thereafter, the in-shooting process ends. On the other hand, if it has not yet been determined that the shot has failed (NO in step S113), the processes in steps S114 and S115 above are skipped, and the in-shooting process ends.

[0142] Returning to FIG. 27, when the shoot preparation process, the jump process, or the shoot process is completed, the shoot mode process ends.

[0143] 24 , after the moving state processing, the stopped state processing, and the shoot mode processing, in step S7, processor 81 transmits data including various operation information and the like (contents corresponding to other machine data 321) to the other game system 1. For example, when a firing operation is performed, information indicating this is transmitted to the other game system 1.

[0144] Next, in step S8, processor 81 generates and outputs a game image that reflects the results of the various game processes described above.

[0145] Next, in step S9, processor 81 determines whether end flag 319 is on or not. If it is not on (NO in step S9), the process returns to step S1 above, and the process is repeated. On the other hand, if it is on (YES in step S9), in step S10, processor 81 displays either the effect for when the shot is successful or the effect for when the shot is unsuccessful, based on end state data 320. This completes the game processing (for one set).

[0146] In this way, in this embodiment, the controller is vibrated when a firing operation is performed. Then, after a period corresponding to the communication delay time has elapsed, control is performed to start the firing motion and movement of the ball 204. As a result, even if the timing at which the character's action starts is delayed relative to the operation timing in consideration of communication delays, the vibration feedback is output without delay, which reduces the impression that the start of the firing motion is delayed relative to the firing operation, improving the user's experience.

[0147] [Variations] In the above embodiment, an example was given in which vibration output was performed in processing in a frame in which an ejection operation was detected. In this regard, the detection of the ejection operation and the output of vibration do not have to be performed at the same timing on a frame-by-frame basis. For example, vibration may be output in processing related to one frame after the detection of the ejection operation. In other words, the timing of the two does not need to be strictly matched as long as the user feels that the two are at the same timing.

[0148] In another embodiment, the ejection sound effect may be output in synchronization with the output timing of the vibration as described above. In this case, two types of feedback, that is, vibration and ejection sound effect, are obtained at the timing of the ejection operation, thereby further improving the user's bodily sensation regarding the ejection operation. In yet another embodiment, the ejection sound effect may be output later than the output of the vibration but earlier than the start of the ejection motion.

[0149] Furthermore, regarding the timing of starting the ejection motion, taking communication delays into consideration, a limit may be set on the delay period. For example, the ejection motion may be controlled to start a maximum of eight frames after the ejection operation is detected, regardless of the delay time.

[0150] Furthermore, from the viewpoint of communication delay, the vibration output control as described above can be applied to all games in which it is effective to delay the start of a predetermined action (the ejection motion in the above example) performed by the PC 201 in response to the ejection operation (the operation of swinging the controller) as described above. For example, in a dodgeball game played online, the vibration control as described above is useful when throwing a ball by swinging the controller.

[0151] In the above embodiment, the game processing described above is executed by a single main unit 2. The main unit 2 may include multiple storage devices and processors. The game processing may be executed by sharing the processing among these devices. The above processing may also be executed in a distributed system consisting of multiple information processing devices including a server. [Explanation of symbols]

[0152] 1. Game System 2 Main unit 3 Left Controller 4 Right Controller 81 processors 84 Flash memory 85 DRAM 1000 servers

Claims

1. The computer of the information processing device a multiplayer game is performed in the virtual space, in which a player character is controlled based on an operation input to an operation device, and an opponent character is controlled based on data acquired through communication with another information processing device; In the multiplayer game, Identifying a delay time of the communication; When a first determination condition based on the operation input is satisfied, outputting a signal to vibrate a vibration device provided in the operation device regardless of the delay time; a game program that causes the player character to start a first action after a period corresponding to the length of the delay time has elapsed.

2. the operating device includes an inertial sensor; the operation input includes at least inertial data based on an output of the inertial sensor; 2. The game program according to claim 1, wherein the first determination condition is a condition relating to the inertia data.

3. The computer further comprises:

2. The game program according to claim 1, wherein a sound associated with the first action is outputted when the first action is started.

4. The computer further comprises: The game program according to claim 1 , further comprising outputting a signal for vibrating the vibration device and outputting a sound associated with the first action.

5. The multiplayer game is a ball game, 2. The game program according to claim 1, wherein the first action is a shooting action of shooting a ball toward a goal.

6. The computer further comprises: When a second determination condition based on the operation input is satisfied, 6. The game program according to claim 5, wherein the player character is made to perform a block action to block a shot by the opponent character.

7. A gaming system including a computer, The computer a multiplayer game is executed in a virtual space, in which a player character is controlled based on an operation input to an operation device, and an opponent character is controlled based on data acquired through communication with another information processing device; In the multiplayer game, Identifying a delay time of the communication; When a first determination condition based on the operation input is satisfied, outputting a signal to vibrate a vibration device provided in the operation device regardless of the delay time; The game system causes the player character to start a first action after a period corresponding to the length of the delay time has elapsed.

8. the operating device includes an inertial sensor; the operation input includes at least inertial data based on an output of the inertial sensor; The game system according to claim 7 , wherein the first determination condition is a condition relating to the inertia data.

9. The computer further comprises: The game system according to claim 7 , wherein a sound associated with the first action is outputted when the first action is started.

10. The computer further comprises: The game system according to claim 7 , wherein a sound associated with the first action is output together with the output of a signal that vibrates the vibration device.

11. The multiplayer game is a ball game, 8. The game system according to claim 7, wherein the first action is a shooting action of shooting the ball toward a goal.

12. The computer further comprises: When a second determination condition based on the operation input is satisfied, 12. The game system according to claim 11, wherein the player character is caused to perform a block action to block a shot by the opponent character.

13. A gaming device equipped with a computer, The computer a multiplayer game is executed in a virtual space, in which a player character is controlled based on an operation input to an operation device, and an opponent character is controlled based on data acquired through communication with another information processing device; In the multiplayer game, Identifying a delay time of the communication; When a first determination condition based on the operation input is satisfied, outputting a signal to vibrate a vibration device provided in the operation device regardless of the delay time; The game device causes the player character to start a first action after a period corresponding to the length of the delay time has elapsed.

14. the operating device includes an inertial sensor; the operation input includes at least inertial data based on an output of the inertial sensor; 14. The game device according to claim 13, wherein the first determination condition is a condition relating to the inertia data.

15. The computer further comprises: The game device according to claim 13 , wherein a sound associated with the first action is output when the first action is started.

16. The computer further comprises: The game apparatus according to claim 13 , wherein a sound associated with the first action is output together with output of a signal that vibrates the vibration device.

17. The multiplayer game is a ball game, 14. The game device according to claim 13, wherein the first action is a shooting action of shooting the ball toward a goal.

18. The computer further comprises: When a second determination condition based on the operation input is satisfied, 18. The game device according to claim 17, wherein the player character is caused to perform a block action to block a shot by the opponent character.

19. The computer of the information processing device a multiplayer game is performed in the virtual space, in which a player character is controlled based on an operation input to an operation device, and an opponent character is controlled based on data acquired through communication with another information processing device; In the multiplayer game, Identifying a delay time of the communication; When a first determination condition based on the operation input is satisfied, outputting a signal to vibrate a vibration device provided in the operation device regardless of the delay time; a game processing method for causing the player character to start a first action after a period corresponding to the length of the delay time has elapsed.

20. the operating device includes an inertial sensor; the operation input includes at least inertial data based on an output of the inertial sensor; 20. The game processing method according to claim 19, wherein the first determination condition is a condition related to the inertia data.

21. The computer further comprises:

20. The game processing method according to claim 19, further comprising the step of: outputting a sound associated with the first action when the first action is started.

22. The computer further comprises:

20. The game processing method according to claim 19, further comprising outputting a sound associated with the first action together with outputting a signal that vibrates the vibration device.

23. The multiplayer game is a ball game, 20. The game processing method according to claim 19, wherein the first action is a shooting action of shooting a ball toward a goal.

24. The computer further comprises: When a second determination condition based on the operation input is satisfied, 24. A game processing method according to claim 23, wherein the player character is made to perform a block action to block a shot by the opponent character.

Citation Information

Patent Citations

  • Game program and game system

    JP2007236469A

  • Game device and game program

    JP2014064932A

  • Operation discomfort reduction device, method thereof and program

    JP2014211808A

  • Information processing apparatus, information processing system, information processing method, and program

    JP2015170173A

  • Game system, game program, information processing apparatus, and game control method

    JP2018110624A