WO2019211992A1 - ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 - Google Patents
ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 Download PDFInfo
- Publication number
- WO2019211992A1 WO2019211992A1 PCT/JP2019/016665 JP2019016665W WO2019211992A1 WO 2019211992 A1 WO2019211992 A1 WO 2019211992A1 JP 2019016665 W JP2019016665 W JP 2019016665W WO 2019211992 A1 WO2019211992 A1 WO 2019211992A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- result
- game
- user
- event
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/23—Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/69—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/73—Authorising game programs or game devices, e.g. checking authenticity
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/75—Enforcing rules, e.g. detecting foul play or generating lists of cheating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Definitions
- the present invention relates to a system, a server, a program, and a method for detecting a user's fraud in a game.
- Patent Document 1 discloses a technique for detecting a modification to a game program through a memory scan or the like.
- Patent Document 1 when the method disclosed in Patent Document 1 is used, it is necessary to create a dedicated program for scanning the memory, and when there is an update of the game program, it corresponds to the updated content Therefore, the dedicated program must also be updated, and the cost of continuing maintenance is high, and there is a risk that proper fraud detection may be hindered by reverse engineering. Therefore, an effective technique for illegal alteration of game data performed on the client side has not been established yet.
- a system is a system for detecting a user's fraud in a game played on a user terminal, and executes a game program for playing the game, A parameter for executing the event is determined, the parameter is transmitted, the event is executed based on the parameter, a user result that is a result of the event is generated, and a user terminal that transmits the user result is verified.
- a server having a result generation unit and a fraud verification unit, wherein the verification result generation unit generates a plurality of virtual instances for virtualizing a user terminal, and the game program is stored in the plurality of virtual instances.
- Is executed in headless mode and the event is based on the parameters received by the server.
- a virtual instance for executing the command is selected from the plurality of virtual instances, an event is executed based on the parameter in the selected virtual instance, and a verification result is generated. Is compared with the verification result to determine whether fraud has been performed in the user terminal.
- the verification result generation unit may execute the game program in a headless mode, thereby invalidating at least the graphic processing and the sound processing and executing the event to generate the verification result.
- Selecting from the plurality of virtual instances identifies a virtual instance based on type information including information indicating a type of game program executed by the virtual instance and information indicating a directory mounted on the virtual instance.
- type information including information indicating a type of game program executed by the virtual instance and information indicating a directory mounted on the virtual instance.
- a virtual instance that has the same type information as the game program to be executed and generates the same result as the game program when the same parameter as the game program is input may be selected.
- the verification result generation unit includes a single virtual instance management unit, and the verification result generation unit operates the plurality of virtual instances in parallel, and performs a single virtual instance of the verification result generation unit.
- the instance management unit determines the operating state of the virtual instance based on the input / output interrupt signal from the virtual instance, and based on the parameter received in one selected virtual instance of the plurality of virtual instances. While executing an event, it may be possible to select other virtual instances to execute the event in parallel based on other received parameters.
- the virtual instance can realize container type virtualization.
- the server includes a load balancer and a plurality of verification result generation units, each of the plurality of verification result generation units includes a single virtual instance management unit, and the load balancer generates an event based on the received parameter. Execution is assigned to one of the verification result generation units, and the single virtual instance management unit searches for a free virtual instance in the verification result generation unit including the single virtual instance, and Any one of the instances may be selected as a virtual instance that executes an event assigned to the single verification result generation unit.
- the server in one embodiment of the present invention is a server used in a system for detecting fraud of a user in a game played on a user terminal, and the user terminal in the system is for playing a game.
- Execute a game program determine parameters for executing a predetermined event in the game, send the parameters, execute the event based on the parameters to generate a user result that is a result of the event,
- the user result is transmitted, and the server generates a plurality of virtual instances for virtualizing the user terminal, and the game program is executed in a headless mode in the plurality of virtual instances, and is received by the server Virtual in for executing events based on parameters Select an event from the plurality of virtual instances and execute an event based on the parameters in the selected virtual instance to determine whether fraud has occurred at the user terminal compared to the user result To generate a verification result.
- the user result received from the user terminal may be compared with the verification result to determine whether fraud has been performed at the user terminal.
- the program in one embodiment of the present invention is a program executed by a server in the system for detecting fraud of a user in a game played on the user terminal, and the user terminal in the system plays the game
- a game program for executing a game determining a parameter for executing a predetermined event in the game, transmitting the parameter, executing the event based on the parameter, and obtaining a user result as a result of the event Generating and transmitting the user result, the program generating a plurality of virtual instances for virtualizing the user terminal in the server, and the game program in the headless mode in the plurality of virtual instances.
- the method executed in the system in one embodiment of the present invention is a method executed in a system for detecting fraud of a user in a game played on a user terminal, for the user terminal to play a game Execute a game program, determine parameters for executing a predetermined event in the game, send the parameters, execute the event based on the parameters to generate a user result that is a result of the event, The user result is transmitted, the verification result generation unit generates a plurality of virtual instances for virtualizing the user terminal, and the server executes the game program in the headless mode in the plurality of virtual instances.
- a virtual installation to execute events based on received parameters An event is selected from the plurality of virtual instances, an event is executed based on the parameters in the selected virtual instance to generate a verification result, and the fraud verification unit receives the user result received from the user terminal and By comparing with the verification result, it is determined whether fraud has been performed in the user terminal.
- the method executed by the server in one embodiment of the present invention is a method executed by a server of the system for detecting fraud of a user in a game played on a user terminal, and is included in the system
- the user terminal executes a game program for playing a game, determines a parameter for executing a predetermined event in the game, transmits the parameter, executes the event based on the parameter, and executes an event
- the server In a system for generating a user result as a result and transmitting the user result, the server generates a plurality of virtual instances for virtualizing the user terminal, and the game program is headed in the plurality of virtual instances.
- Running in the less than A virtual instance for executing an event based on a meter is selected from the plurality of virtual instances, and the selected to determine whether fraud has occurred at the user terminal compared to the user result An event is executed based on the parameter in the virtual instance to generate a verification result.
- fraud detection can be realized at high speed and easily by executing a game program in a headless mode on a server.
- FIG. 1 is an overall configuration of a system according to an embodiment of the present invention. It is a hardware block diagram of the user terminal which concerns on one Embodiment of this invention. It is a hardware block diagram of the server which concerns on one Embodiment of this invention. It is a functional block diagram of the system concerning one embodiment of the present invention. It is a flowchart which shows the information processing which concerns on one Embodiment of this invention. It is a conceptual diagram of the information processing timing which concerns on one Embodiment of this invention.
- the fraud detection system 100 can be realized by a system including one or more user terminals 120 (clients) and a server 130 connected via a network 110.
- the user terminal 120 in the present embodiment is a device that executes a game program while communicating with the server 130 via the network 110, and is, for example, an electronic device such as a mobile phone, a smartphone, a tablet terminal, or a portable game machine.
- the user terminal 120 can include a processing device 201, an output device 202, an input device 203, a storage device 206, a communication device 207, and a bus 208 as shown in FIG.
- the storage device 206 stores a program 209 such as a game program (game application).
- the processing device 201 performs various processes based on the program 209, input data from the input device 203, data received from the communication device 207, and the like.
- the processing device 201 includes a processor that controls each device included in the user terminal 120, and performs various processes using a register included in the processor and the storage device 206 as a work area. Each of these components is connected by the bus 208, but may be individually connected as necessary.
- the output device 202 outputs a game screen display and sound according to the control of the processing device 201.
- the input device 203 has a function of accepting an input from a user, such as a touch panel, a touch pad, and an input button.
- the storage device 206 includes a hard disk, a main memory, and a buffer memory.
- the hard disk may be any nonvolatile storage or nonvolatile memory as long as it can store information, and may be removable.
- ROM and RAM are included.
- the storage device 206 stores a program 209 and various data that can be referred to when the program is executed.
- the program 209 includes programs and data for an operating system or any application that requires player input, such as a video game or web browser.
- the communication device 207 performs wireless communication such as mobile communication, wireless LAN, and wired communication using an Ethernet (registered trademark) cable, a USB cable, or the like.
- the program can be downloaded from the server 130 and stored in the storage device 206.
- the program may be stored in an optical disk such as a CD / DVD, an optical drive may be connected to the communication device 207, and the program or the like may be read from the optical disk and stored in the storage device 206.
- FIG. 3 is a block diagram showing a hardware configuration of the server 130 according to the present embodiment.
- the server is a server group including one first server 300 and two or more second servers 310, but may be realized by only one server device.
- the first server 300 and the second server 310 have the same hardware configuration, and the processing devices 301 and 311, the output devices 302 and 312, the input devices 303 and 313, the storage devices 306 and 316, and the communication device 307. 317. Each of these components is connected by buses 308 and 318, but may be individually connected as necessary.
- the first server and the second server are connected to each other via communication devices 307 and 317.
- the processing devices 301 and 311 include processors that control the devices included in the first and second servers 300 and 310, and perform various processes using the storage devices 306 and 316 as work areas.
- the output devices 302 and 312 have a function of displaying information to the server user.
- the input devices 303 and 313 have a function of accepting input from the user, such as a keyboard and a mouse.
- the storage devices 306 and 316 include a hard disk, a main memory, and a buffer memory. Programs 309 and 319 are stored in the hard disk. However, the hard disk may be any nonvolatile storage or nonvolatile memory as long as it can store information, and may be removable.
- the storage devices 306 and 316 store programs 309 and 319 and various types of data that can be referred to when the programs are executed.
- the communication devices 307 and 317 connect to the network 110 by performing wired communication using an Ethernet (registered trademark) cable, wireless communication such as mobile communication, and wireless LAN.
- FIG. 4 shows an example of a functional block diagram of the system 100 of the present invention.
- the user terminal 120 includes a game execution unit 400.
- the server 130 includes a game server unit 401, a load balancer 402, a verification result generation unit 404, and a fraud verification unit 405.
- the first server 300 includes a game server unit 401, a load balancer 402, and a fraud verification unit 405, and the second server includes a verification result generation unit 404.
- the server 130 includes a plurality of second servers, and each of the second servers includes a verification result generation unit 404.
- any one or more server devices can have each functional unit, and any server device may have any functional unit.
- the second server can include the fraud verification unit 405, or a third server including the fraud verification unit 405 may be provided.
- One server can have all the functional units.
- the game execution unit 400 of the user terminal 120 advances the game based on the game program, game data, and the like.
- a predetermined event is generated at a predetermined timing, an event parameter is determined based on an input from the user, etc., transmitted to the game server unit 401, the event is executed, and an event result is generated. It transmits to the game server part 401.
- the result of the event is presented to the user by the output device 202.
- the game server unit 401 accepts access from each user terminal 120 and provides a game service via the network. For example, data such as a user's game progress status is stored in association with each user ID, and transmitted to the user terminal 120 upon request, or input information with other players in a battle game with other players. Providing services such as sending and receiving.
- the load balancer 402 assigns a request for executing the verification result generation process based on the event parameter received by the game server unit 401 from the game execution unit 400 to any one of the plurality of verification result generation units 404.
- the verification result generation unit 404 generates a verification result based on the event parameter and transmits it to the fraud verification unit 405.
- the verification result is a result of an event generated for fraud detection.
- the verification result generation unit 404 includes a virtual instance management unit 410 and a plurality of virtual instances 411.
- the virtual instance management unit 410 selects one of the plurality of virtual instances 411 of the verification result generation unit 404 including the virtual instance management unit 410 in order to execute the verification result generation process assigned from the load balancer 402 To do.
- the virtual instance 411 is a virtual instance for virtualizing the user terminal, and can be realized by using, for example, an operating system level virtualization technology called “container” such as docker (registered trademark).
- docker registered trademark
- docker controls the Linux container provided by the Linux (registered trademark) kernel, and virtualizes in units of processes, that is, the use of CPU and file system is separated from other processes. Can be provided. Since the containers are separated from each other, it is possible to act as a game application that operates only in the operating system. Therefore, by executing the game program in each container and starting the process of the game program, it is possible to virtually implement the game program on the user terminal.
- the verification result generation process in the virtual instance 411 is executed by executing a game program executed for playing a game on the user terminal 120 in the headless mode on the server 130.
- the headless mode is a mode in which graphic processing for accessing the GPU is invalidated, and further, sound processing for accessing the sound source chip and access processing for the external server are invalidated.
- the game can be executed by using only the CPU, the memory, and the secondary storage device, that is, the access to the resource closed inside the container. It becomes possible to eliminate the rate-determining factors (factors that determine the speed) such as the speed and the playback speed of the sound that is supposed to be heard by humans.
- these graphic devices and sound devices are generally mounted as external devices outside the CPU, and the waiting time for synchronization related to I / O processing between the CPU and the external devices is also omitted. be able to. This makes it possible to operate the game at high speed with no-wait processing that relies only on the processing speed of the CPU alone, eliminating wait processing such as production for humans and waiting for synchronization for external devices. Can do.
- executing the game program in the headless mode may be either executing the game program in the headless mode or executing the headless game program. As long as the game can be progressed in a headless state, it may be executed in any manner.
- Unity which is a widely used game engine, it is possible to easily generate a headless game program simply by selecting the headless mode from the GUI. That is, it is possible to easily prepare a game program for fraud detection by reusing the game program for the user terminal 120.
- the fraud verification unit 405 includes a user result that is a result of an event executed by the user terminal 120 received from the user terminal 120 via the game server unit 401, and a verification result generated by the verification result generation unit 404. To verify fraud. If the two differ at least to some extent, it indicates that the result of the event has been altered in the user terminal 120 due to an unauthorized change of information by the user.
- each function unit is configured such that a program included in the hardware configuration illustrated in FIGS. 2 and 3 is executed by the processing device, and each hardware and software of the output device, the input device, the storage device, and the communication device is included. This is realized by operating in cooperation, but may be realized by providing an electronic circuit or the like corresponding to each function.
- FIG. 5 shows a flowchart of operations of the user terminal 120 and the server (group) 130 in the present embodiment.
- the server (s) 130 includes a first server 300 and a second server 310.
- a plurality of virtual instances 411 are generated in the second server 310 (S501).
- a game program is executed in a headless mode to start a process for the game program (S502). ), And waits for reception of an event parameter from the user terminal 120.
- the game program is the same as that executed on the user terminal 120 except that it is executed in the headless mode.
- the maximum number of game programs that can be executed simultaneously by the second server 310 is estimated in advance, and the process of the game program virtualized in the container as the virtual instance 411 is started up to the maximum number as the upper limit.
- the game is a card battle game with a computer as an opponent (NPC), and the event is a battle with the opponent, but the opponent may be another player, or another form of game.
- NPC computer as an opponent
- the battle is an auto battle, and the battle automatically proceeds and ends based on the parameters determined based on the user input at the start of the battle.
- the user input is made after the battle starts. Even when an event parameter is added, updated, or the like and a battle progresses, it can be similarly realized by sequentially transmitting the event parameter to the server 130.
- the user terminal 120 is set so that the game can be played after the game program is downloaded and installed in the user terminal 120.
- the server 130 is requested for necessary game data (S506).
- the game server unit 401 of the first server 300 receives the game data request, it transmits game data for the user to the user terminal 120 (S508).
- the user terminal 120 receives this and starts the progress of the game.
- an event is generated at a predetermined timing (S510).
- the event is a battle with an opponent (NPC) automatically controlled by the game program.
- NPC opponent
- the player plays against other players using a card group including a predetermined number of cards selected from a plurality of cards owned by the player.
- the NPC determines its own card group to be used for this battle, and the user determines its own card group.
- the user terminal 120 determines parameters including these determined card groups (S512), and transmits them to the server 130 (S514).
- the first server 300 uses the load balancer 402 to perform verification result generation processing for this event on any one of the plurality of verification result generation units 404, for example, in a round robin manner.
- the event parameter is transmitted to the second server 310 that functions as the assigned verification result generation unit 404 (S516).
- the verification result generation unit 404 can execute the verification result generation process simultaneously for the number of virtual instances 411 generated.
- the verification result generation process is completed in a short period of time such as a fraction of the battle time in the game to a fraction of a tens of times, and a new process request can be accepted. Since this behavior is different from that of a conventional Web server or the like, it is preferable to set a load balancer 402 suitable for this embodiment.
- the load balancer 402 allocates tasks to the virtual instances 411 of the respective second servers 310, for example, after distributing the tasks in round robin, and then exceeding the capacity in any of the second servers 310.
- the load balancer 402 is configured such that, for example, the second instance in a free state is assigned to a free instance among the virtual instances 411 of each second server 310 immediately and uniformly. Has a queue for storing the IP address of the server 310, and when any of the second servers 310 issues a processing completion notification, the server is added to the end of the queue. A method of assigning from the head of the queue is conceivable. An implementation is considered that an error occurs only when a request comes when this queue is empty.
- the second server 310 assigned the verification result generation process receives the event parameter as the verification result generation request, and generates one of the plurality of virtual instances 411 to generate the verification result based on the event parameter.
- Select S528.
- the virtual instance management unit 410 manages the virtual instance 411 using asynchronous I / O.
- the verification result generation unit 404 of the second server 310 has a single virtual instance management unit 410, and the virtual instance management unit 410 operates from virtual instances operated in parallel. By determining the operating state of the virtual instance based on the input / output interrupt signal, the virtual instance is vacant while another event is executed in one selected virtual instance of the virtual instances operated in parallel.
- the virtual instance 411 is searched, and any one of the free virtual instances 411 is selected as the virtual instance 411 for event execution.
- communication is performed between the first server 300 and a process in the virtual instance 411 via a file.
- the second server 310 receives event parameters from the first server 300 as, for example, a JSON file storing each parameter, writes the event parameters in a specific file path, and the process in the virtual instance 411 executes the specific file.
- the file is read as an event parameter, the event is executed, and when the verification result is written to another file, the other file is transmitted to the first server 300.
- Other methods such as pipe-to-process communication can also be implemented.
- the game program executed on the user terminal 120 is mounted on any directory in the file system of the server 130 in order to write information such as event parameters.
- the container as the virtual instance 411 is also mounted on any directory in the file system of the server 130.
- the container refers to the mounted directory in a read-only manner.
- the container is identified based on the type information including information indicating the type of the game program executed by the container and information indicating the directory mounted on the container. To do. Then, a container having the same type information as the game program executed on the user terminal 120 is selected as a container having the result consistency.
- the information indicating the type of game program is information indicating the type of game, the version of the game program, and the like.
- Information indicating the directory mounted on the container can be a “path” when the file system of the server 130 is mounted from the container. That is, when the types of game programs executed in the user terminal 120 and the container are the same and are mounted in the same directory, there is a result consistency, and a container having such a result consistency is selected.
- Table 1 refers to or copies the directory where the container as the virtual instance 411 is mounted, and accesses the directory in read-only mode or in read-write mode.
- the method of verifying the result matching is classified according to the above. As shown in this table, it is possible to select a container having a result consistency with the game program executed on the user terminal 120 by verifying the result consistency according to the characteristics of the game program.
- “Reference” in Table 1 means that the container refers to the directory of the server mounted on the container, and “Copy” means that the directory and file of the mounted server are copied into the container image by the container. It means to do.
- Read-Only means that the process in the container accesses the mounted directory in the read-only mode
- Read-Write means that the directory mounted by the process in the container is accessed in the read / write mode. To do.
- the information indicating the type and version of the game program executed on the user terminal 120 and the container is the same, and “refers” to the same directory as the directory on the server 130 in which the event parameter transmitted from the user terminal 120 is written.
- the process in the container accesses in the read-only mode
- the game program executed on the user terminal 120 has result consistency, whereas when accessed in the read / write mode, there is no result consistency.
- the container copies the directory in the second server 310 to which the event parameter transmitted from the user terminal 120 is written and the process accesses in the read-only mode, the result matches if the copied files are the same.
- there is a result consistency when the copied “contents” are the same and the content changes are synchronized with each other.
- the container refers to the mounted directory in a read-only manner, based on the type information including information indicating the type of the game program executed by the container and information indicating the directory mounted on the container.
- the container refers to the mounted directory in a read-only manner, based on the type information including information indicating the type of the game program executed by the container and information indicating the directory mounted on the container.
- the second server 310 executes an event in the headless mode based on the event parameter in the process of the selected virtual instance 411 (container) to generate a verification result (S518), and the generated verification result Is transmitted to the first server 300 (S522). Since the event can be executed by eliminating the rate-determining factor (factor determining the speed) in the headless mode, the event result can be generated in a short time.
- FIG. 6A shows the operating state of the CPU when the event is executed in the normal mode
- FIG. 6B shows the operating state of the CPU when the event is executed in the headless mode.
- the CPU in the normal mode, the CPU is not always in a high load, and a high load is generated locally. This corresponds to a part for generating data necessary for drawing a frame on the game screen. Since music and screen display need to be matched to human perception, a wait occurs until a predetermined timing is reached. Therefore, in the normal mode, the CPU operates locally while being limited by the real time of the game progress.
- the GPU and Sound that are the rate-determining elements are not required, and therefore the event can be executed by the CPU alone at a high speed, that is, without waiting for a short time.
- processing that has been distributed so far can be executed in a short time, and verification result generation processing for multiple players can be executed in one event execution period in the normal mode, thus realizing high processing efficiency. it can.
- the user terminal 120 After transmitting the event parameter (S514), the user terminal 120 executes the event based on the event parameter and generates an event result (S524).
- the user result that is the result of the event generated in the user terminal 120 is transmitted to the server 130 (S526).
- the result of the event is a battle win / loss result.
- battle graphics and sound are output using the output device 202 of the user terminal 120 using a GPU, a sound source chip, and the like, and this becomes a rate-determining factor, and the event result compared to the verification result generation unit 404 Takes time to generate.
- the fraud verification unit 405 of the first server 300 performs fraud verification by comparing the user result generated by the user terminal 120 with the verification result generated by the verification result generation unit 404 (S528). If both the results are the same, the user result is valid, and if both the results are different, it is determined to be invalid. The determination of results need not necessarily require exact agreement. If the results match within a certain range, it can be determined that there is no fraud. For example, if the results of winning and losing match, it can be determined that the difference in other parameters such as damage is allowed within a certain range.
- the fraud verification unit 405 transmits a fraud detection signal to the game server unit 401, and the game server unit 401 detects that fraud has been detected by the user, the game system administrator, or the like. Processing such as sending a message notifying is performed.
- the verification result generation unit 404 operates a plurality of virtual instances 411 in parallel and executes an event based on parameters received in one selected virtual instance 411 of the plurality of virtual instances.
- other virtual instances may be selected to execute events in parallel based on parameters based on other received parameters.
- the second server 310 can be additionally installed as necessary, so that a scalable system can be constructed.
- the same program as the game program executed on the user terminal 120 can be used.
- a game program in which the game program executed on the user terminal 120 is headless for example, in Unity, which is a widely used game engine
- a headless build setting is selected from the GUI in the headless build setting. It can be easily done with just that. Therefore, even if the game application is changed frequently or in a complicated manner, it is possible to easily configure a fraud detection system corresponding to the change.
- An illegal detection can be realized at high speed and easily by simultaneously executing a plurality of different versions of the game program in the headless mode on the server according to the update status of the game program.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、パラメータに基づいてイベントを実行してユーザ結果を生成するユーザ端末と、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを複数の仮想インスタンスから選択し、選択された仮想インスタンスにおいてパラメータに基づいてイベントを実行して検証用結果を生成する、検証用結果生成部と、ユーザ結果と検証用結果とを比較して、ユーザ端末において不正が行われたか否かを決定する、不正検証部と、を備えるシステム。
Description
本発明は、ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法に関する。
近年、スマートフォンやPC等の汎用的な電子装置上で動作し、オープンなネットワークを通じてサーバと通信するオンラインゲームが広く普及している。ゲームロジックと密に連動したグラフィカルな演出やサウンドでの演出が魅力の一つとなっているネイティブアプリを用いるようなゲームは、ゲームロジックとこれらの演出を密に連携させるためには、ゲームロジックのほとんどをクライアント側に実装する必要がある。これらゲームロジックをサーバ側に実装した場合は、演出を行う前後に常にサーバサイドとの通信が必要になるため、クライアントの応答性を低下させるとともに、サーバ側でのリクエストの輻輳を招くことになるためである。
このような形態のゲームにおいては、ゲームロジックを制御するプログラムがクライアント側に実装されるため、アプリそのものの改変、クライアント側のメモリ内容や通信内容の改変等により、改ざんされたデータをサーバ側へ送信する不正(チート)が行われやすいという問題がある。特許文献1は、ゲームプログラムへの改変をメモリのスキャン等を通じて検出する技術を開示する。
しかしながら、特許文献1に開示された方法を用いた場合には、メモリをスキャンするための専用のプログラムを作成する必要があるとともに、ゲームプログラムの更新があった場合には、その更新内容に対応するように専用プログラムもまた更新しなければならず、メンテナンスを継続するコストは高く、リバースエンジニアリングにより適切な不正検出が妨げられる恐れがある。したがって、クライアント側で行われるゲームデータの不正な改ざんに対する有効な手法は依然確立されていない。
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一実施態様におけるシステムは、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムであって、ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するユーザ端末と、検証用結果生成部と不正検証部とを有するサーバとを備え、前記検証用結果生成部は、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、前記不正検証部は、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する。
前記検証用結果生成部は、前記ゲームプログラムをヘッドレスモードで実行することにより、少なくともグラフィック処理及びサウンド処理を無効化してイベントを実行させ前記検証用結果を生成してもよい。
前記複数の仮想インスタンスから選択することは、仮想インスタンスが実行するゲームプログラムの種別を示す情報及び仮想インスタンスにマウントされたディレクトリを示す情報を含む型情報に基づいて仮想インスタンスを識別し、ユーザ端末において実行されるゲームプログラムと同一の型情報を有し、当該ゲームプログラムと同一のパラメータを入力すると当該ゲームプログラムと同一の結果を生成する仮想インスタンスを選択してもよい。
前記検証用結果生成部は、単一の仮想インスタンス管理部を有し、前記検証用結果生成部は、前記複数の仮想インスタンスを並列的に動作させ、前記検証用結果生成部の単一の仮想インスタンス管理部が、仮想インスタンスからの入出力割り込み信号に基づいて当該仮想インスタンスの稼働状態を判定することにより、前記複数の仮想インスタンスのうちの1つの選択された仮想インスタンスにおいて受信したパラメータに基づいてイベントを実行している間に、他の仮想インスタンスを選択して他の受信したパラメータに基づいてイベントを並列的に実行することを可能としてもよい。
前記仮想インスタンスはコンテナ型仮想化を実現するものとすることができる。
前記サーバは、ロードバランサ及び複数の検証用結果生成部を備え、前記複数の検証用結果生成部の各々が単一の仮想インスタンス管理部を備え、前記ロードバランサは、受信したパラメータに基づくイベントの実行をいずれかの検証用結果生成部へ割り当て、前記単一の仮想インスタンス管理部は、当該単一の仮想インスタンスを含む検証用結果生成部において空いている仮想インスタンスを検索し、空いている仮想インスタンスのいずれか1つを、当該単一の検証用結果生成部に割り当てられたイベントの実行を行う仮想インスタンスとして選択してもよい。
また、本発明の一実施態様におけるサーバは、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムにおいて使用されるサーバであって、前記システムにおけるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、前記サーバは、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する。
更に、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定してもよい。
さらにまた、本発明の一実施態様におけるプログラムは、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためシステムにおけるサーバによって実行されるプログラムであって、前記システムにおけるユーザ端末は、ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、前記プログラムは、サーバに、ユーザ端末を仮想化するための複数の仮想インスタンスを生成する段階と、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行する段階と、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択する段階と、前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する段階と、を実行させる。
本発明の一実施態様におけるシステムにおいて実行される方法は、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムにおいて実行される方法であって、ユーザ端末がゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、検証用結果生成部が、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、不正検証部が、前記ユーザ端末から受信されたユーザ結果と検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する。
さらに、本発明の一実施態様におけるサーバによって実行される方法は、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムのサーバによって実行される方法であって、前記システムに含まれるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するシステムにおいて、前記サーバが、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する。
本発明によれば、サーバでゲームプログラムをヘッドレスモードで実行することにより、高速かつ容易に不正検出を実現することを可能とする。
以下、図面を参照して、本発明の一つの実施形態を説明する。本実施形態に係る不正検出システム100は、図1に示すように、ネットワーク110を介して接続された1以上のユーザ端末120(クライアント)とサーバ130を備えるシステムによって実現することができる。
本実施形態におけるユーザ端末120はネットワーク110を介してサーバ130と通信しつつゲームプログラムを実行する装置であり、例えば、携帯電話機、スマートフォン、タブレット端末、携帯ゲーム機等の電子装置である。ユーザ端末120は、図2に示したとおり、処理装置201、出力装置202、入力装置203、記憶装置206、通信装置207及びバス208を備えることができる。記憶装置206はゲームプログラム(ゲームアプリ)等のプログラム209を格納する。
処理装置201は、プログラム209、入力装置203からの入力データまたは通信装置207から受信したデータ等に基づいて各種の処理を行う。処理装置201は、ユーザ端末120が備える各装置を制御するプロセッサを備えており、プロセッサが含むレジスタや記憶装置206をワーク領域として各種処理を行う。これらの各構成部はバス208によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。出力装置202は、処理装置201の制御に従って、ゲーム画面の表示や音声を出力する。入力装置203は、タッチパネル、タッチパッド、入力ボタン等のようにユーザからの入力を受け付ける機能を有するものである。
記憶装置206は、ハードディスク、メインメモリ、及びバッファメモリを含む。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージまたは不揮発性メモリであってもよく、着脱可能なものであってもかまわない。例えばユーザ端末120がスマートフォンである場合はROM及びRAMを含む。記憶装置206には、プログラム209や当該プログラムの実行に伴って参照されうる各種のデータが記憶される。プログラム209は、オペレーティングシステム、またはビデオゲーム、ウェブブラウザ等のプレイヤ入力を要求するあらゆるアプリケーションのためのプログラムやデータを含む。
通信装置207は、移動体通信、無線LAN等の無線通信やイーサネット(登録商標)ケーブル、USBケーブル等を用いた有線通信を行う。この通信装置207によって、プログラムをサーバ130からダウンロードして、記憶装置206に格納することもできる。CD/DVD等の光学ディスクにプログラムを格納し、通信装置207に光学ドライブを接続して、光学ディスクからプログラム等を読み込んで記憶装置206に格納してもよい。
図3は本実施形態に係るサーバ130のハードウェア構成を示すブロック図である。本実施形態においてサーバは1つの第1のサーバ300と2以上の第2のサーバ310を含むサーバ群とするが、1つのサーバ装置のみによって実現することもできる。
第1のサーバ300及び第2のサーバ310は同様のハードウェア構成を備えるものであり、処理装置301、311、出力装置302、312、入力装置303、313、記憶装置306、316及び通信装置307、317を備える。これらの各構成部はバス308、318によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。第1のサーバと第2のサーバは互いの通信装置307、317を介して接続される。
処理装置301、311は、第1及び第2のサーバ300、310が備える各装置を制御するプロセッサを備えており、記憶装置306、316をワーク領域として各種処理を行う。出力装置302、312はサーバのユーザに情報を表示する機能を有する。入力装置303、313はキーボードやマウス等のようにユーザからの入力を受け付ける機能を有するものである。
記憶装置306、316は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム309、319が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージまたは不揮発性メモリであってもよく、着脱可能なものであってもかまわない。記憶装置306、316には、プログラム309、319や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。通信装置307、317はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク110へ接続する。
図4は本発明のシステム100の機能ブロック図の一例を示す。ユーザ端末120はゲーム実行部400を備える。サーバ130は、ゲームサーバ部401、ロードバランサ402、検証用結果生成部404及び不正検証部405を備える。本実施形態においては、第1のサーバ300が、ゲームサーバ部401、ロードバランサ402及び不正検証部405を備え、第2のサーバが検証用結果生成部404を備える。サーバ130は複数の第2のサーバを有し、第2のサーバの各々が検証用結果生成部404を備える。他の実施形態においては、1つ以上のサーバ装置のいずれかが各機能部を有することが可能であり、いずれのサーバ装置がいずれの機能部を有してもよい。例えば、第2のサーバが不正検証部405を有することも可能であるし、不正検証部405を備える第3のサーバを設けてもよい。また、1つのサーバがすべての機能部を有することもできる。
ユーザ端末120のゲーム実行部400は、ゲームプログラム及びゲームデータ等に基づいてゲームを進行させる。所定のタイミングで所定のイベントを発生させるとともに、ユーザからの入力等に基づいて、イベント用のパラメータを決定し、ゲームサーバ部401に送信するとともに、イベントを実行してイベントの結果を生成し、ゲームサーバ部401に送信する。イベントの結果は出力装置202によってユーザに提示される。
ゲームサーバ部401は、各ユーザ端末120からのアクセスを受け付けて、ネットワークを介したゲームサービスを提供する。例えば、各ユーザIDに紐付けてユーザのゲーム進行状況等のデータを記憶し、要求に応じてユーザ端末120へ送信したり、他プレイヤとの対戦ゲーム等においては他プレイヤとの間で入力情報を送受信する等のサービスを提供する。ロードバランサ402は、ゲームサーバ部401がゲーム実行部400から受信したイベントパラメータに基づく検証用結果生成処理を実行するための要求を複数の検証用結果生成部404のいずれかに割り当てる。
検証用結果生成部404は、イベントパラメータに基づいて検証用結果を生成して、不正検証部405に送信する。検証用結果は、不正検出のために生成されるイベントの結果である。検証用結果生成部404は、仮想インスタンス管理部410及び複数の仮想インスタンス411を有する。仮想インスタンス管理部410はロードバランサ402から割り当てられた検証用結果生成処理を実行するために、当該仮想インスタンス管理部410が含まれる検証用結果生成部404の複数の仮想インスタンス411から一つを選択する。
仮想インスタンス411はユーザ端末を仮想化するための仮想インスタンスであり、例えば、docker(登録商標)等の「コンテナ」と呼ばれるオペレーティングシステム・レベルの仮想化技術を用いることにより実現できる。docker(登録商標)は、Linux(登録商標)カーネルが提供するLinuxコンテナを制御し、プロセス単位での仮想化、すなわち、CPUの利用とファイルシステムの利用を、他のプロセスから分離された空間を提供することができる。各コンテナ同士は相互に分離されているため、あたかも、オペレーティングシステム内で、唯一動作するゲームアプリとしてふるまうことが可能になる。そのため、各コンテナにおいてゲームプログラムを実行して、ゲームプログラムのプロセスを起動することにより、ユーザ端末におけるゲームプログラムの実行を仮想的に実現することができる。したがって、1つのサーバ装置において複数の仮想インスタンスを生成して、同時に複数のゲームプログラムを隔離して並列に実行し、検証用結果を生成することができる。本実施形態においては、仮想インスタンス411としてdocker(登録商標)の「コンテナ」を用いる。
仮想インスタンス411における検証用結果生成処理は、ユーザ端末120においてゲームをプレイするために実行されるゲームプログラムを、サーバ130においてヘッドレスモードで実行することにより実行される。本実施形態においてヘッドレスモードとは、GPUにアクセスするグラフィック処理を無効化し、さらに、音源チップにアクセスするサウンド処理、および、外部サーバへのアクセス処理を無効化するモードである。これにより、CPU、メモリ、二次記憶装置のみを使用する状態、すなわち、コンテナ内部に閉じたリソースへのアクセスのみでゲームを実行することができるため、人間が閲覧することを前提としたアニメーション処理スピード、人間が聞くことを前提とした音声の再生スピードといった律速要因(速度を決める要因)を排除することができるようになる。さらに、これらのグラフィック機器やサウンド機器は、一般的にCPUの外にある外部機器として実装されており、CPUと外部機器との間のI/O処理にかかる同期のための待ち時間も省略することができる。これにより、人間のための演出や、外部機器のための同期待ちといったウェイト処理を省いた、CPU単独の処理速度のみに依存するノー・ウェイト(No Wait)処理で、ゲームを高速に動作させることができる。
本発明においてゲームプログラムをヘッドレスモードで実行することは、ヘッドレスモードでゲームプログラムを実行することと、ヘッドレス化されたゲームプログラムを実行することのいずれであってもかまわない。ゲームをヘッドレス状態で進行させることができれば、どのような態様での実行であってもかまわない。広く普及しているゲームエンジンであるUnityにおいてはGUIからヘッドレスモードを選択するだけで容易にヘッドレス化されたゲームプログラムを生成することが可能である。すなわち、ユーザ端末120用のゲームプログラムを再利用して、不正検出用のゲームプログラムを容易に用意することができる。
不正検証部405は、ユーザ端末120からゲームサーバ部401を経由して受信されたユーザ端末120によって実行されたイベントの結果であるユーザ結果と検証用結果生成部404によって生成された検証用結果とを比較して、不正検証を行う。両者が少なくとも一定程度異なれば、ユーザ端末120においてユーザの不正な情報変更等によってイベントの結果が改ざんされたことを示す。
本実施形態において各機能部は、図2及び3に記載されたハードウェア構成に含まれるプログラムが処理装置によって実行され、出力装置、入力装置、記憶装置及び通信装置の各ハードウェアとソフトウェアとが協働して動作することによって実現されるが、各機能に対応する電子回路等を設けて実現されてもよい。
次に、本実施形態におけるユーザ端末120及びサーバ(群)130の動作のフローチャートを図5に示した。サーバ(群)130は第1のサーバ300及び第2のサーバ310を含む。本実施形態においては、第2のサーバ310は複数あるものとするが、図5においては簡略化のために1つの第2のサーバ310のみを図示した。
第2のサーバ310においてまず複数の仮想インスタンス411を生成し(S501)、生成された複数の仮想インスタンス411において、ゲームプログラムをヘッドレスモードで実行してゲームプログラムのためのプロセスを起動し(S502)、ユーザ端末120からイベント用のパラメータの受信を待ち受ける。ゲームプログラムはヘッドレスモードで実行される点を除いて、ユーザ端末120において実行されるものと同一である。第2のサーバ310が同時に実行できるゲームプログラムの最大数を事前に見積って、最大数を上限として仮想インスタン411としてのコンテナで仮想化したゲームプログラムのプロセスを起動する。
本実施形態において、ゲームはコンピュータを対戦相手(NPC)とするカード対戦ゲームであり、イベントは対戦相手とのバトルとするが、対戦相手が他プレイヤであってもよいし、他の形態のゲームであっても同様に実施可能である。また、ここではバトルはオートバトルとし、バトル開始時にユーザ入力等に基づいて決定されたパラメータに基づいて自動的にバトルが進行して終了するものとするが、バトル開始後にユーザ入力等がなされてイベントパラメータが追加、更新等され、バトルが進行する場合であっても、逐次イベントパラメータをサーバ130へ送信することにより、同様に実現できる。
ユーザ端末120においては、ゲームプログラムをユーザ端末120にダウンロードしてインストールした後、ゲームをプレイできるように設定する。そして、ゲームプログラムを実行すると(S504)、必要なゲームデータをサーバ130に要求する(S506)。第1のサーバ300のゲームサーバ部401はゲームデータ要求を受信すると、当該ユーザのためのゲームデータをユーザ端末120に送信する(S508)。
ユーザ端末120はこれを受信してゲームの進行を開始する。ゲームが進行すると、所定のタイミングでイベントが発生される(S510)。ここではイベントはゲームプログラムによって自動で制御される対戦相手(NPC)とのバトルとする。プレイヤは自分が所有する複数のカードの中から選択された所定数のカードを含むカード群を用いて他プレイヤと対戦する。バトルが発生するとNPCは本バトル用に使用する自己のカード群を決定し、ユーザは自己のカード群を決定する。ユーザ端末120はこれらの決定されたカード群を含むパラメータを決定し(S512)、これをサーバ130へ送信する(S514)。
第1のサーバ300はこれを受信すると、ロードバランサ402を用いて、本イベントのための検証用結果生成処理を複数の検証用結果生成部404のうちのいずれか一つに例えばラウンドロビン方式で割り当て、割り当てられた検証用結果生成部404として機能する第2のサーバ310にイベントパラメータを送信する(S516)。
本実施形態における検証用結果生成部404は、生成された仮想インスタンス411の数だけ同時に検証用結果生成処理を実行することが可能である。また、この検証用結果生成処理は、ゲームにおけるバトル時間の数分の一から数十分の一の時間等の短期間の間に完了し新たな処理要求を受付可能になる。この挙動は、従来のWebサーバ等とは異なる挙動であるため、本実施形態に適したロードバランサ402を設定することが好ましい。ロードバランサ402は、各第2のサーバ310の仮想インスタンス411に万遍無くタスクが割り当てられるように、例えば、ラウンドロビンでタスクを振り分けた後、いずれかの第2のサーバ310でキャパシティ超過を意味するエラーが発生したときには、全てのサーバ310に対してリトライ可能にし、すべてのサーバ310のキャパシティを超過したときのみ、エラーとするという実装が考えられる。他の実装としては、ロードバランサ402は、各第2のサーバ310の仮想インスタンス411のうち、空いているものに即座にかつ万遍無くタスクが割り当てられるように、例えば、空き状態にある第2のサーバ310のIPアドレスを格納するキューを持ち、いずれかの第2のサーバ310が処理完了の通知を発行したときに、当該サーバをキューの最後に追加し、リクエストが来た場合は、そのキューの先頭から割り当てていく方式が考えられる。このキューが空になっているときにリクエストが来たときのみ、エラーとするという実装が考えられる。
検証用結果生成処理を割り当てられた第2のサーバ310は、検証用結果生成要求としてのイベントパラメータを受信し、これに基づいて検証用結果を生成するために複数の仮想インスタンス411から1つを選択する(S518)。本実施形態においては、仮想インスタンス管理部410が、非同期I/Oにより仮想インスタンス411を管理する。具体的には、第2のサーバ310の検証用結果生成部404は単一の仮想インスタンス管理部410を有しており、当該仮想インスタンス管理部410が、並列的に動作させた仮想インスタンスからの入出力割り込み信号に基づいて当該仮想インスタンスの稼働状態を判定することにより、並列的に動作させた仮想インスタンスのうちの1つの選択された仮想インスタンスにおいて他のイベントを実行させている間に、空いている仮想インスタンス411を検索し、空いている仮想インスタンス411のいずれか1つを、イベントの実行のための仮想インスタンス411として選択する。
本実施形態においては、ファイルを経由して第1のサーバ300と仮想インスタンス411におけるプロセスとの通信を行う。より具体的には、第2のサーバ310がイベントパラメータを例えば各パラメータを格納するJSONファイルとして第1のサーバ300から受信して特定のファイルパスに書き込み、仮想インスタンス411におけるプロセスが当該特定のファイルパスを監視し、ファイルが書き込まれたときに、そのファイルをイベントパラメータとして読み込み、イベントを実行し、検証用結果を別のファイルに書き込むと、当該別のファイルが第1のサーバ300へ送信される。パイプによるプロセス間通信等の他の方法でも実施可能である。
ここで、ユーザ結果と検証用結果とが不正がなくとも少なくとも一定程度の同じ結果を返さない場合があれば、ユーザ結果と検証用結果とを比較しただけではユーザによる不正を正確に検出することはできない。本明細書においては、同じ引数を与えたときに少なくとも一定程度の同じ結果を返す場合には結果一致性があるといい、少なくとも一定程度の同じ結果を返さない場合には結果一致性がないという。すなわち、ユーザ端末120において実行されるゲームプログラムにおいて決定されたイベントパラメータを用いてイベントを実行するプロセスと、サーバ130における仮想インスタンス411としてのコンテナにおいてヘッドレスモードで実行されるゲームプログラムにおいて実行されるプロセスとが結果一致性を有していなければ、ユーザ結果と検証用結果とを比較するだけでは正確に不正を検出することはできない。
本実施形態においては、ユーザ端末120において実行されるゲームプログラムは、イベントパラメータ等の情報を書き込むためにサーバ130のファイルシステムにおけるいずれかのディレクトリにマウントされる。仮想インスタンス411としてのコンテナもまたサーバ130のファイルシステムのいずれかのディレクトリにマウントされる。ここでは、コンテナは、マウントされたディレクトリに対してリードオンリーで参照することとする。
ユーザ端末120におけるゲームプログラムと結果一致性を有するコンテナを選択するために、コンテナが実行するゲームプログラムの種別を示す情報及びコンテナにマウントされたディレクトリを示す情報を含む型情報に基づいてコンテナを識別する。そして、ユーザ端末120において実行されるゲームプログラムと同一の型情報を有するコンテナを、結果一致性を有するコンテナとして選択する。ゲームプログラムの種別を示す情報は、ゲームの種類やゲームプログラムのバージョン等を示す情報である。コンテナにマウントされたディレクトリを示す情報は、コンテナからサーバ130のファイルシステムをマウントする際の「パス」とすることができる。すなわち、ユーザ端末120及びコンテナにおいて実行されるゲームプログラムの種別が同じであり、同じディレクトリにマウントされている場合には結果一致性があり、そのような結果一致性を有するコンテナを選択する。
表1は、仮想インスタンス411としてのコンテナがマウントされたディレクトリを参照するかコピーするか、そして、そのディレクトリにリードオンリー(Read-Only)でアクセスするか、読み書き(Read-Write)モードでアクセスするかに応じて、結果一致性を検証する方法を分類したものである。この表に示すとおり、ゲームプログラムの特性に応じた結果一致性の検証により、ユーザ端末120で実行されるゲームプログラムと結果一致性があるコンテナを選択することが可能である。
表1における「参照」は、コンテナにマウントされたサーバのディレクトリをコンテナが参照するものであることを意味し、「コピー」はマウントされたサーバのディレクトリ及びファイルを、コンテナがコンテナイメージ内にコピーすることを意味する。Read-Only はマウントしたディレクトリに対してコンテナ内のプロセスがリードオンリーモードでアクセスすることを意味し、Read-Writeはコンテナ内のプロセスがマウントしたディレクトリに対して読み書き可能モードでアクセスすることを意味する。
すなわち、ユーザ端末120とコンテナで実行されるゲームプログラムの種類及びバージョンを示す情報が同じであり、ユーザ端末120から送信されたイベントパラメータが書き込まれたサーバ130におけるディレクトリと同じディレクトリを「参照」するコンテナにおけるプロセスがリードオンリーモードでアクセスする場合は、ユーザ端末120で実行されるゲームプログラムと結果一致性がある一方で、読み書きモードでアクセスする場合は結果一致性がない。また、コンテナがユーザ端末120から送信されたイベントパラメータが書き込まれた第2のサーバ310におけるディレクトリをコピーし、プロセスがリードオンリーモードでアクセスする場合には、コピーしたファイルが同じであれば結果一致性があり、リードオンリーモードでアクセスする場合には、コピーした「内容」が同じで、かつ、内容の変更について互いに同期している場合には結果一致性がある。
前述の実施形態においては、コンテナはマウントされたディレクトリに対してリードオンリーで参照するため、コンテナが実行するゲームプログラムの種別を示す情報及びコンテナにマウントされたディレクトリを示す情報を含む型情報に基づいて、ユーザ端末120において実行されるゲームプログラムと同一の型情報を有するコンテナを選択することで、結果一致性を有するコンテナ(仮想インスタンス411)を選択することが可能である。
コンテナにマウントされたディレクトリへのアクセスがリードオンリーによる参照に限られない場合であっても、マウントされたディレクトに対して「参照」するか「コピー」するか、及び、当該ディレクトリに対するアクセスモードを示す情報も型情報に含ませることによって、当該型情報及び表1に記載した基準等に基づいて、様々な環境においても結果一致性を有するコンテナを選択し、不正検出を保証することを可能とする。
第2のサーバ310は、選択された仮想インスタンス411(コンテナ)のプロセスにおいてイベントパラメータに基づいてイベントをヘッドレスモードにて実行して検証用結果を生成し(S518)、生成された検証用結果を第1のサーバ300へ送信する(S522)。ヘッドレスモードにより律速要因(速度を決める要因)を排除してイベントを実行できるから、短時間でイベント結果を生成することができる。
この点を図6を用いてより詳細に説明する。図6(a)は通常のモードでイベントを実行する場合のCPUの稼働状態を示し、(b)はヘッドレスモードでイベントを実行する場合のCPUの稼働状態を示す。(a)に示したとおり、通常モードにおいては、CPUは常に高負荷にあるわけではなく、局所的に高負荷が発生する。これはゲーム画面のフレーム描画に必要なデータを生成する部分等に相当する。そして、音楽と画面表示は、人間の知覚に合わせる必要があるため、所定のタイミングとなるまでウェイトが発生する。したがって、通常モードにおいてCPUはゲーム進行の実時間で律速されながら、局所的に動作している。一方、ヘッドレスモードでは、律速要素となるGPUとSoundを必要としないため、CPU単独でイベントを高速に、すなわち、ウェイトをかけずに短時間で実行可能である。これにより、これまで分散していた処理を短時間にまとめて実行でき、通常モードでの1人のイベント実行期間で複数プレイヤの検証用結果生成処理を実行可能であるため、高い処理効率を実現できる。
ユーザ端末120は、イベントパラメータを送信した後(S514)、当該イベントパラメータに基づいてイベントを実行して、イベントの結果を生成する(S524)。ユーザ端末120において生成されたイベントの結果であるユーザ結果をサーバ130に送信する(S526)。本実施形態においてイベントの結果とはバトルの勝敗結果である。ユーザ端末120においては、GPU及び音源チップ等を用いて、バトルグラフィック及び音声をユーザ端末120の出力装置202を用いて出力するから、これが律速要因となり、検証用結果生成部404に比べてイベント結果の生成に時間を要する。
第1のサーバ300の不正検証部405は、ユーザ端末120によって生成されたユーザ結果と検証用結果生成部404によって生成された検証用結果とを比較することにより不正検証を行う(S528)。両結果が同一であればユーザ結果は正当であり、両結果が異なれば不正であると判定する。結果の判定は必ずしも厳密に一致することを要求する必要はない。一定程度の範囲で結果が一致していれば不正がないと判定することができる。例えば、勝敗の結果が一致していれば、その他の被ダメージ等のパラメータの相違が一定範囲以内であれば許容する、という判定を行うことができる。不正であると判定された場合には、例えば、不正検証部405はゲームサーバ部401へ不正検出信号を送信し、ゲームサーバ部401は本ユーザやゲームシステム管理者等へ不正が検出されたことを通知するメッセージを送信する等の処理が実行される。
本実施形態においては、検証用結果生成部404においてヘッドレスモードでゲームプログラムを実行することにより、ノー・ウェイトで高速にイベントを実行して結果を生成することができる。さらに、検証用結果生成部404において複数の仮想インスタンス411を並列的に動作させ、複数の仮想インスタンスのうちの1つの選択された仮想インスタンス411において受信したパラメータに基づいてイベントを実行している間に、他の仮想インスタンスを選択して他の受信したパラメータに基づいてパラメータに基づいてイベントを並列的に実行することができる。第2のサーバ310を複数用意することにより、さらに多くの仮想インスタンスを並列的に動作させることが可能である。このため、高速かつ並列に検証用の結果を生成することが可能となり、多数のユーザの不正検証を効率的に行うことができる。また、第2のサーバ310は必要に応じて追加的に設置することもできるのでスケーラブルなシステムを構築することができる。
仮想インスタンス411においてユーザ端末120で実行されるゲームプログラムをヘッドレスモードで実行する場合には、ユーザ端末120で実行されるゲームプログラムと同一のプログラムを利用することができる。ユーザ端末120で実行されるゲームプログラムをヘッドレス化したゲームプログラムを用いる場合には、例えば、広く普及しているゲームエンジンであるUnityにおいてはヘッドレスビルドの設定はGUIからヘッドレスモードを選択するだけで容易に行う可能である。したがって、ゲームアプリを頻繁に、あるいは複雑に変更した場合であっても、変更に対応した不正検出用のシステムを容易に構成することが可能である。
また、ユーザ端末120において実行されるゲームプログラムと同一の型情報を有する仮想インスタンス411を選択することで、複数のゲーム種別が含まれる等の様々な環境においてもユーザ端末120において実行されるゲームプログラムと結果一致性を有するコンテナを選択することで正確な不正検出を保証することができる。
ゲームプログラムをその更新状況に応じて、当該プログラムの複数の異なるバージョンをサーバでヘッドレスモードで同時に実行することにより、高速かつ容易に不正検出を実現することができる。
さらに、ゲームプログラムを仮想インスタンスの制御化におくことにより、ゲームプログラムのバージョンアップやアセット更新時に、既存のバージョンのゲームプログラムを動作させたまま、新しいバージョンへの移行を行うライブ・マイグレーションを実現できる。また、処理ノードのオートスケーリングも容易である。
以上に説明した処理または動作において、矛盾が生じない限りにおいて、処理または動作を自由に変更することができる。また以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
100…不正検出システム
110…ネットワーク
120…ユーザ端末
130…ゲームサーバ
201…処理装置
202…出力装置
203…入力装置
206…記憶装置
207…通信装置
208…バス
209…プログラム
300…第1のサーバ
301…処理装置
301…処理装置
302…出力装置
303…入力装置
306…記憶装置
306…記憶装置
307…通信装置
308…バス
309…プログラム
310…第2のサーバ
400…ゲーム実行部
401…ゲームサーバ部
402…ロードバランサ
404…検証用結果生成部
405…不正検証部
410…仮想インスタンス管理部
411…仮想インスタンス
110…ネットワーク
120…ユーザ端末
130…ゲームサーバ
201…処理装置
202…出力装置
203…入力装置
206…記憶装置
207…通信装置
208…バス
209…プログラム
300…第1のサーバ
301…処理装置
301…処理装置
302…出力装置
303…入力装置
306…記憶装置
306…記憶装置
307…通信装置
308…バス
309…プログラム
310…第2のサーバ
400…ゲーム実行部
401…ゲームサーバ部
402…ロードバランサ
404…検証用結果生成部
405…不正検証部
410…仮想インスタンス管理部
411…仮想インスタンス
Claims (11)
- ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムであって、
ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するユーザ端末と、
検証用結果生成部と不正検証部とを有するサーバとを備え、
前記検証用結果生成部は、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、
前記不正検証部は、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する、
ことを特徴とするシステム。 - 前記検証用結果生成部は、前記ゲームプログラムをヘッドレスモードで実行することにより、少なくともグラフィック処理及びサウンド処理を無効化してイベントを実行させ前記検証用結果を生成する、請求項1に記載のシステム。
- 前記複数の仮想インスタンスから選択することは、
仮想インスタンスが実行するゲームプログラムの種別を示す情報及び仮想インスタンスにマウントされたディレクトリを示す情報を含む型情報に基づいて仮想インスタンスを識別し、
ユーザ端末において実行されるゲームプログラムと同一の型情報を有し、当該ゲームプログラムと同一のパラメータを入力すると当該ゲームプログラムと同一の結果を生成する仮想インスタンスを選択する、請求項1または2に記載のシステム。 - 前記検証用結果生成部は、単一の仮想インスタンス管理部を有し、
前記検証用結果生成部は、前記複数の仮想インスタンスを並列的に動作させ、
前記検証用結果生成部の単一の仮想インスタンス管理部が、仮想インスタンスからの入出力割り込み信号に基づいて当該仮想インスタンスの稼働状態を判定することにより、前記複数の仮想インスタンスのうちの1つの選択された仮想インスタンスにおいて受信したパラメータに基づいてイベントを実行している間に、他の仮想インスタンスを選択して他の受信したパラメータに基づいてイベントを並列的に実行することを可能とする、
請求項1~3のいずれか1項に記載のシステム。 - 前記仮想インスタンスはコンテナ型仮想化を実現するものである、請求項1~4のいずれか1項に記載のシステム。
- 前記サーバは、ロードバランサ及び複数の検証用結果生成部を備え、
前記複数の検証用結果生成部の各々が単一の仮想インスタンス管理部を備え、
前記ロードバランサは、受信したパラメータに基づくイベントの実行をいずれかの検証用結果生成部へ割り当て、
前記単一の仮想インスタンス管理部は、当該単一の仮想インスタンスを含む検証用結果生成部において空いている仮想インスタンスを検索し、空いている仮想インスタンスのいずれか1つを、当該単一の検証用結果生成部に割り当てられたイベントの実行を行う仮想インスタンスとして選択する、
請求項1~5のいずれか1項に記載のシステム。 - ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムにおいて使用されるサーバであって、
前記システムにおけるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、
前記サーバは、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する、
ことを特徴とするサーバ。 - 更に、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する、
請求項7に記載のサーバ。 - ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためシステムにおけるサーバによって実行されるプログラムであって、前記システムにおけるユーザ端末は、ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、前記プログラムは、サーバに、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成する段階と、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行する段階と、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択する段階と、
前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する段階と、
を実行させることを特徴とするプログラム。 - ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムにおいて実行される方法であって、
ユーザ端末がゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、
検証用結果生成部が、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、
不正検証部が、前記ユーザ端末から受信されたユーザ結果と検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する、
ことを特徴とする方法。 - ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムのサーバによって実行される方法であって、
前記システムに含まれるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するシステムにおいて、
前記サーバが、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する、
ことを特徴とする方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980043902.4A CN112368057A (zh) | 2018-05-01 | 2019-04-18 | 用于检测游戏中的用户作弊的系统、服务器、程序和方法 |
US17/085,030 US11395972B2 (en) | 2018-05-01 | 2020-10-30 | System, server, program, and method for detecting cheating by user in game |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-088223 | 2018-05-01 | ||
JP2018088223A JP6473259B1 (ja) | 2018-05-01 | 2018-05-01 | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/085,030 Continuation US11395972B2 (en) | 2018-05-01 | 2020-10-30 | System, server, program, and method for detecting cheating by user in game |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019211992A1 true WO2019211992A1 (ja) | 2019-11-07 |
Family
ID=65443122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/016665 WO2019211992A1 (ja) | 2018-05-01 | 2019-04-18 | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11395972B2 (ja) |
JP (1) | JP6473259B1 (ja) |
CN (1) | CN112368057A (ja) |
WO (1) | WO2019211992A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111569434A (zh) * | 2020-05-14 | 2020-08-25 | 宁波元素人网络科技有限公司 | 一种游戏代码校验的方法及系统 |
WO2022164385A1 (en) * | 2021-01-28 | 2022-08-04 | Garena Online Private Limited | A method for implementing multi-player games |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909630B (zh) * | 2019-11-06 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 一种异常游戏视频检测方法和装置 |
JP6768982B1 (ja) * | 2020-03-19 | 2020-10-14 | 株式会社Cygames | プログラム検証のための方法、プログラム、システム及びサーバ |
CN113694538A (zh) * | 2021-08-26 | 2021-11-26 | 深圳市天天来玩科技有限公司 | 一种在线棋牌处理方法、服务器和存储介质 |
KR102425439B1 (ko) * | 2021-12-27 | 2022-07-27 | 주식회사 엔게이트 | 온라인 및 오프라인 플레이가 가능한 게임에서 오프라인 플레이어의 게임데이터 변조방지 서버 및 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006006473A (ja) * | 2004-06-23 | 2006-01-12 | Sega Corp | オンラインゲーム不正検出方法 |
JP2010227182A (ja) * | 2009-03-26 | 2010-10-14 | Sega Corp | オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 |
JP2014035744A (ja) * | 2012-08-10 | 2014-02-24 | Nippon Telegr & Teleph Corp <Ntt> | 検証管理装置、検証管理方法および検証管理プログラム |
US20150011320A1 (en) * | 2009-09-30 | 2015-01-08 | Zynga Inc. | Apparatuses, methods and systems for a live online game tester |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003252901A1 (en) * | 2002-04-18 | 2003-12-11 | Walker Digital, Llc | Method and Apparatus for Authenticating Data Relating to Usage of a Gaming Device |
US8302199B2 (en) | 2005-04-06 | 2012-10-30 | Valve Corporation | Anti-cheat facility for use in a networked game environment |
US8353757B2 (en) * | 2005-05-27 | 2013-01-15 | Igt | Methods and systems for representing outcomes of a casino game in a non-casino game format |
JP4048215B2 (ja) * | 2006-02-16 | 2008-02-20 | 株式会社コナミデジタルエンタテインメント | ゲーム管理システム及びゲーム管理方法 |
US7753795B2 (en) * | 2006-03-20 | 2010-07-13 | Sony Computer Entertainment America Llc | Maintaining community integrity |
CN102163251A (zh) * | 2010-02-22 | 2011-08-24 | 深圳市腾讯计算机系统有限公司 | 一种游戏作弊的识别方法和设备 |
KR20120086898A (ko) * | 2011-01-27 | 2012-08-06 | 에스케이플래닛 주식회사 | 게임 서비스 시스템, 및 그의 게임 부정 행위를 방지하기 위한 방법 |
CN105214310B (zh) * | 2015-10-13 | 2019-03-29 | 网易(杭州)网络有限公司 | 一种游戏战斗校验方法、系统及服务端 |
US20170249785A1 (en) * | 2016-02-29 | 2017-08-31 | Vreal Inc | Virtual reality session capture and replay systems and methods |
US10463971B2 (en) * | 2017-12-06 | 2019-11-05 | Activision Publishing, Inc. | System and method for validating video gaming data |
-
2018
- 2018-05-01 JP JP2018088223A patent/JP6473259B1/ja active Active
-
2019
- 2019-04-18 CN CN201980043902.4A patent/CN112368057A/zh active Pending
- 2019-04-18 WO PCT/JP2019/016665 patent/WO2019211992A1/ja active Application Filing
-
2020
- 2020-10-30 US US17/085,030 patent/US11395972B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006006473A (ja) * | 2004-06-23 | 2006-01-12 | Sega Corp | オンラインゲーム不正検出方法 |
JP2010227182A (ja) * | 2009-03-26 | 2010-10-14 | Sega Corp | オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 |
US20150011320A1 (en) * | 2009-09-30 | 2015-01-08 | Zynga Inc. | Apparatuses, methods and systems for a live online game tester |
JP2014035744A (ja) * | 2012-08-10 | 2014-02-24 | Nippon Telegr & Teleph Corp <Ntt> | 検証管理装置、検証管理方法および検証管理プログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111569434A (zh) * | 2020-05-14 | 2020-08-25 | 宁波元素人网络科技有限公司 | 一种游戏代码校验的方法及系统 |
CN111569434B (zh) * | 2020-05-14 | 2023-12-15 | 宁波元素人网络科技有限公司 | 一种游戏代码校验的方法及系统 |
WO2022164385A1 (en) * | 2021-01-28 | 2022-08-04 | Garena Online Private Limited | A method for implementing multi-player games |
Also Published As
Publication number | Publication date |
---|---|
US20210046384A1 (en) | 2021-02-18 |
JP6473259B1 (ja) | 2019-02-20 |
US11395972B2 (en) | 2022-07-26 |
JP2019193702A (ja) | 2019-11-07 |
CN112368057A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6473259B1 (ja) | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 | |
JP7066784B2 (ja) | クラウドゲーミングに関するゲームステートセーブ、転送および再開 | |
US10293251B2 (en) | Pre-loading translated code in cloud based emulated applications | |
CN104598257B (zh) | 远程应用程序运行的方法和装置 | |
CN102402462A (zh) | 用于对启用gpu的虚拟机进行负载平衡的技术 | |
US11040285B1 (en) | Secure anti-cheat system | |
RU2701118C2 (ru) | Администрирование центра обработки данных многорежимных серверов | |
US9680894B2 (en) | Multiple virtual machine memory usage reduction system and method | |
US11660534B2 (en) | Pre-loading translated code in cloud based emulated applications | |
CN105607944B (zh) | 一种共享应用环境的方法及装置 | |
JP6228691B1 (ja) | コンテナイメージ配信システム、コンテナイメージ配信方法及びプログラム | |
EP3090340A1 (en) | Multimode gaming server | |
JP2019193771A (ja) | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 | |
US20220233954A1 (en) | System and methods for generating a platform-agnostic game shortcut to launch a game for cloud gaming | |
US20150381766A1 (en) | Application transfer system, application transfer method, terminal, and program | |
WO2021187245A1 (ja) | プログラム検証のための方法、プログラム、システム及びサーバ | |
CN112138372B (zh) | 分布式系统中的数据同步方法及相关设备 | |
JP5626839B2 (ja) | 仮想計算機システム、仮想計算機制御装置および仮想計算機システムの実行方法 | |
KR20200127926A (ko) | 스트리밍에 기초한 게임 제공 방법 및 장치 | |
JP7366223B1 (ja) | ゲームを検査するためのシステム、方法、及びプログラム | |
JP2018067038A (ja) | サーバ、制御方法、プログラム | |
JP2024034073A (ja) | ゲームプログラム、ゲーム装置および情報処理方法 | |
KR20200123950A (ko) | 스트리밍에 기초한 게임 제공 방법 및 장치 | |
CN116450329A (zh) | 一种云资源的管理方法、相关装置、设备以及存储介质 | |
BR112016027181B1 (pt) | Meio de armazenamento em computador, método para gerenciar cargas de trabalho dentro de um centro de dados e centro de dados |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19796777 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19796777 Country of ref document: EP Kind code of ref document: A1 |