U.S. Pat. No. 12,285,693

METHOD OF SYNCHRONIZING ONLINE GAME, AND SERVER DEVICE

AssigneeGREE, INC.

Issue DateDecember 18, 2023

Illustrative Figure

Abstract

The present disclosure provides a method of synchronizing an online game, and a server device, that do not require centralized information management, reduce the processing burden on each device during online communication, and allow for continuation of processing in an offline environment. A method, according to the present disclosure, of synchronizing an online game that allows for transmission and reception of information related to game processing between a first client terminal and a second client terminal via a server includes: receiving, from the first client terminal connected online, first information related to game processing on the first client terminal; determining whether the first information is information that determines a game status; and storing the first information on the server and transmitting the first information to the second client terminal when the first information is determined to be information that determines the game status.

Description

DETAILED DESCRIPTION Aspects With reference to the drawings, the following describes an online game system according to an embodiment of the present disclosure. FIG.1illustrates an example of the environment in which an online game system according to the embodiment is used. InFIG.1, web server devices2and3are connected to a network1, such as the Internet, and mobile terminals4and5that are client devices used by players in the present system are connected to the network1via an access point (AP)6or a base station7. The web server devices2and3are computers for implementing the online game system according to the present embodiment and are arranged in parallel with respect to the network1in order to provide service for the online game. On the other hand, the mobile terminals4and5on the client side are each implemented with a smartphone, feature phone, or the like. The mobile terminals4and5operate on an OS such as Android®, iOS®, or the like. Furthermore, the mobile terminals4and5may each be a laptop computer, a mobile computer, a tablet computer, or the like. A game program for the online game is installed on the mobile terminals4and5in advance. FIG.2conceptually illustrates the connection architecture between a server and a client according to the present embodiment. As illustrated inFIG.2, in order to execute an online game program or an application program provided by company A, an application runtime environment C1, such as AIR®, for the game or application program is installed on the mobile terminals4and5, and a database connection kit C2of company A for connecting to the database of company A and performing accounting processing and the like is incorporated into the mobile terminals4and5. In addition, a (software) client-side framework C3developed by company A is installed on the mobile terminals4and5for communication with the web server devices2and3. On the other hand, the web server devices2and3operated by company A are provided with a server-side ...

DETAILED DESCRIPTION

Aspects With reference to the drawings, the following describes an online game system according to an embodiment of the present disclosure.

FIG.1illustrates an example of the environment in which an online game system according to the embodiment is used. InFIG.1, web server devices2and3are connected to a network1, such as the Internet, and mobile terminals4and5that are client devices used by players in the present system are connected to the network1via an access point (AP)6or a base station7.

The web server devices2and3are computers for implementing the online game system according to the present embodiment and are arranged in parallel with respect to the network1in order to provide service for the online game.

On the other hand, the mobile terminals4and5on the client side are each implemented with a smartphone, feature phone, or the like. The mobile terminals4and5operate on an OS such as Android®, iOS®, or the like. Furthermore, the mobile terminals4and5may each be a laptop computer, a mobile computer, a tablet computer, or the like. A game program for the online game is installed on the mobile terminals4and5in advance.

FIG.2conceptually illustrates the connection architecture between a server and a client according to the present embodiment. As illustrated inFIG.2, in order to execute an online game program or an application program provided by company A, an application runtime environment C1, such as AIR®, for the game or application program is installed on the mobile terminals4and5, and a database connection kit C2of company A for connecting to the database of company A and performing accounting processing and the like is incorporated into the mobile terminals4and5.

In addition, a (software) client-side framework C3developed by company A is installed on the mobile terminals4and5for communication with the web server devices2and3.

On the other hand, the web server devices2and3operated by company A are provided with a server-side JavaScript® (JS) runtime environment S1, such as Node.js®, in order to run the online game and the application, and with a (software) server-side framework of company A S2corresponding to the framework C3, in order to transmit and receive data directly to and from the mobile terminals4and5.

The framework C3of the mobile terminals4and5and the framework S2of the web server devices2and3transmit and receive event information for the game on the WebSocket platform, which is a standard implemented with HTMLS®.

With WebSocket, once a connection is established between the server and a client, data can be transmitted and received by socket communication without paying attention to communication procedures, unless the connection is explicitly severed. In other words, with WebSocket, once the connection (handshake) between the server and the client is successful, it is possible to continue transmission only of data, without performing connection procedures when requesting data and when responding.

The server and all of the clients that have established a connection with WebSocket can share the same data, transmitting and receiving in real time.

Accordingly, using the above WebSocket standard compensates for the disadvantages of communication by Ajax (Asynchronous JavaScript®+XML) or Comet and allows for more effective bidirectional communication between the server and the client.

The frameworks C3and S2are programmed using a scripting language that does not depend on the OS, such as JavaScript®. Therefore, the same connection environment can be built regardless of whether the OS of the mobile terminals4and5is Android®, iOS®, or the like.

FIG.3illustrates an example of the configuration of the web server device2in the online game system according to an embodiment of the present disclosure. The web server device3has the same configuration as the web server device2, and therefore a detailed description thereof is omitted. The configuration illustrated inFIG.3is only an example, and other configurations may be adopted.

As illustrated inFIG.3, in the web server device2, a CPU12, communication interface13, memory14, and storage device15are connected over a bus11.

In coordination with a game program/application program22(game program22), according to an embodiment of the present disclosure, that is stored in the storage device15, the CPU12executes game processing for the online game according to an embodiment of the present disclosure and performs overall control of the web server devices2and3. By executing the game program22, the CPU12provides an online game in which a plurality of players can participate simultaneously. The CPU12stores event information (details shown inFIG.5), received from the mobile terminals4and5participating in the online game, in a queue memory described below and conducts the game based on the event information. The CPU12also synchronizes the online game by transmitting the event information stored in the queue memory to other mobile terminals participating in the online game.

