CONTROL SYSTEM, SERVER AND CONTROL METHOD

JPWO2025126291A1Active Publication Date: 2025-06-19GAME SERVER SERVICES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024504221
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-11
Publication Date
2025-06-19
Estimated Expiration
2043-12-11

AI Technical Summary

Technical Problem

Existing game control systems are vulnerable to fraudulent activities and experience delays due to frequent communication between the terminal and server, leading to decreased user satisfaction.

Method used

A control system where the terminal and server use common node definition data to transition nodes independently, with the terminal recording log data for transmission to the server, allowing the server to verify the integrity of setting information and detect fraudulent activities.

Benefits of technology

This approach reduces game delays and enhances resistance to fraudulent acts by minimizing communication frequency and enabling effective detection and prevention of fraudulent activities.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

Before the game is provided, a state is established in which the server 2 and the user terminal 3 can each use common node definition data ND corresponding to the game. A plurality of nodes indicating the state of the game are defined in the node definition data ND. While the user is playing the game, the user terminal 3 transitions the nodes based on the node definition data of the user terminal 3 to change the value of the terminal side setting information, while recording transition reproduction information capable of reproducing the transition of the nodes and the changed value of the terminal side setting information as a log in the log data. Furthermore, the user terminal 3 transmits transmission log data DL including the log to the server 2. The server 2 reproduces the transition of the nodes based on the transition reproduction information of the transmission log data and the node definition data ND of the server 2, changes the value of the server side setting information according to the transition of the nodes, and compares the value of the server side setting information with the value of the terminal side setting information recorded in the transmission log data.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a control system that provides a game using a server and terminals, the control device, and a control method using the control system. [Background technology]

[0002] Conventionally, a control system is known in which a server and a terminal communicably connected to the server via the Internet work together to provide a game to a user. In this type of game, cheating may occur when a terminal program is altered or communication between the server and the terminal is tampered with. For example, cheating may occur in which game characters, items used in the game, points available in the game, and other game-related elements are fraudulently altered so that a user can advance in the game to an advantage. Regarding cheating, Patent Document 1 describes that cheating can be suppressed by executing all processing for progressing the game on the server (see paragraph 0004 in particular). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2019-154667 A Summary of the Invention [Problem to be solved by the invention]

[0004] A control system in which a terminal and a server work together to provide a game is required to be highly resistant to fraudulent activities. As shown in Patent Document 1, the control system can be effectively prevented from fraudulent activities by configuring the server to execute processes for progressing the game (including processes for generating screen information according to the progress of the game) while the terminal only displays a screen based on the screen information. However, this configuration has the following problems. That is, in this configuration, communication between the terminal and the server occurs frequently as the game progresses. Then, the frequent communication may cause delays in the progress of the game, which is a factor in reducing user satisfaction. The above problems exist.

[0005] The present invention has been made to solve such problems, and has an object to suppress delays in the progress of a game and to improve resistance to cheating. [Means for solving the problem]

[0006] In order to solve the above-mentioned problems, the present invention has the following configuration. That is, before the game is provided, a state is established in which the server and the terminal can each use common node definition data corresponding to the game. In this node definition data, a plurality of nodes indicating the state of the game are defined. Then, while the user is playing the game, the terminal transitions the nodes based on the node definition data of the terminal, changes the value of the terminal-side setting information corresponding to the node definition data of the terminal in response to the node transition, and records transition reproduction information capable of reproducing the node transition and the value of the terminal-side setting information changed in response to the node transition in the log data as a log. Furthermore, when a log transmission condition regarding the transmission of the log is established, the terminal transmits to the server transmission log data including the log recorded in the log data. Meanwhile, the server reproduces the node transition based on the transition reproduction information of the transmission log data received from the terminal and the node definition data of the server, changes the value of the server-side setting information corresponding to the node definition data of the server in response to the node transition, and executes a verification process in which the value of the server-side setting information is compared with the value of the corresponding terminal-side setting information recorded in the transmission log data. Effect of the Invention

[0007] According to the present invention configured as described above, the following effects are achieved. That is, when providing a game, a state is created in which the server and the terminal can use common node definition data. Then, the terminal transitions the nodes based on its own node definition data and progresses the game. That is, the terminal progresses the game without having the server make any decisions regarding node transitions. Therefore, frequent communication between the terminal and the server regarding the progress of the game can be suppressed, and delays in the progress of the game can be suppressed.

[0008] Further, according to the present invention, the terminal records transition reproduction information capable of reproducing the node transition and the value of the terminal side setting information changed according to the node transition in the log data as a log. Furthermore, when a predetermined condition is established, the terminal transmits transmission log data including the log to the server. Meanwhile, the server reproduces the node transition based on the transmission log data and its own node definition data. Furthermore, the server changes the value of the server side setting information according to the node transition, and compares the value with the value of the corresponding terminal side setting information recorded in the transmission log data. Here, if these values ​​are not the same, it means that the value of the terminal side setting information in the terminal has deviated from the correct value. Therefore, in this case, it is highly likely that some kind of fraudulent activity has occurred in the terminal. Therefore, comparing these values ​​is equivalent to determining in the server whether or not a fraudulent activity has occurred in the terminal. In other words, according to the present invention, it is possible to detect a fraudulent activity, and it is possible to perform a process of preventing / preventing the fraudulent activity in response to the detection of the fraudulent activity, or a process of suppressing the adverse effects caused by the fraudulent activity.

[0009] That is, according to the present invention, delays in the progress of the game can be suppressed and resistance to fraudulent activities can be improved. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram showing the main parts of the control system. [Diagram 2] FIG. 2 is a diagram showing the configuration of the control system. [Diagram 3] FIG. 3 is a block diagram illustrating an example of a functional configuration of the server and the user terminal. [Figure 4] FIG. 4 shows a screen of the bonus game. [Diagram 5] FIG. 5 is a diagram illustrating an example of the node definition data. [Figure 6] FIG. 6 is a diagram showing node transitions in the bonus game. [Figure 7] FIG. 7 is a diagram showing the contents of a record in the node definition data management database. [Figure 8] FIG. 8 is a flowchart showing a control method performed by the control system. [Figure 9] FIG. 9 is a diagram showing the contents of the node related information. [Figure 10] FIG. 10 is a diagram showing the contents of records in the running game management database. [Figure 11] FIG. 11 is a diagram showing a control method by a terminal. [Figure 12] FIG. 12 is a diagram showing a control method by a terminal and a control method by a server. [Figure 13] FIG. 13 is a diagram illustrating an example of the log. [Figure 14] FIG. 14 is a diagram showing a control method by the server. [Figure 15] FIG. 15 is a diagram showing a control method by the server. [Figure 16] FIG. 16 is a diagram showing the contents of the random number usage record information. [Figure 17] FIG. 17 is a diagram showing a control method by a terminal and a control method by a server. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0012] <Outline of this embodiment> First, an overview of this embodiment will be described. FIG. 1 is a diagram showing the main parts of a control system 1. As shown in FIG. 1, the control system 1 includes a server 2 and a user terminal 3 (terminal) capable of communicating with the server 2. The server 2 and the user terminal 3 cooperate to provide a game. The server 2 includes a server control unit 10. The user terminal 3 includes a terminal control unit 13. Both the server control unit 10 and the terminal control unit 13 execute processing by cooperation between hardware and software. For example, the server control unit 10 executes processing by a processing device including a CPU reading and executing a program stored in a ROM or other storage unit. The server 2 also includes a server storage unit 12 that stores data. The user terminal 3 includes a terminal storage unit 17 that stores data.

[0013] Before the game is provided, a state is established in which the server 2 and the user terminal 3 can each use common node definition data ND corresponding to the game. A plurality of nodes indicating the state of the game are defined in the node definition data ND. While the game is being played by the user, the terminal control unit 13 of the user terminal 3 transitions the nodes based on the node definition data ND of the user terminal 3, and changes the value of the terminal side setting information corresponding to the node definition data ND of the user terminal 3 according to the transition of the nodes. Meanwhile, the terminal control unit 13 records the transition reproduction information capable of reproducing the transition of the nodes and the value of the terminal side setting information changed according to the transition of the nodes in the log data LD as a log LG. Furthermore, when a log transmission condition for transmitting the log LG is established, the terminal control unit 13 transmits the transmission log data DL including the log LG recorded in the log data LD to the server 2 (step S1).

[0014] The server control unit 10 of the server 2 reproduces the node transitions based on the transition reproduction information in the transmission log data DL and the node definition data ND of the server 2. Furthermore, the server control unit 10 changes the value of the server-side setting information corresponding to the node definition data ND of the server in response to the node transitions, and executes a verification process that compares the value of the server-side setting information with the value of the corresponding terminal-side setting information recorded in the transmission log data DL. The configuration of the control system 1 makes it possible to suppress delays in the progress of the game and improve resistance to cheating.

[0015] <Details of this embodiment> Next, the details of this embodiment will be described. Fig. 2 is a diagram showing an example of the configuration of a control system 1 according to this embodiment. As shown in Fig. 2, the control system 1 includes a server 2 (computer) and one or more user terminals 3 (terminals, computers). The server 2 and the user terminals 3 can communicate with each other via a network N including the Internet, a telephone network, and other communication networks. The server 2 and the user terminals 3 work together to provide a game to a user.

[0016] The server 2 provides a service related to the game (hereinafter referred to as the "present service"). In the game according to this embodiment, the user terminal 3 provides a screen and accepts operations by the user. In the game, predetermined information related to the game is stored in the server 2, and communication is performed between the user terminal 3 and the server 2 during the execution of the game. In FIG. 2 and FIG. 3 described later, the server 2 is represented by one block. However, this does not mean that the server 2 is composed of a single server device. For example, the server 2 may be composed of multiple server devices. In this case, the server devices constituting the server 2 may include a Web server or a Web application server. In particular, a system may be configured by providing multiple server devices having the same functions for load balancing, facilitating communication, and other purposes. In this configuration, requests are distributed to each server device by, for example, a load balancer. In this configuration, the server 2 may be one or more server devices among the multiple server devices.

[0017] The user terminal 3 is a terminal used by a user. A user means a person who can play a game using the control system 1. The user terminal 3 conveniently indicates a terminal used by a user, and does not mean a terminal used exclusively by a user. The user terminal 3 may be of any type. For example, a tablet computer (including a so-called smartphone), a desktop computer, a notebook computer, a game console, or a wearable terminal can function as the user terminal 3.

[0018] Fig. 3 is a block diagram showing an example of a functional configuration of the server 2 and the user terminal 3. As shown in Fig. 3, the server 2 includes, as its functional configuration, a server control unit 10, a server communication unit 11, and a server storage unit 12. The user terminal 3 includes, as its functional configuration, a terminal control unit 13, a terminal communication unit 14, a terminal display unit 15, a terminal input unit 16, and a terminal storage unit 17.

[0019] The server control unit 10 of the server 2 includes a processing device and a primary storage device. The processing device is a device having an information processing function and includes a CPU. The CPU includes a control device, an arithmetic unit, a register, and a cache memory. The primary storage device includes a DRAM and other volatile memories. The server control unit 10 executes processing by the processing device reading out a program stored in the server storage unit 12 (or other storage area) into the primary storage device and executing it. That is, the server control unit 10 executes processing by cooperation between hardware and software. The server communication unit 11 includes a communication device having a function of communicating with an external device. The communication device includes a communication control device and a network interface. The server communication unit 11 communicates with the external device by the communication device under the control of the server control unit 10. In the following, detailed description of the communication using the network N by the server 2 and other communications will be omitted, assuming that they are appropriately performed by the server communication unit 11. The server storage unit 12 includes a hard disk drive (which may be other magnetic storage devices), a ROM, a flash memory, and other non-volatile memories. The server storage unit 12 stores data in the non-volatile memory.

