Information processing system, program, and information processing method

The information processing system addresses communication delays in game systems by aligning operation data with timing information, ensuring fair and synchronized gameplay across devices through delay countermeasure processing.

JP2026000848APending Publication Date: 2026-01-06NINTENDO CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2025062902
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-19
Filing Date
2025-04-07
Publication Date
2026-01-06

AI Technical Summary

Technical Problem

Existing game systems face challenges in addressing communication delays between information processing devices, which can lead to disadvantages or imbalances in gameplay experiences.

Method used

An information processing system and method that includes a host device and guest devices, utilizing timing information to manage and adjust operation data based on communication delays, allowing for synchronized gameplay by accumulating and selecting operation data aligned with timing information, and incorporating delay countermeasure processing to ensure fair gameplay.

Benefits of technology

The system effectively reduces the likelihood of gameplay disadvantages due to communication delays by aligning operation data with timing information, ensuring smooth and synchronized gameplay experiences across devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026000848000001_ABST
    Figure 2026000848000001_ABST
Patent Text Reader

Abstract

To take a new countermeasure against communication delay.SOLUTION: The host device executes a game process based on first operation data representing an operation on the host device and second operation data representing an operation on the guest device. The host device transmits the game image to the guest device in association with current timing information in the host device. The guest device draws the received game image, and transmits the second operation data to the host device in association with timing information associated with the game image at the time of acquisition of the second operation data. The host device executes predetermined delay countermeasure processing on the basis of the timing information associated with the second operation data received from the guest device.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system, a program, and an information processing method for executing a game that involves communication between information processing devices. [Background technology]

[0002] Conventionally, there is a technique for executing a game by communicating between information processing devices (see, for example, Patent Document 1). There is also a technique for dealing with delays that occur in communication between information processing devices during a game (see, for example, Patent Document 2). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6646991 specification [Patent Document 2] Patent No. 6927750 specification Summary of the Invention [Problem to be solved by the invention]

[0004] New countermeasures against communication delays are desired.

[0005] Therefore, an object of the present invention is to provide an information processing system, a program, or an information processing method that can take a new measure against communication delays. [Means for solving the problem]

[0006] In order to solve the above problems, the present invention employs the following configurations (1) to (13).

[0007] (1) One example of the present invention is an information processing system including a host device and one or more guest devices capable of communicating with the host device. The host device comprises first operation data acquisition means, first reception control means, game processing means, first drawing means, and first transmission control means. The first operation data acquisition means acquires first operation data indicating operations on the host device. The first reception control means receives second operation data indicating operations on the guest device from the guest device. The game processing means executes game processing based on the first operation data and the second operation data. The first drawing means draws a game image indicating the result of the game processing. The first transmission control means transmits the game image indicating the result of the game processing to the guest device in association with current timing information on the host device. The guest device comprises second reception control means, second drawing means, second operation data acquisition means, and second transmission control means. The second reception control means receives the game image transmitted from the host device and the timing information associated with the game image. The second drawing means draws the received game image. The second operation data acquisition means acquires the second operation data. The second transmission control means transmits the second operation data to the host device in association with timing information associated with the game image at the time the second operation data was acquired. The host device includes a delay countermeasure processing means. The delay countermeasure processing means executes a predetermined delay countermeasure processing based on the timing information associated with the second operation data received from the guest device.

[0008] According to the above configuration (1), it is possible to execute a new delay countermeasure process based on the operation data of the guest device associated with timing information at the time when the game image was generated in the host device.

[0009] (2) In the above configuration (1), the delay countermeasure processing means may calculate the amount of delay in communication between the host device and the guest device based on timing information associated with the received second operation data and the timing of the reception, and perform delay countermeasure processing based on the amount of delay.

[0010] According to the above configuration (2), it is possible to execute a delay countermeasure process using the amount of delay.

[0011] (3) In the above configuration (2), the host device may include an accumulation control means. The accumulation control means accumulates the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and accumulates the second operation data received from the guest device in association with the timing information associated therewith. The delay countermeasure processing means may select at least one piece of the accumulated first operation data and at least one piece of the accumulated second operation data. The game processing means may execute game processing based on the selected first operation data and second operation data.

[0012] According to the above configuration (3), it is possible to select operation data to be used in the game processing from the accumulated operation data.

[0013] (4) In any of the above configurations (1) to (3), the host device may include an accumulation control means. The accumulation control means accumulates the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and accumulates the second operation data received from the guest device in association with the timing information associated therewith. The delay countermeasure processing means may select at least one piece of accumulated first operation data and at least one piece of accumulated second operation data based on the amount of delay. The game processing means may execute game processing based on the selected first operation data and second operation data.

[0014] According to the above configuration (4), by selecting operation data to be used in the game process based on the amount of delay, it is possible to select operation data taking delay into consideration.

[0015] (5) In any of the above configurations (1) to (4), the host device may include an accumulation control means. The accumulation control means accumulates the acquired first operation data in the storage unit in association with timing information at the time of acquisition. The delay countermeasure processing means may select at least one of the accumulated first operation data based on the timing information associated with the second operation data received from the guest device. The game processing means may execute game processing based on the selected first operation data.

[0016] According to the above configuration (5), by adjusting the timing at which the operation data on the host device is used in the game process, it is possible to prevent the user on the guest device from being at a disadvantage.

[0017] (6) In the above configuration (5), the accumulation control means may accumulate the second operation data received from the guest device in the storage unit in association with timing information associated therewith. The delay countermeasure processing means may select, from the accumulated first operation data and second operation data, a pair of first operation data and second operation data associated with timing information that is aligned in timing. The game processing means may execute game processing based on the selected first operation data and second operation data.

[0018] According to the above configuration (6), it is possible to reduce the possibility of an advantage or disadvantage occurring in the game between the host device and the guest device.

[0019] (7) In any of the configurations (1) to (6) above, the host device may store a game program for game processing and system software separate from the game program. By executing the system software, the host device may perform, as a transmission process in the first transmission means, a process of associating game images and timing information when they are passed from the game program and transmitting them to the guest device, and as a reception process in the first reception control means, a process of receiving second operation data and timing information from the guest device, extracting each of them, and outputting them to the game program.

[0020] According to the above configuration (7), there is no need to create a function for sending image data to a guest device and a function for receiving operation data from a guest device for each game program, thereby making it possible to improve the efficiency of game program development.

[0021] (8) In any of the configurations (1) to (7) above, the host device may associate the game image with the timing information by embedding the timing information in a specified area in the data of the game image to be transmitted to the guest device.

[0022] According to the above configuration (8), it is possible to efficiently generate and transmit game images associated with timing information.

[0023] (9) In any of the above configurations (1) to (8), the timing information may be information indicating a frame in which the game image is drawn.

[0024] According to the above configuration (9), timing information that accurately indicates the timing at which image data is generated can be associated with the image data.

[0025] (10) In any of the above configurations (1) to (8), the timing information may be information indicating a time.

[0026] According to the above configuration (10), timing information that accurately indicates the timing at which image data is generated can be associated with the image data.

[0027] (11) In any of the above configurations (1) to (10), a plurality of guest devices may be present. The delay countermeasure processing means may calculate a communication delay between the host device and each guest device based on timing information associated with second operation data received from each of the plurality of guest devices and the timing of reception of the second operation data. The delay countermeasure processing means may select at least one of the accumulated first operation data and at least one of the second operation data received from the guest devices based on the largest delay among the calculated delay amounts. The game processing means may execute game processing based on the selected first operation data and second operation data.

[0028] According to the configuration of (11) above, by taking into consideration the maximum amount of delay between the host device and each guest device, it is possible to make it difficult for guest devices with large amounts of delay to have an advantage or disadvantage in the game.

[0029] (12) In any of the above configurations (1) to (10), a plurality of guest devices may be present. The delay countermeasure processing means may calculate a delay amount between the host device and each of the guest devices based on timing information associated with second operation data received from each of the guest devices and the timing of reception of the second operation data. The delay countermeasure processing means may select at least one of the accumulated first operation data and at least one of the second operation data received from the guest devices based on the largest delay amount among the calculated delay amounts, excluding delay amounts exceeding an allowable value. The game processing means may execute game processing based on the selected first operation data and second operation data.

[0030] According to the above configuration (12), it is possible to reduce the possibility that it takes too long for a change to occur in the game image in response to an operation performed by the user.

[0031] (13) In the above configuration (6), if the delay countermeasure processing means does not select a pair of first operation data and second operation data associated with timing information that is aligned with the timing from among the accumulated first operation data and second operation data, the game processing means may execute game processing without using the operation data.

[0032] According to the above configuration (13), even if the host device is unable to receive sufficient operation data from the guest device due to communication conditions, the game can still proceed.

[0033] Another example of the present invention may be a program for causing a computer of an information processing device to execute each of the processes in (1) to (13) above. Another example of the present invention may be a program for causing a computer of an information processing device to execute some of the processes in (1) to (13) above (for example, processes executed in a host device described below, or processes executed by a host program and / or a guest program described below). Another example of the present invention may be an information processing method for executing each of the processes in (1) to (13) above in an information processing system. Another example of the present invention may be an information processing device (for example, a host device or a guest device) included in the information processing system in (1) to (13) above. [Brief explanation of the drawings]

[0034] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of an information processing system according to an embodiment of the present invention. [Figure 2] FIG. 1 is a block diagram showing an example of a hardware configuration of an information processing device. [Figure 3]FIG. 1 is a functional block diagram showing an example of functions possessed by a host device and a guest device. [Figure 4] FIG. 10 is a diagram showing an example of a flow until game processing is executed using operation data acquired by the host device. [Figure 5] FIG. 10 is a diagram showing an example of each piece of operation data stored in the host device in a certain frame. [Figure 6] FIG. 10 is a diagram showing another example of each piece of operation data stored in the host device in a certain frame. [Figure 7] FIG. 10 is a diagram showing an example of the relationship between the rendering process and the game image used therein. [Figure 8] FIG. 1 is a diagram showing an example of various data used in information processing in a host device; [Figure 9] FIG. 10 is a diagram showing an example of various data used for information processing in a guest device. [Figure 10] A flowchart showing an example of the flow of information processing executed by the CPU of the host device according to the game program. [Figure 11] A flowchart showing an example of the flow of information processing executed by the CPU of the host device according to the game program. [Figure 12] A flowchart showing an example of the flow of graphics processing executed by the GPU of the host device by a game program. [Figure 13] 1 is a flowchart showing an example of the flow of information processing executed by a CPU of a host device according to a host program. [Figure 14] 10 is a flowchart showing an example of the flow of a reception process executed by a guest program in a CPU of a guest device. [Figure 15] 10 is a flowchart showing an example of the flow of drawing and transmission processing executed in the CPU of the guest device by a guest program. DETAILED DESCRIPTION OF THE INVENTION

