Game system, information processing device, and program
Patent Information
- Application Number
- JP2025059858
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-31
- Publication Date
- 2026-10-14
Smart Images

Figure 2026166716000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a game system, an information processing apparatus, and a program.
Background Art
[0002] Conventionally, there are online games in which a plurality of players participate and play a game via a network. In online games, due to communication delay, it may take time to reflect information from terminal devices (for example, player input information, etc.) in the game.
[0003] As an example of conventional technology, for instance, in a racing game, there exists a technology that predicts current information from past information of an opponent and displays it as the same current information as one's own, so that the game proceeds smoothly even with communication delay (Patent Document 1). For example, the technology disclosed in Patent Document 1 predicts changes in the position, speed, etc. of other characters based on the delay time obtained from the opponent's data transmission time. Then, it simultaneously performs movement control of the own character calculated for movement based on real time, and movement control of the other characters calculated for movement by predicting changes in the position, speed, etc. of the other characters. (See, for example, paragraph 0181 of Patent Document 1).
[0004] Further, there exists a technology that, when a data reception delay occurs, reads previously acquired future predicted position information of the opponent character, and renders the opponent character using the position information predicted for the opponent character at the current point in time (see paragraph 0047 of Patent Document 2).
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Patent Document 2
Summary of the Invention
[0006] However, with conventional technology, when information about other characters was predicted due to communication delays, there was a problem in that if the predicted information was incorrect, the correction of the error would be unnatural.
[0007] This invention addresses these issues and aims to provide a game system, etc., that can ensure that players do not experience any discomfort when a rollback process is necessary. [Means for solving the problem]
[0008] (1) The present invention is A game system that executes a game based on first input information from a first terminal device and second input information from a second terminal device, the frame identification information of which matches, A receiving unit that receives the first input information corresponding to the frame identification information and the second input information corresponding to the frame identification information, If a second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received, the game control unit performs the operation control of each character corresponding to each terminal device based on the first input information, A performance control unit that performs performance control for the operation control based on the first input information, Within a predetermined period set based on the predetermined timing, receive at the predetermined timing. A determination unit that determines whether the operation control is correct or incorrect when it receives second input information that matches the frame identification information corresponding to the first input information that was attached, A continuation unit that continues the operation control when it is determined that the operation control is correct, The present invention relates to a game system that includes a rollback processing unit that performs a rollback process based on the first input information and the second input information when the operation control is determined to be incorrect.
[0009] Furthermore, the present invention relates to an information processing device (for example, a server device, a game device, etc.) including the above-mentioned parts. The present invention relates to a program that causes a computer to function as the above-mentioned parts. Furthermore, the present invention relates to a computer-readable information storage medium that stores a program that causes a computer to function as the above-mentioned parts.
[0010] Since the present invention performs performance control on the operation control based on the first input information, if a rollback process is necessary, it can be done in a way that does not feel unnatural to the player.
[0011] (2) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The game control unit, If the operation control is determined to be incorrect, a second operation control may be performed based on the first input information received at the predetermined timing and the second input information that matches the frame identification information corresponding to the first input information.
[0012] In this invention, when an error is detected in the operation control, a second operation control is performed based on a first input information received at a predetermined timing and a second input information that matches the frame identification information corresponding to the first input information. This makes it possible to perform operation control fairly for each terminal device, and when a rollback process is necessary, it is possible to do so in a way that does not cause any discomfort to the player.
[0013] (3) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The aforementioned performance control unit, If the aforementioned operation control is determined to be incorrect, the system may be configured to perform a second performance control when transitioning from the aforementioned operation control to the second operation control.
[0014] Since the present invention performs a second performance control, it is possible to transition from the first operation control to the second operation control in a way that does not cause any discomfort to the player.
[0015] (4) Further, the game system, information processing device, program, and information storage medium of the present invention, may further include an estimation unit that estimates the reason why the second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received, based on a comparison result obtained by comparing the terminal information of each of the first terminal device and the second terminal device.
[0016] According to the present invention, since the reason why the second input information has not been received is estimated, an appropriate response can be made.
[0017] (5) Further, the game system, information processing device, program, and information storage medium of the present invention, the determination unit may determine whether the motion control is correct or incorrect, based on the type of the second input information received within the predetermined period and / or the command information corresponding to the type.
[0018] The present invention can appropriately determine whether the motion control is correct or incorrect.
[0019] (6) The present invention is a game system that determines a predetermined situation based on event information of each terminal device and executes a game based on the determination result, the game system comprising: a reception unit that receives event information including an event occurrence timing of each terminal device and game information; a game control unit that, when receiving event information from one terminal device, makes a temporary determination based on the event information and game information of the one terminal device at the event occurrence timing, and the game information of another terminal device at the event occurrence timing, and performs motion control of each character corresponding to each terminal device based on the temporary determination result; and an effect control unit that performs effect control for the motion control based on the temporary determination result. a determination unit that determines whether the temporary determination result is correct or incorrect when correct game information for the event occurrence timing is received from another terminal device within a predetermined period set based on the event occurrence timing of the event information received from one terminal device, a continuation unit that continues the operation control when it is determined that the temporary determination result is correct, and a rollback processing unit that performs rollback processing based on the event information and the game information of the one terminal device at the event occurrence timing, and the correct game information received from the other terminal device, when it is determined that the temporary determination result is incorrect. The present invention relates to a game system characterized by including the above.
[0020] The present invention also relates to an information processing apparatus (for example, a server apparatus, a game apparatus, etc.) including each of the above units. The present invention relates to a program that causes a computer to function as each of the above units. The present invention also relates to a computer-readable information storage medium storing a program that causes a computer to function as each of the above units.
[0021] Since the present invention performs effect control for the operation control based on the temporary determination result, it is possible to prevent the player from feeling uncomfortable when rollback processing is required.
[0022] (7) Furthermore, the game system, information processing apparatus, program, and information storage medium of the present invention, the game control unit may, when it is determined that the temporary determination result is incorrect, perform second operation control based on the event information and the game information of the one terminal device at the event occurrence timing, and the correct game information of the other terminal device at the event occurrence timing.
[0023] In this invention, if the provisional judgment result is determined to be incorrect, a second operation control is performed based on the event information and game information of one terminal device at the time of the event occurrence, and the correct game information of another terminal device at the time of the event occurrence. This makes it possible to perform operation control fairly for each terminal device, and if a rollback process is necessary, it is possible to do so in a way that does not cause any discomfort to the player.
[0024] (8) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The aforementioned performance control unit, If the provisional judgment result is determined to be incorrect, the system may transition from the first operation control based on the provisional judgment result to the second operation control, in which case the second performance control may be performed.
[0025] Since the present invention performs a second performance control, it is possible to transition from the first operation control to the second operation control in a way that does not cause any discomfort to the player.
[0026] (9) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The system may further include an inference unit that infers the reason why the provisional judgment result is incorrect based on the comparison results obtained by comparing the terminal information of each terminal device.
[0027] According to the present invention, since the reason why the provisional judgment result is incorrect is inferred, appropriate action becomes possible.
[0028] (10) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The aforementioned performance control unit, The second performance control may be configured to continuously change from the first performance control.
[0029] This invention provides a control system that continuously changes the second performance control from the first performance control, making it possible to transition from the first operation control to the second operation control in a natural and seamless manner for the player.
[0030] (11) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are: The aforementioned performance control unit, Depending on predetermined conditions, at least one of the content of the performance control and the period during which the performance control is performed may be changed.
[0031] According to the present invention, at least one of the content of the performance control and the period during which the performance control is performed can be appropriately changed according to predetermined conditions.
[0032] (12) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The aforementioned performance control unit, The content of the performance control and at least one of the period during which the performance control is performed may be changed according to predetermined conditions, which include at least one of conditions based on terminal information of each terminal device and conditions related to the game situation.
[0033] According to the present invention, the content of the performance control and at least one of the period during which the performance control is performed can be appropriately changed according to predetermined conditions, which include at least one of conditions based on terminal information of each terminal device and conditions related to the game situation.
[0034] (13) Furthermore, the game system, information processing device, program, and information storage medium of the present invention are The aforementioned performance control unit, The aforementioned performance control may be configured to perform at least one of the following: effect processing, hit stop processing, and virtual camera shaking processing.
[0035] This invention enables natural-looking performance control that does not feel unnatural to the player. [Brief explanation of the drawing]
[0036] [Figure 1]A diagram showing an example of the configuration of the game system of this embodiment. [Figure 2] A diagram showing the functional blocks of the server device according to this embodiment. [Figure 3] A diagram showing the functional block of the terminal device of this embodiment. [Figure 4] An explanatory diagram relating to the rollback process of this embodiment. [Figure 5] This figure shows an example of a game screen with the effects controlled according to this embodiment. [Figure 6A] A flowchart showing an example of the processing flow in this embodiment. [Figure 6B] A flowchart showing an example of the processing flow in this embodiment. [Figure 6C] A flowchart showing an example of the processing flow in this embodiment. [Figure 7] An explanatory diagram relating to the rollback process of this embodiment. [Figure 8] This figure shows an example of a game screen with the effects controlled according to this embodiment. [Figure 9A] A flowchart showing an example of the processing flow in this embodiment. [Figure 9B] A flowchart showing an example of the processing flow in this embodiment. [Figure 9C] A flowchart showing an example of the processing flow in this embodiment. [Modes for carrying out the invention]
[0037] The following describes this embodiment. Note that the embodiment described below does not unduly limit the scope of the present invention as described in the claims. Furthermore, not all of the configurations described in this embodiment are necessarily essential components of the present invention.
[0038] [1] Game System First, the overview and general configuration of the game system (also referred to as the information processing system or computer system) of this embodiment will be explained using Figure 1. Figure 1 is a diagram showing an example of the system configuration of the game system of this embodiment.
[0039] The server device 10 is an information processing device that can provide a given service using a terminal device (game device) 20 that is connected to it via the Internet (an example of a network).
[0040] The terminal device 20 is an information processing device such as a terminal device, smartphone, mobile phone, PHS, computer, terminal device, PDA, portable game console, or image generation device, and is a device that can connect to the server device 10 via a network such as the Internet (WAN) or LAN.
[0041] [1.1] Game system configured as a client-server model As shown in Figure 1, the game system of this embodiment is configured such that a server device 10 and terminal devices 20 (for example, terminal devices 20A, 20B, and 20C) can connect to the Internet (an example of a network).
[0042] The player can play the game based on information transmitted from the server device 10 via the internet by accessing the server device 10 from the terminal device 20.
[0043] In this embodiment, each game may be provided to the terminal device 20 by a single server device 10, or a server system may be constructed by linking multiple server devices 10 together to provide each game to the terminal device 20.
[0044] Furthermore, the server device 10 may perform all the processing related to the present invention, or the terminal The end device 20 may perform all the various processes related to the present invention.
[0045] [1.2] Terminal device The game system of this embodiment may be implemented by a single terminal device equipped with the functions of the server device 10, that is, a standalone device that operates independently without relying on other devices such as a server device.
[0046] Furthermore, in this embodiment, the present invention may be implemented using only the terminal device 20 without connecting to the server device 10. For example, it may be a game system implemented using multiple terminal devices 20 via P2P (peer-to-peer) communication.
[0047] Furthermore, multiple such terminal devices may be connected via wired or wireless connections, with one terminal device functioning as a host (server device 10), and the system may be implemented using multiple terminal devices.
[0048] Furthermore, the terminal device may not only be a terminal device, but also a tablet-type information terminal device, a personal computer, or a terminal device (casing) installed in an amusement park.
[0049] [1.3] Cloud-based game systems Furthermore, the game system of this embodiment may also be a cloud-based game system. For example, in a cloud-based game system, the server device 10 (cloud device) alone performs basic processing (including game processing, rendering processing, etc.), and the terminal device 20 only controls the display of the processing results of the server device 10 (cloud device). The terminal device 20 also transmits information such as controller input information (operation information) to the server device 10. In this case, the terminal device 20 may also transmit information other than input information.
[0050] Furthermore, in this embodiment, except for the input, the server device 10 may execute each function of the processing unit 200 of the terminal device 20 and the game program, and the terminal device 20 may realize the game by performing input and image display via streaming.
[0051] Furthermore, the game system may store information stored in the server device 10 and information stored in the terminal device 20 in a given memory area on the internet.
[0052] [1.4] Terminal device with multiple controllers Furthermore, in this embodiment, one terminal device 20 may be equipped with multiple controllers (input units 260). Note that when multiple players play the game using their respective controllers on one terminal device 20, it is assumed that the multiple players are realistically located close to each other.
[0053] [1.5] Examples of social games Furthermore, in this embodiment, it may function as an SNS server that provides communication-type services. Here, the SNS server may be an information processing device that provides services capable of facilitating communication between multiple players.
[0054] Furthermore, in this embodiment, for example, when functioning as an SNS server, it can provide a game called a social game that is executed using the operating environment of the SNS provided (API (Application Programming Interface), platform, etc.).
[0055] Social games, unlike existing online games, do not require dedicated client software and can be played using only a web browser and a social networking service (SNS) account. This includes [unclear]. Furthermore, this embodiment has a configuration that enables the provision of an online game that can connect to the terminal devices 20 of other players via a network and share the same game progress online simultaneously.
[0056] [1.6] Example of a browser game In particular, in this embodiment, a game provided on the web browser of the terminal device 20 may be a browser game (a game that starts simply by opening the installation site in a web browser) created in various languages such as HTML, FLASH®, CGI, PHP, Shockwave, Java® applet, and JavaScript®.
[0057] Furthermore, the terminal device 20 is equipped with a web browser capable of viewing web pages (HTML format data). Specifically, the terminal device 20 is equipped with a communication control function for communicating with the server device 10, a web browser function that performs display control using data received from the server device 10 (Web data, data created in HTML format, etc.), and sends player operation data to the server device 10, and performs various processes to provide the screen to the player, allowing the player to run the game. However, the terminal device 20 may also obtain game control information provided by the server device 10, execute predetermined game processing, and run the game based on the game processing.
[0058] Specifically, when the terminal device 20 requests the server device 10 to play a predetermined game, it connects to the game site of the server device 10 and the game starts. In particular, the terminal device 20 may have a configuration that allows it to execute the game by using an API as needed to cause the server device 10, which functions as an SNS server, to perform predetermined processing, or by obtaining player information managed by the server device 10, which functions as an SNS server.
[0059] [1.7] Others In this embodiment, the system may consist of one (device, processor) or multiple (devices, processors). Information stored in the storage area of the server device 10 (storage unit 170 described later) (for example, player information, game information, etc.) may be stored in a database (broadly speaking, a storage device, memory) connected via a network (intranet or internet). The communication line between the terminal device 20 and the server device 10 may be wired or wireless.
[0060] [2] Server equipment Next, the server device 10 of this embodiment will be described using Figure 2. Figure 2 is a diagram showing the functional blocks of the server device 10 of this embodiment. In this embodiment, some of the components (each part) in Figure 2 may be omitted.
[0061] In this embodiment, the system includes an input unit 160 for use by administrators and others, an information storage medium 180 in which predetermined information is stored, a communication unit 196 for communicating with terminal devices 20 and others, a processing unit 100 that mainly performs processing related to the games provided, and a storage unit 170 that mainly stores various data used for games.
[0062] The input unit 160 is used by system administrators and others to input game-related settings and other necessary settings and data. For example, the input unit 160 in this embodiment is composed of a mouse, keyboard, etc.
[0063] The information storage medium 180 (a medium readable by a computer) stores programs, data, etc., and its function is similar to that of an optical disc (CD, DVD) or magneto-optical disc. It consists of components such as MO (Magnetic Oscillator), magnetic disks, hard disks, magnetic tapes, or memory (ROM).
[0064] The communication unit 196 performs various controls for communicating with external parties (e.g., terminals, other servers, or other network systems), and its functions are comprised of hardware such as various processors or communication ASICs, as well as programs.
[0065] The memory unit 170 serves as the work area for the processing unit 100 and the communication unit 196, and its functions are comprised of RAM (VRAM), etc. The information stored in the memory unit 170 may be managed by a database.
[0066] Furthermore, in addition to the main memory unit 171, the storage unit 170 of this embodiment includes an image buffer 172, a game data storage unit 174 that stores game information indicating information about the game, and a player information storage unit 175. Note that some of these components may be omitted.
[0067] In particular, the game data storage unit 174 stores information about the virtual space (game space) in which the game is played, information about the virtual camera, and settings used in the game.
[0068] Furthermore, the player information storage unit 175 stores player information (user information) for each player (each user), associated with a player ID (user ID). The player ID is identification information used to identify the player.
[0069] Furthermore, player information includes the player's input information (operation information). Additionally, player information may be a concept that includes not only information associated with the player (user), but also information about the player's game media (for example, game media such as characters, cards, and items owned by the player).
[0070] The processing unit 100 performs various processes using the main memory unit 171 within the storage unit 170 as the work area. The functions of the processing unit 100 can be realized by hardware such as various processors (CPU, DSP, etc.) and ASICs (gate arrays, etc.) or by programs.
[0071] The processing unit 100 performs various processes of this embodiment based on the program (data) stored in the information storage medium 180. That is, the information storage medium 180 stores programs that cause the computer to function as each part of this embodiment (programs that cause the computer to execute the processing of each part).
[0072] For example, the processing unit 100 (processor) controls the entire server device 10 based on the program stored in the information storage medium 180, and also performs various processes such as controlling the transfer of data between each unit. Furthermore, it performs processes to provide various services in response to requests from the terminal device 20.
[0073] Furthermore, the processing unit 100 works in conjunction with the terminal device 20 and executes game processing for the game provided in this embodiment on each player based on player input received via the terminal device 20.
[0074] In this embodiment, the server device 10 may perform some or all of the processing of the processing unit 100, or the terminal device 20 may perform some of the processing of the processing unit 100.
[0075] The processing unit 100 includes a display control unit 111, a game control unit 113, a performance control unit 114, a judgment unit 115, a continuation unit 116, a rollback processing unit 117, a reception unit 118, a prediction unit 119, It includes a communication control unit 120, a management unit 122, an image generation unit 130, and a sound processing unit 140.
[0076] The display control unit 111 controls the display of the screen (image) generated by the server device 10 on the display unit 290 of the terminal device 20. In other words, the display destination for the screen (image) generated by the server device 10 is set to the display unit 290 of the terminal device 20.
[0077] The game control unit 113 executes game processing based on the player's input information (operation information). For example, the game control unit 113 may receive the player's input information (operation information) from the player's terminal device 20 and perform game processing.
[0078] In other words, the game control unit 113 advances the game based on the player's input. For example, the game control unit 113 causes the player's character to perform a predetermined action (e.g., an attack) to advance the game.
[0079] In particular, the game control unit 113 of this embodiment may execute the game based on the first input information of the first terminal device and the second input information of the second terminal device, whose frame identification information matches.
[0080] For example, if the game control unit 113 has not received second input information corresponding to the frame identification information of the first input information received at a predetermined timing, it will perform operation control for each character corresponding to each terminal device based on the first input information.
[0081] If the game control unit 113 determines that the operation control is incorrect, it performs a second operation control based on the first input information received at a predetermined timing and the second input information that matches the frame identification information corresponding to the first input information.
[0082] Furthermore, the game control unit 113 in this embodiment may determine a predetermined situation based on event information from each terminal device and execute the game based on the determination result.
[0083] When the game control unit 113 receives event information from one terminal device, it makes a provisional decision based on the event information and game information of that terminal device at the time the event occurred, and the game information of other terminal devices at the time the event occurred, and then controls the operation of each character corresponding to each terminal device based on the result of the provisional decision.
[0084] If the game control unit 113 determines that the provisional judgment result is incorrect, it performs a second operation control based on the event information and game information of one terminal device at the time the event occurred, and the correct game information of another terminal device at the time the event occurred.
[0085] The performance control unit 114 performs a given performance control. In this embodiment, the performance control unit 114 mainly performs performance control related to images.
[0086] The performance control unit 114 performs performance control based on the first input information.
[0087] If the performance control unit 114 determines that the operation control is incorrect, it will perform the second performance control when it transitions from the operation control to the second operation control.
[0088] The performance control unit 114 may also perform performance control based on the provisional judgment result.
[0089] If the performance control unit 114 determines that the provisional judgment result is incorrect, it will perform a second action based on the provisional judgment result. When transitioning from the first operation control to the second operation control, the second performance control is performed.
[0090] For example, the performance control unit 114 may be a control that continuously changes the second performance control from the first performance control.
[0091] Furthermore, the performance control unit 114 may change at least one of the content of the performance control and the period during which the performance control is performed, depending on predetermined conditions.
[0092] Furthermore, the performance control unit 114 may change at least one of the content of the performance control and the period during which the performance control is performed, according to predetermined conditions including at least one of conditions based on terminal information of each terminal device and conditions related to the game situation.
[0093] Furthermore, the performance control unit 114 may perform performance control that includes at least one of the following: effect processing, hit stop processing, and virtual camera shaking processing.
[0094] The determination unit 115 determines whether the information is correct or incorrect. For example, the determination unit 115 determines whether the operation control is correct or incorrect if it receives second input information that matches frame identification information corresponding to first input information received at a predetermined timing, within a predetermined period set based on a predetermined timing. For example, the determination unit 115 determines whether the operation control is correct or incorrect based on the type of second input information received within the predetermined period and / or the command information corresponding to that type.
[0095] Furthermore, the determination unit 115 determines whether the provisional determination result is correct or incorrect if it receives correct game information for the event occurrence timing from another terminal device within a predetermined period set based on the event occurrence timing of the event information received from one terminal device.
[0096] The continuation unit 116 performs processing to continue game control (for example, motion control). For example, if the continuation unit 116 determines that the motion control is correct, it continues the motion control.
[0097] Furthermore, the continuation unit 116 continues operation control if it determines that the provisional judgment result is correct.
[0098] The rollback processing unit 117 performs a process to recalculate the game control (e.g., motion control) from a given point in time.
[0099] For example, if the rollback processing unit 117 determines that the operation control is incorrect, it performs a rollback process based on the first input information and the second input information (the second input information corresponding to the frame identification information of the first input information).
[0100] If the rollback processing unit 117 determines that the provisional judgment result is incorrect, it performs a rollback process based on the event information and game information of one terminal device at the time the event occurred, and the correct game information for the same event occurrence time received from another terminal device.
[0101] The reception unit 118 receives information from the player. For example, the reception unit 118 receives and accepts information from the player's terminal device 20 via the network.
[0102] The reception unit 118 receives first input information corresponding to frame identification information and second input information corresponding to frame identification information.
[0103] Furthermore, the reception unit 118 receives event information including the timing of events occurring on each terminal device. It accepts game information.
[0104] The inference unit 119 infers given information (causes and reasons). For example, based on the comparison result obtained by comparing the terminal information of the first terminal device and the second terminal device, the inference unit 119 infers the reason why the second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received.
[0105] Furthermore, the estimation unit 119 may also infer the reason why the provisional judgment result is incorrect based on the comparison results obtained by comparing the terminal information of each terminal device.
[0106] The communication control unit 120 establishes a connection (session or connection) with the terminal device 20 and performs processing to communicate (send and receive) data over the network.
[0107] For example, the communication control unit 120 transmits game-related information to the player's terminal device 20. The communication control unit 120 also receives player operation information received by the player's terminal device 20.
[0108] Furthermore, the communication control unit 120 receives information related to the game from the server device 10.
[0109] The management unit 122 manages game information and player information associated with player identification information for each player. The management unit 122 may also manage information such as in-game currency and items.
[0110] The image generation unit 130 performs drawing processing based on the results of various processes performed by the processing unit 100, thereby generating an image and outputting it to the display unit 290 of the terminal device 20.
[0111] The image generation unit 130 is implemented by, for example, a processor such as a GPU or digital signal processor (DSP), a program such as a video signal IC or video codec, and a drawing frame IC memory such as a frame buffer.
[0112] The image generation unit 130 generates one game screen image (game screen) per frame (for example, 1 / 60th of a second) according to the game's progress. The image generation unit 130 outputs the generated image to the image buffer 172. The image generation unit 130 also transmits the generated image to the terminal device 20.
[0113] The image generation unit 130 performs drawing processing based on the results of various processes (game processing) performed in the processing unit 100, thereby generating an image and outputting it to the display unit 190. When generating a so-called 3D game image, object data (model data) containing vertex data (vertex position coordinates, texture coordinates, color data, normal vector or alpha value, etc.) for each vertex of an object (model) is first input, and vertex processing (shading by a vertex shader) is performed based on the vertex data contained in the input object data (model data). When performing vertex processing, vertex generation processing (tessellation, surface subdivision, polygon subdivision) to subdivide polygons may be performed as needed. In vertex processing, geometry processing such as vertex movement processing, coordinate transformation (world coordinate transformation, camera coordinate transformation), clipping processing, or perspective transformation is performed according to the vertex processing program (vertex shader program, first shader program), and based on the results of this processing, the given vertex data for the group of vertices constituting the object is modified (updated, adjusted). Then, rasterization (scan transformation) is performed based on the vertex data after vertex processing, and the faces of the polygons (primitives) are associated with pixels. Following rasterization, pixel processing is performed to draw the pixels that make up the image (fragments that make up the display screen). Rendering (shading by a pixel shader, fragment processing) is performed. In pixel processing, according to the pixel processing program (pixel shader program, second shader program), various processes such as texture reading (texture mapping), setting / changing color data, semi-transparent blending, and anti-aliasing are performed to determine the final drawing color of the pixels that make up the image, and the drawing color of the perspective-transformed object is output (drawn) to the image buffer 172 (a buffer that can store image information on a pixel-by-pixel basis; VRAM, rendering target). In other words, pixel processing performs per-pixel processing to set or change image information (color, normal, brightness, alpha value, etc.) on a pixel-by-pixel basis. This generates an image that can be seen from a virtual camera (a given viewpoint) in object space. If there are multiple virtual cameras (viewpoints), images can be generated so that the images seen from each virtual camera can be displayed on one screen as split images.
[0114] Furthermore, vertex and pixel processing are implemented by hardware that allows the rendering of polygons (primitives) to be programmed using shader programs written in shading languages, known as programmable shaders (vertex shaders and pixel shaders). With programmable shaders, the processing at the vertex level and the processing at the pixel level can be programmed, which increases the degree of freedom in the rendering process and significantly improves expressiveness compared to conventional fixed rendering processes using hardware.
[0115] The image generation unit 130 then performs geometry processing, texture mapping, hidden surface removal, alpha blending, and other operations when rendering objects.
[0116] In geometry processing, the object undergoes processes such as coordinate transformation, clipping, perspective projection transformation, and light source calculation. The object data after geometry processing (after perspective projection transformation), including the position coordinates of the object's vertices, texture coordinates, color data (luminance data), normal vectors, or alpha values, is stored in the object data storage unit 176.
[0117] Texture mapping is the process of mapping textures (texel values) stored in the texture memory of the memory unit 170 to an object. Specifically, the texture (surface properties such as color (RGB) and alpha value) is read from the texture memory of the memory unit 170 using texture coordinates set (assigned) to the vertices of the object. Then, the texture, which is a two-dimensional image, is mapped to the object. In this case, processes such as associating pixels with texels and performing bilinear interpolation as texel interpolation are carried out.
[0118] For hidden surface removal, a Z-buffer method (depth comparison method, Z-test) can be used, which utilizes a Z-buffer (depth buffer) that receives the Z-value (depth information) of the drawing pixels. That is, when drawing the drawing pixels corresponding to the primitives of an object, the Z-values input to the Z-buffer are referenced. The referenced Z-value in the Z-buffer is then compared with the Z-value at the drawing pixel of the primitive. If the Z-value at the drawing pixel is closer to the viewer from the virtual camera (for example, a smaller Z-value), the drawing process for that pixel is performed, and the Z-value in the Z-buffer is updated to the new Z-value.
[0119] Alpha blending (alpha synthesis) is a translucent synthesis process based on the alpha value (A value) (usually alpha blending, additive alpha blending, or subtractive alpha blending, etc.).
[0120] The alpha value is information that can be stored in association with each pixel (texel, dot), and is additional information beyond color information, for example. The alpha value can be output as mask information, semi-transparency (equivalent to transparency and opacity), bump information, etc.
[0121] Furthermore, when multiple players play a multiplayer online game where data is sent and received over a network, the system generates an image for each player that follows the movement of the object being manipulated by that player, as seen from a virtual camera. In other words, it performs independent rendering processing according to each player. The image generation unit 130 may also generate a two-dimensional image within the virtual space.
[0122] The sound processing unit 140 performs sound processing based on the results of various processes performed by the processing unit 100, generates (plays) game sounds such as background music, sound effects, or voices, and transmits them to the terminal device 20.
[0123] [3] Terminal device Next, the terminal device 20 of this embodiment will be described using Figure 3. Figure 3 is an example of a functional block diagram showing the configuration of the terminal device 20 in this embodiment. Furthermore, the terminal device 20 of this embodiment may have a configuration in which some of the components (each part) in Figure 3 are omitted.
[0124] The input unit 260 is for the player to input operation data, and its function can be realized by a touch panel or a touch panel display. Specifically, the input unit 260 includes a detection unit 262 capable of detecting two-dimensional instruction position coordinates (x,y) on a screen where an image is displayed. For example, the input unit 260 includes a detection unit 262 capable of detecting two-dimensional contact position coordinates (x,y) in a contact detection area (touch panel).
[0125] Furthermore, touch operations on the display screen (hereinafter referred to as "touch panel" unless otherwise specified) may be performed using fingertips or using input devices such as a stylus.
[0126] Furthermore, the input unit 260 may include buttons, levers, a keyboard, a steering wheel, a microphone, an acceleration sensor, etc., that can input input information (operation signals) other than the indicated position.
[0127] The memory unit 270 serves as a work area for the processing unit 200 and the communication unit 296, and its functions can be realized by RAM (VRAM) or the like. In this embodiment, the memory unit 270 includes a main memory unit 271 used as a work area, an image buffer 272 where the final display image and the like are stored, a game data storage unit 274 where game information indicating information about the game is stored, and a player information storage unit 275. Note that some of these may be omitted, or the memory unit 170 of the server device 10 may constitute some of them.
[0128] The image buffer 272 may store image data generated by the image generation unit 230, or image data received from the server device 10.
[0129] The game data storage unit 274 stores information about the game space in which the game is played, information about each character, information about the virtual camera, and other settings used in the game. The terminal device 20 may also store information received from the server device 10 in the game data storage unit 274.
[0130] The player information storage unit 275 stores player information. The terminal device 20 may also receive player information corresponding to the player ID from the server device 10 and store it in the player information storage unit 275.
[0131] Information storage media 280 (computer-readable media) are used to store programs, data, etc., and their functions include optical discs (CDs, DVDs), magneto-optical discs (MOs), magnetic discs, hard disks, magnetic tapes, or memory (ROMs). This can be achieved.
[0132] Furthermore, the information storage medium 280 can store programs for making the computer function as each part of this embodiment (programs for causing the computer to execute the processing of each part). The processing unit 200 performs various processing of this embodiment based on the programs (data) stored in the information storage medium 280, as will be described later.
[0133] The display unit 290 outputs the image generated by this embodiment, and its function can be realized by a CRT, LCD, touch panel display, or HMD (head-mounted display), etc.
[0134] In particular, in this embodiment, the display unit 290 also functions as an input unit 260 for the player to perform game operations by using a touch panel display. Here, as the touch panel, for example, a resistive type (4-wire, 5-wire), a capacitive type, an electromagnetic induction type, an ultrasonic surface acoustic wave type, or an infrared scanning type touch panel can be used.
[0135] The sound output unit 292 outputs the sound generated by this embodiment, and this function can be realized by a speaker or headphones, etc.
[0136] The communication unit 296 performs various controls for communicating with external devices (for example, the server device 10 or other terminal devices 20), and its functions can be realized by hardware such as various processors or communication ASICs, or by programs.
[0137] Furthermore, the terminal device 20 may receive programs and data for making the computer function as each part of this embodiment, which are stored in the information storage medium 180 and storage unit 170 of the server device 10, via the network, and store the received programs and data in the information storage medium 280 and storage unit 270. The case in which the terminal device 20 functions by receiving programs and data in this manner can also be included within the scope of the present invention.
[0138] The processing unit 200 (processor) performs processing such as game processing, image generation processing, or sound generation processing in conjunction with the server device 10, based on input data and programs from the input unit 260.
[0139] In particular, in this embodiment, the game processing includes processes to start the game when the game start conditions are met, processes to advance the game, processes to place objects such as characters and enemy characters, processes to display objects, processes to calculate the game result, and processes to end the game when the game end conditions are met.
[0140] Furthermore, the processing unit 200 performs game processing (for example, processing for competitive games, etc.) based on the player input information input by the input unit 260. The processing unit 200 may also be executed in conjunction with the server device 10, or part or all of it may be formed in the server device 10.
[0141] Furthermore, the processing unit 200 performs various processes using the storage unit 270 as a work area. The functions of the processing unit 200 can be realized by hardware such as various processors (CPU, DSP, etc.) and ASICs (gate arrays, etc.) or by programs.
[0142] The processing unit 200 includes a display control unit 211, a game control unit 213, a performance control unit 214, a decision unit 215, a continuation unit 216, a rollback processing unit 217, a reception unit 218, a prediction unit 219, a communication control unit 220, an image generation unit 230, and a sound processing unit 240. Note that some of these may be omitted. An abbreviated structure is also acceptable.
[0143] The display control unit 211 performs the process of displaying the screen on the display unit 290. For example, the display control unit 211 may use a web browser for display. The display control unit 211 also displays information necessary during the game on the display unit 290 based on information transmitted from the server device 10. For example, the terminal device 20 displays the screen display information received from the server device 10.
[0144] Furthermore, the display control unit 211 may perform all or part of the same processing as the display control unit 110 of the server device 10.
[0145] The game control unit 213 executes game processing based on the player's input information (operation information). The game control unit 213 may perform all or part of the same processing as the game control unit 113 of the server device 10.
[0146] The performance control unit 214 performs a given performance control. In this embodiment, the performance control unit 214 mainly performs performance control related to images. The performance control unit 214 may perform all or part of the same processing as the performance control unit 114 of the server device 10.
[0147] The determination unit 215 determines whether the information is correct or incorrect. The determination unit 215 may perform all or part of the same processing as the determination unit 115 of the server device 10.
[0148] The continuation unit 216 performs processing to continue game control (for example, motion control). The continuation unit 216 may perform all or part of the same processing as the continuation unit 116 of the server device 10.
[0149] The rollback processing unit 217 performs a process to recalculate the game control (e.g., motion control) from a given point in time. The rollback processing unit 217 may perform all or part of the same processing as the rollback processing unit 117 of the server device 10.
[0150] The receiving unit 218 processes input from the player. For example, the receiving unit 218 may transmit the input information received by the terminal device 20 to the server device 10, and the server device 10 may receive the input information. The receiving unit 218 may perform all or part of the same processing as the receiving unit 118 of the server device 10.
[0151] The inference unit 219 infers given information (causes and reasons). The inference unit 219 may perform all or part of the same processing as the inference unit 119 of the server device 10.
[0152] The communication control unit 220 performs data transmission and reception with each of the server devices 10. The communication control unit 220 also performs data storage in the storage unit 270, data analysis, and other control processing related to data transmission and reception.
[0153] Furthermore, the communication control unit 220 may store and manage destination information (network information such as IP addresses and port numbers) of other terminal devices 20 and server devices 10 in the storage unit 270 and information storage medium 280. The communication control unit 220 may also initiate communication with the server device 10 when it receives input information from the player to initiate communication.
[0154] In particular, the communication control unit 220 transmits player identification information and input information to the server device 10. Furthermore, the communication control unit 220 may receive data (such as predetermined player parameters, player's web page, screen, etc.) from the server device 10.
[0155] The communication control unit 220 may perform data transmission and reception with the server device 10 at predetermined intervals, or it may perform data transmission and reception with the server device 10 when it receives input information from the input unit 260. In particular, the communication control unit 220 in this embodiment performs processing to receive given screen information (for example, screen information, etc.) from the server device 10.
[0156] The image generation unit 230 performs drawing processing based on various processes (e.g., game processing) performed by the processing unit 200, thereby generating an image, which is then output to the display unit 290 by the display control unit 211. The image generated by the image generation unit 230 may be a so-called two-dimensional image or a so-called three-dimensional image. The image generation unit 230 may perform all or part of the same processing as the image generation unit 130 of the server device 10.
[0157] The sound processing unit 240 performs sound processing based on the results of various processes performed by the processing unit 200, generating (playing) game sounds such as background music, sound effects, or voices, and outputting them to the sound output unit 292. The sound processing unit 240 may perform all or part of the same processing as the sound processing unit 140 of the server device 10.
[0158] In this embodiment, if multiple terminal devices 20 play a game using P2P or the like, one terminal device 20 may take on the role of a host and execute processing. In such a case, the host terminal device 20 may perform processing for each processing unit (part or all of each processing unit) of the server device 10.
[0159] Furthermore, the terminal device 20 of this embodiment may perform the same processing as the server device 10 and display an image on the display unit 290 of the terminal device 20.
[0160] [4] Overview The game system of this embodiment relates to a game in which multiple players participate online (for example, a competitive game). The game system progresses the game based on the input information of the multiple players. For example, the game progresses based on the input information of player PA operating terminal device 20A (an example of a first terminal device) (hereinafter also referred to as the first input information) and the input information of player PB operating terminal device 20B (an example of a second terminal device) (hereinafter also referred to as the second input information).
[0161] For example, when server device 10 acquires input information from terminal devices 20A and 20B, it may not be able to acquire information from terminal device 20B due to communication delay (lag) on terminal device 20B. To reduce player stress, server device 10 proceeds with the game using temporary information without waiting for the information with communication delay. Afterwards, it performs a rollback process based on the correct information.
[0162] Furthermore, in this embodiment, in order to make the rollback less noticeable, performance control is performed on the operation control (in a broad sense, game control) of each character corresponding to each terminal device.
[0163] For example, in this embodiment, the content and duration of the image effect control are determined according to the performance of each terminal device 20A and 20B, the communication environment (whether or not there is a delay, how much the delay is, etc.), and the game situation, and the image effect control is performed to make it look more natural.
[0164] For the sake of clarity, the following explanation will primarily focus on the control of the server device 10, which constitutes the game system; the terminal device 20A (an example of the first terminal device) controlled by player PA (an example of the first player); and the terminal device 20B (an example of the second terminal device) controlled by player PB (an example of the second player).
[0165] The server device 10 is connected to terminal devices 20A and 20B via the network.
[0166] Furthermore, the game system is not limited to a client-server model; it may also be a game system implemented using P2P (peer-to-peer) communication across multiple terminal devices 20.
[0167] [5] Example of a fully key-synchronized multi-online game [5.1] Description of fully key-synchronized multiplayer online games A fully key-synchronized multi-online game is a technique often used in fighting games, for example, where input information is perfectly synchronized among multiple players' terminal devices 20 frame by frame (every 1 / 60th of a second) to ensure smooth gameplay.
[0168] In this embodiment, the server device 10 and terminal devices 20A and 20B synchronize before the game starts, and then the game is initiated.
[0169] For example, an example of a game system that executes a game based on the input information of player PA's terminal device 20A and player PB's terminal device 20B will be explained using Figure 4.
[0170] The server device 10 of this embodiment receives input information corresponding to the frame identification information of terminal device 20A and input information corresponding to the frame identification information of terminal device 20B. The frame identification information is information for uniquely identifying a frame and usually indicates the frame number. The frame identification information is an integer that is incremented at regular intervals (for example, every 1 / 60th of a second) as the game progresses.
[0171] Then, the game progresses based on the input information from terminal device 20A and terminal device 20B, whose frame identification information matches.
[0172] For example, server device 10 receives input information for "punch" with frame number 101 from terminal device 20A and input information for "guard" with frame number 101 from terminal device 20B.
[0173] Then, based on the "punch" input information of terminal device 20A and the "guard" input information of terminal device 20B, which both have the same frame identification number 101, the operation of characters OB1 and OB2 corresponding to each terminal device 20A and 20B is controlled.
[0174] The server device 10 transmits game control information (e.g., motion control data, generated screen data, results, etc.) to each terminal device 20A and 20B for each frame, and proceeds with the game.
[0175] For example, each terminal device 20A, 20B performs game control (e.g., display control, data update, etc.) based on game control information received from the server device 10.
[0176] [5.2] Explanation of Rollback Processing and Performance Control However, communication delays occurred between the server device 10 and the terminal device 20B, and terminal device 2 In some cases, the input information from terminal device 20A may not reach the server device 10 immediately. In such cases, in this embodiment, in order to ensure that the game progresses smoothly, the server device 10 proceeds with the game based on the input information from terminal device 20A that has been received.
[0177] For example, as shown in Figure 4, at timing T2, input information for "punch" number 101 may be received from terminal device 20A, but input information for number 101 may not be received from terminal device 20B.
[0178] For example, as shown in Figure 4, if the server device 10 has not received input information from terminal device 20B corresponding to frame identification information 101 of the "punch" input information from terminal device 20A at a predetermined timing T2, it performs game control based on the "punch" input information from terminal device 20A.
[0179] Game control includes, for example, the control of the movement of character OB1 on terminal device 20A and the control of the movement of character OB2 on terminal device 20B. Note that movement control may also include movement control of character OB1, character movement control, hit detection (collision detection), parameter control, image control, etc.
[0180] For example, the server device 10 controls the character OB1, which is controlled by the player PA, to perform a punching motion, and when the punch of character OB1 hits character OB2, which is controlled by the player PB, it causes character OB2 to perform a motion where it takes damage (for example, is knocked back), and controls the character OB2's HP value (health value) to decrease as it takes damage, and so on.
[0181] Furthermore, the server device 10 controls image generation based on the "punch" input information from the terminal device 20A. For example, the server device 10 controls image generation related to the movement and actions of character OB1, which is controlled by player PA, and image generation related to the movement and actions of character OB2, which is controlled by player PB.
[0182] The server device 10, recognizing that the action control for character OB1's punch hitting character OB2 and character OB2 taking damage is uncertain, performs a visual effect control (first visual effect control) for the action control of each character OB1 and OB2 based on the "punch" input information from terminal device 20A until it receives input information 101 from terminal device 20B and determines that the said action control is correct. Visual effect control may also be referred to as deceptive control or, in the case of visual effects, effect control.
[0183] Then, the server device 10, upon receiving input information from the terminal device 20B corresponding to frame identification information 101 within a predetermined period set based on a predetermined timing T2 (for example, within the period from T2 to T6), determines whether the operation control of each character OB1 and OB2 is correct or incorrect.
[0184] The server device 10 determines whether the operation control is correct or incorrect based on the type of input information from the terminal device 20B corresponding to frame identification information 101 received within a predetermined period (for example, whether there is input, and if there is input, the type of button such as A button, B button, up button, down button, left button, right button on the directional pad, etc.) and / or the command information corresponding to that type (for example, command information such as punch, kick, guard, jump, crouch, etc.).
[0185] The specified period is the time from a predetermined timing until correct input is received, and can also be called the input acceptance period. For example, the specified period is set to a period of 6 to 10 frames, depending on the type of game. Note that 1 frame is 1 / 60 of a second. In terms of format, a predetermined period will be set depending on the type of game.
[0186] For example, at timing T6, which is within a predetermined period, if the terminal device 20B receives input information for "guard" with frame identification information 101, the system determines whether the action control (for example, the action where character OB1's punch hits character OB2 and character OB2 takes damage) is correct or incorrect. In other words, at timing T2, a recalculation is performed based on the input information for "punch" from terminal device 20A and the input information for "guard" from terminal device 20B. If the recalculation determines that character OB2's guard was successful and no damage was taken, the system determines that the action control (the action control where character OB2 takes damage) is incorrect.
[0187] In this embodiment, if there is an error in any part of the motion control, it will be judged as an error. For example, in judging the correctness of motion control where character OB1's punch hits character OB2 and character OB2 takes damage, if character OB1's punch hits character OB2, which is correct, but character OB2 does not take damage (is not thrown back) because the guard is successful, then part of the motion control is incorrect, and it will be judged as an error.
[0188] Then, if the server device 10 determines that the operation control is incorrect, it performs a rollback process that returns to timing T2 based on the "punch" input information from terminal device 20A that matches frame identification information 101 received at a predetermined timing T2, and the "guard" input information from terminal device 20B that matches frame identification information 101.
[0189] The process of rolling back means going back to a previous frame and recalculating in the correct state, and is also called a rewind process. In other words, the process of rolling back means going back to a previous frame (for example, frame identification information 101) and recalculating (re-operating) the motion control. As a result of rolling back, for example, by going back to frame identification information 101 and recalculating, the state in which character OB2's guard was established at frame identification information 101 is simulated again, and the correct course of events from that guard state to timing T6 is reproduced.
[0190] Then, at timing T6, the performance control (first performance control) is terminated, and the operation control is performed in the state after the rollback. For example, if the guard motion of character OB2 has elapsed since timing T2, the continuation of the guard motion is calculated at timing T6.
[0191] Furthermore, if the server device 10 determines that the operation control is correct, it will continue the operation control. In other words, if the operation control is correct, a rollback is unnecessary. If the server device 10 determines that the operation control is correct, it will continue the operation control. Furthermore, if the server device 10 determines that the operation control is correct, it may reduce the health value of character OB2, who is receiving the punch attack of frame identification information 101.
[0192] In this embodiment, the correctness of the operation control is determined, and if there is an error in the operation control, a rollback is performed. In this embodiment, the operation control is masked by the visual effect control (first visual effect control), so the player can play the game without feeling any discomfort.
[0193] [5.3] Description of the first and second operation controls In this embodiment, as shown in Figure 4, for example, operation control based on the input information of the terminal device 20A corresponding to frame identification information 101 received at a predetermined timing T2 is performed by the first operation control (for example, when the punch of character OB1 hits character OB2). (This will result in the character OB2 taking damage.)
[0194] The first operation control is performed from a predetermined timing T2 until the end of a predetermined period (the end of a predetermined period set based on the predetermined timing T2).
[0195] Before the end of the predetermined period, the server device 10 receives input information from terminal device 20B that matches frame identification information 101, and if it determines that the operation control (first operation control) is incorrect, it terminates the first operation control at the time it receives input information from terminal device 20B with frame identification information 101 (for example, at timing T6).
[0196] Then, at timing T6, the server device 10 of this embodiment performs a second operation control based on the "punch" input information of terminal device 20A received at a predetermined timing T2 and the "guard" input information of terminal device 20B that matches frame identification information 101 corresponding to the "punch" input information. The server device 10 performs the second operation control from timing T6 in the state after rollback.
[0197] In other words, if the server device 10 determines at timing T6 that the first operation control is incorrect, it goes back to timing T2 and recalculates the parameters, position, hit detection, and other calculations for each character OB1 and OB2 based on the "punch" input information from terminal device 20A corresponding to frame identification information 101 and the "guard" input information from terminal device 20B corresponding to frame identification information 101.
[0198] Then, from timing T6, the server device 10 transmits operation control information based on the "punch" input information from terminal device 20A corresponding to frame identification information 101 and the "guard" input information from terminal device 20B corresponding to frame identification information 101 to terminal device 20A and terminal device 20B. In other words, from timing T6, the correct content is reflected on the game screens of terminal device 20A and terminal device 20B.
[0199] [5.4] Explanation of the second type of performance control In this embodiment, as shown in Figure 4, when the operation control of each character OB1, OB2 based on the input information of the terminal device 20A's "punch" is determined to be incorrect at point T6, the performance control may be extended instead of ending.
[0200] For example, when transitioning from the first operation control to the second operation control, the second performance control may be performed.
[0201] For example, a second performance control is performed during a given period (for example, the period from T6 to T8) starting from the point T6 when the operation control (first operation control) is judged to be incorrect.
[0202] For example, the first performance control is performed during the period (T2 to T6) until it is determined whether the motion control (first motion control) is correct or not.
[0203] In this embodiment, a second performance control is performed during a given period (the period from T6 to T8) in which the "guard" input information of terminal device 20B corresponding to frame identification information 101 is reflected.
[0204] The server device 10 may also set the second effect control to a control that continuously changes from the first effect control. For example, the second effect control may gradually fade out the blurring process. In other words, the blurring effect (blur effect) caused by the blurring process is gradually weakened over a certain period of time (for example, a period of 2 to 5 frames), and eventually returned to the original sharp state.
[0205] [5.5] Detailed explanation of image presentation control Figure 5 shows an example of screen G1 in which the image presentation control of this embodiment is performed. The server device 10 transmits information about screen G1 to terminal devices 20A and 20B. The same screen G1 is displayed on terminal devices 20A and 20B.
[0206] For example, when character OB1, the target of terminal device 20A, is punching, the arm portion of character OB1 is displayed blurred. In addition, the HP (health) gauge GA1 of character OB1 and the HP (health) gauge GA2 of character OB2 are also displayed blurred.
[0207] Image processing control involves applying visual effects and processing to images, specifically, effect processing (also known as filtering or masking).
[0208] Effect processing includes image calculations such as blurring, mosaic effects, semi-transparency processing, grayscale conversion, and color correction.
[0209] For example, in this embodiment, the type of image effect may be determined. The type of image effect may be blurring, mosaic, semi-transparency processing, etc.
[0210] Furthermore, in this embodiment, the object to which image performance control is performed may be determined. For example, the character OB2, which is the target of operation of the terminal device 20B of player PB that does not accept input information, may be designated as the object to which performance control is performed.
[0211] Furthermore, in this embodiment, the size of the screen for the image presentation may be determined. For example, the resolution of the image or the size of the area where the image presentation is displayed may be determined.
[0212] In this embodiment, the color and brightness of the pixels targeted for image rendering may also be determined. Furthermore, if mosaic processing is performed as an image rendering, the color and brightness of each tile (each block) of the mosaic may also be determined.
[0213] Additionally, when applying semi-transparency as an image effect, you may set the transparency (alpha value) of the object or pixel that is the target of the image effect.
[0214] In this embodiment, the position of the image effect (for example, the starting position of the mosaic, the starting position of the blur, the starting position of the semi-transparency processing) may be determined by coordinates (X, Y), and the range (area, size) of the image effect may be determined by the width and height of the rectangle.
[0215] Furthermore, in this embodiment, the blurring process of the entire game screen may be performed as a visual effect control.
[0216] Furthermore, in this embodiment, when generating the image visible from the virtual camera, a process to shake the virtual camera (camera shake) may be performed as a visual effect control.
[0217] Furthermore, in this embodiment, hit stop processing may be performed as a visual effect control. Hit stop indicates that when it is determined that an attack such as a punch has hit, the movement (movement and actions) of the attacked character OB2 is stopped for a given period of time (for example, 10 frames). The period of time for stopping the character's movement may be determined according to the type of attack.
[0218] Hit stop processing may also involve stopping the movement (movement and actions) of the entire game screen (the entire game image) for a given period of time (for example, 10 frames).
[0219] In this embodiment, at least one of the content of the performance control and the period during which the performance control is performed may be changed according to predetermined conditions.
[0220] The predetermined conditions are at least one of the following: conditions based on terminal information for each of terminal devices 20A and 20B (e.g., terminal performance, communication environment, communication speed), and conditions related to the game situation.
[0221] For example, server device 10 measures the communication speed with terminal device 20A by measuring the ping value. Server device 10 also measures the communication speed with terminal device 20B by measuring the ping value.
[0222] The ping value is a value that indicates the response time or response speed of the network connection. In other words, the server device 10 obtains the response time and response speed of the network connection between the server device 10 and the terminal device 20.
[0223] The server device 10 measures the communication environment and communication speed at various times, such as before the game starts, at the start of the game, and during the game. Alternatively, the communication environment and communication speed may also be measured during the previous game (before the previous game started, at the start of the previous game, and during the previous game).
[0224] For example, if the communication speed between the server device 10 and the terminal device 20B is faster than a predetermined value, the server device 10 blurs the attack area of character OB1 (for example, the area of the upper right arm in the case of a right punch). On the other hand, if the communication speed between the server device 10 and the terminal device 20B is slower than a predetermined value, the server device 10 blurs the attack area of character OB1 (for example, the area of the upper right arm in the case of a right punch) and performs hit stop processing on the entire screen.
[0225] Thus, the server device 10 may determine the content of the performance control based on the communication speed with the terminal device 20B on the side where the input information is delayed.
[0226] Furthermore, for example, if the communication speed between the server device 10 and the terminal device 20B is faster than a predetermined value, the server device 10 sets the period for blurring the attack area of character OB1 (for example, the area of the upper right arm in the case of a right punch) to 8 frames. On the other hand, if the communication speed between the server device 10 and the terminal device 20B is slower than a predetermined value, the server device 10 sets the period for blurring the attack area of character OB1 (for example, the area of the upper right arm in the case of a right punch) and for performing hit stop processing on the entire screen to 10 frames.
[0227] Thus, the server device 10 may determine the duration of the performance control based on the communication speed with the terminal device 20B on the side where the input information is delayed.
[0228] When implementing hit stop processing, the content and duration of the hit stop can usually be determined based on the type of attack (technique, type of bullet, attack item, etc.).
[0229] Furthermore, the server device 10 may change the content and duration of the hit stop according to predetermined conditions.
[0230] For example, the server device 10 may terminate the hit stop process when it receives correct input information (input information from the terminal device 20B at a predetermined timing T2).
[0231] Furthermore, if the server device 10 is performing image control for hit stop processing and blurring processing, it may terminate the hit stop processing when it receives correct input information (input information from the terminal device 20B at a predetermined timing T2), and then perform blurring processing until the end of the predetermined effect period. In other words, when performing multiple types of effects, the end time of the effect period may be determined according to each effect.
[0232] Furthermore, if the server device 10 is to blur both the attacking character OB1 (the character OB1 controlled by the terminal device 20A) and the attacked character OB2 (the character OB2 controlled by the terminal device 20A), it may set the transparency of character OB1 to be higher than that of character OB2. In other words, the degree of blurring may be determined for each character.
[0233] The server device 10 may, based on the comparison result of comparing the terminal information (e.g., terminal performance, communication environment, communication speed) of terminal devices 20A and 20B, infer that the input information of terminal device 20B corresponding to frame identification information 101 of the input information (punch input information) received at a predetermined timing T2 has not been received (cause). In this embodiment, the length of a predetermined period may be determined based on the inference result.
[0234] For example, when trying to deduce the reason, the server device 10 compares the response speed between the server device 10 and the terminal device 20B with the response speed between the server device 10 and the terminal device 20A.
[0235] For example, if the response time (Ping value) between the server device 10 and the terminal device 20B is slower than the response time between the server device 10 and the terminal device 20A, the server device 10 will infer that the reason is a communication delay.
[0236] [5.6] Flowchart Next, using Figures 6A, 6B, and 6C, the processing flow of the server device 10 in a game system consisting of a server device 10, terminal devices 20A, and terminal devices 20B in a fully key-synchronized multi-online game of this embodiment will be explained.
[0237] When the game starts (step S1), the server device 10 determines whether or not it has received second input information corresponding to the frame identification information of the first input information received at a predetermined timing (step S2). The first input information is the input information received from terminal device 20A. The second input information is the input information received from terminal device 20B.
[0238] Then, when a second input information corresponding to the frame identification information of the first input information received at a predetermined timing is received (Y in step S2), operation control is performed based on the first input information and the second input information whose frame identification information matches (step S3).
[0239] Then, it is determined whether the game has ended or not (step S4). For example, if there is a character whose health value (HP value) has reached 0, that character is determined to have lost, the other character is determined to have won, and the game ends.
[0240] If the game has ended (Y in step S4), the process terminates. If the game has not ended (N in step S4), the process returns to step S2.
[0241] If the second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received (N in step S2), the process proceeds to step S12 in Figure 6B.
[0242] Next, as shown in Figure 6B, based on the first input information received at a predetermined timing, Then, the operation control of each character corresponding to each terminal device is performed (step S12).
[0243] Then, control is performed for the motion control (step S13). For example, control is performed to blur the upper right arm of character OB1, which is performing the first input information (e.g., a right punch).
[0244] Then, it is determined whether or not a second input information matching the frame identification information corresponding to the first input information received at a predetermined timing within a predetermined period has been received (step S14). The predetermined period is a period set based on a predetermined timing.
[0245] If a second input information is received that matches the frame identification information corresponding to the first input information received within a predetermined period and at a predetermined timing (Y in step S14), it is determined whether the operation control is correct or not (step S15). If the operation control is incorrect (N in step S15), the process proceeds to step 21 in Figure 6C.
[0246] On the other hand, if a second input information matching the frame identification information corresponding to the first input information received at a predetermined timing is not received within a predetermined period (N in step S14), or if the operation control is correct (Y in step S15), it is determined whether the game has ended (step S16). If the game has ended (Y in step S16), the process ends. If the game has not ended (N in step S16), the process returns to step S2 in Figure 6A.
[0247] Next, as shown in Figure 6C, a rollback is performed based on the first input information received at a predetermined timing and the second input information that matches the frame identification information corresponding to the first input information (step S21). In other words, the process returns to the frame identification information of the second input information received and recalculates.
[0248] Then, based on the first input information received at a predetermined timing and the second input information that matches the frame identification information corresponding to the first input information, operation control (second operation control) is performed (step S22). In other words, operation control (second operation control) is performed in the state after rollback.
[0249] The system determines whether the game has ended (step S23). If the game has ended (step S23, Y), the process terminates. If the game has not ended (step S23, N), the process returns to step S2 in Figure 6A. This completes the process.
[0250] [5.7] Control at terminal devices In this embodiment, an example was described in which the server device 10 performs operation control and performance control. However, the server device 10 may perform management control of input information, and the terminal device 20 may perform operation control and performance control.
[0251] For example, server device 10 transmits input information from terminal device 20B to terminal device 20A, and transmits input information from terminal device 20A to terminal device 20B. Each input piece of information is associated with frame identification information.
[0252] Then, terminal devices 20A and 20B each receive input information from the server device 10 for the other terminal device. For example, terminal device 20A receives input information from terminal device 20B, and terminal device 20B receives input information from terminal device 20A.
[0253] Then, each of the terminal devices 20A and 20B performs operational control based on the input information of its own device (its own terminal device 20) and the input information received from the other device (the other terminal device 20). Based on the input information from terminal device 20A and terminal device 20B, which match the frame identification information, operation control is performed.
[0254] If terminal device 20A has not received (is not receiving) input information from another device (another terminal device 20B) that corresponds to the frame identification information of its own input information, terminal device 20A performs operation control based on its own input information. Then, terminal device 20A performs visual control (for example, blurring the characters of the other terminal device 20, etc.) for said operation control.
[0255] Then, when terminal device 20A receives input information from another device (another terminal device 20B) that corresponds to the frame identification information of its own input information (terminal device 20A), it performs a rollback based on its own input information (terminal device 20A) and the input information from the other device (another terminal device 20B) that corresponds to the frame identification information of its own input information (terminal device 20A), and performs operation control based on the input information of its own device (terminal device 20A) and the input information of the other device (terminal device 20B) whose frame identification information matches.
[0256] [5.8] P2P game system In this embodiment, even in a game system using P2P communication between multiple terminal devices 20, processing may be performed in the same way as in server-client communication.
[0257] Even in a P2P game system, operation control is performed based on the input information of each terminal device 20 whose identification information matches for each frame, thereby maintaining the same game state.
[0258] Each terminal device 20 sends and receives input information for each frame, and if there is any input information that could not be received, it uses its own input information to control the movement of each character corresponding to each terminal device. Then, each terminal device 20 controls the visual effects for that movement control. If delayed input information is received from another terminal device, it performs a rollback process. It then performs movement control in the state after the rollback.
[0259] For example, if the terminal device 20A has not received the input information of the terminal device 20B corresponding to the frame identification information (e.g., No. 101) of the input information of its own device received at a predetermined timing, the terminal device 20A performs motion control of each character corresponding to each terminal device based on the input information of its own device with the frame identification information of No. 101.
[0260] The terminal device 20A performs presentation control for the motion control.
[0261] The terminal device 20A determines whether the motion control is correct or incorrect when receiving the input information of the terminal device 20B with the frame identification information of No. 101 within a predetermined period set based on the predetermined timing.
[0262] The terminal device 20A continues the motion control when determining that the motion control is correct.
[0263] When determining that the motion control is incorrect, the terminal device 20A performs a rollback process based on the input information of the terminal device 20A with the frame identification information of No. 101 and the input information of the terminal device 20B with the frame identification information of No. 101.
[0264] Note that the terminal device 20B also performs the same processing as the terminal device 20A. That is, when the input information from the terminal device 20A is delayed, the motion control of each character proceeds without delay based on the input information of the terminal device 20B. Then, presentation control is performed for the motion control, and rollback processing is performed as necessary.
[0265] [5.9] Others In this embodiment, we have mainly described an example where a communication delay occurs in terminal device 20B, but there may also be cases where a communication delay occurs in terminal device 20A. When a communication delay occurs in terminal device 20A, the server device 10 (or terminal device 20B) performs operation control and performance control, just as when a communication delay occurs in terminal device 20B. When the server device 10 receives delayed input information from terminal device 20A, it determines whether the operation control is correct or incorrect. If the operation control is correct, it continues the operation control. On the other hand, if it determines that the operation control is incorrect, it performs a rollback process based on the delayed input information from terminal device 20A and the input information from terminal device 20B that matches the input information and frame identification information.
[0266] [6] Example of asynchronous multiplayer online games [6.1] Explanation of asynchronous communication in multiplayer online games Asynchronous communication in multiplayer online games is a technique often used in FPS games, for example. In such games, terminal device 20 transmits player input information to server device 10 in real time, and the server device 10 processes the information and returns the results to terminal device 20. This communication is asynchronous, allowing players to continue playing the game without waiting for data to be sent or received. FPS stands for First Person Shooter.
[0267] Characters controlled by multiple players share the same game space (virtual space) in real time. Each character executes the game at the same time.
[0268] For example, Figure 7 illustrates a game system in which a server device 10 determines a predetermined situation (for example, using the position of character OB2 at the time of receiving a bullet firing event from character OB1) based on event information from each terminal device 20A, 20B, and then executes the game based on the determination result (hit or not hit).
[0269] The server device 10 receives event information including the timing of events occurring for each terminal device 20A, 20B (for example, attack events such as bullet firing events, and events where items are acquired) and game information (for example, the location information of the character being controlled by each terminal device, the character's health value, attack power, defense power, abilities, and other game information).
[0270] For example, when server device 10 receives bullet firing event information (an example of event information) from terminal device 20A, it makes a provisional decision based on the bullet firing event information and game information (e.g., position information of character OB1) from terminal device 20A at event occurrence timing T21, and the game information from terminal device 20B at event occurrence timing T21 (e.g., position information of character OB2). Based on the provisional decision result, it performs operation control (first operation control) for each character OB1 and OB2 corresponding to each terminal device 20A and 20B. For example, since the bullet firing event is predefined as an event that may be rolled back, a provisional decision is made. The operation control may include movement control of character OB1, character movement control, hit detection (collision detection), parameter control, image control, etc.
[0271] The server device 10 sends the processing results to each terminal device 20A and 20B for each frame, and the game progresses.
[0272] [6.2] Explanation of Rollback Processing and Performance Control However, communication delays occurred between the server device 10 and the terminal device 20B, and terminal device 2 In some cases, the game information for 0B may not reach the server device 10 immediately. In such cases, in this embodiment, the game is advanced based on a provisional decision result in order to ensure that the game proceeds smoothly.
[0273] For example, as shown in Figure 7, when information about a bullet firing event is received from terminal device 20A, a provisional decision is made based on the event information (e.g., information about the occurrence of a bullet firing event) and game information (e.g., the position of character OB1) from terminal device 20A at the event timing T21, and the game information (e.g., the position P1 of character OB2) from terminal device 20B at the event timing T21. Based on the provisional decision result, the operation of characters OB1 and OB2 is controlled.
[0274] For example, it performs actions such as calculating the distance a bullet travels when a bullet is fired by character OB1, which is controlled by player PA; determining whether a bullet hits character OB2, which is controlled by player PB, based on its position P1; controlling character OB2 to perform a motion where it takes damage (for example, is knocked back) if it is hit; and controlling the decrease in character OB2's HP (health) value as it takes damage.
[0275] Furthermore, the server device 10 controls image generation based on the provisional judgment result. For example, the server device 10 controls image generation related to the movement and actions of character OB1, which is controlled by player PA, and image generation related to the movement and actions of character OB2, which is controlled by player PB.
[0276] Since the provisional judgment result is uncertain, the server device 10 performs performance control (first performance control) for the operation control based on the provisional judgment result until it is determined whether or not the provisional judgment result is correct. The performance control is similar to that of a fully key-synchronized game. Then, the server device 10 determines whether the provisional judgment result is correct or incorrect if it receives correct game information (for example, the correct position P2 of character OB2) from the terminal device 20B within a predetermined period (for example, within the period from T22 to T26) set based on the timing T21 of the bullet firing event. In other words, the server device 10 verifies whether the provisional judgment result is correct or not. For example, the start timing T22 of the predetermined period is, for example, the timing when information about the occurrence of a bullet firing event is received.
[0277] In other words, if the collision detection based on the correct position P2 of character OB2 at the timing of the bullet firing event T21 determines that the character was hit, and this matches the provisional determination that the character was hit, then the provisional determination is judged to be correct. On the other hand, if the collision detection based on the correct position P2 of character OB2 at the timing of the bullet firing event T21 determines that the character was not hit, and this differs from the provisional determination that the character was hit, then the provisional determination is judged to be incorrect.
[0278] The predetermined period is the time from the timing of the event occurrence until correct information (for example, the correct position information of character OB2) is received, and can also be called the input acceptance period. For example, the predetermined period is set to a period of 6 to 10 frames depending on the type of game. One frame is 1 / 60 of a second. In this embodiment, the predetermined period is set in advance depending on the type of game.
[0279] For example, at the timing T21 when a bullet firing event occurs, the server device 10 determines that the correct position P2 of character OB2 is different from the position P1 of character OB2 that was initially determined to be character OB2. Therefore, it reconstructs the situation at the timing T21 when the bullet firing event occurs and determines whether or not the bullet hit character OB2.
[0280] Then, when determining that the bullet has not hit the character OB2 (that is, has missed), the server device 10 determines that the temporary determination result is incorrect. On the other hand, when determining that the bullet has hit the character OB2 (that is, has landed a hit), the server device 10 determines that the temporary determination result is correct.
[0281] The server device 10 continues the operation control when determining that the temporary determination result is correct.
[0282] When determining that the temporary determination result is incorrect, the server device 10 performs a rollback process based on the event information of the terminal device 20A at the event occurrence timing T21 (for example, information on the occurrence of a bullet firing event) and game information (for example, the position of the character OB1), and the correct game information received from the terminal device 20B (for example, the position P2 of the character OB2).
[0283] Then, at timing T26, the effect control (first effect control) is terminated, operation control is performed based on the information after rollback from timing T26, and an image is generated.
[0284] In this way, in the present embodiment, every time the game proceeds based on the temporary determination result, the correctness of the temporary determination result is determined, and if there is an error in the temporary determination result, the rollback process is performed. In the present embodiment, the operation control based on the temporary determination result is masked by the effect control (first effect control), so that the player can play the game without feeling unnatural.
[0285] [6.3] Description of the first operation control and the second operation control The server device 10 of the present embodiment sets the operation control based on the temporary determination result as the first operation control.
[0286] For example, as shown in FIG. 7, the server device 10 stores the bullet firing event at the timing T21 of the bullet firing event in the storage unit 170.
[0287] For example, the server device 10 predefines certain events that may potentially be rolled back in the future (e.g., bullet firing events, attack events, item acquisition events, etc.) among various events.
[0288] Then, when a predetermined event is received from a given terminal device 20 (for example, terminal device 20A), a provisional decision is made based on the predetermined event, and operation control (first operation control) is performed based on the result of the provisional decision.
[0289] For example, if it is determined that character OB2 has been hit by a bullet, a first action control is performed that assumes character OB2 has been hit by a bullet.
[0290] The first operation control is performed from a predetermined timing T22 until the end of a predetermined period (the end of a predetermined period set based on the predetermined timing T22).
[0291] The server device 10 receives correct game information from the terminal device 20B (for example, information that the position at timing T21 is position P2) before the end of the predetermined period, and if it determines that the provisional judgment result (judgment that the bullet hits) is incorrect, it terminates the first operation control at the time it receives correct game information from the terminal device 20B (for example, timing T26).
[0292] The server device 10 then uses the operation control based on the correct judgment result as the second operation control. The server device 10 performs second operation control from timing T26 in the state after the rollback.
[0293] In other words, as shown in Figure 7, the server device 10 of this embodiment performs a second operation control based on, for example, information about the bullet generation event of terminal device 20A at event generation timing T21 (e.g., bullet type and power, bullet firing direction, bullet distance, etc.) and game information of terminal device 20A (e.g., position of character OB1), and correct game information of terminal device 20B at event generation timing T21 (e.g., correct position P2 of character OB2).
[0294] In other words, the server device 10 recalculates the bullet generation event at timing T21 and sends this operation control information to terminal devices 20A and 20B from timing T26. This means that the correct content is reflected on the game screens of terminal devices 20A and 20B from timing T26.
[0295] [6.4] Explanation of the second type of performance control In this embodiment, as shown in Figure 7, when the terminal device 20B receives game information (game information where the position of character OB2 at timing T21 is P2) and determines at time T26 that the provisional judgment result (the judgment that the bullet hit) is incorrect, the performance control may be extended instead of ending.
[0296] In other words, if the server device 10 determines that the provisional judgment result is incorrect, it may perform the second performance control when it transitions from the first operation control based on the provisional judgment result to the second operation control.
[0297] For example, a second performance control is performed during a given period (e.g., the period from T26 to T28) starting from the point T26 when the provisional judgment result is determined to be incorrect.
[0298] For example, during the first action control period of the provisional judgment result (the period from T22 to T26), the first performance control is performed.
[0299] In this embodiment, a second performance control is performed during a given period (the period from T26 to T28) in which the correct game information (information that the position of character OB2 is position P2) is reflected.
[0300] The server device 10 may also set the second effect control to a control that continuously changes from the first effect control. For example, the second effect control may be a control that gradually fades out the blurring process.
[0301] [6.5] Detailed explanation of image presentation control Figure 8 shows an example of screen G2 where the image presentation control of this embodiment is performed. Screen G2 is displayed on terminal device 20A. Since the same preliminary judgment is made on terminal device 20B, the same screen G2 is displayed on terminal device 20B. However, because it is asynchronous communication, it is possible that the same screen may not necessarily be displayed on terminal device 20B.
[0302] For example, screen G2 shown in Figure 8 is the screen displayed when a bullet firing event occurs in which character OB1, the target of operation by terminal device 20A, fires a bullet from gun 80, and it is tentatively determined that the bullet hit character OB2. When it is tentatively determined that the bullet hit character OB2, the area 83 of character OB2 is displayed blurred. Note that the damage force (bullet attack power) value "50" for character OB2, the target that was determined to have been hit by the bullet, is displayed blurred. Area 82 can also be displayed in a blurred state.
[0303] Image presentation control is the same as that for fully key-synchronized image presentation control.
[0304] The server device 10 may also attempt to infer the reason (cause) why a provisional judgment result (for example, a judgment that the bullet hit character OB2, assuming the position of character OB2 is position P1) is incorrect, based on the comparison result of comparing the terminal information (for example, terminal performance, communication environment, communication speed) of each terminal device 20A and terminal device 20B. In this embodiment, the length of a predetermined period may be determined based on the inference result.
[0305] For example, when trying to deduce the reason, the server device 10 compares the response speed between the server device 10 and the terminal device 20B with the response speed between the server device 10 and the terminal device 20A.
[0306] For example, if the response time (Ping value) between the server device 10 and the terminal device 20B is slower than the response time between the server device 10 and the terminal device 20A, the server device 10 will infer that the reason is a communication delay.
[0307] [6.6] Flowchart Next, using Figures 9A, 9B, and 9C, the processing flow of the server device 10 in a game system composed of a server device 10 and multiple terminal devices in the asynchronous communication multi-online game of this embodiment will be explained. One terminal device is, for example, terminal device 20A, and another terminal device is, for example, terminal device 20B.
[0308] When the server device 10 starts the game (step S31), it determines whether or not it has received event information from one of the terminal devices (step S32).
[0309] Then, when event information is received from one terminal device (Y in step S32), a provisional decision is made based on the event information and game information of the terminal device at the time the event occurred, and the game information of the other terminal device at the time the event occurred (step S33).
[0310] Then, based on the provisional judgment result, operation control is performed (step S34). Then, it is determined whether or not the event information has the potential to trigger a rollback (step S35).
[0311] If the event information indicates a possibility of rollback (Y in step S35), proceed to step S41 in Figure 9B.
[0312] If the event information indicates that there is no possibility of rollback (N in step S35), proceed to step S36.
[0313] If no event information is received from one terminal device (N in step S32), proceed to step S36. Note that after step S32 and before step S36, normal game control (for example, game control such as managing and updating the environment and object states within the game's virtual space) may be performed.
[0314] The game is determined to determine whether or not it has ended (step S36). For example, if, among multiple characters participating in the game, one character survives and the health values of all other characters reach 0, that character is determined to have won, all other characters are determined to have lost, and the game ends. The game may also end when a predetermined gameplay period has ended.
[0315] If the game has ended (Y in step S36), the process terminates. If the game has not ended (N in step S36), the process returns to step S32.
[0316] Next, as shown in Figure 9B, performance control is performed based on the provisional judgment result (step S41). For example, based on the judgment result that a bullet hit character OB2 in the bullet generation event, control is performed to blur the display of character OB2.
[0317] Then, it is determined whether or not correct game information regarding the timing of the event occurred was received from another terminal device within a predetermined period (step S42). The predetermined period is a period set based on the timing of the event.
[0318] If correct game information regarding the timing of the event is received from another terminal device within a predetermined period (Y in step S42), it is determined whether the provisional judgment result is correct or not (step S43). If the provisional judgment result is incorrect (N in step S43), the process proceeds to step 51 in Figure 9C.
[0319] On the other hand, if correct game information regarding the timing of the event occurrence is not received from another terminal device within a predetermined period (N in step S42), or if the provisional judgment result is correct (Y in step S43), it is determined whether the game has ended or not (step S44). If the game has ended (Y in step S44), the process ends. On the other hand, if the game has not ended (N in step S44), the process returns to step S32 in Figure 9A.
[0320] Next, as shown in Figure 9C, a rollback is performed based on the event information and game information of one terminal device at the time the event occurred, and the correct game information for the same time received from another terminal device (step S51). In other words, the system returns to the time the event occurred and recalculates.
[0321] Then, based on the event information and game information of one terminal device at the time the event occurred, and the correct game information for the same event occurrence time received from another terminal device, operation control (second operation control) is performed (step S52). In other words, operation control (second operation control) is performed in the state after the rollback.
[0322] The system determines whether the game has ended (step S53). If the game has ended (step S53, Y), the process terminates. If the game has not ended (step S53, N), the system returns to step S32 in Figure 9A. This completes the process.
[0323] [6.7] Regarding multiple terminal devices In the case of asynchronous multi-online games, the number of terminal devices may be three or more. For example, if server device 10 receives correct game information from multiple terminal devices 20B and 20C regarding an event that occurred on terminal device 20A, it performs a rollback process based on the event information and game information of terminal device 20A at the time the event occurred, the correct game information of terminal device 20B at the time the event occurred, and the correct game information of terminal device 20C at the time the event occurred. Then, in the state after the rollback, if correct game information is received from multiple terminal devices 20B and 20C, it performs operation control (second operation control) based on the event information and game information of multiple terminal devices 20A and the correct game information of terminal devices 20B and 20C.
[0324] [6.8] Control at terminal devices In this embodiment, an example was described in which the server device 10 performs operation control and performance control. The server device 10 may manage and control game information and event information, while the terminal device 20 may perform operation control and performance control.
[0325] For example, server device 10 transmits game information and event information from terminal device 20B to terminal device 20A, and transmits game information and event information from terminal device 20A to terminal device 20B.
[0326] Then, terminal devices 20A and 20B each receive game information and event information from the server device 10 for the other terminal devices.
[0327] Then, terminal devices 20A and 20B each perform operational control based on their own event information and game information, and the event information and game information received from the other terminal device (the other terminal device 20).
[0328] For example, when a bullet firing event occurs at timing T21 on its own terminal device 20A, it makes a preliminary determination as to whether or not the bullet hits character OB2, the target of control by terminal device 20B. Based on this preliminary determination that the bullet hit character OB2, it performs action control. Then, terminal device 20A performs visual control (for example, blurring the character of another terminal device 20, etc.) for this action control.
[0329] For example, when server device 10 receives correct game information from terminal device 20B at event occurrence timing T21, it determines whether the provisional judgment result is correct or not. For example, if the judgment that the bullet did not hit character OB2 is incorrect, i.e., if the provisional judgment result is incorrect, it sends information about the rollback and the correct game information from terminal device 20B at event occurrence timing T21 to terminal device 20A.
[0330] Then, when terminal device 20A receives information regarding the rollback and correct game information from terminal device 20B at event occurrence timing T21, it performs a rollback process based on the event information and game information of terminal device 20A at event occurrence timing T21 and the correct game information of terminal device 20B at event occurrence timing T21. Then, it performs operation control (second operation control) based on the event information and game information of terminal device 20A at event occurrence timing T21 and the correct game information of terminal device 20B at event occurrence timing T21.
[0331] [6.9] P2P game system In this embodiment, even in a game system using P2P communication between multiple terminal devices 20, processing may be performed in the same way as in server-client communication.
[0332] Even in a P2P game system, asynchronous communication allows the player terminal devices 20 to share the same game space and execute the game.
[0333] When an event occurs on its own machine, each terminal device 20 makes a provisional decision based on the information of the event and performs operational control based on the result of that provisional decision. Then, each terminal device 20 performs performance control based on the operational control based on the result of that provisional decision.
[0334] Subsequently, if the correct game information from another terminal device 20 at the time the event occurred is received from the other terminal device 20, the system determines whether the provisional judgment result is correct based on the correct game information. If the provisional judgment result is determined to be correct, the system continues operation control. On the other hand, if the provisional judgment result is incorrect, the system performs a rollback process based on the correct judgment result. The system then performs operation control in the state after the rollback.
[0335] [6.10] Other In this embodiment, we have mainly described an example where a communication delay occurs in terminal device 20B, but it is also possible that a communication delay occurs in terminal device 20A. When a communication delay occurs in terminal device 20A, the server device 10 (or terminal device 20B) makes a provisional judgment and performs operation control and performance control based on the result of the provisional judgment, similar to when a communication delay occurs in terminal device 20B. Then, when correct game information is received, the server device 10 determines whether the provisional judgment result is correct or incorrect. If the provisional judgment result is determined to be correct, operation control is continued. On the other hand, if the provisional judgment result is determined to be incorrect, a rollback process is performed. Operation control is performed in the state after the rollback.
[0336] [7] Others The present invention is not limited to the embodiments described above, and various modifications are possible. For example, terms cited as broad or synonymous in the specification or drawings may be replaced with broad or synonymous terms in other descriptions in the specification or drawings.
[0337] The present invention includes configurations that are substantially identical to those described in the embodiments (for example, configurations with the same function, method, and result, or configurations with the same purpose and effect). Furthermore, the present invention includes configurations in which non-essential parts of the configurations described in the embodiments are replaced. Furthermore, the present invention includes configurations that produce the same effects or achieve the same purpose as those described in the embodiments. Furthermore, the present invention includes configurations that add known technology to the configurations described in the embodiments.
[0338] As described above, embodiments of the present invention have been explained in detail, but it will be readily apparent to those skilled in the art that many modifications are possible without substantially departing from the novel aspects and effects of the present invention. Therefore, all such modifications are included within the scope of the present invention. [Explanation of symbols]
[0339] 10 Server equipment, 20, 20A, 20B, 20C Terminal equipment, 100 Processing unit, 111 Display control unit, 113 Game control unit, 114 Performance control unit, 115 Decision unit, 116 Continuation unit, 117 Rollback processing unit, 118 Reception unit, 119 Prediction unit, 120 Communication control unit, 122 Management unit, 130 Image generation unit, 140 Sound processing unit, 160 Input section, 170 Storage section, 171 Main memory section, 172 Image buffer, 174 Game data storage unit, 175 Player information storage unit, 180 Information storage media, 196 Communications Department, 200 Processing unit, 211 Display control unit, 213 Game control unit, 214 Performance control unit, 215 Decision unit, 216 Continuation unit, 217 Rollback processing unit, 218 Reception unit, 219 Prediction unit, 220 Communication control unit, 230 Image generation unit, 240 Sound processing unit, 260 Input unit, 262 Detection unit, 270 Storage unit, 271 Main memory, 272 Image buffer, 274 Game data storage unit, 275 Player information storage unit, 280 information storage medium, 290 display section, 292 Audio output section, 296 Communication section
Claims
1. A game system that executes a game based on first input information from a first terminal device and second input information from a second terminal device, wherein the frame identification information matches. A receiving unit that receives the first input information corresponding to the frame identification information and the second input information corresponding to the frame identification information, If a second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received, the game control unit performs the operation control of each character corresponding to each terminal device based on the first input information, A performance control unit that performs performance control for the operation control based on the first input information, A determination unit that determines whether the operation control is correct or incorrect when it receives a second input information that matches the frame identification information corresponding to the first input information received at the predetermined timing within a predetermined period set based on the predetermined timing, A continuation unit that continues the operation control when it is determined that the operation control is correct, A game system characterized by including a rollback processing unit that performs a rollback process based on the first input information and the second input information when the operation control is determined to be incorrect.
2. In claim 1, The game control unit, A game system characterized in that, when the operation control is determined to be incorrect, a second operation control is performed based on the first input information received at a predetermined timing and the second input information that matches the frame identification information corresponding to the first input information.
3. In claim 2, The aforementioned performance control unit, A game system characterized in that, if the operation control is determined to be incorrect, the system transitions from the operation control to the second operation control, and a second performance control is performed.
4. In claim 1 or 2, A game system further comprising an estimation unit that estimates the reason why a second input information corresponding to the frame identification information of a first input information received at a predetermined timing has not been received, based on the comparison result of comparing the terminal information of the first terminal device and the second terminal device.
5. In claim 1 or 2, The unit that makes the determination said, A game system characterized by determining the correctness of the operation control based on the type of second input information received within the predetermined period and / or command information corresponding to that type.
6. A game system that determines a predetermined situation based on event information from each terminal device and executes a game based on the determination result, A reception unit that receives event information, including the timing of events occurring on each terminal device, and game information, When event information is received from one terminal device, a game control unit makes a provisional decision based on the event information and game information of that terminal device at the time the event occurred, and the game information of other terminal devices at the time the event occurred, and based on the provisional decision result, controls the operation of each character corresponding to each terminal device. A performance control unit that performs performance control for the operation control based on the aforementioned provisional judgment result, A determination unit that determines whether the provisional determination result is correct or incorrect when, within a predetermined period set based on the event occurrence timing of the event information received from one terminal device, correct game information for the event occurrence timing is received from another terminal device, If the aforementioned provisional judgment result is determined to be correct, a continuation unit continues the operation control, A game system characterized by including a rollback processing unit that, if the aforementioned provisional judgment result is determined to be incorrect, performs a rollback process based on the event information and game information of the one terminal device at the timing of the event occurrence and the correct game information received from the other terminal device.
7. In claim 6, The game control unit, A game system characterized in that, if the aforementioned provisional judgment result is determined to be incorrect, a second operation control is performed based on the event information and game information of the first terminal device at the event occurrence timing and the correct game information of the other terminal device at the event occurrence timing.
8. In claim 7, The aforementioned performance control unit, A game system characterized in that, if the provisional judgment result is determined to be incorrect, the system transitions from the first operation control based on the provisional judgment result to the second operation control, and then performs a second performance control.
9. In claim 6 or 7, A game system further comprising a prediction unit that predicts the reason why the provisional judgment result is incorrect based on the comparison results obtained by comparing terminal information of each terminal device.
10. In claim 3 or 8, The aforementioned performance control unit, A game system characterized in that the second performance control is a control that changes continuously from the first performance control.
11. In claim 1 or 6, The aforementioned performance control unit, A game system characterized by changing at least one of the content of the performance control and the period during which the performance control is performed, according to predetermined conditions.
12. In claim 1 or 6, The aforementioned performance control unit, A game system characterized by changing at least one of the content of the performance control and the period during which the performance control is performed, according to predetermined conditions including at least one of conditions based on terminal information of each terminal device and conditions related to the game situation.
13. In claim 1 or 6, The aforementioned performance control unit, A game system characterized by performing the aforementioned performance control, which includes at least one of the following: effect processing, hit stop processing, and virtual camera shaking processing.
14. An information processing device that executes a game based on first input information from a first terminal device and second input information from a second terminal device, the frame identification information of which matches, The first input information corresponding to the frame identification information, and the frame identification information A reception unit that receives the second input information, If a second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received, the game control unit performs the operation control of each character corresponding to each terminal device based on the first input information, A performance control unit that performs performance control for the operation control based on the first input information, A determination unit that determines whether the operation control is correct or incorrect when it receives a second input information that matches the frame identification information corresponding to the first input information received at the predetermined timing within a predetermined period set based on the predetermined timing, A continuation unit that continues the operation control when it is determined that the operation control is correct, An information processing apparatus characterized by including a rollback processing unit that performs a rollback process based on the first input information and the second input information when the operation control is determined to be incorrect.
15. An information processing device that determines a predetermined situation based on event information from each terminal device and executes a game based on the determination result, A reception unit that receives event information, including the timing of events occurring on each terminal device, and game information, When event information is received from one terminal device, a game control unit makes a provisional decision based on the event information and game information of that terminal device at the timing of the event occurrence, and the game information of other terminal devices at the timing of the event occurrence, and controls the operation of each character corresponding to each terminal device based on the provisional decision result. A performance control unit that performs performance control for the operation control based on the aforementioned provisional judgment result, A determination unit that determines whether the provisional determination result is correct or incorrect when, within a predetermined period set based on the event occurrence timing of the event information received from one terminal device, correct game information for the event occurrence timing is received from another terminal device, If the aforementioned provisional judgment result is determined to be correct, a continuation unit continues the operation control, An information processing apparatus characterized by including a rollback processing unit that, when the aforementioned provisional judgment result is determined to be incorrect, performs a rollback process based on the event information and game information of the one terminal device at the timing of the event occurrence and the correct game information received from the other terminal device.
16. A program that executes a game based on first input information from a first terminal device and second input information from a second terminal device, the frame identification information of which matches. A receiving unit that receives the first input information corresponding to the frame identification information and the second input information corresponding to the frame identification information, If a second input information corresponding to the frame identification information of the first input information received at a predetermined timing has not been received, the game control unit performs the operation control of each character corresponding to each terminal device based on the first input information, A performance control unit that performs performance control for the operation control based on the first input information, A determination unit that determines whether the operation control is correct or incorrect when it receives a second input information that matches the frame identification information corresponding to the first input information received at the predetermined timing within a predetermined period set based on the predetermined timing, A continuation unit that continues the operation control when it is determined that the operation control is correct, A program characterized in that, when the aforementioned operation control is determined to be incorrect, the computer functions as a rollback processing unit that performs a rollback process based on the first input information and the second input information.
17. A program that determines a predetermined situation based on event information from each terminal device and executes a game based on the determination result, The system accepts event information, including the timing of events occurring on each terminal device, as well as game information. Reception desk, When event information is received from one terminal device, a game control unit makes a provisional decision based on the event information and game information of that terminal device at the timing of the event occurrence, and the game information of other terminal devices at the timing of the event occurrence, and controls the operation of each character corresponding to each terminal device based on the provisional decision result. A performance control unit that performs performance control for the operation control based on the aforementioned provisional judgment result, A determination unit that determines whether the provisional determination result is correct or incorrect when, within a predetermined period set based on the event occurrence timing of the event information received from one terminal device, correct game information for the event occurrence timing is received from another terminal device, If the aforementioned provisional judgment result is determined to be correct, a continuation unit continues the operation control, A program characterized in that, if the aforementioned provisional judgment result is determined to be incorrect, the computer is made to function as a rollback processing unit that performs a rollback process based on the event information and game information of the one terminal device at the timing of the event occurrence and the correct game information received from the other terminal device.
Citation Information
Patent Citations
Programs, information storage media, and game devices
JP4776978B2
Information processing device, data processing method, program, and recording medium
JP4807517B2