[0020] As shown in FIG. 3, a database server 20 is connected to the server communication unit 11. A node definition data management database 21 and an ongoing game management database 22 are stored in the database server 20. Hereinafter, the node definition data management database 21 is referred to as a "data management DB" and the ongoing game management database 22 is referred to as a "game management DB". The server control unit 10 can access the data management DB and the game management DB. FIG. 3 shows a diagram in which the server 2 and the database server 20 are directly connected. However, the connection form between the server 2 and the database server 20 is not limited. The server 2 and the database server 20 may be connected via a network N, may be connected via a LAN, or may be directly connected by wire or wirelessly.

[0021] The terminal control unit 13 of the user terminal 3 includes a processing device having an information processing function and a primary storage device. The processing device reads out a program stored in the terminal storage unit 17 (or another storage area) into the primary storage device and executes the program, whereby the terminal control unit 13 executes the process. That is, the terminal control unit 13 executes the information process by cooperation between hardware and software. The terminal communication unit 14 includes a communication device having a communication control device and a network interface. The terminal communication unit 14 communicates with an external device by the communication device under the control of the terminal control unit 13. In the following, the communication using the network N by the user terminal 3 and other communications are appropriately performed by the terminal communication unit 14, and detailed explanations are omitted. The terminal display unit 15 includes a liquid crystal panel, an organic EL panel, and other display devices. The terminal display unit 15 displays an image on the display device under the control of the terminal control unit 13. The terminal input unit 16 includes a keyboard, a mouse, a touch panel, and other input devices. The terminal input unit 16 detects an input to the input device and outputs the detection result to the terminal control unit 13. The terminal storage unit 17 includes a non-volatile memory. The terminal storage unit 17 stores data in a non-volatile memory.

[0022] As shown in FIG. 3, an application AP related to the game (hereinafter referred to as the "game app AP") has been downloaded to the user terminal 3. Hereinafter, the game corresponding to the game app AP will be referred to as the "game." The game app AP is, for example, an application for smartphones. In this case, the game app AP is downloaded to the user terminal 3, for example, by using an application download service. The game app AP has a function of providing various screens related to the game, a function of accepting operations by the user and executing processing corresponding to the operations, a function of transmitting and receiving various information to and from the server 2, and a function of executing other processing related to the game.

[0023] In this embodiment, the following bonus game may be used as an example. For example, the bonus game is started in the game when a predetermined event occurs while the game is being played by the user. Hereinafter, an example in which the bonus game is used is referred to as the "example". FIG. 4 is a diagram used to explain the bonus game. In the bonus game, the user has points. The unit of points is "pt". As shown by the symbol Z4A in FIG. 4, in the bonus game, the pre-selection screen G1 is first displayed on the terminal display unit 15. The backs of four cards are drawn on the pre-selection screen G1. The contents of the cards are either a hit or a miss. If the user selects a hit card, the point balance increases by 1000pt, and if the user selects a miss card, the point balance does not change. The user uses the cursor to specify one of the four cards and selects the one card by operating the confirmation button B1. Then, as shown by the symbol Z4B, a post-selection screen G2 is displayed on the terminal display unit 15, indicating whether the card selected by the user was a winning card or a losing card. The user's point balance also changes depending on whether the card selected was a winning card or a losing card. The user checks the contents of the screen, and when the user wishes to end the bonus game, he or she operates the end button B2.

[0024] Here, in a game provided by the cooperation of a terminal and a server, cheating may occur. In terms of a bonus game, if no allowance is made, cheating may occur, such as increasing the point balance when a losing card is selected, or increasing the point balance by 100,000 pts when a winning card is selected. Cheating is typically performed by modifying the terminal's program (in this embodiment, the game application AP or a program associated therewith) or tampering with the communication between the terminal and the server. As will be apparent later, the control system 1 according to this embodiment has improved resistance to cheating.

[0025] As will be clear later, in the bonus game, the corresponding node definition data ND (described later) is used to progress the game. Hereinafter, a game in which the node definition data ND is used to progress the game, such as the bonus game, is called a "unit game". In this embodiment, before a situation in which the unit game can be played by a user is reached, the node definition data ND corresponding to the unit game is uploaded to the server 2 and stored in the data management DB. Note that "before a situation in which the unit game can be played by a user" refers to, for example, before the corresponding game application AP is released, or before the unit game becomes playable by an update of the game. An example of the flow until the node definition data ND corresponding to the unit game is stored in the data management DB will be described below.

[0026] First, the entity developing the present game creates node definition data ND corresponding to the unit game. Hereinafter, the entity developing the present game is referred to as the "developer." FIG. 5 is a diagram showing the contents of the node definition data ND corresponding to the bonus game, simplified in a manner suitable for explanation. Hereinafter, the node definition data ND corresponding to the bonus game is referred to as the "present node definition data NDa." The node definition data ND is data / files used to progress the unit game. The node definition data ND is used to manage at least the nodes of the unit game and the state of certain matters related to the unit game. A node means a state that the unit game can take. Herein, a state means each state represented by a state transition diagram (state machine diagram). Hereinafter, the "state of the unit game" managed as a node is referred to as a "game state."

[0027] FIG. 6 is a state transition diagram for the nodes defined by the present node definition data NDa in FIG. 5. As shown in FIG. 6, in this example, when a bonus game is started, the game state transitions to a standby node. When a card selection event occurs while the game state is the standby node, the game state transitions to a lottery node. With respect to node transitions, an event means an event (trigger event) that triggers the transition of a node. A parameter can be added to an event. The parameter is, for example, an argument that is passed to a program / function that is executed after the execution of an event. When a lottery completion event occurs while the game state is the standby node, the game state transitions to a standby node. When an end event occurs while the game state is the standby node, the game state transitions to an end node. When the game state transitions to an end node, the bonus game ends. The contents of each node and each event will be made clear later. In this example, the bonus game progresses as the nodes transition according to the state transitions shown in FIG. 6.

[0028] In the node definition data ND, state variable information can be defined. In the state variable information, state variables indicating the state of a specific item related to the unit game are defined. As shown in FIG. 5, in the node definition data NDa, the number of selections <item>, the point balance <item>, and the lottery result <item> are defined as state variables. In this embodiment, the expression "<item>" indicates that the corresponding term is an item / variable having a value. In the number of selections <item>, a value indicating the number of times a card has been selected by the user in the bonus game is stored. In the point balance <item>, a value indicating the user's point balance is stored. In the lottery result <item>, a value indicating the result of the card selection is stored.

[0029] Also, in the node definition data ND, initial node information is defined. In the initial node information, the node to which the first transition should be made at the start of the unit game (hereinafter referred to as the "initial node") is defined. As shown in FIG. 5, in the node definition data NDa, a standby node is defined as the initial node. Also, in the node definition data ND, individual node information is defined for each of a plurality of nodes. Defining individual node definition information in the node definition data ND is equivalent to defining a node in the node definition data ND. In the individual node definition information, acceptance event information, transition processing information, and completion issuance event information can be defined.

[0030] The accepted event information defines the events that are accepted when the game state is stagnating in the node. The accepted event information defines an event by describing the type, name, and other identification information of the event. Hereinafter, an event defined in the accepted event information is referred to as an "accepted event." When the game state is stagnating in a node, if an accepted event defined in the node occurs, a transition from the node to another node is made according to the transition rules described below.

[0031] The transition process information defines a transition process that is executed when a transition occurs to the node itself. The transition process is defined in the transition process information by describing identification information (e.g., a function name) of a program corresponding to the transition process. The transition process is also defined in the transition process information by directly describing a program (script) corresponding to the transition process. The transition process may include a process that changes the value of a state variable. When the game state transitions from one node to another node, if one or more transition processes are defined for the other node, each of the defined transition processes is executed.

[0032] The completion-issued event information defines an event to be issued after the transition to the node is completed and each of the transition-time processes defined in the node is completed. However, if the transition-time process is not defined in the node, the transition-time process is not executed after the node is transitioned to the node, and the event defined in the completion-issued event information is issued. The completion-issued event information defines an event by describing the type, name, and other identification information of the event. Hereinafter, the event defined in the completion-issued event is referred to as a "completion-issued event." When the game state transitions from one node to another node, if the transition-time process is defined in the other node, the transition-time process is executed. If the transition-time process is not defined in the other node, the transition-time process is not executed. After that, if the completion-issued event is defined in the other node, the completion-issued event is issued. Note that in this embodiment, for convenience of explanation, it is assumed that the completion-issued event is not defined in the initial node. In other words, in this embodiment, the completion-issued event is not issued in response to the transition to the initial node.

[0033] As shown in FIG. 5, the node definition data NDa defines individual node information for each of the standby node, lottery node, and end node. That is, the node definition data NDa defines the standby node, lottery node, and end node. Focusing on the standby node, a card selection event and an end event are defined as acceptance events in the standby node. This means that if a card selection event or an end event occurs when the game state is the standby node, a transition to another node is made according to the transition rules described later. In addition, the standby node does not define a transition time process and a completion time issue event. This means that after the bonus game transitions to the standby node, the transition time process is not executed and the completion time issue event is not issued. In addition, focusing on the lottery node, a lottery completion event is defined as an acceptance event in the lottery node. This means that if a lottery completion event occurs when the game state is the lottery node, a transition to another node is made according to the transition rules described later. In addition, the lottery node defines a lottery process as a transition time process. This means that when the game state transitions to the lottery node, a lottery process is executed. In addition, a lottery completion event is defined as a completion-issue event in the lottery node. This means that the game state transitions to the lottery node and the lottery process is completed, and then the lottery completion event is issued.

[0034] In the node definition data ND, transition rule information is defined. In the transition rule information, a transition rule that is a rule regarding node transition is defined. In the transition rule, an event (trigger event) that triggers the node transition and a mode of node transition when the event occurs are defined. In this embodiment, the transition rule defines a combination of a node before the transition (identification information indicating the node), an event (identification information indicating the event) that triggers the node transition, and a node after the transition (identification information indicating the node). For example, for the transition rule JA, it is assumed that node NA is defined as the node before the transition, event IV is defined as the event that triggers the node transition, and node NB is defined as the node after the transition. In this case, the transition rule JA indicates that when the game state is node NA, if event IV occurs, the game state is transitioned from node NA to node NB.

[0035] As shown in Fig. 5, the node definition data NDa defines transition rules J1 to J3. Transition rule J1 defines a standby node as the node before the transition, a card selection event as the event that triggers the node transition, and a lottery node as the node after the transition. This transition rule J1 indicates that if a card selection event occurs when the game state is the standby node, a transition is made from the standby node to the lottery node. The contents of transition rules J2 to J3 are as shown in Fig. 5. In Fig. 6, the corresponding transition rules are clearly indicated in association with the event that triggers the node transition.

[0036] In this embodiment, the node definition data ND is a program file in which a program is written in a predetermined programming language. In the node definition data ND, various information is written in the predetermined programming language. The predetermined programming language is a dedicated programming language specialized for the node definition data ND. However, the predetermined programming language may be HTML or other existing programming languages. For example, a developer creates the node definition data ND using a tool or software development kit provided by the administrator of the server 2. In this embodiment, the node definition data ND is a program file in which information is described by a program. However, the node definition data ND may not be a program file, but may be data in which information is described in JSON or other description methods. The node definition data ND may also be data in which information is described in a unique format. Also, one node definition data ND may be configured to refer to one or more other node definition data ND. In this case, a combination of multiple node definition data ND functions as "node definition data". The node definition data ND is data in which information regarding state transitions is recorded, and can be said to correspond to a state machine.

[0037] Now, after creating the node definition data ND, the developer uploads the data to the server 2. The server 2 provides the developer with a means for uploading the node definition data ND. When the node definition data ND is uploaded, the server control unit 10 of the server 2 executes the following process. That is, the server control unit 10 generates a data ID having a unique value for identifying the uploaded node definition data ND. Next, the server control unit 10 registers a record including the generated data ID and the uploaded node definition data ND in the data management DB of the database server 20. However, the record may store the address of the storage location of the data, the path to the storage location of the data, and other information for accessing the data, instead of the node definition data ND. FIG. 7 shows the contents of one record in the data management DB. Furthermore, the server control unit 10 notifies the developer of the generated data ID in a predetermined manner. As a result of the above process, a record in which the data ID and the node definition data ND are associated with each other is registered in the data management DB before the situation in which the unit game can be played by the user is reached. The developer is also notified of the data ID.