[0035] [1. Hardware configuration of information processing system] An information processing system according to an example of this embodiment will be described below. FIG. 1 is a block diagram showing an example of the configuration of the information processing system according to this embodiment. As shown in FIG. 1, the information processing system 1 includes a plurality of information processing devices (two information processing devices 2 and 3 in FIG. 1). The number of information processing devices included in the information processing system 1 may be any number equal to or greater than two. The information processing devices 2 and 3 may each be any type of information processing device, such as a game console, a smartphone, a tablet terminal, or a personal computer, regardless of whether it is portable or stationary. Furthermore, the information processing devices 2 and 3 may be of different types or the same type.

[0036] The information processing devices 2 and 3 can communicate with each other. In the information processing system 1, the information processing devices 2 and 3 communicate with each other to exchange data for game processing, thereby executing a game. In this embodiment, among the information processing devices included in the information processing system, an information processing device that stores a game program or has the right to execute the game program (information processing device 2 in the example shown in FIG. 1) operates as a host device, and the other information processing device (information processing device 3 in the example shown in FIG. 1) operates as a guest device. Furthermore, in this embodiment, each information processing device functions as both a host device and a guest device depending on the situation. The host device is an information processing device that executes game processing based on a game program and generates game images that indicate the results of the game processing. The generated game images are transmitted from the host device to the guest device. The guest device is an information processing device that does not need to execute game processing based on a game program and receives game images from the host device. The guest device transmits operation data that indicates user operations on its own device to the host device, and the host device executes the game processing based on the operation data. Note that communication between the information processing devices 2 and 3 may be via any mode of communication, such as Internet communication or short-range wireless communication, and may be performed directly between the devices or via another device (e.g., a server).

[0037] FIG. 2 is a block diagram showing an example of the hardware configuration of the information processing device 2. In this embodiment, the information processing device 2 and the information processing device 3 are the same type, and although not shown, the information processing device 3 also has the same configuration as the information processing device 2. In this embodiment, each of the information processing devices 2 and 3 has both a function for operating as a host device and a function for operating as a guest device. In this embodiment, an information processing device equipped with system software and an OS (operating system) described below operates as a host device by executing a game program. Meanwhile, the information processing device can operate as a guest device even if it does not store a game program. However, in other embodiments, the information processing device may operate as a guest device by executing a game program. In other embodiments, the information processing device included in the information processing system 1 may have only one of a function for operating as a host device and a function for operating as a guest device. That is, in other embodiments, the information processing system 1 may include an information processing device that can operate only as a host device and an information processing device that can operate only as a guest device.

[0038] As shown in FIG. 2, the information processing device 2 includes an SoC (System-on-a-chip) 11 that includes a processor and a memory that executes information processing for a game. For example, the SoC 11 includes a processor such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The SoC 11 is connected to the units 12-16 shown in FIG. 2. Each process of this embodiment may be executed by multiple processors. Also, for example, some of the processes may be executed by multiple processors located at different locations, such as a server processor.

[0039] The information processing device 2 includes an input unit 12. The input unit 12 detects an operation performed by a user on the information processing device 2, and outputs operation data indicating the detected operation. The input unit 12 may include, for example, an operation member such as an analog stick or a button, or may include a sensor such as a gyro sensor or an acceleration sensor. Note that in another embodiment, the information processing device 2 may be configured to be capable of communicating with the information processing device 2 via short-range wireless communication such as Wi-Fi (registered trademark) or Bluetooth (registered trademark), or in some cases via the Internet, and to acquire operation data from a controller including an input unit.

[0040] The information processing device 2 includes a display 13 for displaying images. Note that in other embodiments, the information processing device 2 may not include the display 13, and may instead display images on a display device that can communicate with the information processing device 2.

[0041] The information processing device 2 includes a communication module 14 for communicating with other information processing devices. In this embodiment, the communication module 14 is capable of performing Internet communication as a first communication mode and local communication as a second communication mode. The first communication mode is a mode in which the information processing device 2 connects to the Internet by connecting to a wireless LAN using a method conforming to the Wi-Fi standard, for example, and communicates with other information processing devices connected to the Internet (whether communication is via a server or direct communication). The second communication mode is a mode in which direct wireless communication is performed with other information processing devices within the communication range of the information processing device 2 using a predetermined communication method (for example, a communication method using a proprietary protocol or a method conforming to the Wi-Fi standard). Note that the communication method between the information processing devices included in the information processing system is arbitrary, and may be wired communication or wireless communication.

[0042] The information processing device 2 includes, as examples of storage units, a DRAM 15 and a flash memory 16. The DRAM 15 stores various data used in information processing for executing a game (for example, game processing for progressing the game, processing for transmitting and receiving data to and from other information processing devices for the game, etc.) and generated by the information processing. The flash memory 16 stores various programs for the processor of the information processing device 2 to execute information processing for executing a game.

[0043] In this embodiment, the flash memory 16 stores a game program and system software separate from the game program. The game program is stored in the flash memory 16 by downloading it from a predetermined server (or may be pre-installed in some cases). The game program may be stored in a storage medium (e.g., a memory card) that is detachably attached to the information processing device 2. In this embodiment, the system software refers to a program that is pre-installed in the information processing device 2 regardless of whether or not a user instructs it to do so. The system software includes a host program that is executed when the information processing device 2 operates as a host device, and a guest program that is executed when the information processing device 2 operates as a guest device. The information processing device 2 can store multiple game programs and execute each game program to run different games. The host program and guest program are programs shared by each game program (i.e., programs that are commonly used when each game program is executed).

[0044] [2. Overview of operations in information processing systems] Below, with reference to FIGS. 3 to 7, an example of the operation performed by each information processing device when a game is executed in the information processing system will be described. Each operation may be implemented by either software or hardware, or a combination of both. Below, an example will be described in which the information processing device 2 operates as a host device and the information processing device 3 operates as a guest device. Note that in the following description, the explanations of each functional block (such as "game processing unit 20" and "drawing unit 21") and terms (such as "frame number") are intended to explain specific implementation examples and operations of each functional block in this embodiment. While the explanations may be specific to this embodiment for convenience in order to facilitate understanding of the embodiment, they do not limit the scope of each functional block or terminology itself.

[0045] 3 is a functional block diagram showing an example of functions possessed by the host device and the guest device 3. The host device 2 executes game processing based on a game program, and has the functions of displaying generated game images on its own device and transmitting them to the guest device 3, which include the units 20-25 shown in FIG.

[0046] The game processing unit 20 executes game processing (e.g., processing for controlling each object in the game space and updating parameters indicating the game situation) to progress the game based on operation data from the host device and the guest device. The game processing unit 20 passes game parameters indicating the results of the game processing (e.g., parameters indicating the game situation, such as the position and state of each object in the game space) to the rendering unit 21.

[0047] The rendering unit 21 renders game images based on the game parameters received from the game processing unit 20. That is, the rendering unit 21 renders game images generated based on the game parameters in the frame buffer. As described above, in this embodiment, game images are generated on the host device 2 side. Note that in this embodiment, game images are generated by rendering to the frame buffer, but the manner in which game images are generated in the host device 2 is not limited to this. For example, game images may not be rendered directly to the frame buffer but may be generated in other memory and then transferred to the frame buffer. The rendering unit 21 generates one or more game images to be displayed on each information processing device (i.e., the host device 2 and the guest device 3). The game image for the host device and the game image for the guest device may be the same or different. For example, in the case of a fighting game, the same game image may be displayed on each information processing device, and in the case of a racing game, different game images may be displayed on each information processing device. If the game images are different, the rendering unit 21 generates game images for the host device and the guest device, respectively. On the other hand, if the game images are the same, the rendering unit 21 only needs to generate one game image. Furthermore, if there are multiple guest devices, the game image may be the same for each guest device, or may be different for each guest device.

[0048] Of the generated game images, the game image for the host device is output to the display 13 of the host device 2. In addition, the rendering unit 21 passes, to the transmission control unit 25, the game image for the guest device (which may be the same as the game image for the host device as described above) of the generated game images.

[0049] The rendering unit 21 repeatedly generates game images in a first cycle. In this embodiment, the period during which one game image for the host device is generated and displayed is defined as one frame. The length of the first cycle (i.e., one frame) is, for example, 1 / 60 [seconds]. Note that, in this embodiment, game images for the guest device may be generated in a second cycle (e.g., 1 / 30 [seconds]) that is longer than the first cycle. Specifically, game images for the guest device are generated once every two frames (i.e., half the frequency of game images for the host device).

[0050] The transmission control unit 25 transmits the game image for the guest device to the guest device 3 using the communication module 14. In this embodiment, the transmission by the transmission control unit 25 is performed in response to an instruction from the game processing unit 20. In this embodiment, the transmission control unit 25 generates image data for transmission by performing predetermined processing on the game image for the guest device passed from the rendering unit 21. Specifically, the transmission control unit 25 performs processing to reduce the resolution of the game image for the guest device passed from the rendering unit 21, and then encodes the game image after this processing. This makes it possible to reduce the amount of image data transmitted to the guest device 3. Note that in other embodiments, the transmission control unit 25 may not perform the processing to reduce the resolution and the encoding.

[0051] In this embodiment, the transmission control unit 25 associates a frame number with the game image and transmits it to the guest device 3. Here, the frame counter 23 counts the number of frames each time a game image for the host device is generated, and passes the frame number indicating the current frame number to the transmission control unit 25. For example, the game processing unit 20 notifies the frame counter 23 in response to the generation of a game image, and the frame counter 23 counts the number of frames in response to this notification. The transmission control unit 25 includes frame number information passed from the frame counter 23 in the game image data. Note that this frame number indicates the frame number when the game image for the host device corresponding to the associated game image for the guest device was generated (which can also be said to be drawn). Note that when the drawing and display of one game image are performed within one frame period in the host device 2, the frame number can also be said to indicate the frame number at which the game image for the host device corresponding to the associated game image for the guest device is displayed.

[0052] In this embodiment, the transmission control unit 25 associates the frame numbers with the game images by embedding (also called writing) frame number information in the metadata area of ​​the image data of the encoded game images. This allows game images with frame numbers to be efficiently generated and transmitted. Note that in other embodiments, any method can be used to associate frame numbers with game images, and the frame numbers may be transmitted as separate data while being accompanied by information regarding the correspondence between the two.

[0053] The ID registration unit 24 stores the ID of the guest device 3 in the DRAM 15. For example, when a guest device to be a communication partner is determined when a game is started, the ID registration unit 24 stores the ID of the guest device in the DRAM 15. The transmission control unit 25 acquires the ID of the guest device 3 from the ID registration unit 24 and transmits a game image associated with a frame number to the information processing device indicated by the acquired ID. As described above, in this embodiment, a game image for the guest device is generated once every two frames, and the game image is also transmitted to the guest device 3 once every two frames. Note that a game image for the guest device may be generated once per frame and transmitted every two frames (in this case, for example, some of the generated data may not be used or may be combined).

[0054] When the game image is transmitted from the host device 2 to the guest device 3 as described above, the game image is drawn (for example, written to a frame buffer) and displayed on the guest device 3. The guest device 3 also transmits operation data indicating operations performed on the guest device 3 to the host device 2. In this embodiment, the guest device 3 includes the units 31-36 shown in FIG. 3 as functions for drawing the game image and transmitting the operation data to the host device 2.