By executing the game program22, the CPU12implements a function to verify the event information stored in the queue memory and the event information received from a mobile terminal that has returned from the offline state, in order to synchronize the online game executed on the mobile terminal that has returned and on another mobile terminal (details shown inFIGS.7to9). By executing the game program22, the CPU12also implements a function (details shown inFIGS.10to16) to determine, based on the content of the event information, whether or not to transmit the event information to other mobile terminals in order to synchronize the online game.

The communication interface13controls communication, via the network1, with external devices such as clients (mobile terminals4and5). When game processing for the online game is executed by the CPU12, the communication interface13uses WebSocket to transmit and receive data related to the game, including the event information.

The memory14is used as a work area or the like that is necessary when executing a variety of programs executed by the CPU12and a variety of programs including the game program22. When the game program22is executed, the memory14is used as, for example, a queue memory for storing the event information received from the clients (mobile terminals4and5) in the order of receipt.

The storage device15is for storing a variety of programs and data necessary for the online game according to the present embodiment and is, for example, a large capacity storage device such as a Hard Disk Drive (HDD), an optical disk drive, a Digital Versatile Disc (DVD), a Magnetic Optical disk (MO), or the like. An operating system (OS)21, the game program22, and a program23for S1and S2(JS runtime environment, framework) are stored in the storage device15. The storage device15may also be used as the queue memory.

The OS21is a program for implementing the basic functions of the web server devices2and3.

The game program22is a program for implementing server-side game processing in the online game according to an embodiment of the present disclosure. The game processing in the online game according to the present embodiment is mainly executed by the server-side game program22, and display processing is executed on the client side. A portion or all of the game processing executed on the server side may, however, be executed on the client side.

The program23for Si and S2is a program for implementing the JS runtime environment Si and the framework S2illustrated inFIG.2.

FIG.4illustrates an example of the configuration of the mobile terminal4according to an embodiment of the present disclosure. The mobile terminal5has the same configuration as the mobile terminal4, and therefore a detailed description thereof is omitted. The mobile terminals4and5may have a configuration other than the configuration illustrated inFIG.4.

As illustrated inFIG.4, a CPU32, wireless communication interface33, memory34, GPS module35, camera36, storage device37, touch panel sensor38, and display controller39are connected to a bus31.

In coordination with a game program/application program37-2(game program37-2) stored in the storage device37, the CPU32executes game processing for the online game according to an embodiment of the present disclosure and performs overall control of the mobile terminal4. The CPU32mainly executes display processing to display game screens in accordance with the results of game processing executed by the web server devices2and3.

The wireless communication interface33controls communication, via the network1, with external devices such as a server. The wireless communication interface33has a wireless communication function such as wireless LAN, Bluetooth®, WiFi, or the like.

The memory34is used as a work area or the like that is necessary when executing the application program37-3related to client-side game processing.

The GPS module35uses a Global Positioning System (GPS) to generate position information (latitude, longitude), time information, and the like.

The camera36includes a function to capture still images or video.

The storage device37is for storing a variety of programs and data necessary for the online game according to the present embodiment and is implemented by, for example, flash memory or the like. An OS37-1, the game program37-2, and the program37-3for C1, C2, and C3are stored in the storage device37.

The OS37-1is a program for implementing the basic functions of the mobile terminal4.

The game program37-2is a program for implementing client-side game processing in the online game according to an embodiment of the present disclosure. The game processing in the online game of the present embodiment is mainly executed on the server side (web server devices2and3). Therefore, the client-side game processing is mainly processing to display game screens in accordance with the results of game processing executed on the server side, processing to transmit event information in accordance with input operations by the user in response to the game screens, and the like. A portion or all of the game processing executed on the client side may, however, be executed on the server side.

The program37-3for C1, C2, and C3is a program for implementing the application runtime environment C1, the database connection kit C2of company A, and the framework C3illustrated inFIG.2.

The touch panel sensor38is a sensor for detecting a touch operation on the touch panel mounted on the display surface of a display40.

The display controller39controls display by the display40.

The display40is configured using, for example, a Liquid Crystal Display (LCD) or the like and displays game screens and the like via control by the display controller39.

Next, operations in the online game system according to an embodiment of the present disclosure are described.

FIG.5illustrates an example of the content of event information that, during execution of the online game, is transmitted and received between the web server devices2and3and the mobile terminals4and5.

As illustrated inFIG.5, one set of event information is information indicating the content of an event that occurs on the mobile terminals4and5due to execution of the online game and includes time information P1, position information P2, and action information P3. The time information P1indicates a time at which the user performed an input operation during the game. The position information P2indicates the position at the time at which the user performed an input operation during the game. For example, the position information P2is a numerical conversion of the position information (latitude, longitude) generated by the GPS module35of the mobile terminals4and5. The action information P3indicates the content of an action related to an event occurring in response to a user input operation or the like, based on a game program installed in advance on the mobile terminals4and5.

FIG.6illustrates an example of a processing path for event information in order to synchronize the online game in the present embodiment (a specific processing path is described below). InFIG.6, the mobile terminal4is connected to the web server device2, the mobile terminal5is connected to the web server device3, and the web server device2and web server device3are connected. In other words, the web server devices2and3and the mobile terminals4and5are in a state allowing for transmission and reception of data (event information) by socket communication.