[0038] The above is an example of the flow until the node definition data ND is stored in the data management DB. However, the illustrated flow is only an example, and the node definition data ND may be stored in the data management DB in a flow different from the illustrated flow. In this embodiment, for each unit game, a record including a data ID and node definition data ND is registered in the data management DB. Note that the developer and other authorized entities can change the contents of the node definition data ND stored in the data management DB.

[0039] Next, the operation of the control system 1 will be described. In the following, the operation of the control system 1 will be described, particularly when a unit game is played by a user. FIG. 8 is a flowchart showing an example of the operation of the control system 1 during the period when the unit game is being played. The flowchart FA in FIG. 8 shows an example of the operation of the user terminal 3, and the flowchart FB shows an example of the operation of the server 2. At the start of the flowchart in FIG. 8, it is assumed that the game application AP is running on the user terminal 3 and the user is playing the game. In the following, in relation to this example, the user who plays the bonus game is particularly referred to as the "noted user". And, it is assumed that the point balance of the noted user is 1000pt before the noted user plays the bonus game.

[0040] As shown in the flow chart FA, when an event occurs in the present game that triggers the start of a unit game, the terminal control unit 13 of the user terminal 3 transmits start notification information notifying the start of the unit game to the server control unit 10 (step SA1). The start notification information includes the data ID of the node definition data ND corresponding to the unit game. In this manner, in this embodiment, the node definition data ND is stored in the data management DB in association with the data ID for each unit game. Then, when the unit game is started in the user terminal 3, the terminal control unit 13 transmits the data ID of the node definition data ND corresponding to the unit game to the server control unit 10.

[0041] As shown in the flow chart FB, when the server control unit 10 of the server 2 receives the start notification information, it acquires the corresponding node definition data ND (step SB1). More specifically, the server control unit 10 refers to the data management DB and identifies a record corresponding to the data ID included in the start notification information. The server control unit 10 then acquires the node definition data ND of the identified record. In this way, the server control unit 10 can acquire any node definition data ND stored in the data management DB. This means that the server control unit 10 is in a state where it can use any node definition data ND stored in the data management DB.

[0042] After processing step SB1, the server control unit 10 executes server-side initial startup processing (step SB2). More specifically, first, the server control unit 10 generates an instance of the node definition data ND acquired in step SB1. "Generating an instance of the node definition data ND" means reserving an area for the node definition data ND in the primary storage device or other memory area, and making the server control unit 10 capable of executing processing based on the node definition data ND. Thus, in this embodiment, the node definition data ND functions as a class that is the basis of the instance.

[0043] When an instance of the node definition data ND is generated, an area is secured in memory for each item of the node-related information corresponding to the node definition data ND, and a value can be stored in each item. The node-related information is information used in the node definition data ND and the unit game corresponding to the node definition data. The node-related information is composed of a number of items / variables for which an area is secured in memory in response to the generation of an instance of the node definition data ND. In response to the generation of an instance of the node definition data ND, the server control unit 10 stores a value in each item of the node-related information, updates the value of each item, and becomes able to refer to the value of each item.

[0044] FIG. 9 is a diagram showing the contents of the node-related information. As shown in FIG. 9, in this embodiment, the node-related information includes the running game ID <item>, the random number seed <item>, the node transition count <item>, the current node <item>, and the state variables defined in the node definition data ND. In FIG. 9, the state variables are expressed as the first state variable, the second state variable, and so on. The running game <item> and the random number seed <item> do not change their values ​​after their initial values ​​are stored. The node transition count <item>, the current node <item>, and the state variables are items whose values ​​can change according to the progress of the unit game. Hereinafter, these items are collectively referred to as setting information. Among the items of the setting information, the node transition count <item> and the current node <item> are items that are not defined as state variables. Hereinafter, these items are collectively referred to as management information. Hereinafter, the "value of each item of the node-related information" may be expressed simply as the "value of the node-related information". The same applies to other information composed of multiple items.

[0045] Now, after generating an instance of the node definition data ND, the server control unit 10 sets an initial value to each item of the node related information. More specifically, the running game ID <item> stores the running game ID, which is identification information of the generated instance. The server control unit 10 generates a unique running game ID and stores it in the running game ID <item> as an initial value. The random number seed <item> stores the random number seed. The random number seed is a value input to the random number generator when the random number generator generates a random number. In this embodiment, the random number generator is a module that generates random numbers using a recurrence formula, and can output random numbers consecutively from one random number seed. In this embodiment, the server 2 and the user terminal 3 can use a common random number generator for the unit game. The random number generator being common means that the recurrence formula corresponding to the random number generator is the same. Therefore, the common random number generators have the same output value if the input value is the same. Hereinafter, the random number generator used by the server 2 for the unit game will be referred to as the "server-side random number generator." The server-side random number generator is stored, for example, in the database server 20, and also, for example, in the server storage unit 12. Also, the random number generator used by the user terminal 3 for the unit game will be referred to as the "terminal-side random number generator." The server control unit 10 generates a random number seed using a program having a function of generating random values ​​in a prescribed format, and stores it as an initial value in the random number seed <item>.

[0046] The node transition count <item> stores the node transition count indicating the number of node transitions made during the unit game. The server control unit 10 stores the node transition count indicating 0 times as an initial value in the node transition count <item>. The current node <item> stores current node information indicating the node where the game state is currently stagnating (hereinafter referred to as the "current node"). The server control unit 10 stores a dummy value indicating that no node transition has been made as an initial value in the current node <item>. The server control unit 10 also stores appropriate initial values ​​in each of the state variables. In this example, the server control unit 10 stores the selection count indicating 0 times in the selection count <item>, stores the point balance indicating 1000pt in the point balance <item>, and stores a dummy value indicating neither a win nor a loss in the lottery result <item>. The server control unit 10 obtains the point balance of the noted user from a user management database (not shown). The user management database is stored in the database server 20. The value of each item of the node-related information is actually expressed in an appropriate expression format that conforms to the defined data type.

[0047] The above is the server-side initial startup process. The server-side initial startup process enables the server control unit 10 to execute processing based on the node definition data ND, and an initial value is stored in each item of the node-related information corresponding to the generated instance. In the following description, the node definition data ND that is the basis of the instance generated by the server control unit 10 is called "server-side node definition data NDs." Furthermore, the execution of processing by the server control unit 10 using the generated instance is expressed as "executing processing based on the server-side node definition data NDs" or "executing processing using the server-side node definition data NDs." Furthermore, the node-related information, setting information, management information, and state variables corresponding to the instance generated by the server control unit 10 are called server-side node-related information, server-side setting information, server-side management information, and server-side state variables, respectively.

[0048] In the server-side initial startup process, not only the processes described above are performed, but also processes necessary for the server control unit 10 to establish a state in which the server control unit 10 can execute the process based on the node definition data ND are appropriately performed. Even if not specifically described, the same is true for other processes in that processes necessary to achieve the purpose of the process are performed.

[0049] After processing step SB2, the server control unit 10 registers one new record in the game management DB (step SB3). The registered record includes values ​​for each item of the server-side node-related information. However, at this stage, the values ​​for each item of the server-side node-related information are initial values. Hereinafter, for the node-related information included in the record of the game management DB, the node-related information, setting information, management information, and state variables are referred to as registered node-related information, registered setting information, registered management information, and registered state variables, respectively. FIG. 10 shows the contents of the record registered in the game management DB in step SB3 for this example. In the example of FIG. 10, the value of the game execution ID is set to "GM01", and the value of the random number seed is set to an appropriate value.

[0050] After the process of step SB3, the server control unit 10 transmits the node definition data ND acquired in step SB1 and the registered node related information included in the record registered in the game management DB in step SB3 to the terminal control unit 13 (step SB4). Note that the transmission of the node definition data ND from the terminal control unit 13 to the server control unit 10 is performed, for example, by the user terminal 3 downloading the node definition data ND from the server 2. After the process of step SB4, the instance generated in the server-side initial startup process of step SB2 is discarded.

[0051] As shown in the flow chart FA, the terminal control unit 13 receives the node definition data ND and the registered node related information transmitted by the server control unit 10 in step SB4, and stores each data in the terminal storage unit 17 (step SA2). The processing of step SA2 enables the terminal control unit 13 to use the node definition data ND. In this manner, in this embodiment, before the unit game (game) is provided, a state is established in which each of the server 2 and the user terminal 3 can use the common node definition data ND corresponding to the unit game.

[0052] After the process of step SA2, the terminal control unit 13 executes a terminal-side start process (step SA3). In step SA3, the terminal control unit 13 generates an instance of the node definition data ND received in step SA2, and constructs a state in which processing can be executed based on the node definition data ND. In response to the generation of the instance, an area is secured in memory for each item of the node-related information, and each item is in a state in which a value can be stored. In the following description, the node definition data ND that is the basis of the instance generated by the terminal control unit 13 is conveniently referred to as "terminal-side node definition data NDd". Furthermore, the execution of processing by the terminal control unit 13 using the generated instance is expressed as "executing processing based on the terminal-side node definition data NDd" or "executing processing using the terminal-side node definition data NDd". Furthermore, the node-related information, setting information, management information, and state variables corresponding to the instance generated by the terminal control unit 13 are respectively referred to as terminal-side node-related information, terminal-side setting information, terminal-side management information, and terminal-side state variables. As will be apparent later, the values ​​of each item of the terminal-side setting information are updated by the terminal control unit 13 according to the progress of the unit game.

[0053] The terminal control unit 13 initializes the value of the terminal-side node related information based on the registered node related information received in step SA2. Initializing the value of the terminal-side node related information based on the registered node related information means storing the value of each item of the received registered node related information in each item of the terminal-side node related information. As a result, each item of the terminal-side node related information is stored with its initial value.

[0054] After processing step SA3, the terminal control unit 13 starts the game progress processing (step SA4). The game progress processing is processing in which the terminal control unit 13 progresses the unit game using the terminal side node definition data NDd. The contents of the game progress processing are described in detail below. The flowchart FC in FIG. 11 shows the processing executed by the terminal control unit 13 based on the terminal side node definition data NDd in relation to the progress of the unit game. Note that in the progress of the unit game, in addition to the processing shown in the flowchart FC, the provision of various screens, the output of sound, the acceptance of user operations, and other processing related to the game are naturally executed.

[0055] As shown in the flow chart FC of FIG. 11, the terminal control unit 13 transitions the game state of the unit game to the initial node based on the initial node information of the terminal side node definition data NDd (step SC1). In response to the transition to the initial node, the terminal control unit 13 increments the value of the node transition count <item>, which is the terminal side management information, and further stores a value indicating the initial node in the current node <item>. In this embodiment, even if not specifically described, when there is a node transition, the values ​​of the node transition count <item> and the current node <item> are updated. Next, the terminal control unit 13 determines whether or not a transition time process is defined for the initial node (step SC2). If it is defined (step SC2: YES), the terminal control unit 13 executes the transition time process (step SC3). In addition, when the transition time process is a process that brings about a change in the value of the state variable, the value of the state variable is updated in response to the execution of the transition time process. This point is the same in the following. After the process of step SC3, the terminal control unit 13 moves the process procedure to step SC4. If no transition process is defined for the initial node (step SC2: NO), the terminal control unit 13 moves the process procedure to step SC4.

[0056] In step SC4, the terminal control unit 13 monitors whether an event that triggers a node transition has occurred. Note that there may be cases where the completion-time issued event issued in step SC11 described later becomes the event that triggers a node transition. When an event that triggers a node transition has occurred (step SC4: YES), the terminal control unit 13 executes a transition reproduction information recording process (step SC5). The transition reproduction information recording process is a process of recording transition reproduction information capable of reproducing a node transition as a log LG in the log data LD. The log data LD is generated in response to the start of the unit game, and is stored in a predetermined storage area of ​​the terminal storage unit 17. Particularly in this embodiment, the transition reproduction information recording process is a process of recording event content information indicating the content of the event that has occurred when an event that triggers a node transition has occurred in the log data LD. That is, in this embodiment, the event content information corresponds to the transition reproduction information.

