JP2019193771A - System, server, program, and method for detecting user's fraudulence in game - Google Patents
System, server, program, and method for detecting user's fraudulence in game Download PDFInfo
- Publication number
- JP2019193771A JP2019193771A JP2019010117A JP2019010117A JP2019193771A JP 2019193771 A JP2019193771 A JP 2019193771A JP 2019010117 A JP2019010117 A JP 2019010117A JP 2019010117 A JP2019010117 A JP 2019010117A JP 2019193771 A JP2019193771 A JP 2019193771A
- Authority
- JP
- Japan
- Prior art keywords
- user
- game
- result
- event
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法に関する。 The present invention relates to a system, a server, a program, and a method for detecting a user's fraud in a game.
近年、スマートフォンやPC等の汎用的な電子装置上で動作し、オープンなネットワークを通じてサーバと通信するオンラインゲームが広く普及している。ゲームロジックと密に連動したグラフィカルな演出やサウンドでの演出が魅力の一つとなっているネイティブアプリを用いるようなゲームは、ゲームロジックとこれらの演出を密に連携させるためには、ゲームロジックのほとんどをクライアント側に実装する必要がある。これらゲームロジックをサーバ側に実装した場合は、演出を行う前後に常にサーバサイドとの通信が必要になるため、クライアントの応答性を低下させるとともに、サーバ側でのリクエストの輻輳を招くことになるためである。 In recent years, online games that operate on general-purpose electronic devices such as smartphones and PCs and communicate with servers through an open network have become widespread. A game that uses a native app that is graphically linked with game logic and that produces sound effects is one of the attractions of game logic. Most need to be implemented on the client side. When these game logics are implemented on the server side, communication with the server side is always required before and after the presentation, so that the responsiveness of the client is lowered and the request side is congested. Because.
このような形態のゲームにおいては、ゲームロジックを制御するプログラムがクライアント側に実装されるため、アプリそのものの改変、クライアント側のメモリ内容や通信内容の改変等により、改ざんされたデータをサーバ側へ送信する不正(チート)が行われやすいという問題がある。特許文献1は、ゲームプログラムへの改変をメモリのスキャン等を通じて検出する技術を開示する。
In this type of game, a program for controlling the game logic is installed on the client side, so that the altered data is transferred to the server side by modifying the application itself, modifying the memory content or communication content on the client side, etc. There is a problem that fraud (cheat) is easily transmitted.
しかしながら、特許文献1に開示された方法を用いた場合には、メモリをスキャンするための専用のプログラムを作成する必要があるとともに、ゲームプログラムの更新があった場合には、その更新内容に対応するように専用プログラムもまた更新しなければならず、メンテナンスを継続するコストは高く、リバースエンジニアリングにより適切な不正検出が妨げられる恐れがある。したがって、クライアント側で行われるゲームデータの不正な改ざんに対する有効な手法は依然確立されていない。
However, when the method disclosed in
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一実施態様におけるシステムは、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムであって、ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するユーザ端末と、検証用結果生成部と不正検証部とを有するサーバとを備え、前記検証用結果生成部は、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、前記不正検証部は、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する。 The present invention has been made in view of the above problems, and has the following characteristics. That is, a system according to an embodiment of the present invention 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 at least the graphic processing and the sound processing to execute the event and generate the verification result by executing the game program in a headless mode.
前記複数の仮想インスタンスから選択することは、仮想インスタンスが実行するゲームプログラムの種別を示す情報及び仮想インスタンスにマウントされたディレクトリを示す情報を含む型情報に基づいて仮想インスタンスを識別し、ユーザ端末において実行されるゲームプログラムと同一の型情報を有し、当該ゲームプログラムと同一のパラメータを入力すると当該ゲームプログラムと同一の結果を生成する仮想インスタンスを選択してもよい。 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. 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.
前記検証用結果生成部は、単一の仮想インスタンス管理部を有し、前記検証用結果生成部は、前記複数の仮想インスタンスを並列的に動作させ、前記検証用結果生成部の単一の仮想インスタンス管理部が、仮想インスタンスからの入出力割り込み信号に基づいて当該仮想インスタンスの稼働状態を判定することにより、前記複数の仮想インスタンスのうちの1つの選択された仮想インスタンスにおいて受信したパラメータに基づいてイベントを実行している間に、他の仮想インスタンスを選択して他の受信したパラメータに基づいてイベントを並列的に実行することを可能としてもよい。 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 may realize container type virtualization.
前記サーバは、ロードバランサ及び複数の検証用結果生成部を備え、前記複数の検証用結果生成部の各々が単一の仮想インスタンス管理部を備え、前記ロードバランサは、受信したパラメータに基づくイベントの実行をいずれかの検証用結果生成部へ割り当て、前記単一の仮想インスタンス管理部は、当該単一の仮想インスタンスを含む検証用結果生成部において空いている仮想インスタンスを検索し、空いている仮想インスタンスのいずれか1つを、当該単一の検証用結果生成部に割り当てられたイベントの実行を行う仮想インスタンスとして選択してもよい。 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.
また、本発明の一実施態様におけるサーバは、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムにおいて使用されるサーバであって、前記システムにおけるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、前記サーバは、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する。 Moreover, 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 installation to run events based on parameters Event from the plurality of virtual instances and executing an event based on the parameters in the selected virtual instance to determine whether fraud has occurred in the user terminal compared to the user result To generate a verification result.
更に、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定してもよい。 Furthermore, 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.
さらにまた、本発明の一実施態様におけるプログラムは、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためシステムにおけるサーバによって実行されるプログラムであって、前記システムにおけるユーザ端末は、ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、前記プログラムは、サーバに、ユーザ端末を仮想化するための複数の仮想インスタンスを生成する段階と、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行する段階と、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択する段階と、前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する段階と、を実行させる。 Furthermore, 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. Executing and receiving by the server Selecting a virtual instance for executing an event from the plurality of virtual instances based on the determined parameters, and determining whether fraud has been performed at the user terminal compared to the user result, And executing an event based on the parameter in the selected virtual instance to generate a result for verification.
本発明の一実施態様におけるシステムにおいて実行される方法は、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムにおいて実行される方法であって、ユーザ端末がゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、検証用結果生成部が、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、不正検証部が、前記ユーザ端末から受信されたユーザ結果と検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する。 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. Virtual Instagram to execute events based on received parameters A plurality of virtual instances are selected from the plurality of virtual instances, an event is executed based on the parameters in the selected virtual instances to generate a verification result, and the fraud verification unit receives the user results received from the user terminal and By comparing with the verification result, it is determined whether fraud has been performed in the user terminal.
さらに、本発明の一実施態様におけるサーバによって実行される方法は、ユーザ端末でプレイされるゲームにおけるユーザの不正を検出するためのシステムのサーバによって実行される方法であって、前記システムに含まれるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するシステムにおいて、前記サーバが、ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する。 Furthermore, 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 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. Run in less mode and the parameters received by the server A virtual instance for executing an event based on the data is selected from the plurality of virtual instances and compared to the user result to determine whether fraud has been performed at the user terminal. In the virtual instance, an event is executed based on the parameter to generate a verification result.
本発明によれば、サーバでゲームプログラムをヘッドレスモードで実行することにより、高速かつ容易に不正検出を実現することを可能とする。 According to the present invention, fraud detection can be realized at high speed and easily by executing a game program in a headless mode on a server.
以下、図面を参照して、本発明の一つの実施形態を説明する。本実施形態に係る不正検出システム100は、図1に示すように、ネットワーク110を介して接続された1以上のユーザ端末120(クライアント)とサーバ130を備えるシステムによって実現することができる。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings. As shown in FIG. 1, the fraud detection system 100 according to the present embodiment can be realized by a system including one or more user terminals 120 (clients) and a
本実施形態におけるユーザ端末120はネットワーク110を介してサーバ130と通信しつつゲームプログラムを実行する装置であり、例えば、携帯電話機、スマートフォン、タブレット端末、携帯ゲーム機等の電子装置である。ユーザ端末120は、図2に示したとおり、処理装置201、出力装置202、入力装置203、記憶装置206、通信装置207及びバス208を備えることができる。記憶装置206はゲームプログラム(ゲームアプリ)等のプログラム209を格納する。
The
処理装置201は、プログラム209、入力装置203からの入力データまたは通信装置207から受信したデータ等に基づいて各種の処理を行う。処理装置201は、ユーザ端末120が備える各装置を制御するプロセッサを備えており、プロセッサが含むレジスタや記憶装置206をワーク領域として各種処理を行う。これらの各構成部はバス208によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。出力装置202は、処理装置201の制御に従って、ゲーム画面の表示や音声を出力する。入力装置203は、タッチパネル、タッチパッド、入力ボタン等のようにユーザからの入力を受け付ける機能を有するものである。
The
記憶装置206は、ハードディスク、メインメモリ、及びバッファメモリを含む。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージまたは不揮発性メモリであってもよく、着脱可能なものであってもかまわない。例えばユーザ端末120がスマートフォンである場合はROM及びRAMを含む。記憶装置206には、プログラム209や当該プログラムの実行に伴って参照されうる各種のデータが記憶される。プログラム209は、オペレーティングシステム、またはビデオゲーム、ウェブブラウザ等のプレイヤ入力を要求するあらゆるアプリケーションのためのプログラムやデータを含む。
The
通信装置207は、移動体通信、無線LAN等の無線通信やイーサネット(登録商標)ケーブル、USBケーブル等を用いた有線通信を行う。この通信装置207によって、プログラムをサーバ130からダウンロードして、記憶装置206に格納することもできる。CD/DVD等の光学ディスクにプログラムを格納し、通信装置207に光学ドライブを接続して、光学ディスクからプログラム等を読み込んで記憶装置206に格納してもよい。
The
図3は本実施形態に係るサーバ130のハードウェア構成を示すブロック図である。本実施形態においてサーバは1つの第1のサーバ300と2以上の第2のサーバ310を含むサーバ群とするが、1つのサーバ装置のみによって実現することもできる。
FIG. 3 is a block diagram illustrating a hardware configuration of the
第1のサーバ300及び第2のサーバ310は同様のハードウェア構成を備えるものであり、処理装置301、311、出力装置302、312、入力装置303、313、記憶装置306、316及び通信装置307、317を備える。これらの各構成部はバス308、318によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。第1のサーバと第2のサーバは互いの通信装置307、317を介して接続される。
The first server 300 and the
処理装置301、311は、第1及び第2のサーバ300、310が備える各装置を制御するプロセッサを備えており、記憶装置306、316をワーク領域として各種処理を行う。出力装置302、312はサーバのユーザに情報を表示する機能を有する。入力装置303、313はキーボードやマウス等のようにユーザからの入力を受け付ける機能を有するものである。
The
記憶装置306、316は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム309、319が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージまたは不揮発性メモリであってもよく、着脱可能なものであってもかまわない。記憶装置306、316には、プログラム309、319や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。通信装置307、317はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク110へ接続する。
The
図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つのサーバがすべての機能部を有することもできる。
FIG. 4 shows an example of a functional block diagram of the system 100 of the present invention. The
ユーザ端末120のゲーム実行部400は、ゲームプログラム及びゲームデータ等に基づいてゲームを進行させる。所定のタイミングで所定のイベントを発生させるとともに、ユーザからの入力等に基づいて、イベント用のパラメータを決定し、ゲームサーバ部401に送信するとともに、イベントを実行してイベントの結果を生成し、ゲームサーバ部401に送信する。イベントの結果は出力装置202によってユーザに提示される。
The
ゲームサーバ部401は、各ユーザ端末120からのアクセスを受け付けて、ネットワークを介したゲームサービスを提供する。例えば、各ユーザIDに紐付けてユーザのゲーム進行状況等のデータを記憶し、要求に応じてユーザ端末120へ送信したり、他プレイヤとの対戦ゲーム等においては他プレイヤとの間で入力情報を送受信する等のサービスを提供する。ロードバランサ402は、ゲームサーバ部401がゲーム実行部400から受信したイベントパラメータに基づく検証用結果生成処理を実行するための要求を複数の検証用結果生成部404のいずれかに割り当てる。
The
検証用結果生成部404は、イベントパラメータに基づいて検証用結果を生成して、不正検証部405に送信する。検証用結果は、不正検出のために生成されるイベントの結果である。検証用結果生成部404は、仮想インスタンス管理部410及び複数の仮想インスタンス411を有する。仮想インスタンス管理部410はロードバランサ402から割り当てられた検証用結果生成処理を実行するために、当該仮想インスタンス管理部410が含まれる検証用結果生成部404の複数の仮想インスタンス411から一つを選択する。
The verification
仮想インスタンス411はユーザ端末を仮想化するための仮想インスタンスであり、例えば、docker(登録商標)等の「コンテナ」と呼ばれるオペレーティングシステム・レベルの仮想化技術を用いることにより実現できる。docker(登録商標)は、Linuxs(登録商標)カーネルが提供するLinuxコンテナを制御し、プロセス単位での仮想化、すなわち、CPUの利用とファイルシステムの利用を、他のプロセスから分離された空間を提供することができる。各コンテナ同士は相互に分離されているため、あたかも、オペレーティングシステム内で、唯一動作するゲームアプリとしてふるまうことが可能になる。そのため、各コンテナにおいてゲームプログラムを実行して、ゲームプログラムのプロセスを起動することにより、ユーザ端末におけるゲームプログラムの実行を仮想的に実現することができる。したがって、1つのサーバ装置において複数の仮想インスタンスを生成して、同時に複数のゲームプログラムを隔離して並列に実行し、検証用結果を生成することができる。本実施形態においては、仮想インスタンス411としてdocker(登録商標)の「コンテナ」を用いる。
The
仮想インスタンス411における検証用結果生成処理は、ユーザ端末120においてゲームをプレイするために実行されるゲームプログラムを、サーバ130においてヘッドレスモードで実行することにより実行される。本実施形態においてヘッドレスモードとは、GPUにアクセスするグラフィック処理を無効化し、さらに、音源チップにアクセスするサウンド処理、および、外部サーバへのアクセス処理を無効化するモードである。これにより、CPU、メモリ、二次記憶装置のみを使用する状態、すなわち、コンテナ内部に閉じたリソースへのアクセスのみでゲームを実行することができるため、人間が閲覧することを前提としたアニメーション処理スピード、人間が聞くことを前提とした音声の再生スピードといった律速要因(速度を決める要因)を排除することができるようになる。さらに、これらのグラフィック機器やサウンド機器は、一般的にCPUの外にある外部機器として実装されており、CPUと外部機器との間のI/O処理にかかる同期のための待ち時間も省略することができる。これにより、人間のための演出や、外部機器のための同期待ちといったウェイト処理を省いた、CPU単独の処理速度のみに依存するノー・ウェイト(No Wait)処理で、ゲームを高速に動作させることができる。
The verification result generation process in the
本発明においてゲームプログラムをヘッドレスモードで実行することは、ヘッドレスモードでゲームプログラムを実行することと、ヘッドレス化されたゲームプログラムを実行することのいずれであってもかまわない。ゲームをヘッドレス状態で進行させることができれば、どのような態様での実行であってもかまわない。広く普及しているゲームエンジンであるUnityにおいてはGUIからヘッドレスモードを選択するだけで容易にヘッドレス化されたゲームプログラムを生成することが可能である。すなわち、ユーザ端末120用のゲームプログラムを再利用して、不正検出用のゲームプログラムを容易に用意することができる。
In the present invention, 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. In 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
不正検証部405は、ユーザ端末120からゲームサーバ部401を経由して受信されたユーザ端末120によって実行されたイベントの結果であるユーザ結果と検証用結果生成部404によって生成された検証用結果とを比較して、不正検証を行う。両者が少なくとも一定程度異なれば、ユーザ端末120においてユーザの不正な情報変更等によってイベントの結果が改ざんされたことを示す。
The
本実施形態において各機能部は、図2及び3に記載されたハードウェア構成に含まれるプログラムが処理装置によって実行され、出力装置、入力装置、記憶装置及び通信装置の各ハードウェアとソフトウェアとが協働して動作することによって実現されるが、各機能に対応する電子回路等を設けて実現されてもよい。 In the present embodiment, 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.
次に、本実施形態におけるユーザ端末120及びサーバ(群)130の動作のフローチャートを図5に示した。サーバ(群)130は第1のサーバ300及び第2のサーバ310を含む。本実施形態においては、第2のサーバ310は複数あるものとするが、図5においては簡略化のために1つの第2のサーバ310のみを図示した。
Next, FIG. 5 shows a flowchart of operations of the
第2のサーバ310においてまず複数の仮想インスタンス411を生成し(S501)、生成された複数の仮想インスタンス411において、ゲームプログラムをヘッドレスモードで実行してゲームプログラムのためのプロセスを起動し(S502)、ユーザ端末120からイベント用のパラメータの受信を待ち受ける。ゲームプログラムはヘッドレスモードで実行される点を除いて、ユーザ端末120において実行されるものと同一である。第2のサーバ310が同時に実行できるゲームプログラムの最大数を事前に見積って、最大数を上限として仮想インスタン411としてのコンテナで仮想化したゲームプログラムのプロセスを起動する。
First, a plurality of
本実施形態において、ゲームはコンピュータを対戦相手(NPC)とするカード対戦ゲームであり、イベントは対戦相手とのバトルとするが、対戦相手が他プレイヤであってもよいし、他の形態のゲームであっても同様に実施可能である。また、ここではバトルはオートバトルとし、バトル開始時にユーザ入力等に基づいて決定されたパラメータに基づいて自動的にバトルが進行して終了するものとするが、バトル開始後にユーザ入力等がなされてイベントパラメータが追加、更新等され、バトルが進行する場合であっても、逐次イベントパラメータをサーバ130へ送信することにより、同様に実現できる。
In this embodiment, 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. However, it can be similarly implemented. Also, here, 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. However, 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
ユーザ端末120においては、ゲームプログラムをユーザ端末120にダウンロードしてインストールした後、ゲームをプレイできるように設定する。そして、ゲームプログラムを実行すると(S504)、必要なゲームデータをサーバ130に要求する(S506)。第1のサーバ300のゲームサーバ部401はゲームデータ要求を受信すると、当該ユーザのためのゲームデータをユーザ端末120に送信する(S508)。
The
ユーザ端末120はこれを受信してゲームの進行を開始する。ゲームが進行すると、所定のタイミングでイベントが発生される(S510)。ここではイベントはゲームプログラムによって自動で制御される対戦相手(NPC)とのバトルとする。プレイヤは自分が所有する複数のカードの中から選択された所定数のカードを含むカード群を用いて他プレイヤと対戦する。バトルが発生するとNPCは本バトル用に使用する自己のカード群を決定し、ユーザは自己のカード群を決定する。ユーザ端末120はこれらの決定されたカード群を含むパラメータを決定し(S512)、これをサーバ130へ送信する(S514)。
The
第1のサーバ300はこれを受信すると、ロードバランサ402を用いて、本イベントのための検証用結果生成処理を複数の検証用結果生成部404のうちのいずれか一つに例えばラウンドロビン方式で割り当て、割り当てられた検証用結果生成部404として機能する第2のサーバ310にイベントパラメータを送信する(S516)。
Upon receiving this, the first server 300 uses the
本実施形態における検証用結果生成部404は、生成された仮想インスタンス411の数だけ同時に検証用結果生成処理を実行することが可能である。また、この検証用結果生成処理は、ゲームにおけるバトル時間の数分の一から数十分の一の時間等の短期間の間に完了し新たな処理要求を受付可能になる。この挙動は、従来のWebサーバ等とは異なる挙動であるため、本実施形態に適したロードバランサ402を設定することが好ましい。ロードバランサ402は、各第2のサーバ310の仮想インスタンス411に万遍無くタスクが割り当てられるように、例えば、ラウンドロビンでタスクを振り分けた後、いずれかの第2のサーバ310でキャパシティ超過を意味するエラーが発生したときには、全てのサーバ310に対してリトライ可能にし、すべてのサーバ310のキャパシティを超過したときのみ、エラーとするという実装が考えられる。他の実装としては、ロードバランサ402は、各第2のサーバ310の仮想インスタンス411のうち、空いているものに即座にかつ万遍無くタスクが割り当てられるように、例えば、空き状態にある第2のサーバ310のIPアドレスを格納するキューを持ち、いずれかの第2のサーバ310が処理完了の通知を発行したときに、当該サーバをキューの最後に追加し、リクエストが来た場合は、そのキューの先頭から割り当てていく方式が考えられる。このキューが空になっているときにリクエストが来たときのみ、エラーとするという実装が考えられる。
The verification
検証用結果生成処理を割り当てられた第2のサーバ310は、検証用結果生成要求としてのイベントパラメータを受信し、これに基づいて検証用結果を生成するために複数の仮想インスタンス411から1つを選択する(S518)。本実施形態においては、仮想インスタンス管理部410が、非同期I/Oにより仮想インスタンス411を管理する。具体的には、第2のサーバ310の検証用結果生成部404は単一の仮想インスタンス管理部410を有しており、当該仮想インスタンス管理部410が、並列的に動作させた仮想インスタンスからの入出力割り込み信号に基づいて当該仮想インスタンスの稼働状態を判定することにより、並列的に動作させた仮想インスタンスのうちの1つの選択された仮想インスタンスにおいて他のイベントを実行させている間に、空いている仮想インスタンス411を検索し、空いている仮想インスタンス411のいずれか1つを、イベントの実行のための仮想インスタンス411として選択する。
The
本実施形態においては、ファイルを経由して第1のサーバ300と仮想インスタンス411におけるプロセスとの通信を行う。より具体的には、第2のサーバ310がイベントパラメータを例えば各パラメータを格納するJSONファイルとして第1のサーバ300から受信して特定のファイルパスに書き込み、仮想インスタンス411におけるプロセスが当該特定のファイルパスを監視し、ファイルが書き込まれたときに、そのファイルをイベントパラメータとして読み込み、イベントを実行し、検証用結果を別のファイルに書き込むと、当該別のファイルが第1のサーバ300へ送信される。パイプによるプロセス間通信等の他の方法でも実施可能である。
In the present embodiment, communication is performed between the first server 300 and a process in the
ここで、ユーザ結果と検証用結果とが不正がなくとも少なくとも一定程度の同じ結果を返さない場合があれば、ユーザ結果と検証用結果とを比較しただけではユーザによる不正を正確に検出することはできない。本明細書においては、同じ引数を与えたときに少なくとも一定程度の同じ結果を返す場合には結果一致性があるといい、少なくとも一定程度の同じ結果を返さない場合には結果一致性がないという。すなわち、ユーザ端末120において実行されるゲームプログラムにおいて決定されたイベントパラメータを用いてイベントを実行するプロセスと、サーバ130における仮想インスタンス411としてのコンテナにおいてヘッドレスモードで実行されるゲームプログラムにおいて実行されるプロセスとが結果一致性を有していなければ、ユーザ結果と検証用結果とを比較するだけでは正確に不正を検出することはできない。
Here, if there is a case where the user result and the verification result do not return the same result of at least a certain degree even if there is no fraud, it is possible to accurately detect fraud by the user simply by comparing the user result and the verification result. I can't. In this specification, when the same argument is given, it is said that there is result consistency if it returns at least a certain degree of the same result, and there is no result consistency if it does not return at least a certain degree of the same result. . That is, a process for executing an event using an event parameter determined in a game program executed on the
本実施形態においては、ユーザ端末120において実行されるゲームプログラムは、イベントパラメータ等の情報を書き込むためにサーバ130のファイルシステムにおけるいずれかのディレクトリにマウントされる。仮想インスタンス411としてのコンテナもまたサーバ130のファイルシステムのいずれかのディレクトリにマウントされる。ここでは、コンテナは、マウントされたディレクトリに対してリードオンリーで参照することとする。
In the present embodiment, the game program executed on the
ユーザ端末120におけるゲームプログラムと結果一致性を有するコンテナを選択するために、コンテナが実行するゲームプログラムの種別を示す情報及びコンテナにマウントされたディレクトリを示す情報を含む型情報に基づいてコンテナを識別する。そして、ユーザ端末120において実行されるゲームプログラムと同一の型情報を有するコンテナを、結果一致性を有するコンテナとして選択する。ゲームプログラムの種別を示す情報は、ゲームの種類やゲームプログラムのバージョン等を示す情報である。コンテナにマウントされたディレクトリを示す情報は、コンテナからサーバ130のファイルシステムをマウントする際の「パス」とすることができる。すなわち、ユーザ端末120及びコンテナにおいて実行されるゲームプログラムの種別が同じであり、同じディレクトリにマウントされている場合には結果一致性があり、そのような結果一致性を有するコンテナを選択する。
In order to select a container having a result match with the game program in the
表1は、仮想インスタンス411としてのコンテナがマウントされたディレクトリを参照するかコピーするか、そして、そのディレクトリにリードオンリー(Read-Only)でアクセスするか、読み書き(Read-Write)モードでアクセスするかに応じて、結果一致性を検証する方法を分類したものである。この表に示すとおり、ゲームプログラムの特性に応じた結果一致性の検証により、ユーザ端末120で実行されるゲームプログラムと結果一致性があるコンテナを選択することが可能である。
Table 1 refers to or copies the directory where the container as the
表1における「参照」は、コンテナにマウントされたサーバのディレクトリをコンテナが参照するものであることを意味し、「コピー」はマウントされたサーバのディレクトリ及びファイルを、コンテナがコンテナイメージ内にコピーすることを意味する。Read-Only はマウントしたディレクトリに対してコンテナ内のプロセスがリードオンリーモードでアクセスすることを意味し、Read-Writeはコンテナ内のプロセスがマウントしたディレクトリに対して読み書き可能モードでアクセスすることを意味する。 “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 read-only mode, and Read-Write means that the directory in which the process in the container is mounted is accessed in read / write mode. To do.
すなわち、ユーザ端末120とコンテナで実行されるゲームプログラムの種類及びバージョンを示す情報が同じであり、ユーザ端末120から送信されたイベントパラメータが書き込まれたサーバ130におけるディレクトリと同じディレクトリを「参照」するコンテナにおけるプロセスがリードオンリーモードでアクセスする場合は、ユーザ端末120で実行されるゲームプログラムと結果一致性がある一方で、読み書きモードでアクセスする場合は結果一致性がない。また、コンテナがユーザ端末120から送信されたイベントパラメータが書き込まれた第2のサーバ310におけるディレクトリをコピーし、プロセスがリードオンリーモードでアクセスする場合には、コピーしたファイルが同じであれば結果一致性があり、リードオンリーモードでアクセスする場合には、コピーした「内容」が同じで、かつ、内容の変更について互いに同期している場合には結果一致性がある。
That is, the information indicating the type and version of the game program executed on the
前述の実施形態においては、コンテナはマウントされたディレクトリに対してリードオンリーで参照するため、コンテナが実行するゲームプログラムの種別を示す情報及びコンテナにマウントされたディレクトリを示す情報を含む型情報に基づいて、ユーザ端末120において実行されるゲームプログラムと同一の型情報を有するコンテナを選択することで、結果一致性を有するコンテナ(仮想インスタンス411)を選択することが可能である。
In the above-described embodiment, since 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. Thus, by selecting a container having the same type information as the game program executed on the
コンテナにマウントされたディレクトリへのアクセスがリードオンリーによる参照に限られない場合であっても、マウントされたディレクトに対して「参照」するか「コピー」するか、及び、当該ディレクトリに対するアクセスモードを示す情報も型情報に含ませることによって、当該型情報及び表1に記載した基準等に基づいて、様々な環境においても結果一致性を有するコンテナを選択し、不正検出を保証することを可能とする。 Even when access to a directory mounted on a container is not limited to read-only referencing, whether to “reference” or “copy” the mounted directory and set the access mode for that directory. By including the information to be included in the type information, it is possible to select a container having result consistency in various environments based on the type information and the criteria described in Table 1 and to guarantee fraud detection. To do.
第2のサーバ310は、選択された仮想インスタンス411(コンテナ)のプロセスにおいてイベントパラメータに基づいてイベントをヘッドレスモードにて実行して検証用結果を生成し(S518)、生成された検証用結果を第1のサーバ300へ送信する(S522)。ヘッドレスモードにより律速要因(速度を決める要因)を排除してイベントを実行できるから、短時間でイベント結果を生成することができる。
The
この点を図6を用いてより詳細に説明する。図6(a)は通常のモードでイベントを実行する場合のCPUの稼働状態を示し、(b)はヘッドレスモードでイベントを実行する場合のCPUの稼働状態を示す。(a)に示したとおり、通常モードにおいては、CPUは常に高負荷にあるわけではなく、局所的に高負荷が発生する。これはゲーム画面のフレーム描画に必要なデータを生成する部分等に相当する。そして、音楽と画面表示は、人間の知覚に合わせる必要があるため、所定のタイミングとなるまでウェイトが発生する。したがって、通常モードにおいてCPUはゲーム進行の実時間で律速されながら、局所的に動作している。一方、ヘッドレスモードでは、律速要素となるGPUとSoundを必要としないため、CPU単独でイベントを高速に、すなわち、ウェイトをかけずに短時間で実行可能である。これにより、これまで分散していた処理を短時間にまとめて実行でき、通常モードでの1人のイベント実行期間で複数プレイヤの検証用結果生成処理を実行可能であるため、高い処理効率を実現できる。 This point will be described in more detail with reference to FIG. FIG. 6A shows the operating state of the CPU when the event is executed in the normal mode, and FIG. 6B shows the operating state of the CPU when the event is executed in the headless mode. As shown in (a), 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. On the other hand, in the headless mode, 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. As a result, 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.
ユーザ端末120は、イベントパラメータを送信した後(S514)、当該イベントパラメータに基づいてイベントを実行して、イベントの結果を生成する(S524)。ユーザ端末120において生成されたイベントの結果であるユーザ結果をサーバ130に送信する(S526)。本実施形態においてイベントの結果とはバトルの勝敗結果である。ユーザ端末120においては、GPU及び音源チップ等を用いて、バトルグラフィック及び音声をユーザ端末120の出力装置202を用いて出力するから、これが律速要因となり、検証用結果生成部404に比べてイベント結果の生成に時間を要する。
After transmitting the event parameter (S514), the
第1のサーバ300の不正検証部405は、ユーザ端末120によって生成されたユーザ結果と検証用結果生成部404によって生成された検証用結果とを比較することにより不正検証を行う(S528)。両結果が同一であればユーザ結果は正当であり、両結果が異なれば不正であると判定する。結果の判定は必ずしも厳密に一致することを要求する必要はない。一定程度の範囲で結果が一致していれば不正がないと判定することができる。例えば、勝敗の結果が一致していれば、その他の被ダメージ等のパラメータの相違が一定範囲以内であれば許容する、という判定を行うことができる。不正であると判定された場合には、例えば、不正検証部405はゲームサーバ部401へ不正検出信号を送信し、ゲームサーバ部401は本ユーザやゲームシステム管理者等へ不正が検出されたことを通知するメッセージを送信する等の処理が実行される。
The
本実施形態においては、検証用結果生成部404においてヘッドレスモードでゲームプログラムを実行することにより、ノー・ウェイトで高速にイベントを実行して結果を生成することができる。さらに、検証用結果生成部404において複数の仮想インスタンス411を並列的に動作させ、複数の仮想インスタンスのうちの1つの選択された仮想インスタンス411において受信したパラメータに基づいてイベントを実行している間に、他の仮想インスタンスを選択して他の受信したパラメータに基づいてパラメータに基づいてイベントを並列的に実行することができる。第2のサーバ310を複数用意することにより、さらに多くの仮想インスタンスを並列的に動作させることが可能である。このため、高速かつ並列に検証用の結果を生成することが可能となり、多数のユーザの不正検証を効率的に行うことができる。また、第2のサーバ310は必要に応じて追加的に設置することもできるのでスケーラブルなシステムを構築することができる。
In the present embodiment, by executing the game program in the headless mode in the verification
仮想インスタンス411においてユーザ端末120で実行されるゲームプログラムをヘッドレスモードで実行する場合には、ユーザ端末120で実行されるゲームプログラムと同一のプログラムを利用することができる。ユーザ端末120で実行されるゲームプログラムをヘッドレス化したゲームプログラムを用いる場合には、例えば、広く普及しているゲームエンジンであるUnityにおいてはヘッドレスビルドの設定はGUIからヘッドレスモードを選択するだけで容易に行う可能である。したがって、ゲームアプリを頻繁に、あるいは複雑に変更した場合であっても、変更に対応した不正検出用のシステムを容易に構成することが可能である。
When the game program executed on the
また、ユーザ端末120において実行されるゲームプログラムと同一の型情報を有する仮想インスタンス411を選択することで、複数のゲーム種別が含まれる等の様々な環境においてもユーザ端末120において実行されるゲームプログラムと結果一致性を有するコンテナを選択することで正確な不正検出を保証することができる。
In addition, by selecting a
ゲームプログラムをその更新状況に応じて、当該プログラムの複数の異なるバージョンをサーバでヘッドレスモードで同時に実行することにより、高速かつ容易に不正検出を実現することができる。 By executing a plurality of different versions of the game program in the headless mode simultaneously on the server according to the update status of the game program, fraud detection can be realized quickly and easily.
さらに、ゲームプログラムを仮想インスタンスの制御化におくことにより、ゲームプログラムのバージョンアップやアセット更新時に、既存のバージョンのゲームプログラムを動作させたまま、新しいバージョンへの移行を行うライブ・マイグレーションを実現できる。また、処理ノードのオートスケーリングも容易である。 In addition, by placing the game program in a virtual instance control, it is possible to realize live migration that allows the existing version of the game program to remain running while the game program is upgraded or assets are updated. . In addition, auto scaling of processing nodes is easy.
以上に説明した処理または動作において、矛盾が生じない限りにおいて、処理または動作を自由に変更することができる。また以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。 In the processes or operations described above, the processes or operations can be freely changed as long as no contradiction occurs. Each embodiment described above is an illustration for explaining the present invention, and the present invention is not limited to these embodiments. The present invention can be implemented in various forms without departing from the gist thereof. Further, the effects described in the present embodiment are merely a list of the most preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the present embodiment.
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…仮想インスタンス
100 ... Fraud detection system 110 ...
Claims (11)
ゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するユーザ端末と、
検証用結果生成部と不正検証部とを有するサーバとを備え、
前記検証用結果生成部は、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、
前記不正検証部は、前記ユーザ端末から受信されたユーザ結果と前記検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する、
ことを特徴とするシステム。 A system for detecting fraud of a user in a game played on a user terminal,
A game program for playing a game is executed, a parameter for executing a predetermined event in the game is determined, the parameter is transmitted, the event is executed based on the parameter, and the result of the event A user terminal that generates a user result and transmits the user result;
A server having a verification result generation unit and a fraud verification unit;
The verification result generation unit includes:
Create multiple virtual instances to virtualize user terminals,
In the plurality of virtual instances, the game program is executed in a headless mode,
Selecting a virtual instance from the plurality of virtual instances for executing an event based on parameters received by the server;
Executing an event based on the parameter in the selected virtual instance to generate a verification result;
The fraud verification unit compares the user result received from the user terminal with the verification result to determine whether fraud has been performed in the user terminal;
A system characterized by that.
仮想インスタンスが実行するゲームプログラムの種別を示す情報及び仮想インスタンスにマウントされたディレクトリを示す情報を含む型情報に基づいて仮想インスタンスを識別し、
ユーザ端末において実行されるゲームプログラムと同一の型情報を有し、当該ゲームプログラムと同一のパラメータを入力すると当該ゲームプログラムと同一の結果を生成する仮想インスタンスを選択する、請求項1または2に記載のシステム。 Selecting from the plurality of virtual instances includes
Identifying 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;
The virtual instance which has the same type information as the game program executed in the user terminal and generates the same result as the game program when the same parameter as the game program is input is selected. System.
前記検証用結果生成部は、前記複数の仮想インスタンスを並列的に動作させ、
前記検証用結果生成部の単一の仮想インスタンス管理部が、仮想インスタンスからの入出力割り込み信号に基づいて当該仮想インスタンスの稼働状態を判定することにより、前記複数の仮想インスタンスのうちの1つの選択された仮想インスタンスにおいて受信したパラメータに基づいてイベントを実行している間に、他の仮想インスタンスを選択して他の受信したパラメータに基づいてイベントを並列的に実行することを可能とする、
請求項1〜3のいずれか1項に記載のシステム。 The verification result generation unit has a single virtual instance management unit,
The verification result generation unit operates the plurality of virtual instances in parallel,
A single virtual instance management unit of the verification result generating unit selects one of the plurality of virtual instances by determining an operating state of the virtual instance based on an input / output interrupt signal from the virtual instance Enabling other virtual instances to select and execute events in parallel based on other received parameters while executing events based on parameters received in
The system according to claim 1.
前記複数の検証用結果生成部の各々が単一の仮想インスタンス管理部を備え、
前記ロードバランサは、受信したパラメータに基づくイベントの実行をいずれかの検証用結果生成部へ割り当て、
前記単一の仮想インスタンス管理部は、当該単一の仮想インスタンスを含む検証用結果生成部において空いている仮想インスタンスを検索し、空いている仮想インスタンスのいずれか1つを、当該単一の検証用結果生成部に割り当てられたイベントの実行を行う仮想インスタンスとして選択する、
請求項1〜5のいずれか1項に記載のシステム。 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,
The load balancer assigns execution of an event based on the received parameter to any verification result generation unit,
The single virtual instance management unit searches for a free virtual instance in the verification result generation unit including the single virtual instance, and selects any one of the free virtual instances as the single verification. Select as a virtual instance to execute the event assigned to the result generator
The system according to claim 1.
前記システムにおけるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、
前記サーバは、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する、
ことを特徴とするサーバ。 A server used in a system for detecting fraud of a user in a game played on a user terminal,
A user terminal in the system executes a game program for playing a game, determines a parameter for executing a predetermined event in the game, transmits the parameter, and executes the event based on the parameter Generate a user result that is the result of the event, send the user result,
The server
Create multiple virtual instances to virtualize user terminals,
In the plurality of virtual instances, the game program is executed in a headless mode,
Selecting a virtual instance from the plurality of virtual instances for executing an event based on parameters received by the server;
In order to determine whether fraud has been performed at the user terminal compared to the user result, an event is executed based on the parameter in the selected virtual instance to generate a verification result;
A server characterized by that.
請求項7に記載のサーバ。 Further, the user result received from the user terminal is compared with the verification result to determine whether fraud has been performed in the user terminal.
The server according to claim 7.
ユーザ端末を仮想化するための複数の仮想インスタンスを生成する段階と、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行する段階と、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択する段階と、
前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する段階と、
を実行させることを特徴とするプログラム。 A program executed by a server in the system for detecting a user's fraud in a game played on a user terminal, the user terminal in the system executing a game program for playing a game, and a predetermined in the game Determining a parameter for executing the event, transmitting the parameter, generating the user result as a result of the event by executing the event based on the parameter, transmitting the user result, and the program To the server,
Creating a plurality of virtual instances for virtualizing the user terminal;
Executing the game program in a headless mode in the plurality of virtual instances; and
Selecting from the plurality of virtual instances a virtual instance for executing an event based on parameters received by the server;
Generating a verification result by executing an event based on the parameter in the selected virtual instance to determine whether fraud has been performed at the user terminal compared to the user result;
A program characterized by having executed.
ユーザ端末がゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信し、
検証用結果生成部が、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成し、
不正検証部が、前記ユーザ端末から受信されたユーザ結果と検証用結果とを比較して、前記ユーザ端末において不正が行われたか否かを決定する、
ことを特徴とする方法。 A method executed in a system for detecting user fraud in a game played on a user terminal,
A 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, Generate a user result that is the result, send the user result,
The verification result generation unit
Create multiple virtual instances to virtualize user terminals,
In the plurality of virtual instances, the game program is executed in a headless mode,
Selecting a virtual instance from the plurality of virtual instances to execute an event based on parameters received by the server;
Executing an event based on the parameter in the selected virtual instance to generate a verification result;
The fraud verification unit compares the user result received from the user terminal with the verification result, and determines whether fraud has been performed in the user terminal.
A method characterized by that.
前記システムに含まれるユーザ端末はゲームをプレイするためのゲームプログラムを実行し、前記ゲームにおける所定のイベントを実行するためのパラメータを決定し、当該パラメータを送信し、前記パラメータに基づいて前記イベントを実行してイベントの結果であるユーザ結果を生成し、当該ユーザ結果を送信するシステムにおいて、
前記サーバが、
ユーザ端末を仮想化するための複数の仮想インスタンスを生成し、
前記複数の仮想インスタンスにおいて、前記ゲームプログラムをヘッドレスモードで実行し、
前記サーバが受信したパラメータに基づいてイベントを実行するための仮想インスタンスを前記複数の仮想インスタンスから選択し、
前記ユーザ結果と比較して前記ユーザ端末において不正が行われたか否かを決定するために、前記選択された仮想インスタンスにおいて前記パラメータに基づいてイベントを実行して検証用結果を生成する、
ことを特徴とする方法。 A method executed by a server of a system for detecting user fraud in a game played on a user terminal,
A user terminal included in the system executes a game program for playing a game, determines a parameter for executing a predetermined event in the game, transmits the parameter, and executes the event based on the parameter. In a system that executes and generates a user result that is the result of an event and transmits the user result,
The server is
Create multiple virtual instances to virtualize user terminals,
In the plurality of virtual instances, the game program is executed in a headless mode,
Selecting a virtual instance from the plurality of virtual instances for executing an event based on parameters received by the server;
In order to determine whether fraud has been performed at the user terminal compared to the user result, an event is executed based on the parameter in the selected virtual instance to generate a verification result;
A method characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019010117A JP2019193771A (en) | 2019-01-24 | 2019-01-24 | System, server, program, and method for detecting user's fraudulence in game |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019010117A JP2019193771A (en) | 2019-01-24 | 2019-01-24 | System, server, program, and method for detecting user's fraudulence in game |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018088223A Division JP6473259B1 (en) | 2018-05-01 | 2018-05-01 | System, server, program and method for detecting fraud of user in game |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019193771A true JP2019193771A (en) | 2019-11-07 |
Family
ID=68469505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019010117A Pending JP2019193771A (en) | 2019-01-24 | 2019-01-24 | System, server, program, and method for detecting user's fraudulence in game |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019193771A (en) |
-
2019
- 2019-01-24 JP JP2019010117A patent/JP2019193771A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6473259B1 (en) | System, server, program and method for detecting fraud of user in game | |
JP7066784B2 (en) | Game state related to cloud gaming Save, transfer and resume | |
US10293251B2 (en) | Pre-loading translated code in cloud based emulated applications | |
CN104598257B (en) | The method and apparatus of remote application operation | |
CN102402462B (en) | Techniques for load balancing GPU enabled virtual machines | |
US9623327B2 (en) | Determining triggers for cloud-based emulated games | |
US11040285B1 (en) | Secure anti-cheat system | |
US9937415B1 (en) | Virtual controller for touchscreen | |
US11660534B2 (en) | Pre-loading translated code in cloud based emulated applications | |
US20220249948A1 (en) | Image processing method and apparatus, server, and medium | |
JP6228691B1 (en) | Container image distribution system, container image distribution method and program | |
EP3090340A1 (en) | Multimode gaming server | |
US20220233954A1 (en) | System and methods for generating a platform-agnostic game shortcut to launch a game for cloud gaming | |
JP2019193771A (en) | System, server, program, and method for detecting user's fraudulence in game | |
CN112138372B (en) | Data synchronization method in distributed system and related equipment | |
US20140244545A1 (en) | System, method, and recording medium | |
JP6768982B1 (en) | Methods, programs, systems and servers for program verification | |
KR20200127926A (en) | Method and apparatus providing game based on streaming | |
JP7366223B1 (en) | SYSTEMS, METHODS AND PROGRAMS FOR TESTING GAMES | |
WO2024090476A1 (en) | System, method, and program for inspecting game | |
US8898125B2 (en) | Method and apparatus for awarding trophies | |
JP2018067038A (en) | Server, control method and program | |
JP2024034073A (en) | Game program, game device and information processing method | |
KR20200123950A (en) | Method and apparatus providing game based on streaming | |
CN116450329A (en) | Cloud resource management method, related device, equipment and storage medium |