In the online game according to the present embodiment, each player participating in the game can move a character corresponding to the player in the game space by operating the mobile terminal that the player uses. A plurality of enemy characters is deployed within the game space. The player character moves within the game space (makes progress on a quest) and can attack an enemy character upon encountering the enemy character. If the player character attacks and manages to defeat the enemy character, the player character can, for example, acquire an item usable in the game. A plurality of players may also attack an enemy character together.

InFIG.6, when mobile terminal4and mobile terminal5are participating in the online game, event information indicating the content of an event occurring due to game processing on the mobile terminal4is transmitted to the mobile terminal5in order to synchronize game processing executed on the mobile terminals4and5.

For example, when an event occurs such that the hit points (HP) indicating the stamina of the game character controlled by user operation are modified by “+10”, the mobile terminal4executes processing for this event and transmits event information A1indicating the event to the web server device2. The web server device2transmits event information A2received from the mobile terminal4to the web server device3. By a push operation, the web server device3transmits the event information A3relayed by the web server device2to the mobile terminal5that is participating in the same online game as the mobile terminal4. Based on the event information indicating the content of the event that occurred on the mobile terminal4, the mobile terminal5modifies the stamina of the character controlled through operation by the user of the mobile terminal4in the game by “+10 HP”.

Next, a specific example of a processing path for event information in order to synchronize the online game in the present embodiment is described.FIG.7illustrates an example of a specific processing path for the event information illustrated inFIG.4.

When an event occurs such that the hit points (HP) indicating the stamina of the game character controlled by user operation are modified by “+10”, the mobile terminal4executes processing for this event and transmits event information indicating the content of the event to the web server device2(A11). The event information includes action information to modify the hit points (HP) by “+10”, time information indicating the time that the event occurred, and position information indicating the position of the mobile terminal4when the event occurred.

By a push operation (A12), the web server device2stores the event information from the mobile terminal4in a queue memory2B and then transmits the same event information to the web server device3(A13).

Upon receiving the event information from the web server device2, the web server device3transmits the same event information by a push operation to the mobile terminal5of the other game player participating in the same online game (A14). Based on the content of the event information received from the web server device3, the mobile terminal5executes game processing to modify the stamina of the character, in the online game, for the mobile terminal4by “+10 HP” (A15). In order to respond that the event information received from the web server device3has been reflected in the game processing, the mobile terminal5sends the event information back to the web server device3(A16).

Upon receiving the event information back from the mobile terminal5, the web server device3determines that the event information has been reflected in the game processing on the mobile terminal5. The web server device3then returns the event information by a pop operation on the queue memory2B of the web server device2(A17).

In this way, when an event occurs on the mobile terminal4, the online game system in the present embodiment can synchronize the online game being executed on the mobile terminals4and5by transmitting the event information indicating the content of the event from the mobile terminal4to the mobile terminal5, without centralized information management by the server.

The following describes a method of synchronizing the online game when a mobile terminal participating in the online game is temporarily in an offline state.

FIG.8conceptually illustrates synchronization of the online game when an offline state occurs. The following illustrates an example of mobile terminal A going offline starting at event3while mobile terminal A and mobile terminal B are executing the online game. InFIG.8, mobile terminal A for example corresponds to the mobile terminal4inFIG.7, and mobile terminal B for example corresponds to the mobile terminal5inFIG.7.

In this case, even when going offline, mobile terminal A continues game processing via the game program installed in advance. Mobile terminal A cannot, however, transmit and receive event information to and from mobile terminal B regarding events from event3onward (and the processing result is determined to be an error).

Since there is no response from mobile terminal A after event2, mobile terminal B enters a rollback state after executing processing for event2. In other words, mobile terminal B maintains a state of no progress in the game.

Here, accounting processing in the game is an example of what is rolled back. The result of a battle by a character, progress by the character in the game space, and the like are examples of what is not rolled back. With regard to event information considered important for game progress, a rollback may be performed after determining event information by providing a specific threshold.

Accordingly, after mobile terminal A returns to the online state, events up to event2are valid for both mobile terminals A and B based on the event information stored on the mobile terminals, and a correct synchronous state can be maintained between mobile terminal A and mobile terminal B by the web server device intermediating to verify whether events from event3onwards on mobile terminal A lead to a discrepancy in progress of the game and causing mobile terminals A and B to reflect the results of verification.

InFIG.8, when it is determined that allowing event3to be finalized would prevent synchronization with mobile terminal B, event3on mobile terminal A is invalidated, as illustrated inFIG.8. On the other hand, if it is determined that finalizing event3would allow for synchronization without causing any discrepancy with mobile terminal B, permission is granted to finalize event3.

The criteria for determination when the web server device performs the above verification are the event information that is transmitted from the terminal by batch processing after returning online and the event information accumulated in the queue memory2B in the web server. By referring to the time information P1and position information P2in these two groups of event information to make determinations, using a threshold specified in advance as necessary, it is possible accurately to verify valid event information in the online state existing before the offline state occurred.

As described above, when event information executed in the offline state is determined not to disrupt mutual synchronization after returning online, the event information is treated as valid and execution is permitted.

FIG.9illustrates a processing path for event information after the mobile terminal4returns to the online state from the offline state. Here, an example is illustrated in which an event that occurred while the mobile terminal4was offline has been determined to be valid.

While executing game processing in the offline state, the mobile terminal4stores event information for events occurring by game processing. Upon returning to the online state from the offline state, the mobile terminal4transmits stored event information to the web server device2.

For example, assume that event information (A21) such that the hit points (HP) indicating the stamina of the game character controlled by user operation are modified by “+10” is transmitted from the mobile terminal4by batch processing to the web server device2. When the mobile terminal4returns to an online state, the mobile terminals4and5and the web server devices2and3enter a state allowing for transmission and reception of data, including event information, via WebSocket (socket communication).