[0057] Regarding the recording of the event content information in the log data LD, the terminal control unit 13 records the event timing information indicating the timing at which the event occurred, information indicating that the log type is an event, and the event content information in the log data LD according to a format. In this embodiment, the event timing information is information indicating the date and time (date + time) at which the event occurred. However, the event timing information only needs to be information that allows the chronological timing of the event occurrence to be understood. This also applies to the state acquisition timing information described later. The event content information includes identification information of the event. Furthermore, if a parameter is added to the event, the event content information includes the value of the added parameter.

[0058] If it is determined in step SC4 that an event has occurred (step SC4: YES), the terminal control unit 13 further executes the following processing. That is, the terminal control unit 13 transitions the node according to the transition rules defined in the terminal-side node definition data NDd (step SC6). The terminal control unit 13 updates the terminal-side setting information according to the node transition. After the processing of step SC6, the terminal control unit 13 determines whether or not a transition time process is defined for the node after the transition (step SC7). If it is defined (step SC7: YES), the terminal control unit 13 executes the transition time process (step SC8) and shifts the processing procedure to step SC9. If it is not defined (step SC7: NO), the terminal control unit 13 shifts the processing procedure to step SC9.

[0059] In step SC9, the terminal control unit 13 executes a terminal side setting information recording process. The terminal side setting information recording process is a process of recording the value of the terminal side setting information as a log in the log data LD. Particularly in this embodiment, the terminal control unit 13 records a state hash value, which is a hash value of the value of the terminal side setting information, in the log data LD as the value of the terminal side setting information. In detail, the terminal control unit 13 acquires the value of each item of the terminal side setting information at the current time. Each item of the terminal side setting information includes management information and a state variable. Next, the terminal control unit 13 generates data (hereinafter referred to as "arrangement data") in which the values ​​of each item of the terminal side setting information are arranged according to a rule (hereinafter referred to as "arrangement rule"). Next, the terminal control unit 13 derives a hash value of the array data using a predetermined hash function. The hash value derived here is the state hash value. Next, the terminal control unit 13 records state acquisition timing information indicating the current time, information indicating that the type of the log is terminal side setting information, and the state hash value in the log data LD according to a format. In this manner, in this embodiment, after a node transition has been performed, if a transition time process is defined for the node after the transition, the terminal control unit 13 executes that process, and then records the value of the terminal side setting information (in this embodiment, a state hash value based on the value of the terminal side setting information) in the log data LD as a log LG.

[0060] After processing step SC9, the terminal control unit 13 determines whether or not a completion issue event is defined for the node after the transition (step SC10). If it is defined (step SC10: YES), the terminal control unit 13 issues a completion issue event (step SC11) and returns the processing procedure to step SC4. If it is not defined (step SC10: NO), the terminal control unit 13 returns the processing procedure to step SC4.

[0061] Next, the game progress processing executed by the user terminal 3 in this example will be described. The flowchart FD in FIG. 12 shows the details of the game progress processing according to this example. For ease of explanation, in the flowchart FD, only the process of transitioning nodes and the process at the time of transition are shown on the main axis of the flowchart. In the flowchart FD, the process of generating an event, the process of recording transition reproduction information, the process of recording terminal side setting information, and the process of displaying various screens are shown in association with the main axis of the flow. In the flowchart FD, the contents of the terminal side node definition data NDd are the contents of the present node definition data NDa in FIG. 5.

[0062] As shown in the flow chart FD, the terminal control unit 13 transitions the game state of the bonus game to a standby node based on the initial node information of the terminal side node definition data NDd (step SD1). In response to the transition to the standby node, the terminal control unit 13 increments the value of the node transition count <item> from 0 to 1, and further updates the value of the current node <item> to a value indicating the standby node. After processing step SD1, the terminal control unit 13 displays a pre-selection screen G1 (see FIG. 4) on the terminal display unit 15 by the function of the game application AP (step SD2). In this embodiment, the game application AP is programmed so that when the game state transitions to the standby node, a process is performed to display a screen according to the value of the terminal side state variable selection count <item>. In step SD2, the terminal control unit 13 refers to the value of the selection count <item>, recognizes that the number of card selections is 0, and then displays the pre-selection screen G1. The terminal control unit 13 also refers to the value of the terminal side state variable point balance <item>, and displays information indicating the point balance on the pre-selection screen G1. In this way, the state variables are appropriately referenced by the terminal control unit 13 executing the game application AP while the unit game is being played. After displaying the pre-selection screen G1, the terminal control unit 13 monitors whether or not the confirmation button B1 on the screen has been operated by the user of interest.

[0063] Thereafter, when the confirmation button B1 on the pre-selection screen G1 is operated by the user of interest, the terminal control unit 13 issues a card selection event using the function of the game application AP (step SD3). In response to the occurrence of the card selection event, the terminal control unit 13 executes a transition reproduction information recording process (step SD4). The reference symbol LG1 in FIG. 13 indicates the contents of the first log that is newly recorded in the log data LD by the process of step SD4. The first log LG1 includes event timing information indicating the timing at which the cart selection event occurred in step SD3, information indicating that the type of the first log LG1 is an event, and event content information indicating the content of the event that occurred in step SD3.

[0064] Furthermore, in response to the occurrence of a card selection event, the terminal control unit 13 transitions the game state to a lottery node based on the transition rule J1 defined in the terminal-side node definition data NDd (step SD5). The terminal control unit 13 appropriately updates the terminal-side setting information in response to the transition to the lottery node. In response to the transition to the lottery node, the terminal control unit 13 executes a lottery process defined in the lottery node as a transition time process (step SD6). The lottery process is a process in which the terminal control unit 13 determines the result of the card selection using a terminal-side random number generator and a random number seed included in the registered node related information received in step SA2 of the flowchart FA. The lottery process will be described in detail below.

[0065] In the lottery process, the terminal control unit 13 inputs the random number seed received in step SA2 to the terminal-side random number generator and obtains an output value (random number). Next, the terminal control unit 13 determines the result of the card selection from the output value according to a predetermined rule (hereinafter referred to as the "lottery rule"). As a very simplified example, the random number generator is configured to output one of four integers, 0, 1, 2, and 3, in response to the input of the random number seed. In this case, the lottery rule is that when the output value is 0 or 1, the result of the card selection is a hit, and when the output value is 2 or 3, the result of the card selection is a miss.

[0066] After determining the result of the card selection, the terminal control unit 13 updates the values ​​of the necessary items of the terminal side setting information. Specifically, the terminal control unit 13 increments the value of the number of selections <item>, updates the value of the point balance <item> based on the result of the card selection, and stores a value indicating the result of the card selection in the lottery result <item>. In this example, it is assumed that the result of the card selection is determined to be a win. Therefore, in this example, the terminal control unit 13 sets the value of the number of selections <item> to "1 time", the value of the point balance <item> to "2000pt", and stores a value indicating a win in the lottery result <item>. As described above, when the terminal control unit 13 executes a process that uses a random number in response to a node transition, it executes the process using the random number seed received from the server 2 and the random number generator of the user terminal 3.

[0067] After the process of step SD6, the terminal control unit 13 executes a terminal side setting information recording process (step SD7). The symbol LG2 in Fig. 13 indicates the contents of the second log after the process of step SD7 newly records in the log data LD. The second log LG2 records status acquisition timing information indicating the current time, information indicating that the type of the log LG is terminal side setting information, and a status hash value based on the values ​​of each item of the current terminal side setting information.

[0068] After the process of step SD7, the terminal control unit 13 issues a lottery completion event defined as a completion-time issuance event to the lottery node (step SD8). In response to the occurrence of the lottery completion event, the terminal control unit 13 executes a transition reproduction information recording process (step SD9). Reference LG3 in FIG. 13 indicates the contents of the third log newly recorded in the log data LD in the process of step SD9. In response to the occurrence of the lottery completion event, the terminal control unit 13 further transitions the game state to a standby node based on the transition rule J2 defined in the terminal side node definition data NDd (step SD10). The terminal control unit 13 appropriately updates the terminal side setting information in response to the transition to the standby node. In response to the transition to the standby node, the terminal control unit 13 executes a terminal side setting information recording process (step SD11). Reference LG4 in FIG. 13 indicates the contents of the fourth log newly recorded in the log data LD by the process of step SD11. In response to the transition to the standby node, the terminal control unit 13 further displays a post-selection screen G2 (see FIG. 4) on the terminal display unit 15 (step SD12). The terminal control unit 13 refers to the value of the terminal side state variable Selection count <item>, recognizes that the number of card selections is one, and then displays the post-selection screen G2. The terminal control unit 13 also refers to the values ​​of the terminal side state variables Point balance <item> and Lottery result <item>, and sets the content of the post-selection screen G2 based on these values. After displaying the post-selection screen G2, the terminal control unit 13 monitors whether the end button B2 on that screen has been operated by the noted user.

[0069] After that, when the end button B2 on the post-selection screen G2 is selected by the noted user, the terminal control unit 13 issues an end event by the function of the game application AP (step SD13). In response to the occurrence of the end event, the terminal control unit 13 executes a transition reproduction information recording process (step SD14). LG5 in FIG. 13 indicates the contents of the fifth log newly recorded in the log data LD by the process of step SD14. In response to the occurrence of the end event, the terminal control unit 13 further transitions the game state to the end node based on the transition rule J3 defined in the terminal side node definition data NDd (step SD15). The terminal control unit 13 appropriately updates the terminal side setting information in response to the transition to the standby node. In response to the transition to the standby node, the terminal control unit 13 executes a terminal side setting information recording process (step SD16). The reference symbol LG6 in FIG. 13 indicates the contents of the sixth log newly recorded in the log data LD by the process of step SD16. In response to the transition to the end node, the bonus game ends.

[0070] The game progress processing has been described above. As described above, the terminal control unit 13 executes the following processing in the game progress processing. That is, while the user is playing the game, the terminal control unit 13 automatically transitions the nodes based on the node definition data ND of the user terminal 3, and dynamically changes the value of the terminal side setting information corresponding to the node definition data ND of the user terminal 3 according to the node transition. Meanwhile, the terminal control unit 13 automatically records the transition reproduction information capable of reproducing the node transition and the value of the terminal side setting information changed according to the node transition as a log LG in the log data LD. More specifically, the terminal control unit 13 executes the following processing. That is, while the user is playing the game, the terminal control unit 13 continuously monitors whether an event (trigger event) has occurred, and, according to the occurrence of the event (trigger event), automatically transitions the nodes based on the transition rule of the node definition data ND of the user terminal 3, and dynamically changes the value of the terminal side setting information according to the node transition. On the other hand, the terminal control unit 13 automatically records transition reproduction information indicating the content of the event that occurred as a log LG in the log data LD, and also automatically records the value of the terminal side setting information that changed in response to the node transition as a log LG in the log data LD.

[0071] As described above, in this embodiment, node transitions for progressing the unit game and updates to terminal-side setting information accompanying node transitions are executed based on the terminal-side node definition data NDd by the terminal control unit 13, not the server control unit 10. In other words, the terminal control unit 13 does not execute processes involving communication with the server 2, such as "sending necessary information to the server 2 by communication and waiting for the processing results to be sent by communication from the server 2," in relation to node transitions and updates to terminal-side setting information. Therefore, the occurrence of communication between the user terminal 3 and the server 2 in relation to the progress of the unit game is suppressed, and delays in the progress of the game caused by the occurrence of such communication are suppressed.