[0055] The reception control unit 31 receives image data transmitted from the host device 2 using the communication module of the guest device 3. The reception control unit 31 decodes the image data and then passes it to the drawing unit 32, and also passes frame number information embedded in the image data to the transmission control unit 35.

[0056] The drawing unit 32 executes drawing processing for the game image for the guest device 3 passed from the reception control unit 31. That is, the drawing unit 32 writes the game image to the frame buffer. The game image written to the frame buffer is output to the display of the guest device 3 once per frame. In this embodiment, as described above, the game image is transmitted to the guest device 3 once per two frames, but the drawing unit 32 draws the game image once per frame. In other embodiments, the drawing unit 32 may draw a game image in response to a new game image being received, and not perform drawing processing (i.e., not update the frame buffer) for frames in which no game image is received.

[0057] The operation data acquisition unit 33 acquires operation data output from the input unit of the guest device 3 and passes it to the transmission control unit 35. In this embodiment, the operation data is acquired in a predetermined cycle. The length of this predetermined cycle is arbitrary, but in this embodiment, the operation data is acquired in the first cycle (i.e., for each frame). The transmission control unit 35 transmits the operation data received from the operation data acquisition unit 33 to the host device 2 using the communication module of the guest device 3.

[0058] In this embodiment, the transmission control unit 35 associates the frame number embedded in the game image at the time of acquiring the operation data with the operation data and transmits the operation data. Note that the "game image at the time of acquiring the operation data" means a game image that is being drawn (i.e., already drawn) at the time of acquisition, a game image that is being drawn at that time (for example, a game image that is in the process of being written to the frame buffer), a game image that has already been received at that time, and a game image that is being displayed at that time. In this embodiment, the transmission control unit 35 associates the frame number last received from the reception control unit 31 with the operation data. Therefore, in this embodiment, the operation data is associated with the frame number associated with the game image that is being drawn in the frame buffer at the time the operation data is acquired. Note that in this embodiment, the operation data is transmitted in the above-mentioned predetermined cycle.

[0059] As will be described in detail later, the operation data of the host device 2 is associated with the frame number (in this embodiment, the frame number corresponds to the game image drawn or displayed on the host device) at the time the operation data (operation data of the host device) was acquired. Therefore, by associating a frame number with the operation data on the guest device 3 side as described above, the operation data of the host device 2 and the operation data of the guest device 3 that are associated with the same frame number are acquired for game images generated at the same timing.

[0060] Furthermore, in this embodiment, the transmission control unit 35 transmits an operation number in addition to the frame number associated with the operation data. Specifically, the operation number counter 36 counts the operation numbers and passes the current operation number to the transmission control unit 35. The transmission control unit 35 transmits the operation number passed from the operation number counter 36 associated with the operation data. The operation number is counted so as to increment when the frame number associated with the operation data to be transmitted this time is the same as the frame number associated with the operation data transmitted previously (this occurs when operation data is acquired multiple times while the same game image is being drawn). Furthermore, the operation number is reset to 0 when the frame number associated with the operation data to be transmitted this time is different from the frame number associated with the operation data transmitted previously (that is, when a game image different from that of the previous frame is drawn). Therefore, with respect to a series of operation data transmitted frame by frame, operation data having the same frame number are associated with different operation numbers (specifically, operation numbers that increment by 1).

[0061] The ID registration unit 34 stores the ID of the host device 2 in DRAM. For example, when a game is started and a host device to be a communication partner is determined, the ID registration unit 34 stores the ID of the host device in DRAM. The transmission control unit 35 acquires the ID of the guest device 3 from the ID registration unit 34 and transmits the above-mentioned operation data to the information processing device indicated by the acquired ID.

[0062] When the operation data is transmitted from the guest device 3 to the host device 2 as described above, the host device 2 executes game processing based on the operation data. In this embodiment, the host device 2 includes the units 20, 26-29 shown in FIG. 3 as functions for executing game processing based on the operation data.

[0063] The reception control unit 26 receives operation data transmitted from the guest device 3 using the communication module 14. The reception control unit 26 passes the operation data and the frame number and operation number associated therewith to the operation data storage unit 27, and also extracts the frame number and operation number from the received data and passes them to the delay countermeasure processing unit 29.

[0064] The operation data storage unit 27 stores the operation data from the guest device 3 and the associated frame number and operation number in the DRAM 15. Every time operation data is received from the guest device 3, the operation data is additionally stored in the DRAM 15, and therefore the operation data is accumulated in the DRAM 15.

[0065] Furthermore, the operation data acquisition unit 28 acquires operation data output from the input unit 12 of the host device 2 and passes it to the operation data accumulation unit 27. At this time, the operation data accumulation unit 27 acquires the frame number at which the operation data of the host device 2 was acquired from the frame counter 23, associates the frame number with the operation data, and additionally stores them in the DRAM 15. As a result, the operation data of the host device 2 is also accumulated in the DRAM 15 in the same way as the operation data of the guest device 3. Note that the operation data of the host device 2 is acquired in the above-mentioned predetermined cycle (i.e., at the same frequency as the acquisition of operation data in the guest device 3).

[0066] As described above, in this embodiment, operation data is acquired and accumulated for each frame of the host device 2 and the guest device 3. However, in other embodiments, operation data of the host device 2 and the guest device 3 may be acquired and accumulated at intervals shorter than one frame (for example, multiple times per frame period).

[0067] The delay countermeasure processor 29 executes countermeasure processing for communication delays occurring between the host device 2 and the guest device 3. In this embodiment, the delay countermeasure processor 29 calculates the amount of delay in communication between the host device 2 and the guest device 3 based on the frame number and operation number received from the reception controller 26 (i.e., the frame number and operation number associated with the operation data from the guest device 3) and the frame number indicating the current frame output from the frame counter 23. A specific method for calculating the amount of delay will be described later. For example, the delay countermeasure processor 29 calculates the amount of delay every time operation data is received from the guest device 3. The timing for calculating the amount of delay is not limited to the above, and in other embodiments, the amount of delay may be calculated once for every predetermined number of frames, or once for every predetermined number of operation data received from the guest device 3.

[0068] Furthermore, in this embodiment, the delay countermeasure processing unit 29 selects operation data to be used in game processing from among the accumulated operation data (i.e., operation data of the host device 2 and operation data of the guest device 3) based on the amount of delay. The method for selecting operation data based on the amount of delay will be described later. Information indicating the selected operation data is passed from the delay countermeasure processing unit 29 to the game processing unit 20. Based on the information received from the delay countermeasure processing unit 29, the game processing unit 20 acquires the selected operation data from the accumulated operation data, and executes game processing based on the acquired operation data.

[0069] As shown in FIG. 3 , in this embodiment, the functions of the units 20-29 included in the host device 2 are executed by cooperation between the game program and system software. For example, when the system software executed by the computer (i.e., the processor provided in the SoC 11) receives a game image for the guest device from the game program, the transmission control unit 25 acquires a frame number from the frame counter 23, performs the embedding process described above, and transmits the image to a destination set in accordance with instructions from the game program at the start of the game. Furthermore, the reception control unit 26 receives operation data and frame numbers from the guest device 3 and transmits the respective data to the game program. Based on the above, the information processing device can have the function of associating frame numbers with game images and transmitting them, and the function of extracting frame numbers (and operation numbers) from operation data received from the guest device 3, without installing a specific game program. This eliminates the need to create these functions for each game program, thereby improving the efficiency of game program development.

[0070] 3, in this embodiment, each of the units 31-35 included in the guest device 3 is realized by a computer (in other words, a processor) executing system software. As described above, an information processing device can operate as a guest device without installing a specific game program. This allows a game to be played using a host device and a guest device only if the game program is installed on the host device, and does not require the game program to be installed on the guest device, thereby improving user convenience.

[0071] Furthermore, in this embodiment, one information processing device has, through system software, the functions of both the transmission control unit 25 and the reception control unit 26 on the host device side and the units 31-35 on the guest device side (see FIGS. 2 and 3). This allows the information processing device to function as either a host device or a guest device. Therefore, when a user plays a game based on a game program stored in his / her own information processing device, he / she can play the game with multiple people, with his / her own information processing device as the host device and another user's information processing device as the guest device. Furthermore, when a user plays a game based on a game program stored in another user's information processing device, he / she can play the game with multiple people, with the other user's information processing device as the host device and his / her own information processing device as the guest device. This further improves user convenience.

[0072] It should be noted that which functions of the information processing device are realized by the game program and which functions are realized by the system software is arbitrary. For example, in another embodiment, the function of receiving operation data in the host device 2 may be realized by the game program, or all of the functions shown in Figure 3 may be realized by the game program.

[0073] Next, an example of a method for calculating the amount of delay will be described with reference to Fig. 4. Fig. 4 is a diagram showing an example of the flow up to the execution of game processing using operation data acquired in the first and second frames, where a certain frame in the host device 2 is set as the first frame.

[0074] 4, image data of a game image that is drawn in the host device 2 or transmitted to the guest device 3 in the nth frame (n is a natural number) in the host device 2 is indicated as "image data (n)." Also, operation data of the host device acquired when the game image of the nth frame is drawn is indicated as "operation data H(n)." Also, operation data of the guest device associated with the nth frame (n is a natural number) and associated with an operation number m (m is a natural number) is indicated as "operation data G(n,m)."

[0075] 4, in the nth frame in the host device 2, operation data H(n) of the host device 2 is acquired, and a game image is generated based on the game processing. As described above, the acquired operation data H(n) is accumulated in the host device 2, and the generated image data (n) for the guest device is transmitted to the guest device 3.

[0076] Also, in the (n+1)th frame in the host device 2, similar to the nth frame, operation data of the host device 2 is acquired and a game image based on the game processing is generated. The operation data H(n+1) acquired in the second frame is accumulated in the host device 2. Here, in this embodiment, a game image for the guest device is generated once every two frames, so in the example shown in FIG. 4, a game image for the guest device is not generated or transmitted in the (n+2)th frame.

[0077] Due to a communication delay, the guest device 3 receives the image data (n) transmitted from the host device 2 at a timing different from the timing at which the image data (n) is rendered on the host device 2, and the image data (n) is rendered on the guest device 3. At this time, the operation data acquired in the frame in which the image data (n) is first rendered is "operation data G(n,0)" associated with the frame number "n" and the operation number "0" (see FIG. 4). In the frame, the guest device 3 transmits the operation data G(n,0) to the host device 2.

[0078] Furthermore, in the frame following the frame in which image data (n) is rendered on the guest device 3, no image data is received from the host device 2, and the image data (n) is rendered again. At this time, the operation data acquired in that frame becomes "operation data G(n,1)" associated with the frame number "n" and the operation number "1" (see FIG. 4). In the above frame, the guest device 3 transmits the operation data G(n,1) to the host device 2.

[0079] In this embodiment, image data is transmitted from the host device 2 to the guest device 3 at a rate of once every two frames, so that the guest device 3 basically draws a new game image at a rate of once every two frames. However, in reality, due to factors such as communication conditions, the guest device 3 does not necessarily receive one image data set every two frames. Therefore, for example, it is possible that the same game image is drawn continuously for three or more frames. In this case, the operation number associated with the operation data will be a value of 2 or greater. Furthermore, depending on the communication conditions, there may be only one piece of operation data for a certain game image, in which case operation data with an operation number of "1" will not be generated.