The web server device2stores the event information (A21) from the mobile terminal4in the queue memory2B by a push operation (A22) and then transmits the same event information to the web server device3(A23).

At this point, the mobile terminal5that has entered an online state with the mobile terminal4transmits the same event information by a push operation to the web server device3(A24). Upon receiving this event information, the web server device3accesses the queue memory2B of the web server device2(A25), and after reading the same event information (A26) stored in the queue memory2B, transmits the same event information to the mobile terminal5(A27).

Based on the content of the event information received from the web server device3, the mobile terminal5executes game processing to modify the stamina of the character for the mobile terminal4within the online game by “+10 HP” (A28). In order to respond that the event information received from the web server device3has been reflected in the game processing, the mobile terminal5sends the event information back to the web server device3(A29).

Once the mobile terminal5returns the event information, the web server device3determines that the event information has been reflected in the game processing on the mobile terminal5. The web server device3then returns the event information by a pop operation on the queue memory2B of the web server device2(A30). This concludes the processing sequence after returning online when event information has been generated on the mobile terminal4while offline.

In this way, with regard to event information occurring in the offline state as well, it is possible to provide the user with a game environment having less of a sense of incongruity when an offline state occurs by defining, in advance, event information permissible with respect to game progress in the offline state, such as character movement in the game space, i.e. content that does not cause any discrepancy in game progress for both of the mobile terminals4and5.

Examples of specific event information include finishing a quest in the game, battling another character, the acquisition of an item and consequent accounting processing, and the like.

Next, another example of processing for synchronizing the online game in the present embodiment is described.

FIG.10illustrates a specific example of the processing path for event information in order to synchronize the online game in the present embodiment.FIGS.11A and11Billustrate a specific example of event information transmitted from mobile terminal A to mobile terminal B as a result of game progress, andFIG.12illustrates the specific content of the event information inFIGS.11A and11B. InFIGS.11A and11B, time is shown as flowing from left to right.

InFIGS.11A and11B, mobile terminal A for example corresponds to the mobile terminal4inFIG.10, and mobile terminal B for example corresponds to the mobile terminal5inFIG.10. In other words,FIGS.11A and11Billustrate an example of transmitting event information for an event occurring on the mobile terminal4from the mobile terminal4to the mobile terminal5. Note that when an event occurs on the mobile terminal5, event information is transmitted from the mobile terminal5to the mobile terminal4in the same way as when an event occurs on the mobile terminal4. Furthermore, inFIG.10, only two mobile terminals4and5are illustrated, yet when a plurality (three or more) players are participating in the online game, event information is transmitted and received between the mobile terminals used by the players. In other words, the event information for an event occurring on one mobile terminal needs to be transmitted to a plurality of mobile terminals. Accordingly, as the number of players participating in the online game increases, the traffic for transmitting and receiving event information greatly increases.

In the online game system of the present embodiment, upon receiving event information from a mobile terminal in order to synchronize the online game, the web server device determines whether the event information is related to game processing (game status) being executed on another mobile terminal. Upon determining that the event information is related to game processing (game status) being executed on another mobile terminal, the web server device stores the event information in the queue memory and transmits the event information to the other mobile terminal in order to synchronize the online game.

Assume that the web server devices2and3illustrated inFIG.10are in a state allowing for data communication via WebSocket. In order to participate in the online game, the mobile terminal4performs a handshake and connects to the web server device2. As a result, the mobile terminal4enters a state allowing for data communication via WebSocket with the web server device group that includes the web server devices2and3(and includes any mobile terminals connected to each web server device).

In the game space of the online game, a player character corresponding to the mobile terminal4is generated. In accordance with player operation on the mobile terminal4, the player character can perform a variety of actions in the game space. For example, assume that an operation is performed on the mobile terminal4to move the player character in the game space, i.e. to make progress on a quest (TA1inFIG.11A). The CPU32of the mobile terminal4executes game processing in accordance with the input operation and generates event information for this event1. As illustrated inFIG.12, the event information for event1includes “player A makes progress on quest” as the action information indicating the content of the event, “9:00” as the time information, and “latitude 35.681382, longitude 139.766084” as the position information. The time information indicates the time managed by the mobile terminal4when the input operation was performed. The position information is generated based on the latitude and longitude acquired by the GPS module35. The time information need not be the time managed by the mobile terminal4and may be the time managed by the web server device2. In this case, the event information transmitted from the mobile terminal4to the web server device2does not include time information, but rather the time information is added on by the web server device2.

By a Send operation (B1: Send), the mobile terminal4transmits the event information to the web server device2via WebSocket. A determination unit2A of the web server device2determines whether the event information is legitimate based on the position information included in the event information. In other words, the determination unit2A determines the travel distance of the mobile terminal4by comparing the position information in event information received earlier with the position information in event information received later. The determination unit2A determines whether the travel distance of the mobile terminal4, which was determined based on the position information, is a distance that can physically be traveled. For example, based on the time information in event information received earlier and the time information in event information received later, the determination unit2A calculates the length of time from the time when the earlier event information was received to the time when the later event information was received. For example, a reference value is set for determining the distance that can be traveled with respect to time, and when the travel distance is greater than the set value, the determination unit2A determines that the event information received from the mobile terminal4is not legitimate. For example, if the user of another mobile terminal in a location distant from the mobile terminal4steals the identity of the player using the mobile terminal4and participates in the online game, the determination unit2A can determine that the event information from the other mobile terminal is not legitimate. In this case, the determination unit2A invalidates the event information received from the mobile terminal4and suspends game processing. In the following explanation, it is assumed that the web server devices2and3receive legitimate event information from the mobile terminals4and5.