[0072] However, in a configuration in which the terminal control unit 13 progresses the unit game based on the terminal-side node definition data NDd, if no special measures are taken, the following problem may occur. That is, while the unit game is being played, the terminal control unit 13 transitions the node, updates the terminal-side setting information, and progresses the unit game without causing the server control unit 10 to make any judgment. That is, while the unit game is being played, the correctness of the value of the terminal-side setting information is not verified by the server control unit 10. Therefore, even if the value of the terminal-side setting information is altered from the original correct value by fraudulent conduct, there is a problem that the game progresses with the value of the terminal-side setting information remaining in an incorrect state. For example, in the lottery process in step SD6 of the flow chart FD, the value of the point balance <item> is altered from 2000pt (original correct value) to 100000pt by a function of a program that has been fraudulently altered. Even in this case, if no special measures are taken, the correctness of the value of the point balance <item> after alteration is not verified by the server control unit 10. Therefore, if no action is taken, the bonus game will proceed with the point balance <item> value remaining at 100,000 pt. As will be apparent later, in this embodiment, measures are taken against such fraudulent acts, and resistance to fraudulent acts is improved.

[0073] Now, as shown in FIG. 8, after starting the game progress processing in step SA4, the terminal control unit 13 monitors whether the unit game has ended (step SA6) while monitoring whether the log transmission condition regarding the transmission of the log LG has been satisfied (step SA5). The processing in steps SA5 and SA6 is executed in parallel with the game progress processing started in step SA4. The log transmission condition is a condition for transmitting the transmission log data DL (described later). In this embodiment, it is determined that the transmission log data DL is transmitted periodically at a predetermined interval (for example, 1 second, 10 seconds, or 30 seconds). In light of this, the log transmission condition according to this embodiment is a condition that a periodically occurring timing has arrived. Hereinafter, the timing for transmitting the transmission log data DL is referred to as the "log transmission timing."

[0074] If it is determined in step SA5 that the log transmission condition is satisfied (step SA5: YES), the terminal control unit 13 executes a log transmission process (step SA7) and shifts the processing procedure to step SA6. On the other hand, if it is determined in step SA5 that the log transmission condition is not satisfied (step SA5: NO), the terminal control unit 13 shifts the processing procedure to step SA6. If it is determined in step SA6 that the unit game has ended (step SA6: YES), the terminal control unit 13 shifts the processing procedure to step SA8, and if it is determined that the unit game has not ended (step SA6: NO), the terminal control unit 13 returns the processing procedure to step SA5. In step SA8, the terminal control unit 13 transmits end notification information indicating the end of the unit game to the server control unit 10. The end notification information includes at least the ongoing game ID of the corresponding unit game. After the processing of step SA8, the processing of the flowchart FA ends.

[0075] The log transmission process of step SA7 will be described in detail below. In the log transmission process, the terminal control unit 13 identifies logs LG that have not been transmitted to the server 2 from among the logs LG recorded in the log data LD, and generates transmission log data DL including each of the identified logs LG. In the transmission log data DL, each log LG is recorded in chronological order. Next, the terminal control unit 13 transmits the transmission log data DL to the server control unit 10 together with the data ID corresponding to the unit game and the running game ID included in the registered node related information received in step SA2. Hereinafter, the combination of the data ID, running game ID, and transmission log data DL transmitted by the log transmission process will be referred to as "log related data."

[0076] For example, as shown in FIG. 16, if the first log transmission timing arrives after the fourth log LG4 is recorded and before the fifth log LG5 is recorded, the terminal control unit 13 transmits the transmission log data DL including the first to fourth logs LG1 to LG4. Thereafter, if the second log transmission timing arrives after the sixth log LG6 is recorded, the terminal control unit 13 transmits the transmission log data DL including the fifth and sixth logs LG5 and LG6. Note that the terminal control unit 13 does not transmit the transmission log data DL if there is no unsent log LG when the log transmission timing arrives. However, hereinafter, for convenience of explanation, it may be expressed as "the terminal control unit 13 periodically transmits the transmission log data DL."

[0077] As described above, in this embodiment, the terminal control unit 13 continuously monitors whether or not the log transmission condition is satisfied while the user is playing the game. When the log transmission condition is satisfied, the terminal control unit 13 automatically transmits the transmission log data DL, which includes the log G recorded in the log data LD, to the server 2.

[0078] As shown in the flow chart FB of FIG. 8, the server control unit 10 executes the following process after the process of step SB4. That is, the server control unit 10 monitors whether or not the log-related data (transmission log data DL) has been received (step SB5), and monitors whether or not the end notification information has been received (step SB6). If it is determined in step SB7 that the log-related data has been received (step SB5: YES), the server control unit 10 executes a verification process (step SB7) and shifts the process procedure to step SB6. On the other hand, if it is determined in step SB5 that the transmission log data DL has not been received (step SB5: NO), the server control unit 10 shifts the process procedure to step SB6. If it is determined in step SB6 that the end notification information has not been received (step SB6: NO), the server control unit 10 returns the process procedure to step SB5, and if it is determined that the end notification information has been received (step SB6: YES), the server control unit 10 executes a server-side end process (step SB8). In the server-side end process, a process defined as a process to be executed at the end of the unit game is executed. For example, the server control unit 10 appropriately updates the user management database and other databases based on the record corresponding to the active game ID included in the end notification information. After the process of step SB8, the flow chart FB ends.

[0079] In the flowchart FB of FIG. 8, one server 2 executes all the steps of the process. However, it is not necessary that all the processes are executed in order in one server 2. For example, it is assumed that the server 2 is composed of multiple server devices, and load balancing is realized by a load balancer. It is also assumed that a unit game is started in a specific user terminal 3 (assumed to be a user terminal TX). In this configuration, the server 2 that receives start notification information from the user terminal TX, the server 2 that receives transmission log data DL from the user terminal TX, and the server device that receives end notification information from the user terminal TX may be different. In addition, when the user terminal TX transmits transmission log data DL multiple times, the server devices that receive the multiple pieces of transmission log data DL may be different from each other.

[0080] As described above, while the user is playing the unit game, the server control unit 10 continuously monitors whether or not the transmission log data DL has been received, and executes a verification process in response to reception of the transmission log data DL. The verification process will be described in detail below.

[0081] Flowchart FF in FIG. 14 shows the details of the verification process. As shown in flow chart FF, the server control unit 10 acquires the received log-related data (step SF1). The log-related data includes a data ID and an active game ID corresponding to the unit game being played on the sending user terminal 3, and the transmission log data DL. Next, the server control unit 10 acquires node definition data ND corresponding to the received data ID from the data management DB (step SF2). Next, the server control unit 10 acquires registered node-related information corresponding to the received active game ID from the game management DB (step SF3).

[0082] Next, the server control unit 10 executes a server-side start-up process (step SF4). More specifically, the server control unit 10 generates an instance of the node definition data ND acquired in step SF2, and makes the server-side node definition data NDs-based process executable. In response to the generation of the instance of the node definition data ND, the server-side node-related information is set in a state in which a value can be stored. Next, the server control unit 10 initializes the value of each item of the node-related information on the server side with the value of each item of the registered node-related information acquired in step SF3. As a result, the value of the node-related information on the server side coincides with the value of the corresponding registered node-related information currently registered in the game management DB. Note that the server control unit 10 generates an instance of the node definition data ND and initializes each item of the node-related information, and then transitions the node based on the server-side node definition data NDs to progress the unit game in a pseudo manner. Hereinafter, for the sake of convenience of explanation, the pseudo unit game progressed based on the server-side node definition data NDs is called a "pseudo unit game". In particular, the pseudo bonus game is called a "pseudo bonus game". The process of steps SF1 to SF4 is called a "restart process."

[0083] After the process of step SF4, the server control unit 10 judges whether the received log-related data is data transmitted for the first time after the start of the unit game (step SF5). As described above, the terminal control unit 13 periodically transmits the log-related data (transmission log data DL) after the start of the unit game. Then, in step SF5, the server control unit 10 judges whether the received log-related data is data transmitted at the first log transmission timing. Whether the data is transmitted for the first time is managed, for example, by a predetermined flag. Also, for example, the log-related data includes information indicating whether the data is the first data. If the data is not the first data (step SF5: NO), the server control unit 10 shifts the processing procedure to step SF7. If the data is the first data (step SF5: YES), the server control unit 10 executes an initial node transition process (step: SF6). In the initial node transition process, the server control unit 10 transitions the game state to the initial node, and executes the transition process if one is defined for the initial node. The value of the server-side setting information is appropriately updated in response to the transition to the initial node. After the process of step SF6, the server control unit 10 advances the process to step SF7.

[0084] After step SF7, the server control unit 10 executes log handling processing for each log LG included in the transmission log data DL in the chronological order of the log LG. That is, in step SF7, the server control unit 10 determines whether or not there is an unprocessed log LG among the logs LG recorded in the transmission log data DL. If there is an unprocessed log LG (step SF7: YES), the server control unit 10 determines the oldest log LG among the unprocessed logs LG as the log to be processed (step SF8). Next, the server control unit 10 executes log handling processing for the log to be processed (step SF9), and returns the processing procedure to step SF7.

[0085] On the other hand, if it is determined in step SF7 that there is no unprocessed log LG (step SF7: NO), the server control unit 10 executes a server reflection process (step SF10). In the server reflection process in step SF10, the server control unit 10 updates the values ​​of each item of the registered setting information of the corresponding record in the game management DB (the record for which the registered node related information was obtained in step SF3) with the values ​​of each item of the current server-side setting information. After processing in step SF10, the flowchart FF ends.

[0086] In this manner, in this embodiment, when the log response process is completed for all logs LG recorded in the transmission log data DL without any status mismatch (described later), the value of each item in the registered setting information of the corresponding record in the game management DB is updated by the value of each item in the server-side setting information. As a result, when the restart process is performed the next time new log-related data is received, the value of each item in the server-side setting information becomes the value of each item at the time when the process for the previously received log-related data was completed. Note that, as will be made clear later, if a status mismatch (described later) occurs in the log response process and an error process is performed, the verification process is interrupted. In this case, the server reflection process of step SF10 is not performed.

[0087] A flow chart FG in FIG. 15 shows details of the log handling process. In the log handling process, the server control unit 10 judges whether the type of the log to be processed is an event or terminal side setting information (step SG1). As described above, if the type of the log to be processed is an event, event content information is recorded in the log to be processed, and if the type is terminal side setting information, a state hash value is recorded in the log to be processed. If the type of the log to be processed is an event (step SG1: "event"), the server control unit 10 issues an event indicated by the event content information of the log to be processed (step SG2). If the event content information indicates an event to which a parameter is added, the server control unit 10 accurately reproduces the parameter and issues an event. Next, the server control unit 10 transitions the node of the simulated unit game according to the transition rule of the server side node definition data NDs (step SG3). The server control unit 10 executes an update of the server side setting information required according to the transition of the node. Next, the server control unit 10 judges whether or not a transition time process is defined for the node after the transition (step SG4). If defined (step SG4: YES), the server control unit 10 executes transition processing (step SG5). The transition processing includes processing that changes the values ​​of state variables and other items of the server-side setting information. Therefore, the processing of step SG5 may change the values ​​of one or more items of the server-side setting information. Furthermore, if the transition processing is a processing that uses random numbers, the server control unit 10 generates random numbers using the random number seed stored in the random number seed <item> of the server-side setting information and the server-side random number generator. The value of the random number seed coincides with the value of the random number seed that the server control unit 10 generated in step SB2 and transmitted to the user terminal 3 in step SB4.

[0088] As described above, the server 2 and the user terminal 3 can each use a common random number generator. The server control unit 10 generates a random number seed and transmits it to the user terminal 3, while when executing a process that uses random numbers in response to node transitions in the verification process, it executes the process using the generated random number seed and the random number generator of the server 2. On the other hand, when executing a process that uses random numbers in response to node transitions, the terminal control unit 13 executes the process using the random number seed received from the server 2 and the random number generator of the terminal. This makes it possible to completely match the processing results of the server control unit 10 and the processing results of the terminal control unit 13 with respect to processes performed using other random number generators.

[0089] In addition, even if a completion issue event is defined for the node after the transition in the verification process, the server control unit 10 does not issue the completion issue event, and cancels the issuance of the completion issue event. After the processing of step SG5, the log handling process ends. On the other hand, if a transition process is not defined for the log after the transition (step SG4: NO), the server control unit 10 ends the log handling process.