[0080] When the host device 2 receives operation data transmitted from the guest device 3, it calculates the amount of delay based on the frame number and operation number associated with the operation data and the reception timing of the operation data. Here, the amount of delay can be calculated as, for example, the length of time from when image data is transmitted from the host device 2 to the guest device 3 to when operation data corresponding to the image data (i.e., operation data acquired in the frame in which the image data is drawn) is transmitted from the guest device 3 and received by the host device 2. In other words, the amount of delay can be considered as the sum of the time required for the image data to be transmitted from the host device 2 to the guest device 3 ((a) in FIG. 4)) and the time required for the operation data to be transmitted from the guest device 3 to the host device 2 ((b) in FIG. 4).

[0081] Here, when the host device 2 receives operation data (i.e., operation data with operation number 0) acquired in the frame that is drawn for the first time after the guest device 3 receives image data, the difference obtained by subtracting the value of the frame number associated with the operation data from the current frame number (i.e., the value of the frame counter at the time the operation data is received) is the length of the period corresponding to the delay amount. Therefore, the delay amount can be calculated from the difference. In the example shown in Fig. 4, operation data G(n,0) with frame number n is received in the n+5th frame in the host device 2, so the delay amount at this time can be calculated as 5 (frames).

[0082] On the other hand, when the host device 2 receives operation data acquired in a frame that is drawn for the second or subsequent time after the guest device 3 receives image data (i.e., operation data with an operation number of 1 or greater), the difference is the sum of the time (a) above, the time (b) above, and the time from when the image data is drawn for the first time until the operation data is acquired (i.e., one frame) (i.e., (c) shown in FIG. 3). Therefore, the difference does not accurately indicate the amount of delay. Here, since the operation number associated with the operation data indicates the time (c), in the above case, the amount of delay can be calculated based on the frame number and the operation number. Specifically, in the above case, the amount of delay can be calculated as the difference obtained by subtracting the sum of the frame number and the operation number associated with the operation data from the current frame number. In the example shown in FIG. 4, in the (n+6)th frame in the host device 2, operation data G(n,1) with a frame number of n and an operation number of 1 is received, so the amount of delay at this time can be calculated as 5 (frames).

[0083] From the above, in this embodiment, the delay amount is calculated according to the following equation (1). (Delay amount)=(current frame number)−{(frame number associated with the operation data of the guest device 3)+(operation number associated with the operation data of the guest device 3)} (1) In this embodiment, the operation number associated with the operation data obtained in the frame in which image data is first drawn after being received in the guest device 3 is set to 0, so the delay amount can be calculated using the above formula (1) whether operation data with an operation number of 0 is received or whether operation data with an operation number of 1 or greater is received.

[0084] In this embodiment, image data is transmitted every two frames from the host device 2 to the guest device 3, and the same game image is rendered across multiple frames on the guest device 3, so an operation number is assigned to each piece of operation data in order to distinguish between the pieces of operation data acquired over the multiple frames. This allows the host device 2 to calculate the amount of delay based on the frame number and operation number, as described above.

[0085] In another embodiment, the information processing system 1 may associate only a frame number with operation data without assigning an operation number. In this case, for a frame in which operation data associated with a new frame number is received, the host device 2 may calculate a delay amount based on the frame number, and for a frame in which operation data associated with the same frame number as the previous frame is received, the host device 2 may execute game processing based on the last calculated delay amount without calculating a new delay amount. Furthermore, even without assigning an operation number, the timing of operations performed on the guest device may be managed based on the order in which the operation data is received.

[0086] The method for calculating the delay amount using the frame number is not limited to the above, and other methods may be used. For example, in other embodiments, the host device 2 does not need to calculate the delay amount every time it receives operation data from a guest device, but may calculate the delay amount at a fixed interval longer than one frame. For example, the host device 2 may calculate the current delay amount based on delay amounts calculated multiple times up to the present time (for example, by calculating the average of multiple delay amounts). For example, the host device 2 does not need to repeatedly calculate the delay amount, but may calculate the delay amount at a predetermined timing in the game (for example, at the start of the game). The host device 2 may calculate the delay amount without using the frame number (for example, using a conventional method), or may select operation data using a delay amount not based on the frame number using a method described below (see FIGS. 5 and 6).

[0087] In game processing in the host device 2, operation data to be used in the game processing is selected for each of the operation data of the host device 2 and the guest device 3 based on the amount of delay calculated as described above. As will be described in detail later, in this embodiment, the host device 2 selects operation data that was acquired in a frame that is earlier than the amount of delay from the current frame, such that the frame numbers of the operation data of the host device 2 and the operation data of the guest device 3 are the same. For example, in the example shown in FIG. 4 , the amount of delay is calculated to be 5 frames for the (n+5)th frame, so game processing is executed using operation data H(n) with frame number n and operation data G(1,0). Furthermore, the amount of delay is calculated to be 5 frames for the (n+6)th frame, so game processing is executed using operation data H(n+1) with frame number n+1 and operation data G(n,1). This ensures that the operation data of the host device 2 and the operation data of the guest device 3 used in the game processing are acquired for game images generated at the same time, reducing the possibility of an advantage or disadvantage arising between the host device 2 and the guest device 3 in the game.

[0088] Next, an example of a method for selecting operation data will be described with reference to Figures 5 and 6. In Figures 5 and 6, an example will be described in which the information processing system 1 includes three guest devices AC. In this case, image data and operation data are transmitted and received between the host device 2 and each guest device using the method described above. In Figures 5 and 6, symbols (e.g., H(n)) are assigned to the operation data in the same manner as in Figure 4. However, the operation data of the guest devices AC will be referred to as "operation data GA(n,m)," "operation data GB(n,m)," and "operation data GC(n,m)."

[0089] 5 is a diagram showing an example of each operation data accumulated in the host device 2 in a certain frame. In FIG. 5, for example, the host device 2 is in the (n+6)th frame, and operation data H(n) to H(n+6) have been accumulated as the operation data of the host device 2. Also, at this point in time, operation data GA(n,0) to GA(n+4,0) have been acquired as the operation data of guest device A, operation data GB(n,0) to GB(n+2,1) have been acquired as the operation data of guest device B, and operation data GC(n,0) to GC(n+2,0) have been acquired as the operation data of guest device C.

[0090] When there are multiple guest devices, the host device 2 calculates the amount of delay between itself and each guest device AC. In the example shown in Fig. 5, the amounts of delay between the host device and the guest devices AC are calculated as 2 (frames), 3 (frames), and 4 (frames), respectively, according to the above formula (1).

[0091] In this embodiment, the host device 2 determines the largest delay amount between itself and each guest device AC as the reference delay amount. Then, for the operation data of each information processing device (i.e., the host device and each guest device), operation data associated with a frame number indicating a frame that is the reference delay amount before the current frame (hereinafter referred to as a "reference frame") is selected. In the example shown in Figure 5, the reference delay amount is calculated to be 4 (frames), and as a result, operation data with a frame number n+2 is selected for each information processing device (see Figure 5).

[0092] In this embodiment, since image data is transmitted from the host device 2 to the guest device 3 once every two frames, there is no operation data associated with the frame number of a frame for which no image data is transmitted, with respect to the operation data of the guest device. For example, in this embodiment, image data is not transmitted in either an even-numbered frame or an odd-numbered frame (frame n+1 in the example shown in FIG. 4). For example, if image data is not transmitted in an even-numbered frame, there is no operation data with an even-numbered frame number for the operation data of the guest device, and instead, multiple operation data with odd-numbered frame numbers are accumulated. In the example shown in FIG. 5, there is no operation data with frame number n+1 or n+3 for the operation data of the guest device, and multiple operation data with frame number n or n+2 are accumulated. In view of the above, in this embodiment, if there is no operation data associated with a frame number indicating the reference frame, the host device 2 selects the oldest operation data (i.e., the smallest operation number) that has not yet been selected from the operation data associated with a frame number obtained by subtracting 1 from the frame number of the reference frame. For example, if the reference frame is determined to be the n+3 frame based on the reference delay amount, the oldest operation data that has not yet been selected among the operation data with frame number n+2 of the guest device is selected.

[0093] 5 and 6, the host device 2 may delete operation data selected for game processing in a certain frame from the DRAM 15, so that only operation data that has not yet been selected (i.e., not used in game processing) is stored in the DRAM 15. In this case, the host device 2 can select the operation data with the smallest operation number from among the operation data stored in the DRAM 15, which are associated with the frame number of the reference frame (or the frame number obtained by subtracting 1 from the reference frame), thereby selecting the oldest operation data that has not yet been selected.

[0094] As described above, in this embodiment, the host device 2 selects a pair of operation data associated with synchronized frame numbers from the operation data of the host device 2 and the operation data of the guest device, and executes game processing based on the selected operation data. This reduces the possibility of an advantage or disadvantage in the game occurring between the host device and the guest device, since the game processing is executed using operation data acquired at the same (or nearly the same) time in the game.

[0095] Note that the above "set of operation data associated with frame numbers with aligned timing" does not necessarily mean that the frame numbers are the same in the strict sense, but includes a set of operation data selected so that the frame numbers of each operation data fall within a certain range. For example, the host device 2 may select the oldest operation data that has not yet been selected within a range of frame numbers indicating a predetermined number of frames before and after the reference frame.

[0096] Furthermore, as described above, in this embodiment, operation data is selected based on the largest of the delay amounts between the host device and each guest device (i.e., the reference delay amount). This makes it less likely that operation data associated with the frame number of the reference frame has not yet been received by the host device 2, making it easier to select multiple operation data associated with frame numbers that are synchronized in time. This reduces the possibility of an advantage or disadvantage in the game occurring among multiple guest devices.

[0097] It should be noted that when using a set of operation data associated with frame numbers that are synchronized in time, it is not necessary to calculate and use the amount of delay. However, if the amount of delay for a certain guest device becomes very large, for example, operation data from a long time ago will be used in the game processing, and the operation response of all players will be significantly worsened due to the large amount of delay for that guest device. For this reason, in this embodiment, an allowable value (which can also be considered an upper limit) is set for the reference amount of delay.

[0098] 6 is a diagram showing an example of each operation data accumulated in the host device 2 in a certain frame. In FIG. 6, for example, the host device 2 is in the n+7th frame, and operation data H(n) to H(n+7) have been accumulated as the operation data of the host device 2. Also, at this point in time, operation data GA(n,0) to GA(n+4,0) have been acquired as the operation data of guest device A, operation data GB(n,0) to GB(n+2,1) have been acquired as the operation data of guest device B, and operation data GC(n,0) to GC(n,1) have been acquired as the operation data of guest device C.

[0099] In the example shown in FIG. 6, the delay amounts between the host apparatus and guest apparatus AC are calculated to be 3 (frames), 4 (frames), and 6 (frames), respectively.