On the other hand, when the event information is determined to be legitimate, the web server device2executes game processing corresponding to the event information received from the mobile terminal4. Here, when no other player is participating in the online game in which the mobile terminal4is participating, the web server device2need not transmit the event information received from the mobile terminal4to any other mobile terminal (or web server device).

Similarly, upon occurrence of an event in which a player character encounters an enemy character (boss character) in the game space (TA2inFIG.11A), the mobile terminal4generates event information for this event2and transmits the event information to the web server device2(B1: Send). Details on the event information for this event2are shown inFIG.12.

In order to participate in the online game, the mobile terminal5also performs a handshake and connects to the web server device3. As a result, the mobile terminal5enters a state allowing for data communication via WebSocket with the web server device group that includes the web server devices2and3(and includes any mobile terminals connected to each web server device).

Assume that in order to attack the enemy character (boss character) together with another player, the player of the mobile terminal4issues a friend request (TAB3inFIG.11A). The mobile terminal4generates event information for this event3and transmits the event information to the web server device2(B1: Send). As illustrated inFIG.12, the event information for the event3includes data indicating that “player A invites player B” as the action information indicating the content of the event for the friend request.

Upon receiving the event information for event3from the mobile terminal4, the determination unit2A of the web server device2determines whether to transmit the event information to the mobile terminal5based on the content of the event information. For example, the determination unit2A determines whether to transmit the event information to the mobile terminal5based on whether the event information is for an event related to the game status of the mobile terminal5that is participating in the same online game as the mobile terminal4. A determination table for determining whether an event is related to the game status of another mobile terminal is, for example, provided in the determination unit2A. In the determination table, conditions for determining whether an event is related to the game status are defined. When the conditions defined in the determination table are applicable to the action information in the event information received from the mobile terminal4, the determination unit2A can determine that the event information is for an event related to the game status.

Since the action information included in the event information is “player A invites player B”, the determination unit2A determines that the event is related to the game status of the mobile terminal5used by player B. In other words, the determination unit2A determines that the event information for event3is to be transmitted to the mobile terminal5. In this case, the determination unit2A stores the event information received from the mobile terminal4in the queue memory2B.

By a push operation (B2: Push), the determination unit2A transmits the event information stored in the queue memory2B via WebSocket to the web server device3connected to the mobile terminal5(B31: Publish).

Upon receiving the event information from the web server device2, the web server device3transmits the event information by a push operation via WebSocket to the mobile terminal5of the other game player participating in the same online game (B41: Push). The mobile terminal5executes game processing based on the content of the event information received from the web server device3to reflect the event that occurred on the mobile terminal4(B5: Execute). In order to provide notification that the event information received from the web server device3has been reflected in the game processing, the mobile terminal5sends a completion notice to the web server device3(B6: Completion notice).

In response to the completion notice from the mobile terminal5, the web server device3notifies the web server device2via a pop operation (B7: Pop). In response to the notification via the pop operation, the determination unit2A of the web server device2deletes the event information that was stored in the queue memory2B and transmitted to the mobile terminal5.

By receiving the event information for the friend request from the mobile terminal4, the mobile terminal5notifies player B of the friend request from player A. By responding to the friend request, player B can participate in the attack on the enemy character (boss character) along with player A. When an input operation by player B indicates to attack the enemy character (boss character), the mobile terminal5generates an attack event like the mobile terminal4and transmits the event information for the attack to the web server device3. In other words, the position information of the event occurring on the mobile terminal5is transmitted to the mobile terminal4via WebSocket.

The mobile terminal4generates an attack event in accordance with an input operation by player A (TAB4inFIG.11A), and in the same way as described above, transmits the event information to the web server device2(B1: Send). Upon receiving the event information event for event4from the mobile terminal4, the determination unit2A of the web server device2determines whether the event information is for an event related to the game status of the mobile terminal5.

Here, based on the conditions defined in the determination table, the determination unit2A determines that the event to attack the enemy character is not an event related to the game status of the mobile terminal5. In this case, the determination unit2A transmits the event information received from the mobile terminal4to the web server device3without storing the event information in the queue memory2B.

Upon receiving the event information from the web server device2, the web server device3transmits the event information by a push operation via WebSocket to the mobile terminal5of the other game player participating in the same online game (B42: Push). The mobile terminal5executes game processing based on the content of the event information received from the web server device3to reflect the event that occurred on the mobile terminal4(B5: Execute).

In this way, by transmitting the event information received from the mobile terminal4to the web server device3, game processing for the online game executed on the mobile terminals4and5can reliably be synchronized.

By not storing, in the queue memory2B, the event information that was determined not to be transmitted to the mobile terminal5, use of the memory capacity of the queue memory2B can also be reduced.

Furthermore, when it is determined that the event information received from the mobile terminal4is for an event related to the game status of the mobile terminal5, storing this event information in the queue memory2B makes it possible reliably to synchronize the game processing even when the mobile terminal5is in an offline state. Operations when the mobile terminal5is in an offline state are described below (seeFIGS.13and14).

Similarly, the event information for event5occurring on mobile terminal4includes the data “boss attacks player A” as the action information and is determined by the determination unit2A of the web server device2not to be an event related to the game status of the mobile terminal5(TAB5inFIG.11B). The event information for event5is like the event information for event4, in that the event information received from the mobile terminal4is transmitted to the web server device3without being stored in the queue memory2B.

Next, the event information for event6occurring on the mobile terminal4includes the data “players A and B defeat the boss” as the action information. Players A and B operating the mobile terminals4and5are attacking the enemy character (boss character) by respective input operations. As a result, the boss character can be defeated by an attack produced by the input operation of one of the players. In this case, the fact that “the boss was defeated” relates to the game status of both players A and B.