[0090] When it is determined in step SG1 that the type of the log to be processed is terminal-side setting information (step SG1: "Terminal-side state information"), the server control unit 10 derives a comparison target hash value (step SG6). The server control unit 10 derives the comparison target hash value in the same manner as the terminal control unit 13 derives the state hash value. That is, the server control unit 10 acquires the value of each item of the server-side setting information. Next, the server control unit 10 generates array data based on the value of each item and according to the same rule as that of the user terminal 3. Next, the server control unit 10 derives a hash value using the same hash function as that of the user terminal 3. The hash value derived here is the comparison target hash value. If the value of each item of the terminal-side setting information on which the state hash value is based is the same as the value of each item of the server-side setting information on which the comparison target hash value is based, then the state hash value and the comparison target hash value will completely match.

[0091] Next, the server control unit 10 determines whether the comparison target hash value and the state hash value included in the processing target log are the same (step SG7). If these values ​​are not the same, it means that the values ​​of one or more items of the terminal side setting information in the user terminal 3 have deviated from the correct value. Therefore, in this case, it is highly likely that some kind of fraudulent activity has occurred. Therefore, determining whether these values ​​are the same is equivalent to determining in the server 2 whether or not a fraudulent activity has occurred in the user terminal 3. If the comparison target hash value and the state hash value are the same (step SG7: YES), the server control unit 10 ends the log handling process. On the other hand, if these values ​​are not the same (step SG7: NO), the server control unit 10 executes error processing (step SG8). The error processing will be described later. If the error processing is executed, the verification process is interrupted.

[0092] In the following description, when the comparison target hash value and the state hash value are not identical in the log corresponding process, this may be expressed as a “state mismatch.” Moreover, the process of deriving the comparison target hash value and comparing the comparison target hash value and the state hash value shown in steps SG6 and SG7 is called a “state comparison process.”

[0093] Next, the verification process executed by the server control unit 10 in this example will be described. The flowchart FE in FIG. 12 shows the details of the verification process executed by the server control unit 10 in this example. In this example, the terminal control unit 13 transmits the transmission log data DL including the first to fourth logs LG1 to LG4 (hereinafter referred to as "first transmission log data DL-1") at the first log transmission timing, and transmits the transmission log data DL including the fifth and sixth logs LG5 and LG6 (hereinafter referred to as "second transmission log data DL-2") at the second log transmission timing. The first to sixth logs LG1 to LG6 are shown in FIG. 13. The flowchart FE in FIG. 12 shows the verification process in response to the reception of the first transmission log data DL-1 and the verification process in response to the reception of the second transmission log data DL-2.

[0094] As shown in the flow chart FE, when the server control unit 10 receives log-related data including the first transmission log data DL-1 (step SE1), it executes a restart process (step SE2). This makes it possible to execute processes based on the server-side node definition data NDs, and the values ​​of each item of the server-side node-related information are initialized by the values ​​of each item of the currently registered node-related information of the corresponding record in the game management DB. Next, the server control unit 10 executes an initial node transition process to transition the game state of the pseudo bonus game to a standby node (step SE3). In response to the transition to the standby node, the server control unit 10 appropriately updates the values ​​of the server-side setting information.

[0095] Next, the server control unit 10 performs log response processing based on the first log LG1 and issues a card selection event (step SE4). The card selection event issued here corresponds to the card selection event recorded in the log data LD in the transition reproduction information recording processing of the flowchart FD. In response to the occurrence of the card selection event, the server control unit 10 transitions the game state of the pseudo bonus game to a lottery node based on the transition rule J1 of the server-side node definition data NDs (step SE5). In response to the transition to the lottery node, the server control unit 10 updates the value of the server-side setting information. In response to the occurrence of the card selection event, the server control unit 10 further executes a lottery process defined as a transition time process in the lottery node (step SE6).

[0096] Regarding the lottery process in step SE6, the server control unit 10 executes the following process. That is, the server control unit 10 inputs the random number seed stored in the random number seed <item> of the server-side node related information to the server-side random number generator and obtains the output value. Next, the server control unit 10 determines the result of the card selection based on the output value according to the same lottery rule used by the terminal control unit 13. Next, the server control unit 10 updates the value of each item of the server-side state variable based on the determined result. Here, the random number generator used by the terminal control unit 13 in the lottery process in step SD6 of the flowchart FD is the same as the random number generator used by the server control unit 10 in the lottery process in step SE6 of the flowchart FE. Furthermore, the random number seed value input by the terminal control unit 13 to the random number generator in the lottery process is the same as the random number seed value input by the server control unit 10 to the random number generator in the lottery process. Therefore, the processing result of the lottery process by the server control unit 10 is always the same as the processing result of the lottery process by the terminal control unit 13. Therefore, if no fraudulent activity is occurring at the user terminal 3, the value of the server-side state variable at the time when the lottery processing at step SE6 is completed will be the same as the value of the terminal-side state variable at the time when the lottery processing at step SD6 of the flowchart FD is completed.

[0097] After processing step SE6, the server control unit 10 executes a state comparison process of the log response process based on the second log LG2 (step SE7). In the state comparison process of step SE7, it is determined whether or not a comparison target hash value based on the values ​​of each item of the current server-side setting information is identical to the state hash value recorded in the log data LD in step SD7 of the flowchart FD. If no fraudulent activity has been performed on the user terminal 3, these values ​​will match. If it is determined in step SE7 that the values ​​are not identical, the server control unit 10 interrupts the verification process and executes error processing.

[0098] After the process of step SE7, the server control unit 10 performs log corresponding processing based on the third log LG3 and issues a lottery completion event (step SE8). This lottery completion event corresponds to the lottery completion event recorded in the transition reproduction information recording processing of step SD9 of the flowchart FD. In response to the occurrence of the lottery completion event, the server control unit 10 transitions the game state of the pseudo bonus game to a standby node based on the transition rule J2 of the server-side node definition data NDs (step SE9). In response to the transition of the standby node, the server control unit 10 updates the values ​​of each item of the server-side setting information.

[0099] After the process of step SE9, the server control unit 10 executes a state comparison process based on the fourth log LG4 (step SE10). In the state comparison process, it is determined whether a comparison target hash value based on the value of each item of the current server-side setting information is identical to the state hash value recorded in the log data LD in step SD11 of the flowchart FD. If it is determined in step SE10 that the values ​​are not identical, the server control unit 10 interrupts the verification process and executes error processing. After the process of step SE10, the server control unit 10 executes a server reflection process (step SE11). By the process of step SE11, the value of each item of the registered node related information of the corresponding record in the game management DB becomes the value of each item of the current server-side node related information. This completes the verification process based on the first transmission log data DL-1.

[0100] After that, the server control unit 10 receives the log-related data including the second transmission log data DL-2 (step SE12). Then, the server control unit 10 executes a restart process (step SE13). The process of step SE13 makes the server-side node definition data NDs executable. Furthermore, the value of each item of the server-side node-related information is initialized by the value of each item of the currently registered node-related information of the corresponding record in the game management DB. Next, the server control unit 10 executes a log-response process based on the fifth log LG5 and issues an end event (step SE14). This end event corresponds to the end event recorded in the log data LD in step SD14 of the flow chart FD. In response to the occurrence of the end event, the server control unit 10 transitions the game state of the pseudo bonus game to the end node based on the transition rule J3 of the server-side node definition data NDs (step SE15). In response to the transition to the end node, the server control unit 10 updates the value of the server-side setting information. After the process of step SE15, the server control unit 10 executes a state comparison process based on the fifth log LG5 (step SE16). After the process of step SE16, the server control unit 10 executes a server reflection process (step SE17). By the process of step SE17, the value of each item of the registered node related information of the corresponding record in the game management DB becomes the value of each item of the node related information on the server side at the current time. This completes the verification process based on the second transmission log data DL-2.

[0101] As described above, the server control unit 10 reproduces the transition of the node based on the transition reproduction information of the transmission log data DL received from the user terminal 3 and the node definition data ND of the server 2. Furthermore, the server control unit 10 changes the value of the server-side setting information corresponding to the node definition data ND of the server 2 in response to the transition of the node, and executes a verification process in which the value of the server-side setting information and the value of the corresponding terminal-side setting information recorded in the transmission log data DL are compared. More specifically, in the verification process, the server control unit 10 generates a trigger event in chronological order based on the transition reproduction information recorded in the transmission log data DL, automatically transitions the node based on the node definition data of the server in response to the occurrence of the trigger event, dynamically changes the value of the server-side setting information in response to the transition of the node, and compares the value of the server-side setting information after the change with the value of the corresponding terminal-side setting information recorded in the transmission log data. This configuration provides the following effects. That is, if the value of the server-side setting information and the value of the corresponding terminal-side setting information recorded in the transmission log data DL are not the same, it means that the value of the terminal-side setting information in the user terminal 3 has deviated from the correct value. Therefore, in this case, it is highly likely that some kind of fraudulent activity has occurred in the user terminal 3. Comparing these values ​​is therefore equivalent to determining in the server 2 whether or not fraudulent activity has occurred in the user terminal 3. And with the above configuration, it is possible to detect fraudulent activity, and it is possible to perform processing to prevent / prevent the fraudulent activity in response to the detection of the fraudulent activity, or processing to suppress the adverse effects caused by the fraudulent activity. This makes it possible to improve resistance to fraudulent activity.

[0102] Next, the error processing will be described in detail. In the error processing, a process that contributes to preventing / preventing fraudulent acts or a process that suppresses adverse effects caused by fraudulent acts is executed. In this embodiment, the server control unit 10 executes a rollback process as the error processing. In the rollback process, the server control unit 10 creates a state in which the game is resumed from before the stage at which a state hash value (value of the terminal-side setting information) previously determined to be identical to a comparison target hash value (value of the server-side setting information) was recorded in the log data LD. Hereinafter, an example of the error processing will be described using this example.

[0103] With reference to the flowchart FE in Fig. 12, for example, it is assumed that a status mismatch occurs in the status comparison process of step SE16. In this case, it means that a status mismatch does not occur in the status comparison process of step SE10. In this case, it is assumed that the value of one or more items of the terminal side setting information has been altered by fraudulent conduct during the period from the timing when the process of step SD11 of the flowchart FD is performed to the timing when the process of step SD16 is performed. In this case, the server control unit 10 interrupts the verification process and does not execute the server reflection process of step SE17.

[0104] When a status mismatch occurs in step SE16, the server control unit 10 refers to the corresponding record in the game management DB and acquires the current registered node related information. The registered node related information acquired here is the information updated in the server reflection process in step SE11. Next, the server control unit 10 transmits the acquired registered node related information and node definition data ND corresponding to the bonus game to the terminal control unit 13. Furthermore, the server control unit 10 instructs the terminal control unit 13 to resume the bonus game from the stage where the terminal side setting information recording process in step SD11 was performed.

[0105] In response to the instruction, the terminal control unit 13 generates an instance based on the received node definition data ND, and initializes the value of each item of the terminal-side node-related information corresponding to the instance based on the received registered node-related information. This initialization updates the value of the current node <item>, and the game state of the bonus game transitions to the node (standby node in this example) indicated by the current node <item> of the terminal-side setting information. Furthermore, the terminal control unit 13 executes processing corresponding to the value of each item of the terminal-side setting information. In this example, the terminal control unit 13 displays a post-selection screen G2 on the terminal display unit 15. As a result of the above processing, a state is established in which the bonus game is resumed from the stage at which the terminal-side setting information recording processing of step SD11 was performed.

[0106] After the bonus game is resumed, the terminal control unit 13 executes the game progress process in accordance with the process from step SC4 onward in the flowchart FC of Fig. 11, and periodically transmits log-related data. The server control unit 10 executes a verification process in response to receiving the log-related data.

[0107] Thus, in this embodiment, if a state mismatch occurs in the log response process, the bonus game is resumed from a point where there is no influence due to the fraudulent act. Due to this configuration, even if a fraudulent act is performed, the adverse effects of the fraudulent act can be suppressed. Furthermore, a user who has committed a fraudulent act can be made aware that even if he or she commits a fraudulent act, he or she will not be able to enjoy the benefits of the fraudulent act, and this can be deterred from committing a fraudulent act. Note that for users who do not commit a fraudulent act, the rollback process is not performed while the bonus game is being played, and the game progresses smoothly. Therefore, the satisfaction of users who do not commit a fraudulent act is not reduced.