[0100] In the example shown in FIG. 6, it is assumed that 5 (frames) is set as the allowable value. The host device 2 determines the above-mentioned reference delay amount with the allowable value as the upper limit. Specifically, the reference delay amount is determined to be the largest of the delay amounts between the host device 2 and each guest device that does not exceed the allowable value. In the example shown in FIG. 6, the delay amount between the host device 2 and guest device C is 6 (frames), which exceeds the allowable value, so the reference delay amount is determined to be 4 (frames) based on the delay amount between the host device 2 and guest device B. The allowable value may be any value and may be set to any value taking into account the game content, etc.

[0101] In this embodiment, the host device 2 excludes guest devices with delays greater than the reference delay, and selects operation data based on the reference delay from the operation data of the other guest devices other than the excluded guest devices (hereinafter referred to as "excluded guest devices") and the operation data of the host device. In the example shown in FIG. 6, guest device C, whose communication delay is 6 (frames), is excluded, and operation data is selected for the host device 2 and guest devices A and B based on the reference delay. As a result, the reference frame is the n+3 frame, and operation data H(n+3), operation data GA(n+3,1), and operation data GB(n+2,1) are selected and used in the game processing. In this case, although the delay between the host device 2 and guest device C is 6 (frames), for guest devices A and B, the difference between the current frame and the frame of the operation data used in the game processing is kept to 4 (frames), and a set of operation data associated with frame numbers with aligned timing is selected.

[0102] As described above, in this embodiment, the maximum delay between the host device and each guest device, excluding delays exceeding the allowable value, is set as the reference delay, and operation data is selected based on the reference delay, thereby reducing the possibility that it will take too long for a change in the game image to occur in response to an operation performed by the user.

[0103] Note that the operation data of the excluded guest device may be selected based on a predetermined rule, and the selected operation data may be used in the game processing. For example, the most recently acquired operation data from the accumulated operation data may be used in the game processing. Alternatively, for example, the operation data of the excluded guest device may not be used in the game processing.

[0104] Next, the timing at which the guest device starts drawing game images will be described with reference to Figure 7. Generally, the drawing process of game images (i.e., writing to the frame buffer) is executed immediately after the image switching timing (sometimes called V-sync timing), which is the timing at which the image written to the frame buffer is displayed on the display device. The image switching timing is set at the beginning of each frame.

[0105] 7(a) shows a case where the drawing process starts simultaneously with the image switching timing, and FIG. 7(b) shows a case where the drawing process starts at a timing delayed from the image switching timing.

[0106] In the case of (a) shown in FIG. 7, the rendering process starts simultaneously with the image switching timing. Therefore, even if a game image is received before the next image switching timing, the rendering process has already started, so the received game image cannot be rendered and the game image cannot be displayed at the next image switching timing. In other words, in the case of (a) shown in FIG. 7, the game image rendered in the rendering process for a certain frame is the one received in the previous frame. In other words, the received game image is rendered in the rendering process for the next frame period. As such, with the general method, the timing at which the received game image is displayed on the guest device 3 is delayed.

[0107] On the other hand, in the case of (b) shown in FIG. 7, the rendering process starts later than the image switching timing. Therefore, even if the image switching timing is later than the image switching timing, as long as the game image is received by the guest device 3 before the start timing of the rendering process, the received game image can be rendered in that frame. Therefore, in the case of (b) shown in FIG. 7, the timing at which the received game image is displayed on the guest device 3 may be earlier than in the case of (a) shown in FIG. 7. Note that by setting the start timing of the rendering process as late as possible within one frame period, the possibility of rendering the game image received in that frame in that frame can be increased. This allows the timing at which the game image is displayed on the guest device 3 to be earlier, so this embodiment can also take measures against delays.

[0108] As described above, in this embodiment, the rendering unit 32 of the guest device 3 starts the rendering process later than the start of one frame period, as shown in FIG. 7B. Specifically, the rendering unit 32 starts the rendering process a predetermined time before the end of one frame period (which can also be referred to as a predetermined time before or after the image change timing). The start timing of the rendering process may be any time between the image change timing and the next image change timing. In other words, the predetermined time may be any length greater than 0 and shorter than the length of one frame. In this embodiment, the predetermined time is set to the time required to render the game image (i.e., the time required to render image data in the frame buffer). In other words, the start timing of the rendering process is set to the predetermined time before the image change timing. This allows the rendering process to end before the end of one frame period, thereby increasing the likelihood that the game image received in that frame can be rendered in that frame and displayed at the next image change timing. Note that the time set as the "time required to render the game image" is determined based on the hardware performance of the guest device 3, etc. In other embodiments, the above-mentioned time may be set variably. Furthermore, in other embodiments, the above-mentioned predetermined time may be set to the time required to draw a game image plus a margin of time. This allows for a margin of time between the end of the drawing process and the end of one frame period.

[0109] Furthermore, although not shown, on the host device 2 side, drawing of game images begins at the start timing of one frame period. That is, the drawing unit 21 of the host device 2 begins drawing game images at the image switching timing. This is because the host device 2 does not draw game images received from another device, and the time required to draw game images is relatively long and varies depending on the game situation, so there is little benefit to delaying the drawing process within one frame period. Furthermore, by starting drawing at the start timing of one frame period, the drawing process can be more reliably completed within that frame.

[0110] In this embodiment, the image switching timing in the host device 2 and the image switching timing in the guest device 3 are not synchronized, but are set independently. This allows the host device 2 and the guest device 3 to draw and display game images without being subject to the constraints that would arise if the image switching timings were synchronized between them. For example, this reduces the possibility of delays in the drawing and display of game images due to the constraints. Note that in other embodiments, the image switching timings may be synchronized between the host device 2 and the guest device 3.

[0111] [3. Specific examples of processing in information processing systems] Next, a specific example of information processing executed in the information processing system 1 will be described with reference to FIGS.

[0112] Fig. 8 is a diagram showing an example of various data used for information processing in the host device 2. As shown in Fig. 8, the host device 2 stores communication partner data, accumulated operation data, delay amount data, reference delay amount data, frame number data, and excluded guest data. Each piece of data shown in Fig. 8 is stored in a storage medium (e.g., DRAM 15) accessible by the host device 2.

[0113] The communication partner data indicates the ID of the guest device that is the communication partner.

[0114] The accumulated operation data is operation data of the host device 2 or the guest device 3 accumulated in the host device 2. The host operation data accumulated as operation data of the host device includes data of a frame number associated with the operation data. The guest operation data accumulated as operation data of the guest device includes data of a frame number and an operation number associated with the operation data.

[0115] The delay amount data indicates the amount of delay between the host device 2 and the guest device 3. If there are multiple guest devices, delay amount data is stored for each guest device. The reference delay amount data indicates the above-mentioned reference delay amount.

[0116] The frame number data indicates the current frame number counted by the frame counter 23 .

[0117] The excluded guest data indicates the guest device that is set as the above-mentioned excluded guest device.

[0118] Fig. 9 is a diagram showing an example of various data used for information processing in the guest device 3. As shown in Fig. 9, communication partner data, image data, frame number data, and operation number data are stored in the guest device 3. Each piece of data shown in Fig. 9 is stored in a storage medium (e.g., DRAM 15) accessible by the host device 2.

[0119] The communication partner data indicates the ID of the host device that is the communication partner.

[0120] The image data is image data that is transmitted from the host device 2 and received by the guest device 3.

[0121] The frame number data indicates a frame number associated with the image data received at the guest device 3.

[0122] The operation number data indicates an operation number associated with the operation data transmitted from the guest device 3 to the host device 2.

[0123] An example of information processing executed in the host device 2 and the guest device 3 will be described below with reference to FIGS. 10 to 14. In this embodiment, the processor of the information processing device (i.e., the host device 2 or the guest device 3) executes a program (e.g., a game program, a host program, or a guest program) stored in the information processing device to execute the processing of each step shown in FIGS. 10 to 14. The processor may be the CPU or GPU described above, or a dedicated circuit. Furthermore, if the information processing device is capable of communicating with another information processing device (e.g., a server), some of the processing of each step shown in FIGS. 10 to 14 may be executed in the other information processing device. Furthermore, the processing of each step shown in FIGS. 10 to 14 is merely an example, and the processing order of each step may be reversed, or another process may be executed in addition to (or instead of) the processing of each step, as long as similar results are obtained.

[0124] 10 to 14 by using a memory (for example, the DRAM 15 or a memory provided in the SoC). That is, the processor 81 stores information (in other words, data) obtained by each processing step in the memory, and when using the information in a subsequent processing step, reads the information from the memory and uses it.

[0125] 10 and 11 are flowcharts showing an example of the flow of information processing executed by the game program in the CPU of the host device 2. The processing shown in Fig. 10 is started, for example, when an instruction to start a game using multiple devices is given by a player during execution of the game program.

[0126] 10, the CPU determines a communication method with the guest device. For example, the CPU determines whether to communicate in the first communication mode (i.e., Internet communication) or in the second communication mode (i.e., local communication) in response to a user instruction. After step S1, the process of step S2 is executed.

[0127] In step S2, the CPU determines a guest device to be used as a communication partner. The method for determining the guest device is arbitrary. For example, when the host device 2 communicates via the Internet, the guest device to be used as a communication partner may be determined by being designated by a server, or may be determined from among candidates presented by the server in response to an instruction from the user of the host device 2. Alternatively, for example, the user of the host device 2 may directly designate the communication partner. Specifically, the user of the host device 2 may designate another user's account, and information about the account may be transmitted to the server. The server may then identify an information processing device corresponding to the user of the account, and the identified information processing device may be determined as the communication partner. Alternatively, the user of the host device 2 may designate an ID of another information processing device to determine the guest device, and the server may receive the ID and establish communication between the other information processing device and the host device 2. For example, when the host device 2 communicates via local communication, the guest device to be used as a communication partner may be determined from among information processing devices capable of communicating with the host device 2 in response to an instruction from the user. Once the communication partner is determined, the CPU stores data indicating the ID of the guest device to be used as communication partner data in memory. Once the communication partner is determined in step S2, the game starts and a series of processes from step S3 onwards are executed. In the example shown in Figures 10 and 11, the processing loop consisting of the series of processes from step S3 to S23 is executed every 1 / 60 [second].

[0128] In step S3, the CPU determines an initial value of the reference delay amount. Specifically, the CPU stores data indicating a predetermined initial value (for example, the same value as the allowable value) in memory as reference delay amount data. After step S3, the process of step S4 is executed.

[0129] In step S4, the CPU resets the counted frame number. Specifically, the CPU stores in memory, as frame number data, data indicating 0. After step S4, the process proceeds to step S5.

[0130] In step S5, the CPU acquires operation data of the own device from the input unit 12 and stores the acquired operation data in association with the frame number. Specifically, the CPU stores data including the acquired operation data and the frame number data stored in the memory as host operation data. After step S5, the process of step S6 is executed.

[0131] In step S6, the CPU determines whether operation data has been acquired from the guest device. Specifically, the CPU determines whether the operation data received from the guest device has been passed from the host program to the game program. If the determination result in step S6 is positive, the process of step S7 is executed. On the other hand, if the determination result in step S6 is negative, the process of step S14 (see FIG. 11), which will be described later, is executed.

[0132] In step S7, the CPU accumulates the operation data acquired in step S6. Specifically, since the acquired operation data is associated with a frame number and an operation number, the CPU stores the operation data including data indicating the frame number and operation number in memory as guest operation data. After step S7, the process of step S8 is executed.

[0133] In step S8, the CPU calculates the amount of delay between the host device and the guest device based on the operation data acquired in step S6. That is, the CPU calculates the amount of delay between the host device and the guest device that sent the operation data according to the method described in FIG. 4. Data indicating the calculated amount of delay is stored in memory as delay amount data. Note that if delay amount data for the same guest device is already stored in memory, the stored delay amount data is overwritten with the newly calculated delay amount data. Following step S8, the process of step S9 is executed.

[0134] In step S9, the CPU determines whether the delay calculated in step S8 exceeds the allowable value. If the determination result in step S9 is positive, the process proceeds to step S10. On the other hand, if the determination result in step S9 is negative, the process proceeds to step S11.

[0135] In step S10, the CPU sets the guest device for which it is determined that the delay amount exceeds the allowable value as an excluded guest device. That is, the CPU stores data indicating the set excluded guest device in memory as excluded guest data. After step S10, the process of step S11 is executed.

[0136] In a case where there are multiple guest devices, operation data from multiple guest devices may be acquired during the determination process of step S6. In this case, the processes of steps S7-S10 are executed for each of the acquired operation data.

[0137] In step S11, the CPU identifies the maximum current delay amount among the delay amounts of the guest devices. That is, the CPU identifies the maximum delay amount among the delay amounts indicated by the delay amount data stored in the memory. After step S11, the process of step S12 is executed.

[0138] In step S12, the CPU updates the reference delay amount. Specifically, the CPU sets the reference delay amount to the smaller of the above-mentioned allowable value and the maximum delay amount identified in step S11. The reference delay amount data stored in the memory is updated to indicate the newly set reference delay amount. Following step S12, the process of step S13 is executed.

[0139] In step S13 shown in FIG. 11, the CPU selects operation data to be used in the game processing based on the reference delay amount updated in step S12. Specifically, the CPU selects operation data associated with a frame number with aligned timing from among the operation data included in the accumulated operation data stored in memory, according to the method described with reference to FIGS. 5 and 6. Note that operation data of an excluded guest device indicated by the excluded guest data stored in memory is not selected in step S13. Furthermore, even if the operation data is of a guest device that is not an excluded guest device, the operation data may not be selected because, for example, operation data corresponding to a reference frame based on the reference delay amount has not been accumulated. Furthermore, in this embodiment, the CPU deletes the selected operation data from the accumulated operation data stored in memory. Following step S13, the process of step S14 is executed.

[0140] In step S14, the CPU determines whether or not it is time to reset the guest device excluded in step S10. This timing may be any timing, and may be, for example, every predetermined time (e.g., 30 seconds) or may be timing according to the game situation (e.g., when one match ends). If the determination result in step S14 is positive, the process of step S15 is executed. On the other hand, if the determination result in step S14 is negative, the process of step S16 is executed.

[0141] In step S15, the CPU resets the current excluded guest device. That is, the contents of the excluded guest data stored in the memory are reset, and a state in which no excluded guest device has been set is established. After step S15, the process of step S16 is executed.

[0142] As described above, in this embodiment, the reset of the excluded guest device is performed at the timing of step S14, but in other embodiments, the reset may be performed at any timing. For example, in other embodiments, if the delay amount calculated based on the operation data received from the excluded guest device does not exceed the allowable value, the host device may reset the exclusion of the guest device.

[0143] In step S16, the CPU determines whether operation data has been selected for each information processing device excluding the excluded guest device in step S13. If the determination result in step S16 is positive, the process proceeds to step S17. On the other hand, if the determination result in step S16 is negative, the process proceeds to step S18.

[0144] In step S17, the CPU executes game processing using the operation data selected in step S13. The specific content of the game processing is arbitrary, and for example, the movement of a player character is controlled based on the selected operation data, or a command in the game is selected based on the selected operation data. After step S17, the processing of step S19 is executed.

[0145] On the other hand, in step S18, the CPU executes game processing without using the operation data. For example, the CPU controls the actions of non-player characters not operated by the user in accordance with predetermined rules, or performs action control of a player character that is performed independently of user input (for example, control of a falling action due to gravity). Following step S18, the processing of step S19 is executed. Note that in step S18, instead of performing game processing based on the operation data, processing is performed to wait until all operation data is collected, and processing that is not directly related to the progress of the game and would be inconvenient if stopped, such as playing background music, can be performed; this can be determined appropriately depending on the content of the game.

[0146] In another embodiment, in a configuration in which there are multiple guest devices, if operation data is not selected for some of the guest devices that are not excluded guest devices in the processing of step S13, the CPU may execute the game processing using only the selected operation data in the above-mentioned step S18. For example, the CPU may control the actions of only the player character corresponding to the guest device for which operation data has been selected, based on the selected operation data.

[0147] In step S19, the CPU increments the frame number. That is, the frame number data stored in the memory is updated to indicate a value that is 1 more than the value before the update. After step S19, the process proceeds to step S20.

[0148] In step S20, the CPU instructs the GPU to generate a game image based on the results of the game processing in step S16. Specifically, the CPU passes the graphics parameters used in the rendering process and the current frame number to the GPU. In response to this, the GPU executes a process to render the game image, thereby generating the game image (see FIG. 13). In other embodiments, the game image may be generated in a memory area different from the frame buffer and then rendered in the frame buffer. As described above, the GPU generates game images for the guest device as needed, in addition to the game image for the host device. In this embodiment, the game image for the guest device is rendered in an area of ​​the frame buffer in the host device that is different from the area for rendering the game image for the host device. The game image for the guest device may also be generated in a memory area different from the frame buffer and then transmitted to the guest device. Following step S20, the process of step S21 is executed.

[0149] In step S21, the CPU determines whether the current frame is a frame in which a game image is to be transmitted to the guest device. In this embodiment, the CPU determines that this is a frame in which a game image is to be transmitted to the guest device once every two frames. Note that if there are multiple guest devices, the host device does not need to transmit game images to all guest devices in the same frame. For example, if there are two guest devices, the host device may transmit game images to the first guest device in odd-numbered frames and to the second guest device in even-numbered frames. If the determination result in step S21 is positive, the process of step S22 is executed. On the other hand, if the determination result in step S21 is negative, the process of step S23 is executed.

[0150] In step S22, the CPU instructs the host program to transmit the game image generated in step S20 to the guest device. Step S22 is followed by step S23. Note that step S22 may be omitted. In that case, in step S43, the host program (described below) acquires and transmits the game image for the guest device drawn on the frame buffer at a predetermined cycle (every 1 / 30 seconds in this embodiment), or each time a new image is drawn on the frame buffer.

[0151] In step S23, the CPU determines whether or not to end the game being progressed through the game processing in step S16. For example, if a predetermined end condition in the game is satisfied, or if an instruction to end the game is given by the user, the CPU determines to end the game. If the determination result in step S23 is negative, the processing of step S5 is executed again. In this case, the processing of steps S5 to S23 is repeated until the game ends. On the other hand, if the determination result in step S23 is positive, the processing of step S3 is executed again. In this case, a new game is started. In this case, the CPU may, for example, return to the processing of step S1 and re-determine the communication method, or may return to the processing of step S2 and re-determine the communication partner. In addition, in this case, the CPU may terminate execution of the game program.

[0152] Fig. 12 is a flowchart showing an example of the flow of graphics processing executed by system software in the GPU of the host device 2. The processing shown in Fig. 12 is started, for example, in response to the start of the processing shown in Fig. 10 and Fig. 11. In the example shown in Fig. 12, a processing loop consisting of a series of steps S31-S33 is executed once per frame.

[0153] 12, the GPU acquires the graphics parameters and the current frame number sent from the CPU by the process of step S20. After step S31, the process of step S32 is executed.

[0154] In step S32, the GPU draws game images based on the graphics parameters acquired in step S31. That is, the GPU draws game image data generated based on the graphics parameters in a frame buffer. The game images for the host device are drawn in a first frame buffer, and the images drawn in the first frame buffer are displayed on the display 13 of the host device 2 by the main body functions (e.g., system software and / or firmware) of the host device 2 at the image switching timing. Furthermore, when game images for the guest device are generated in addition to the game images for the host device, the GPU draws the game images for the guest device in a second frame buffer, and the images drawn in the second frame buffer are transmitted to the guest device. Following step S32, the process of step S33 is executed.

[0155] In step S33, the GPU associates the frame number obtained in step S31 with the game image generated in step S32. Specifically, the GPU writes frame number information into the metadata area of ​​the image data. After step S33, the process of step S31 is executed again.

[0156] Fig. 13 is a flowchart showing an example of the flow of information processing executed by the host program in the CPU of the host device 2. The processing shown in Fig. 13 is started, for example, in response to the start of the processing shown in Fig. 10 and Fig. 11. In the example shown in Fig. 12, a processing loop consisting of a series of processing steps S41-S45 is executed every 1 / 60 [second] in this embodiment.

[0157] 12, the CPU determines whether operation data from the guest device has been received by the communication module 14. If the determination result of step S41 is positive, the process proceeds to step S42. On the other hand, if the determination result of step S41 is negative, the process proceeds to step S43.

[0158] In step S42, the CPU passes the received operation data to the game program. Specifically, the operation data associated with the frame number and operation number is passed to the operation data storage unit 27, and the frame number and operation number are extracted and passed to the anti-delay processing unit 29. Following step S42, the process of step S43 is executed.

[0159] In step S43, the CPU determines whether or not to transmit game images to the guest device. That is, the CPU determines whether or not an instruction to transmit game images was issued in step S22. If the determination result in step S43 is positive, the process of step S44 is executed. On the other hand, if the determination result in step S43 is negative, the process of step S41 is executed again.

[0160] In step S44, the CPU generates image data to be transmitted to the guest device. In this embodiment, the image data to be transmitted is generated by performing a process of reducing the resolution and an encoding process on the game image generated in step S32. Specifically, the CPU extracts the frame number from the image data associated with the frame number generated in step S33, and performs a process of reducing the resolution of the image data. Next, the CPU encodes the image data with reduced resolution and writes the frame number in the metadata area of ​​the encoded image data. Following step S44, the process of step S45 is executed.

[0161] In step S45, the CPU transmits the image data for transmission generated in step S44 to the guest device using the communication module 14. At this time, the CPU identifies the destination guest device by referencing the communication partner data stored in memory. As described above, in this embodiment, management of the communication partner determined in step S2 above is performed on the system software side. Therefore, on the game program side, for example, in the transmission instruction in step S22 above, there is no need to identify the destination guest device, which improves the efficiency of game program development. Following step S45, the processing of step S41 is executed again.

[0162] Fig. 14 is a flowchart showing an example of the flow of reception processing executed by the CPU of the guest device 3 by a guest program. The processing shown in Fig. 14 is started, for example, when a communication partner of the host device (i.e., a guest device) is determined by the processing of step S2 shown in Fig. 10 and communication between the host device and the guest device is started. At this time, the CPU stores data indicating the ID of the host device that will be the communication partner in memory as communication partner data.

[0163] 14, the CPU determines whether the image data from the host device 2 (i.e., the image data transmitted in step S45) has been received by the communication module. If the determination result in step S51 is positive, the process of step S52 is executed. On the other hand, if the determination result in step S51 is negative, the process of step S54, which will be described later, is executed.

[0164] In step S52, the CPU resets the counted operation number. Specifically, the CPU stores data indicating 0 in the memory as the operation number data. After step S52, the process proceeds to step S53.

[0165] In step S53, the CPU decodes the image data received in step S51 and stores the decoded image data in memory. After step S53, the process of step S51 is executed again. Thereafter, the processes of steps S51 to S53 are executed repeatedly.

[0166] Fig. 15 is a flowchart showing an example of the flow of drawing and transmission processing executed by the CPU of the guest device 3 by a guest program. The processing shown in Fig. 15, similar to the processing shown in Fig. 14, is started when a communication partner of the host device is determined by the processing of step S2 shown in Fig. 10 and communication between the host device and the guest device is started. In the guest device, the processing shown in Fig. 15 is executed in parallel with the processing shown in Fig. 14.

[0167] In step S61, the CPU determines whether or not the timing to start drawing in the current frame has arrived. As described above, in this embodiment, this timing is a predetermined time before the end timing of one frame period (see FIG. 7). If the determination result in step S61 is positive, the process of step S62 is executed. On the other hand, if the determination result in step S61 is negative, the process of step S61 is executed again. The determination result in step S61 becomes positive once in one frame period, and as a result, the processes of steps S62 to S66, which will be described later, are executed in a cycle of 1 / 60 [second]. Therefore, in this embodiment, the process of drawing image data and the process of obtaining operation data are performed every 1 / 60 [second].

[0168] In step S62, the CPU extracts the frame number embedded in the image data last stored in the process of step S53. After step S62, the process of step S63 is executed.

[0169] In step S63, the CPU starts drawing the image data whose frame number was extracted in step S62. That is, the CPU instructs the GPU to execute drawing processing for the image data (specifically, to write the received image data into the frame buffer). This starts the drawing processing, which ends during the current frame period. Following step S63, the process of step S64 is executed.

[0170] In step S64, the CPU acquires operation data of the own device from the input unit. After step S64, the process proceeds to step S65.

[0171] In step S65, the CPU associates the frame number and the operation number with the operation data and transmits the data to the host device 2. Specifically, the CPU associates the frame number extracted in step S62 and the operation number indicated by the operation number data stored in memory with the operation data acquired in step S64. Next, the CPU transmits the operation data in which the frame number and the operation number are associated to the host device 2 using the communication module. Following step S65, the process of step S66 is executed.

[0172] In step S66, the CPU increments the operation number. That is, the operation number data stored in the memory is updated to indicate a value that is 1 more than the value before the update. After step S66, the process of step S61 is executed again.

[0173] 4. Modifications of this embodiment In the above embodiment, information indicating the frame number assigned to the frame in which the game image was generated was used as the timing information used in the delay countermeasure processing, but the specific content of the timing information is arbitrary. In other embodiments, for example, information indicating time (e.g., a timestamp) may be used as the timing information. Furthermore, the current timing information on the host device is information that can be obtained on the host device regardless of whether time is synchronized between the host device and the guest device, server, etc., and can be information indicating the timing of the game image generated on the host device.

[0174] As the delay countermeasure processing, in the above embodiment, the host device calculates the amount of delay and executes a process for selecting operation data of the host device and guest device to be used in the game processing based on the amount of delay. Here, the content of the process executed based on the amount of delay to counter the delay is arbitrary and is not limited to the above. For example, using the amount of delay calculated by the processing of this embodiment, any delay countermeasure technology can be used, such as the delay countermeasure technologies disclosed in Japanese Patent Application Laid-Open Nos. 2022-160999, 2022-161009, 2022-161000, and Japanese Patent Registration No. 6927750. For example, in another embodiment, the host device may select only the operation data of the host device to be used in the game processing based on the amount of delay. In this case, the operation data of the guest device may be selected based on a rule independent of the amount of delay (e.g., a rule that the last data received by the host device is selected). According to the above, instead of using the latest operation data of the host device (i.e., data obtained in the current frame), data obtained in the past is selected taking into account the amount of delay, thereby preventing the host device from gaining too much of an advantage in the game.

[0175] Furthermore, the specific content of the delay countermeasure processing is arbitrary and is not limited to a process of calculating a delay amount. For example, in another embodiment, the host device may execute a process of selecting operation data to be used in game processing based on timing information associated with the operation data, without calculating a delay amount, as the delay countermeasure processing. Specifically, the host device may select, from the accumulated operation data of the host device and operation data of the guest device, pairs of operation data associated with timing information that is synchronized. Note that, in the above embodiment, "pairs of operation data associated with timing information that is synchronized" refers to pairs of operation data associated with the same frame number or frame numbers whose difference is within a predetermined range. This also reduces the possibility of an advantage or disadvantage in the game occurring between the host device and the guest device.

[0176] Furthermore, when a delay amount is used in the delay countermeasure processing, the delay amount does not need to be based on the frame number as in the above embodiment. For example, in another embodiment, the host device 2 may calculate the delay amount before the start of the game using a method other than the method using the frame number, and perform the delay countermeasure processing during the game using the pre-calculated delay amount.

[0177] Furthermore, although the information processing system in the above embodiment executes a delay countermeasure process based on timing information, the information processing system does not necessarily have to execute such a delay countermeasure process. The information processing system may take measures against communication delays by a process other than the delay countermeasure process described above, or may solve a problem other than communication delays.

[0178] In addition, in the information processing system of the above embodiment, the second cycle for drawing game images on the guest device is shorter than the first cycle for transmitting game images from the host device to the guest device, but the relationship between the lengths of the first and second cycles may be arbitrary. In other embodiments, the second cycle may be the same length as the first cycle, or may be longer than the first cycle.

[0179] Furthermore, in the information processing system of the above embodiment, the timing at which rendering begins on the guest device is set to a predetermined time before the timing at which the displayed game image is switched. This allows the timing at which the game image is displayed on the guest device to be advanced regardless of the relationship between the first and second cycles, thereby making it possible to take measures against delays. Note that the timing at which rendering begins is arbitrary. In other embodiments, the timing at which rendering begins may be different from the predetermined time before the timing at which the game image is switched, or may be earlier than that timing.

[0180] In other embodiments, the host device does not need to be configured to display game images on its own device as in the above embodiment, and game images may not be displayed on the host device side, i.e., the host device may be configured to generate only game images for the guest device.

[0181] In the above embodiment, the game program is a program for a game executed using multiple information processing devices, but the content of the game is arbitrary. The game may be a multiplayer game in which multiple users each play the game using an information processing device, or a single-player game in which one user plays the game using multiple information processing devices (e.g., viewing multiple displays).

[0182] In other embodiments, the information processing system may not have some of the configurations in the above embodiments, or may not execute some of the processes executed in the above embodiments.

[0183] In this embodiment, the term "program" includes source code, intermediate code, object code, native code, script, etc., and the form of the code is not limited. Furthermore, the term "program" not only refers to an entire application program but also includes a program that realizes some of the functions of the application. Furthermore, each function of this embodiment may be realized by several separate programs. In this case, a collection of several programs can also be considered a program. Furthermore, the program causes a computer, which is configured with a main processor, sub-processors, peripheral circuits, firmware, etc. in an information processing device, to function to realize each function of this embodiment. A single processor may execute the program, or each function of the program may be executed by a different processor. Furthermore, each function realized by the program does not have to be realized solely by the processor's processing, but may also be realized by utilizing functions of the computer (e.g., graphics, wireless, etc.). Furthermore, the computer may further include an interpreter or emulator, in which case the program may run on the interpreter or emulator. [Industrial Applicability]

[0184] The above-described embodiment can be used in, for example, a game system or a game program, with the aim of enabling new countermeasures against communication delays, for example. [Explanation of symbols]

[0185] 1. Information Processing Systems 2. Host Device 3 Guest Device 20 Game Processing Unit 21 Drawing section 23 Frame Counter 24 ID Registration Department 25 Transmission control section 26 Reception control section 27 Operation data storage unit 28 Operation data acquisition unit 29 Delay Countermeasure Processing Unit 31 Reception control section 32 Drawing section 33 Operation data acquisition unit 34 ID Registration Department 35 Transmission control section

Claims

1. An information processing system including a host device and one or more guest devices capable of communicating with the host device, The host device a first operation data acquisition means for acquiring first operation data indicating an operation on the player's own device; a first reception control means for receiving second operation data indicating an operation on the guest device from the guest device; a game processing means for executing game processing based on the first operation data and the second operation data; a first drawing means for drawing a game image showing a result of the game processing; a first transmission control means for transmitting a game image showing a result of the game processing to the guest device in association with current timing information in the host device; The guest device a second reception control means for receiving a game image transmitted from the host device and timing information associated with the game image; a second drawing means for drawing the received game image; second operation data acquisition means for acquiring the second operation data; a second transmission control means for transmitting the second operation data to the host device in association with the timing information associated with the game image at the time the second operation data was acquired, The host device further An information processing system comprising: a delay countermeasure processing unit that executes a predetermined delay countermeasure process based on timing information associated with the second operation data received from the guest device.

2. the delay countermeasure processing means calculates a delay amount in communication between the host device and the guest device based on timing information associated with the received second operation data and a timing of the reception of the second operation data, and executes the delay countermeasure processing based on the delay amount. The information processing system according to claim 1 .

3. The host device an accumulation control means for accumulating the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and for accumulating the second operation data received from the guest device in association with timing information associated therewith in the storage unit; the delay countermeasure processing means selects at least one of the first operation data stored and at least one of the second operation data stored; the game processing means executes the game processing based on the selected first operation data and second operation data. The information processing system according to claim 1 .

4. The host device an accumulation control means for accumulating the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and for accumulating the second operation data received from the guest device in association with timing information associated therewith in the storage unit; the delay countermeasure processing means selects at least one of the accumulated first operation data and at least one of the accumulated second operation data based on the delay amount; the game processing means executes the game processing based on the selected first operation data and second operation data. The information processing system according to claim 2 .

5. The host device storage control means for storing the acquired first operation data in a storage unit in association with timing information at the time of acquisition; the delay countermeasure processing means selects at least one of the accumulated first operation data based on timing information associated with the second operation data received from the guest device; the game processing means executes the game processing based on the selected first operation data. The information processing system according to claim 1 .

6. the storage control means stores the second operation data received from the guest device in the storage unit in association with timing information associated therewith; the delay countermeasure processing means selects, from the accumulated first operation data and second operation data, a pair of the first operation data and the second operation data associated with timing information that is aligned in timing; the game processing means executes the game processing based on the selected first operation data and second operation data. The information processing system according to claim 5 .

7. the host device stores a game program for the game processing and system software separate from the game program; The host device executes the system software to a transmission process in the first transmission means, when the game image and the timing information are received from the game program, of associating the game image and the timing information with each other and transmitting them to the guest device; the receiving process in the first reception control means includes a process of receiving the second operation data and the timing information from the guest device, extracting each of the second operation data and the timing information, and outputting the extracted data to the game program; The information processing system according to any one of claims 1 to 6.

8. the host device associates the game image with the timing information by embedding the timing information in a predetermined area of ​​the game image data transmitted to the guest device; The information processing system according to any one of claims 1 to 6.

9. the timing information is information indicating a frame in which a game image is drawn; The information processing system according to any one of claims 1 to 6.

10. The timing information is information indicating a time. The information processing system according to any one of claims 1 to 6.

11. There may be a plurality of guest devices; The delay countermeasure processing means calculating a delay amount in communication between the host device and each of the guest devices based on timing information associated with the second operation data received from each of the plurality of guest devices and the timing of reception of the second operation data; selecting at least one of the accumulated first operation data and at least one of the second operation data received from the guest device based on the maximum delay amount among the calculated delay amounts; the game processing means executes the game processing based on the selected first operation data and second operation data. The information processing system according to any one of claims 3 to 6.

12. There may be a plurality of guest devices; The delay countermeasure processing means calculating a delay amount between the host device and each of the guest devices based on timing information associated with the second operation data received from each of the guest devices and the reception timing of the second operation data; selecting at least one of the accumulated first operation data and at least one of the second operation data received from the guest device based on the maximum delay amount among the calculated delay amounts excluding delay amounts exceeding an allowable value; the game processing means executes the game processing based on the selected first operation data and second operation data. The information processing system according to any one of claims 3 to 6.

13. the game processing means executes the game processing without using the operation data when the delay countermeasure processing means does not select a pair of the first operation data and the second operation data associated with timing information that is synchronized with the timing from the accumulated first operation data and the accumulated second operation data. The information processing system according to claim 6 .

14. A program used in an information processing system configured by a plurality of information processing devices that can communicate with each other as host devices or guest devices, When operating as a host device, a first operation data acquisition means for acquiring first operation data indicating an operation on the host device; a second operation data reception control means for receiving, by using a communication unit, second operation data indicating an operation on the guest device; a game processing means for executing game processing based on the first operation data and the second operation data; a first drawing means for drawing a game image showing a result of the game processing; a first transmission control means for causing the communication unit to transmit a game image showing a result of the game processing to the guest device in association with current timing information in the host device; causing the computer to function as a delay countermeasure processing unit that executes a predetermined delay countermeasure processing based on timing information associated with the second operation data received from the guest device; When operating as a guest device, a second drawing means for drawing a game image transmitted from the host device; a first operation data acquisition means for acquiring the first operation data; A program that causes a computer to function as a second transmission control means that causes the communication unit to transmit the first operation data to a host device, associating the first operation data with timing information that is associated with the game image at the time the first operation data was acquired.

15. the delay countermeasure processing means calculates a delay amount in communication between the host device and the guest device based on timing information associated with the received second operation data and a timing of the reception of the second operation data, and executes the delay countermeasure processing based on the delay amount. The program according to claim 14.

16. When operating as a host device, causing the computer to further function as an accumulation control means that accumulates the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and accumulates the second operation data received from the guest device in association with timing information associated therewith in the storage unit; the delay countermeasure processing means selects at least one of the first operation data stored and at least one of the second operation data stored; the game processing means executes the game processing based on the selected first operation data and second operation data. The program according to claim 14.

17. When operating as a host device, causing the computer to further function as an accumulation control means that accumulates the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and accumulates the second operation data received from the guest device in association with timing information associated therewith in the storage unit; the delay countermeasure processing means selects at least one of the accumulated first operation data and at least one of the accumulated second operation data based on the delay amount; the game processing means executes the game processing based on the selected first operation data and second operation data. The program according to claim 15.

18. When operating as a host device, causing the computer to further function as a storage control means for storing the acquired first operation data in a storage unit in association with timing information at the time of acquisition; the delay countermeasure processing means selects at least one of the accumulated first operation data based on timing information associated with the second operation data received from the guest device; the game processing means executes the game processing based on the selected first operation data. The program according to claim 14.

19. When operating as a host device, causing the computer to further function as a storage processing unit that stores the second operation data received from the guest device in association with timing information associated therewith in the storage unit; the delay countermeasure processing means selects, from the accumulated first operation data and second operation data, a pair of the first operation data and the second operation data associated with timing information that is aligned in timing; the game processing means executes the game processing based on the selected first operation data and second operation data.

19. The program of claim 18.

20. the host device stores a game program for the game processing; the first transmission control means, when receiving the game image and the timing information from the game program, associates the game image and the timing information with each other and transmits them to the guest device; When operating as a host device, causing the computer to function as data output means for extracting the second operation data and the timing information from the guest device and outputting them to the game program; 20. The program according to any one of claims 14 to 19.

21. the first transmission control means associates the game image with the timing information by embedding the timing information in a predetermined area in data of the game image to be transmitted to the guest device; 20. The program according to any one of claims 14 to 19.

22. the timing information is information indicating a frame in which a game image is drawn; 20. The program according to any one of claims 14 to 19.

23. The timing information is information indicating a time.

20. The program according to any one of claims 14 to 19.

24. There can be multiple guest devices, The delay countermeasure processing means calculating a delay amount in communication between the host device and each guest device based on timing information associated with the second operation data received from each guest device and the timing of reception of the second operation data; selecting at least one of the accumulated first operation data and at least one of the second operation data received from the guest device based on the largest delay amount among the calculated delay amounts; the game processing means executes the game processing based on the selected first operation data and second operation data.

20. The program according to any one of claims 16 to 19.

25. There can be multiple guest devices, The delay countermeasure processing means calculating a delay amount between the host device and each of the guest devices based on timing information associated with the second operation data received from each of the guest devices and the timing of reception of the second operation data; selecting at least one of the accumulated first operation data and at least one of the second operation data received from the guest device based on the maximum delay amount excluding delay amounts exceeding an allowable value among the calculated delay amounts; the game processing means executes the game processing based on the selected first operation data and second operation data.

20. The program according to any one of claims 16 to 19.

26. the game processing means executes the game processing without using the operation data when the delay countermeasure processing means does not select a pair of the first operation data and the second operation data associated with timing information that is synchronized with the timing from the accumulated first operation data and the accumulated second operation data.

20. The program of claim 19.

27. A computer-executable program, A program that causes the computer to function as the first operation data acquisition means, the second operation data reception control means, the game processing means, the first drawing means, the first transmission control means, and the delay countermeasure processing means described in any one of claims 14 to 19.

28. A program used in the information processing system according to claim 1, When operating as the host device, the first transmission control means; causing a computer to function as output means that outputs the second operation data and timing information associated with the second operation data received from the guest device to a game program that executes the game processing and executes a delay countermeasure process in the game processing; When operating as the guest device, the second drawing means; the second operation data acquisition means; A program that causes a computer to function as the second transmission control means.

29. the delay countermeasure processing is executed based on an amount of delay in communication between the host device and the guest device, the amount of delay being calculated based on timing information associated with the received second operation data and a timing of the reception of the second operation data; 29. The program of claim 28.

30. the game processing is executed based on at least one piece of data selected from the first operation data acquired and stored in the host device, and at least one piece of data selected from the second operation data received from the guest device and stored; 29. The program of claim 28.

31. the game processing is executed based on at least one piece of data selected based on the delay amount from the first operation data acquired and stored in the host device, and at least one piece of data selected based on the delay amount from the second operation data received from the guest device and stored.

30. The program of claim 29.

32. the game processing is executed based on at least one piece of data selected from the first operation data stored in the host device in association with timing information at the time of acquisition, based on timing information associated with the second operation data received from the guest device and stored; 29. The program of claim 28.

33. the first transmission control means, when receiving the game image and the timing information from the game program, associates the game image and the timing information with each other and transmits them to the guest device; the output means extracts the second operation data and the timing information from the guest device and outputs them to the game program.

33. The program according to any one of claims 28 to 32.

34. A computer-executable program, 33. A program causing the computer to function as the first transmission control means and the output means according to any one of claims 28 to 32.

35. A computer-executable program, 33. A program causing the computer to function as the second drawing means, the first operation data acquisition means, and the second transmission control means according to any one of claims 28 to 32.

36. An information processing method executed in an information processing system including a host device and one or more guest devices capable of communicating with the host device, The host device a first operation data acquisition step of acquiring first operation data indicating an operation on the player's own device; a first receiving step of receiving second operation data indicating an operation on the guest device from the guest device; a game processing step of executing game processing based on the first operation data and the second operation data; a first drawing step of drawing a game image showing a result of the game processing; a first transmission step of transmitting a game image showing a result of the game processing to the guest device in association with current timing information in the host device; The guest device transmitted from the host device a second receiving step of receiving a game image and timing information associated with the game image; a second drawing step of drawing the received game image; a second operation data acquisition step of acquiring the second operation data; a second transmission step of transmitting the second operation data to the host device in association with the timing information associated with the game image at the time of acquisition of the second operation data; The host device further an information processing method comprising: executing a delay countermeasure processing step of executing a predetermined delay countermeasure processing based on timing information associated with the second operation data received from the guest device;

37. the delay countermeasure processing step calculates a delay amount in communication between the host device and the guest device based on timing information associated with the received second operation data and a timing of the reception of the second operation data, and executes the delay countermeasure processing based on the delay amount.

37. The information processing method according to claim 36.

38. The host device a storage step of storing the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and storing the second operation data received from the guest device in association with timing information associated therewith in the storage unit; In the delay countermeasure processing step, at least one piece of the first operation data is selected from the accumulated first operation data, and at least one piece of the second operation data is selected from the accumulated second operation data, In the game processing step, the game processing is executed based on the selected first operation data and second operation data.

37. The information processing method according to claim 36.

39. The host device a storage step of storing the acquired first operation data in a storage unit in association with timing information at the time of acquisition, and storing the second operation data received from the guest device in association with timing information associated therewith in the storage unit; In the delay countermeasure processing step, at least one of the first operation data stored is selected based on the delay amount, and at least one of the second operation data stored is selected; In the game processing step, the game processing is executed based on the selected first operation data and second operation data.

38. The information processing method according to claim 37.

40. The host device a storing step of storing the acquired first operation data in a storage unit in association with timing information at the time of acquisition; In the delay countermeasure processing step, at least one of the first operation data stored is selected based on timing information associated with the second operation data received from the guest device; In the game processing step, the game processing is executed based on the selected first operation data.

37. The information processing method according to claim 36.

41. the host device stores a game program for the game processing and system software separate from the game program; The host device executes the system software to a process of associating the game image and the timing information with each other and transmitting them to the guest device when the game image and the timing information are received from the game program, as a transmission process in the first transmission step; a receiving process in the first receiving step receiving the second operation data and the timing information from the guest device, extracting each of the second operation data and the timing information, and outputting the extracted data to the game program; 41. The information processing method according to any one of claims 36 to 40.

Citation Information

Patent Citations

  • Communication game system

    JP2002186785A

  • Game device, game system, game program, and game control method

    JP2020146155A

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

    JP6646991B2

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

    JP6927750B2