Accordingly, the determination unit2A of the web server device2determines that the event information for event6is for an event relating to the game status of the mobile terminal5(TAB6inFIG.11B). The event information for event6is stored in the queue memory2B and is transmitted to the mobile terminal5via the web server device3.

Similarly, the event information for event7occurring on mobile terminal4includes the data “provide item to players A and B” as the action information and is determined by the determination unit2A of the web server device2to be an event related to the game status of the mobile terminal5(TAB7inFIG.11B). Like the event information for event6, the event information for event7is stored in the queue memory2B and is transmitted to the mobile terminal5.

In this way, the web server device2can determine whether to transmit the event information received from the mobile terminal4to the mobile terminal5by determining whether the content of the event information relates to the status of the game being executed on the mobile terminal5. The web server device2stores event information that relates to the game status of the mobile terminal5in the queue memory2B and transmits the event information to the mobile terminal5, whereas the web server device2transmits event information that does not relate to the game status of the mobile terminal5to the mobile terminal5without storing the event information in the queue memory2B. In other words, transmitting the event information for an event occurring on the mobile terminal4to the mobile terminal5allows for synchronization of the online game.

In the explanation above, the event information received from the mobile terminal4is transmitted to the mobile terminal5regardless of whether the event information relates to the game status of the mobile terminal5. In the present embodiment, a configuration may be adopted so that when the determination unit2A of the web server device2determines that the event information from the mobile terminal4does not relate to the game status of the mobile terminal5, the event information is not transmitted to the mobile terminal5.

In this configuration, the transmission of event information from the web server device2to the web server device3(B32: Publish) and the transmission of event information from the web server device3to the mobile terminal5(B42: Push), indicated by dashed lines inFIG.10, are omitted. In this way, traffic for transmitting the event information can be reduced.

The above explanation has focused on transmitting event information from the mobile terminal4to the mobile terminal5, yet event information is transmitted from the mobile terminal5to the mobile terminal4in the same way. Accordingly, the amount of traffic for transmitting event information from the mobile terminal5to the mobile terminal4can also be reduced. Furthermore, when more players are participating in the same online game, a large reduction in the amount of traffic can be expected.

The following describes a method of synchronizing the online game when the mobile terminal5participating in the online game temporarily goes offline.

FIG.13illustrates an example of the processing path for event information in the situation that the mobile terminal5is in a temporary offline state,FIG.14illustrates an example of the processing path for event information in the situation that the mobile terminal5has returned to the online state, andFIGS.15A and15Billustrate a specific example of event information transmitted from mobile terminal A to mobile terminal B as a result of game progress.

Note that processing for events1,2, and3inFIG.15Ais executed in the same way as for events1,2, and3inFIG.11A, and therefore a description thereof is omitted. In other words, the event information for event3is transmitted from the mobile terminal4to the mobile terminal5in a state allowing for transmission and reception of data via WebSocket by the web server devices2and3and the mobile terminals4and5.

Here, assume that event4occurs on the mobile terminal4(TAB4inFIG.15A). The mobile terminal4transmits event information for event4to the web server device2(C1: Send). The determination unit2A of the web server device2determines that the content of the event information for event4does not relate to the game status of the mobile terminal5. Accordingly, the event information for event4is transmitted from the web server device2to the web server device3without being stored in the queue memory2B (C32: Publish). Since the mobile terminal5is in an offline state, however, the transmission from the web server device3to the mobile terminal5(C42: Publish) fails.

Next, assume that event5occurs on the mobile terminal4(TAB5inFIG.15B). The mobile terminal4transmits event information for event5to the web server device2(C1: Send). The determination unit2A of the web server device2determines that the content of the event information for event5does not relate to the game status of the mobile terminal5. Accordingly, like the event information for event5, the event information for event4is transmitted to the web server device3without being stored in the queue memory2B. If the mobile terminal5returns to the online state during this time, the transmission from the web server device3to the mobile terminal5(C41: Publish) succeeds.

Once the mobile terminal5returns to the online state, the mobile terminal5enters a state allowing for transmission and reception of data with the mobile terminal4via WebSocket. Accordingly, the event information for events6and7that occurred in the mobile terminal4(TAB6and TAB7inFIG.15B) are stored in the queue memory2B and transmitted to the mobile terminal5.FIG.16illustrates an example of event information that is generated from event4onward on the mobile terminal4and is transmitted from the mobile terminal4to the mobile terminal5. The mobile terminal4transmits event information for events4and5to the web server device2. The event information for events4and5indicated by the dashed lines inFIG.16, however, is determined not to relate to the game status of the mobile terminal5. Accordingly, the event information for events4and5is not stored in the queue memory2B of the web server device2, and only the event information for events7and8is stored.

When event information determined by the determination unit2A not to relate to the game status of the mobile terminal5is not transmitted to the mobile terminal5, transmission from the web server device2to the web server device3(C32: Publish) and transmission from the web server device3to the mobile terminal5(C42: Publish) are omitted. Therefore, the mobile terminal5is not affected even when in the offline state.

Here, for example the event information for event4is described as being determined to relate to the game status of the mobile terminal5.

Here, assume that communication between the mobile terminal5and the web server device3is cut off, and that as illustrated inFIG.13, the mobile terminal5is in an offline state. In this case, the mobile terminal5cannot transmit or receive data via WebSocket. Accordingly, transmission of event information from the web server device3to the mobile terminal5(C41: Publish) results in an error.

In this case, for example when there is no notification via a pop operation within a predetermined period of time after transmitting event information to the web server device3, the determination unit2A of the web server device2determines that transmission of position information to the mobile terminal5failed. In this case, the determination unit2A adds information indicating that transmission of the event information failed to the event information for event4stored in the web server device3.

Next, assume that the mobile terminal5reconnects to the web server device3, returning to the online state. In this case, the mobile terminal5outputs, to the web server device3, a transmission request for event information from the mobile terminal4that is participating in the same online game, as illustrated inFIG.14(D1: Request).

In response to the transmission request for event information transmitted from the mobile terminal5upon returning online, the web server device3requests that the web server device2(determination unit2A) read the event information stored in the queue memory2B of the web server device2(D2: Read).

In response to the request from the web server device3to read event information, the determination unit2A of the web server device2returns, to the web server device3, the event information to which has been added the information indicating that transmission of the event information failed (D3: Reply). The web server device3transmits the event information returned from the web server device2to the mobile terminal5by a push operation (D4: Push).

The mobile terminal5executes game processing based on the content of the event information received from the web server device3to reflect the event that occurred on the mobile terminal4(D5: Execute). In order to provide notification that the event information received from the web server device3has been reflected in the game processing, the mobile terminal5sends a completion notice to the web server device3(D6: Completion notice).

In response to the completion notice from the mobile terminal5, the web server device3notifies the web server device2via a pop operation (D7: Pop). In response to the notification via the pop operation, the determination unit2A of the web server device2deletes the event information that was stored in the queue memory2B and transmitted when the mobile terminal5was in an offline state.

In this way, even when the mobile terminal5is temporarily in an offline state, the event information stored in the queue memory2B of the web server device2is transmitted to the mobile terminal5when the mobile terminal5returns online and is reflected in the game processing of the mobile terminal5. As a result, the game processing of the online game executed on the mobile terminals4and5can be synchronized.

Note that inFIGS.10,13, and14, the event information is transmitted from the mobile terminal4to the mobile terminal5via the two web server devices2and3, yet a configuration may be adopted in which the event information is transmitted from the mobile terminal4to the mobile terminal5via three or more web server devices. In this case, the web server device other than the web server device2to which the mobile terminal4is connected may be configured to execute the above-described processing (including the processing executed by the determination unit2A).

FIGS.17A,17B,18A, and18Billustrate examples of the generation of event information in a battle game. These drawings illustrate an example of a game in which the user develops a plurality of controllable characters in the game by moving the characters and battling other characters as necessary.

The upper portion of the screen inFIG.17Ashows the character used in the lead, the degree of progress (on a preset path) in the game (PROGRESS), and the score at that point in time (SCORE). The bottom portion of the screen shows that of the five remaining characters, only one is retained. The majority of the screen in the middle shows progression “through the woods” during the game.

FIG.17Bshows a state of greater progress than the state inFIG.17A. In this case, even though the degree of progress in the game space has increased while offline, the score has not changed. Therefore, such event information is valid when later returning to the online state, and as illustrated inFIG.7, processing may be executed for the event information to be valid for other players in the online game.

FIG.18Ashows a state of greater progress in the game space than the state inFIG.17B. In this case as well, even though the degree of progress has increased while offline, the score has not changed. Therefore, such event information is valid when later returning to the online state, and as illustrated inFIG.9, processing may be executed for the event information to be valid for other players in the online game.

FIG.18Bshows a state of greater progress than the state inFIG.18A. In this state, a battle is held with other characters that have appeared. In this case, in terms of game progress, a battle can be held even in an offline state, yet it is highly likely that the score will greatly change as a result of the battle, leading to inconsistency with other terminals battling in an online state.

Therefore, such event information is treated as invalid upon later returning to the online state, and control is performed via the verification processing by the web server devices2and3described inFIG.8so as to go back to the original online state.

As described above in detail, according to the present embodiment, centralized information management by a large-scale server device that uses a database is unnecessary when comprehensively controlling an online game, thereby reducing the processing load on each device during online communication and allowing for continued processing in an offline environment.

Furthermore, in the above embodiment, not only the time information P1but also the position information P2in the event information is referred to as the standard for verification, thus allowing for reliable game control by detecting a state in which it is highly likely that illegitimate operations are being performed, such as when the position of the terminal exhibits an unnaturally large change before and after the offline state.

Furthermore, for events that are found to be invalid as a result of verification, identifying information indicating the invalidity is returned in the above embodiment, so that synchronized game progress can reliably be maintained.

Furthermore, for event information that is transmitted and received between a plurality of mobile terminals participating in the online game, data traffic via WebSocket can be reduced by having the web server devices2and3determine whether to transmit the event information to other mobile terminals and then transmit only the event information determined affirmatively.

The case of conducting the online game with two mobile terminals, such as a smart phone, has been described in the above embodiment, yet the number of terminals is not limited in the present disclosure. Furthermore, the content of the game is not limited to the battle game illustrated inFIGS.17A,17B,18A, and18B.

In the above embodiment, an example of using the WebSocket standard has been described, yet communication between the web server and the browser in the present disclosure is not limited and may use another standard.

Additionally, the present disclosure is not limited to the above-described embodiment, and the present disclosure may be embodied with a variety of modifications without departing from the scope thereof. The functions executed in the above-described embodiment may also, in so far as possible, be combined appropriately. Various stages are included in the above-described embodiment, and a variety of embodiments may be abstracted by appropriately combining the plurality of disclosed constituent elements. For example, if results are still obtained even when removing some of the constituent elements from the constituent elements disclosed in the above embodiment, a configuration with those constituent elements removed may be abstracted as an embodiment.

Claims

  1. A method of synchronizing an online game between a first mobile device and a second mobile device via a server, the method comprising: initiating execution of the online game with each of the first mobile device and second mobile device in an online state;determining that the first mobile device has entered an offline state;after determining that the first mobile device has entered the offline state, causing the second mobile device to be set to a rollback state;subsequently determining that the first mobile device has entered the online state, and receiving, on the server, first information from the first mobile device connected online;determining whether the first information is valid, wherein determining whether the first information is valid comprises determining whether a loss of synchronization of the online game between the first mobile device and the second mobile device would result from a transmission of the first information to the second mobile device;transmitting the first information to the second mobile device when it is determined that the first information is valid;and invalidating the first information and not transmitting the first information to the second mobile device when it is determined that the first information is not valid.
  1. The method of claim 1, wherein determining that the first mobile device has entered the offline state comprises: transmitting information from the server to the first mobile device;and determining that there is no response from the first mobile device after transmitting the information to the first mobile device.
  2. The method of claim 1, wherein the method further comprises: in an online state, and prior to determining that the first mobile device has entered the offline state, completing at least one event with the first mobile device and second mobile device.
  3. The method of claim 3, wherein determining that the first mobile device has entered the offline state comprises: after completing the at least one event, transmitting information from the server to the first mobile device;and determining that there is no response from the first mobile device after transmitting the information to the first mobile device.
  4. The method of claim 1, wherein causing the second mobile device to be set to the rollback state comprises: restricting synchronization, with the server, of a first type of gameplay advancement from the second mobile device;and permitting synchronization, with the server, of a second type of gameplay advancement from the second mobile device.
  5. The method of claim 5, wherein the second type of gameplay advancement is at least one of: a result of a battle by a game character and progress by the game character in a game space.
  6. The method of claim 5, wherein the first type of gameplay advancement is event advancement.
  7. The method of claim 7, wherein restricting synchronization, with the server, of the first type of gameplay advancement comprises comparing event information to a specific threshold for an event, and rolling back a game state of the second mobile device based on comparison of the event information to the specific threshold.
  8. The method of claim 7, wherein restricting synchronization, with the server, of the first type of gameplay advancement comprises restricting event advancement until after a step of determining whether event advancement would disrupt mutual synchronization between the first mobile device and the second mobile device;and performing event advancement only when it is determined that event advancement would not disrupt mutual synchronization.
  9. The method of claim 1, wherein initiating execution of the online game with the first mobile device comprises causing the first mobile device to provide at least one gameplay element, comprising providing, to the first mobile device, when the first mobile device is in an online state, information for causing the first mobile device to provide the at least one gameplay element during a condition in which the first mobile device is subsequently operated in an offline state.
  10. The method of claim 10, wherein the first information from the first mobile device connected online comprises information related to at least one interaction received by the first mobile device during a preceding period in which the first mobile device was in the offline state.
  11. The method of claim 10, wherein the at least one gameplay element includes a preset path, wherein a degree of progress of a user character along the preset path is tracked separately from a score of the user character, and wherein a user interaction with the at least one gameplay element comprises advancing the degree of progress of the user character along the preset path.
  12. The method of claim 10, wherein a user interaction with the at least one gameplay element comprises initiating a battle between a user character and at least one opponent character.
  13. The method of claim 13, further comprising providing a change in score based on an outcome of the battle.
  14. The method of claim 1, further comprising: causing a user interface of the first mobile device to display an interface element corresponding to a degree of progress, said interface element comprising at least one of a progress bar or a percentage.
  15. The method of claim 1, wherein determining whether the first information is valid comprises: determining whether the first information includes a change in score;and when the first information includes the change in score, determining that a loss of synchronization would result based on the change in score.
  16. A system for synchronizing an online game, comprising a server, a first mobile device, and a second mobile device, the server configured to perform steps of: initiating execution of the online game with each of the first mobile device and second mobile device in an online state;determining that the first mobile device has entered an offline state;after determining that the first mobile device has entered the offline state, causing the second mobile device to be set to a rollback state;subsequently determining that the first mobile device has entered the online state, and receiving, on the server, first information from the first mobile device connected online;determining whether the first information is valid, wherein determining whether the first information is valid comprises determining whether a loss of synchronization of the online game between the first mobile device and the second mobile device would result from a transmission of the first information to the second mobile device;transmitting the first information to the second mobile device when it is determined that the first information is valid;and invalidating the first information and not transmitting the first information to the second mobile device when it is determined that the first information is not valid.
  17. The server of claim 17, wherein causing the second mobile device to be set to the rollback state comprises: restricting synchronization, with the server, of a first type of gameplay advancement from the second mobile device;and permitting synchronization, with the server, of a second type of gameplay advancement from the second mobile device.
  18. A non-transitory computer-readable medium comprising computer program code that, when executed by a server communicatively coupled to a first mobile device and a second mobile device, is configured to configure the server to perform steps of: initiating execution of the online game with each of the first mobile device and second mobile device in an online state;determining that the first mobile device has entered an offline state;after determining that the first mobile device has entered the offline state, causing the second mobile device to be set to a rollback state;subsequently determining that the first mobile device has entered the online state, and receiving, on the server, first information from the first mobile device connected online;determining whether the first information is valid, wherein determining whether the first information is valid comprises determining whether a loss of synchronization of the online game between the first mobile device and the second mobile device would result from a transmission of the first information to the second mobile device;transmitting the first information to the second mobile device when it is determined that the first information is valid;and invalidating the first information and not transmitting the first information to the second mobile device when it is determined that the first information is not valid.
  19. The non-transitory computer-readable medium according to claim 19, wherein causing the second mobile device to be set to the rollback state comprises: restricting synchronization, with the server, of a first type of gameplay advancement from the second mobile device;and permitting synchronization, with the server, of a second type of gameplay advancement from the second mobile device.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.