[0108] <Modification> Next, a modified example of the above embodiment will be described. In this modified example, the management information includes random number usage history information as an item. FIG. 16 is a diagram showing the contents of the random number usage history information. In the random number usage history information, a random number category ID <item> and a random number usage count <item> are provided for each random number category that can be used in the unit game. The random number category will be described later. The random number category ID <item> stores a random number category ID that is identification information of the random number category. The random number usage count <item> stores a random number usage count that indicates the number of times a random number has been used in the corresponding random number category. The initial value of the random number usage count is a value indicating 0 times. The first record in FIG. 16 indicates that a random number has been used three times in the random number category of random number category ID: R01. The terminal side setting information includes the number of times random numbers by category have been used by the terminal control unit 13 in the unit game. The server side setting information includes the number of times random numbers by category have been used by the server control unit 10 in the verification process.

[0109] In this modified example, the terminal control unit 13 executes the following processing in the game progress processing. A flow chart FH in FIG. 17 shows a part related to the random number using processing among the game progress processing executed by the terminal control unit 13. In the following description, it is assumed that the unit game has a first stage, a second stage, and a third stage. It is further assumed that the random number category ID "R01" is assigned to the first stage, "R02" is assigned to the second stage, and "R03" is assigned to the third stage. As described above, the transition processing includes a processing using random numbers. Hereinafter, the processing using random numbers is referred to as "random number using processing". In the first stage, random number using processing P1a to P1c is executed, in the second stage, random number using processing P2a and P2b are executed, and in the third stage, random number using processing P3a and P3b are executed. In the description using FIG. 17, it is assumed that the random number generator outputs an integer in the range of 0 to 3. Although not specifically described, the random number using processing is executed according to the transition of the node.

[0110] As shown in the flow chart FH of FIG. 17, when the terminal control unit 13 executes the random number use process P1a in the first stage, it specifies the random number category ID: R01 (category) corresponding to the first stage. The specification is executed, for example, by passing the random number category ID: R01 as a parameter to a function that generates a random number. Next, the terminal control unit 13 changes the value of the random number seed according to the specified random number category ID (category). As described in the above embodiment, the random number seed is received from the server 2. The rule for changing the random number seed is that, when the random number seeds are the same, if the category IDs are different, the value of the random number seed after the change is different, and if the category IDs are the same, the value of the random number seed after the change is the same. For example, the rule is that a value according to the category ID is added to the value of the random number seed. Hereinafter, the random number seed after the change is referred to as the "changed random number seed".

[0111] Next, the terminal control unit 13 inputs the changed random number seed to the terminal side random number generator and obtains its output. FIG. 17 shows that the output of the terminal side random number generator in the random number use process P1a was 3. Furthermore, the terminal control unit 13 increments the value of the random number use count corresponding to the random number category ID: R01 of the random number use history information of the terminal side setting information. Thereafter, in the first stage, when the terminal control unit 13 executes the random number use process, it uses (consumes) in order the output values ​​successively output by the terminal random number generator that receives the changed random number seed changed in accordance with the category ID: R01 as input. Furthermore, the terminal control unit 13 increments the value of the corresponding random number use count according to the use of the random number. As described above, the random number generator is a recurrence formula, and when a specific value is input, the state of the successive output values ​​becomes a specific state. FIG. 17 shows the state in which the random number: 0 is used in the random number use process P1b and the random number: 1 is used in the random number use process P1c in the first stage.

[0112] After the random number use process P1c, the terminal control unit 13 executes the first terminal side setting information recording process. At this point, the random number usage counts corresponding to the random number category IDs R01, R02, and R03 are 3, 0, and 0, respectively.

[0113] In the second stage following the first stage, the terminal control unit 13 executes the following process. That is, in the random number using process P2a, the terminal control unit 13 specifies the random number category ID: R02, and generates a changed random number seed according to the specified random number category ID. The terminal control unit 13 inputs the changed random number seed to the terminal side random number generator and obtains an output value (random number). In the random number using process P2b following the random number using process P2a, the terminal control unit 13 obtains the output value (random number) that is output next by the terminal random number generator that inputs the changed random number seed corresponding to the random number category ID: R02. The terminal control unit 13 increments the value of the corresponding random number usage count according to the use of the random number. FIG. 17 shows a state in which the random number: 1 is used in the random number using process P2a and the random number: 0 is used in the random number using process P2b in the second stage. After the processing of the random number using process P2b, the terminal control unit 13 executes the second terminal side setting information recording process. At this point, the number of times that random numbers have been used corresponding to the random number category IDs: R01, R02, and R03 is 3, 2, and 0, respectively.

[0114] For the third stage following the second stage, the terminal control unit 13 executes the same processing as the first and second stages. Figure 17 shows how random number: 3 is used in random number using process P3a and random number: 2 is used in random number using process P3b in the third stage. After random number using process P3b is executed, the terminal control unit 13 executes third terminal side setting information recording processing. At this point, the random number usage counts corresponding to random number category IDs R01, R02, and R03 are 3 times, 2 times, and 2 times, respectively.

[0115] As described above, in this embodiment, when the terminal control unit 13 executes a process using random numbers in response to node transitions, it specifies a category, changes the value of the random number seed in response to the specified category, and executes the process using the random number seed after the value is changed and the random number generator stored in the terminal. This provides the following effects. That is, in a unit game, if an output value (random number) that is continuously output by the terminal-side random number generator based on one random number seed is continuously used, the predictability of the random numbers increases and so-called random number adjustment becomes easier. On the other hand, by providing multiple categories in the unit game and using an independent random number seed for each category, it is possible to eliminate the correlation of random numbers for each category in the unit game, reduce the predictability of random numbers, and improve the difficulty of random number adjustment.

[0116] Next, the operation of the server 2 in this modified example will be described. The flowchart FI in FIG. 17 shows an example of the operation of the server 2 when the user terminal 3 executes the process of the flowchart FH. In particular, the flowchart FI shows an example of the operation of the server 2 in the verification process. As shown in the flowchart FI, the server control unit 10 executes random number using processes Q1a, Q1b, and Q1c in response to node transitions in the verification process. These random number using processes Q1a, Q1b, and Q1c correspond to the random number using processes P1a, P1b, and P1c executed by the terminal control unit 13 in the flowchart FH. In the random number using process Q1a, the terminal control unit 13 specifies the random number category ID: R01, and generates a changed random number seed according to the same rule as that of the user terminal 3 according to the random number category ID: R01. Then, the terminal control unit 13 inputs the changed random number seed to the server-side random number generator and obtains its output value (random number). Since the server-side random number generator and the terminal-side random number generator are common, the random number value used in the random number using process Q1a related to the server 2 and the random number value used in the random number using process P1a related to the user terminal 3 always match. Thereafter, the server control unit 10 uses (consumes) in order the output values ​​that are successively output by the server-side random number generator based on the changed random number seed corresponding to category ID: R01 in the random number using processes Q1b and Q1c. As a result, the random number value used in the random number using processes Q1b and Q1c related to the server 2 and the random number value used in the random number using processes P1b and P1c related to the user terminal 3 become the same.

[0117] Furthermore, the server control unit 10 executes a first status comparison process after the random number usage process Q1c. In this first status comparison process, the values ​​of the random number usage counts in the random number usage history information on which the comparison target hash value is based are as follows. Random number category ID: R01 → 3 times, R02 → 0 times, R03 → 0 times. This matches the value of the random number usage counts in the random number usage history information on which the status hash value was based in the first terminal side setting information recording process. Therefore, if no fraudulent activity is occurring, no status mismatch occurs in the first status comparison process.

[0118] The random number using processes Q2a and Q2b in the flowchart FI correspond to the random number using processes P2a and P2b executed by the terminal control unit 13 in the flowchart FH. For the random number using processes Q2a and Q2b, the server control unit 10 uses (consumes) in order the output values ​​that are continuously output by the server-side random number generator based on the changed random number seed corresponding to the category ID: R02. After the random number using process Q2b, the server control unit 10 executes the second state comparison process. In this second state comparison process, for the same reason as the first state comparison process, if no fraudulent activity is being performed, no state mismatch occurs. Furthermore, the random number using processes Q3a and Q3b in the flowchart FI correspond to the random number using processes P3a and P3b executed by the terminal control unit 13 in the flowchart FH. For the random number using processes Q3a and Q3b, the server control unit 10 uses (consumes) in order the output values ​​that are continuously output by the server-side random number generator based on the changed random number seed corresponding to the category ID: R03. As a result, the random number values ​​used in the random number processes Q3a and Q3b related to the server 2 are the same as the random number values ​​used in the random number processes P3a and P3b related to the user terminal 3. Furthermore, in the third state comparison process following the random number process Q3b, for the same reason as in the first state comparison process, no state mismatch occurs if no fraudulent activity is occurring.

[0119] As described above, when the server control unit 10 executes a process that uses random numbers in response to node transitions during verification processing, it specifies the same category as the category specified by the terminal control unit 13 in the corresponding process performed on the user terminal 3, changes the value of the random number seed in response to the specified category, and executes the processing using the random number seed after the value has been changed and the random number generator of the server 2.

[0120] Although one embodiment of the present invention has been described above, the above embodiment is merely one example of a specific embodiment for carrying out the present invention, and the technical scope of the present invention should not be interpreted as being limited thereby. In other words, the present invention can be carried out in various forms without departing from the gist or main characteristics thereof.

[0121] For example, in the above embodiment, the log transmission condition is that a periodic timing has arrived. However, the content of the log transmission condition is not limited to the content exemplified in the above embodiment. As an example, the condition may be that a certain number of logs LG have been recorded in the log data LD. In this case, the certain number may be one, or two or more.

[0122] In the above embodiment, the terminal control unit 13 is configured to transmit the transmission log data DL including the logs recorded in the log data LD that have not been transmitted when the log transmission condition is met. In this regard, the terminal control unit 13 may be configured to transmit the transmission log data DL including all the logs LG recorded in the log data LD. In this configuration, the server control unit 10 may extract the unprocessed log LG and execute the log handling process each time it receives the transmission log data DL. Also, the server control unit 10 may execute the log handling process for all the logs LG each time it receives the transmission log data DL.

[0123] In the above embodiment, the terminal control unit 13 records the state hash value, which is a hash value, in the log data LD. In this regard, the terminal control unit 13 may be configured to record the value of the terminal-side setting information (unhashed value) in the log data LD according to the format, instead of the state hash value. In this case, the log LG of the transmission log data LS includes the value of the terminal-side setting information (unhashed value) instead of the state hash value. In this case, the server control unit 10 determines whether the value of the server-side setting information in the server-side node definition data NDs and the value of the corresponding terminal-side setting information in the transmission log data DL are the same in the state comparison process, without deriving a comparison target hash value.

[0124] The error processing executed by the server control unit 10 is not limited to the processing exemplified in the above embodiment. For example, the server control unit 10 may be configured to execute the following processing. For example, the server control unit 10 may be configured to construct a state in which the unit game is restarted from the beginning as the error processing. In this case, the server control unit 10 discards the record of the game management DB corresponding to the unit game to be restarted, and executes the processing from step SB1 onward of the flowchart FB in FIG. 8 again. For example, the server control unit 10 may cooperate with the terminal control unit 13 to notify the user of a predetermined warning. For example, the server control unit 10 may register a user who has committed a fraudulent act in a list. In other words, the processing executed by the server control unit 10 when a status inconsistency occurs may be a processing that contributes to preventing / preventing a fraudulent act, or a processing that suppresses the adverse effects caused by a fraudulent act.

[0125] In the above embodiment, the server control unit 10 is configured to transmit the random number seed together with the node definition data ND to the terminal control unit 13. However, if random numbers are not used in the unit game, the terminal control unit 13 may be configured not to transmit the random number seed.

[0126] Furthermore, the contents of the log LG are not limited to the contents exemplified in the above embodiment. In particular, in the above embodiment, the transition reproduction information is information indicating the contents of an event (trigger event), but the contents of the transition reproduction information are not limited to the exemplified contents. For example, the transition reproduction information may be information identifying a transition rule referenced for node transition. Furthermore, for example, in a case where a node transition is configured to be possible by an event other than an event, the transition reproduction information may be information indicating an event that triggered the node transition. In other words, the transition reproduction information may be information that can be used when the server control unit 10 reproduces the node transition in the verification process.

[0127] In the above embodiment, the transition rule is recorded in the node definition data. However, the transition rule may not be recorded in the node definition data. For example, the transition rule may be recorded in a file other than the node definition data ND. In this case, the combination of the node definition data ND file and the file in which the transition rule is recorded may be considered to be the "node definition data". In addition, the transition rule may be defined in a program (a program other than the program related to the node definition data) used by the server control unit 10 for a certain unit game, and the transition rule having the same content as the transition rule related to the server 2 may be defined in a program (for example, a game application AP) used by the terminal control unit 13. That is, it is sufficient to construct a state in which the server control unit 10 and the terminal control unit 13 use the same transition rule for the unit game.

[0128] In this embodiment, before the unit game is provided, a state (hereinafter referred to as a "shared state") is established in which the server 2 and the user terminal 3 can each use the common node definition data ND corresponding to the unit game. The method of establishing the shared state is not limited to the method exemplified in this embodiment. For example, a configuration may be adopted in which the node definition data ND for one unit game is uploaded to the server 2 and the node definition data ND is incorporated into the game application AP. In this configuration, the content of the node definition data ND on the user terminal 3 side may be modified (updated) by updating the game application AP. In this configuration, the node definition data ND may not be incorporated into the game application AP from the beginning, but may be incorporated later as additional data. For example, a configuration may be adopted in which the node definition data ND stored in a CD-ROM, USB memory, or other physical medium is downloaded to the user terminal 3, thereby establishing the shared state. In other words, any means may be used to establish the shared state, as long as a state is established in which the server 2 and the user terminal 3 can each use the common node definition data ND corresponding to the unit game before the unit game is provided. Note that "the node definition data ND used by the server 2 and the node definition data ND used by the user terminal 3 are common" does not mean that the node definition data ND related to the server 2 and the node definition data ND related to the user terminal 3 are completely identical, including in terms of form. In other words, these data being common means that when processing is executed based on the node definition data ND, the nodes transition in the same manner, processing is performed in the same manner, and setting information is updated in the same manner, so long as no fraudulent activity is performed, there is identity in the contents of the data.

[0129] In the above embodiment, the games provided by the user terminal 3 and the server 2 are provided by a dedicated application downloaded to the user terminal 3. However, the games are not limited to the games exemplified in the above embodiment. As an example, the games may be online games played using a browser.

[0130] As described above, the node definition data ND may be data in which information is described in JSON or other description methods, instead of a program file. In other words, the node definition data ND may be data in which a node is described in a form that can be used by the terminal control unit 13 and the server control unit 10. For example, the node definition data ND is assumed to be text data in which information is described according to a predetermined data format. Also, for each item (or some items) of the setting information of the node definition data ND, the item name and the item value are associated with each other and described in text data constituting the node definition data ND. In this configuration, the terminal control unit 13 (as well as the server control unit 10) appropriately refers to the text data constituting the node definition data ND and executes node transitions and processes associated with the node transitions. Also, the terminal control unit 13 appropriately updates the item values ​​recorded in the text data to update the setting information values.

[0131] In the above embodiment, the terminal side setting information is specifically exemplified. Here, the terminal side setting information means information to be compared with the terminal side setting information in the state comparison process. In the above embodiment, the combination of items that are the basis of the state hash value corresponds to the terminal side setting information. And, regarding the terminal side setting information, the form of the terminal side setting information is not limited to the form exemplified in the above embodiment. For example, some state variables of the terminal side state variables or some items of the terminal side management information may be included in the terminal side setting information. Also, one of the setting information and the management information may be included in the terminal side setting information. That is, the terminal side setting information may be information whose value can change according to the transition of the node accompanying the progress of the unit game. The items of the server side setting information to be compared in the state comparison process are appropriately selected according to the items of the terminal side setting information.

[0132] The contents of the node-related information are not limited to those exemplified in the above embodiment. For example, the node-related information may include a user ID or a version of the node definition data ND.

[0133] In the above embodiment, a part or all of the processing executed by the functions of the game application AP may be executed by a browser.

[0134] In the above embodiment, the server storage unit 12 may be configured to store the data management DB and the game management DB.

[0135] The functional blocks shown in the above embodiment can be realized by any hardware or by a combination of any hardware and any software, that is, these functional blocks are not limited to specific hardware.

[0136] The processing units in the flowcharts of the above embodiments are divided according to the main processing contents in order to make the processing easier to understand. The method of dividing the processing units or the names of the processing units does not limit the present invention. The processing of each device can be divided into more processing units according to the processing contents. Also, one processing unit can be divided so as to include more processing. Also, as long as similar processing can be performed, the processing order of the above flowcharts is not limited to the example shown in the figure.

[0137] Also, for example, the embodiment may include the provision of a program executed by a computer of the server 2 or the user terminal 3. Also, the embodiment may include the provision of a recording medium on which the program is recorded so as to be readable by a computer. The recording medium may be, for example, a flexible disk, a hard disk drive (HDD), a compact disc read only memory (CD-ROM), a digital versatile disc (DVD), a Blu-ray Disc (registered trademark), a magneto-optical disk, a flash memory, or a card-type recording medium. [Explanation of symbols]

[0138] 1. Control System 2 Server 3 User terminal (terminal) 10 Server control unit 13 Terminal control unit LD Log Data LG Log ND Node Definition Data DL Sending log data

Claims

1. A control system for providing a game, comprising: a server; and a terminal capable of communicating with the server, Prior to providing the game, a state is established in which the server and the terminal can each use common node definition data corresponding to the game; In the node definition data, a plurality of nodes each indicating a state of the game are defined, The terminal includes: a function of transitioning the node based on the node definition data of the terminal while the game is being played by a user, changing a value of terminal-side setting information corresponding to the node definition data of the terminal in response to the transition of the node, and recording transition reproduction information capable of reproducing the transition of the node and the value of the terminal-side setting information that has changed in response to the transition of the node in log data as a log; a terminal control unit having a function of transmitting to the server transmission log data including the log recorded in the log data when a log transmission condition regarding transmission of the log is satisfied; The server, a server control unit having a function of reproducing the transition of the node based on the transition reproduction information of the transmission log data received from the terminal and the node definition data of the server, changing a value of server-side setting information corresponding to the node definition data of the server in accordance with the transition of the node, and executing a verification process of comparing the value of the server-side setting information with the value of the corresponding terminal-side setting information recorded in the transmission log data; A control system comprising:

2. The node definition data further defines a transition rule that defines a trigger event that triggers the transition of the node and a mode of the transition of the node when the trigger event occurs, The terminal control unit while the game is being played by the user, in response to the occurrence of the trigger event, transitioning the node based on the transition rule of the node definition data of the terminal, and changing a value of the terminal side setting information in response to the transition of the node; recording the transition reproduction information indicating the content of the trigger event that has occurred in the log data as the log, and recording a value of the terminal side setting information that has changed in response to the transition of the node in the log data as the log; The server control unit, in the verification process, The trigger event is generated in a time series based on the transition reproduction information recorded in the transmission log data, and in response to the generation of the trigger event, the node is transitioned based on the node definition data of the server, a value of the server-side setting information is changed in response to the transition of the node, and the value of the server-side setting information after the change is compared with the value of the corresponding terminal-side setting information recorded in the transmission log data.

2. The control system of claim 1.

3. In the node definition data, a state variable indicating a state of a predetermined item related to the game and a transition process which is a process to be executed when a transition is made to the node itself can be defined; the transition process includes a process of changing the state variable; the terminal side setting information includes the state variables defined in the node definition data of the terminal, The server-side setting information includes the state variables defined in the node definition data of the server.

2. The control system of claim 1.

4. the terminal control unit records a state hash value, which is a hash value of the terminal-side setting information, in the log data as a value of the terminal-side setting information; The server control unit, in the verification process, derives a comparison hash value which is a hash value of the value of the server-side setting information in response to the transition of the node, and compares the comparison hash value with the corresponding state hash value recorded in the transmission log data.

2. The control system of claim 1.

5. The server and the terminal are each capable of using a common random number generator; the server control unit generates a random number seed and transmits it to the terminal, while when executing a process that uses a random number in response to the transition of the node in the verification process, executes the process using the generated random number seed and the random number generator of the server; When executing a process using a random number in response to the transition of the node, the terminal control unit executes the process using the random number seed received from the server and the random number generator of the terminal.

2. The control system of claim 1.

6. The terminal control unit When executing a process using a random number in response to the transition of the node, a category is specified, a value of the random number seed is changed in response to the specified category, and the process is executed using the random number seed after the value is changed and the random number generator of the terminal; The server control unit, in the verification process, When executing a process using a random number in response to the transition of the node, the same category as the category specified by the terminal control unit in the corresponding process executed on the terminal is specified, the value of the random number seed is changed in response to the specified category, and the process is executed using the random number seed after the value has been changed and the random number generator of the server.

6. The control system of claim 5.

7. the terminal-side setting information includes the number of times that the random numbers for each category are used by the terminal control unit in the game; The server-side setting information includes the number of times the server control unit uses random numbers by category in the verification process.

7. The control system of claim 6.

8. The server control unit, in the verification process, When it is determined that the values ​​are not identical as a result of comparing the values ​​according to the transition of the node, a state is constructed in which the game is resumed from before the stage at which the value of the terminal-side setting information previously determined to be identical to the value of the server-side setting information was recorded in the log data, or a state is constructed in which the game is resumed from the beginning.

2. The control system of claim 1.

9. The log transmission condition is a condition that a periodic occurrence timing has arrived, or a condition that a certain number of the logs have been recorded in the log data.

2. The control system of claim 1.

10. A server capable of communicating with a terminal and providing a game in cooperation with the terminal, Prior to providing the game, a state is established in which the server and the terminal can each use common node definition data corresponding to the game; In the node definition data, a plurality of nodes each indicating a state of the game are defined, a server control unit having a function of receiving, from the terminal, transmission log data including a log indicating transition reproduction information capable of reproducing a transition of the node performed at the terminal and the log indicating a value of terminal-side setting information corresponding to the node definition data of the terminal that has changed in accordance with the transition of the node, reproducing the transition of the node based on the transition reproduction information of the received transmission log data and the node definition data of the server, changing a value of server-side setting information corresponding to the node definition data of the server in accordance with the transition of the node, and executing a verification process of comparing a value of the server-side setting information with a value of the corresponding terminal-side setting information recorded in the transmission log data; A server comprising:

11. A control method for a control system that provides a game, the control system including a server and a terminal that can communicate with the server, the control method comprising: Prior to providing the game, a state is established in which the server and the terminal can each use common node definition data corresponding to the game; In the node definition data, a plurality of nodes each indicating a state of the game are defined, while the game is being played by a user, the terminal transitions the node based on the node definition data of the terminal, and changes a value of terminal-side setting information corresponding to the node definition data of the terminal in response to the transition of the node, while recording transition reproduction information capable of reproducing the transition of the node and the value of the terminal-side setting information that has changed in response to the transition of the node in log data as a log; a step of transmitting, by the terminal, transmission log data including the log recorded in the log data to the server when a log transmission condition regarding transmission of the log is satisfied; The server reproduces the transition of the node based on the transition reproduction information of the transmission log data received from the terminal and the node definition data of the server, changes a value of server-side setting information corresponding to the node definition data of the server in accordance with the transition of the node, and executes a verification process of comparing the value of the server-side setting information with the value of the corresponding terminal-side setting information recorded in the transmission log data. A control method comprising: