首页> 中国专利> 用于检测游戏中的用户作弊的系统、服务器、程序和方法

用于检测游戏中的用户作弊的系统、服务器、程序和方法

摘要

提供一种系统,包括:用户终端,用于执行用于玩游戏的游戏程序,确定用于执行所述游戏中的特定事件的参数,并且基于所述参数来执行所述事件以生成用户结果;验证用结果生成单元,用于生成用于虚拟化所述用户终端的多个虚拟实例,在所述多个虚拟实例中以无头模式执行所述游戏程序,从所述多个虚拟实例中选择用于基于服务器所接收到的参数来执行所述事件的虚拟实例,并且基于所述参数来在所选择的虚拟实例中执行所述事件,以生成验证用结果;以及作弊验证单元,用于将所述用户结果与所述验证用结果进行比较,以判断在所述用户终端处是否进行了作弊。

著录项

  • 公开/公告号CN112368057A

    专利类型发明专利

  • 公开/公告日2021-02-12

    原文格式PDF

  • 申请/专利权人 CY游戏公司;

    申请/专利号CN201980043902.4

  • 发明设计人 仓林修一;

    申请日2019-04-18

  • 分类号A63F13/73(20060101);A63F13/35(20060101);A63F13/77(20060101);

  • 代理机构11277 北京林达刘知识产权代理事务所(普通合伙);

  • 代理人刘新宇

  • 地址 日本东京都

  • 入库时间 2023-06-19 09:52:39

说明书

技术领域

本发明涉及用于检查游戏中的用户作弊的系统、服务器、程序和方法。

背景技术

最近,在诸如智能电话或PC等的通用电子装置上运行并且经由开放网络与服务器进行通信的类型的在线游戏广泛可用。对于与游戏逻辑紧密协调的图形效果和声音效果构成有吸引力的特征的、利用本机App(应用)的游戏的类型,需要在客户端侧实现大部分游戏逻辑,以将这些效果与游戏逻辑紧密协调。这是因为,在游戏逻辑在服务器侧实现的情况下,在绘制效果之前和之后时常需要与服务器侧进行通信,客户端变得不太响应,并且在服务器侧发生请求的拥塞。

利用该类型的游戏,由于控制游戏逻辑的程序在客户端侧实现,因此存在容易发生作弊的问题,在该作弊中,通过修改App本身、修改客户端侧存储器的内容或通信的内容等等而篡改的数据被发送至服务器侧。专利文献1公开了用于通过进行存储器扫描等来检测游戏程序的修改的技术。

专利文献1:美国专利8302199

发明内容

然而,在使用专利文献1中所公开的方法的情况下,需要创建用于扫描存储器的特殊程序,并且在更新游戏程序的情况下,也必须根据该更新来更新该特殊程序,因而用于继续维护的成本高,并且合适的作弊检测可能被逆向工程阻碍。因而,尚未建立对抗客户端侧的游戏数据的不正当篡改的有效方法。

本发明是有鉴于上述问题而做出的,并且具有以下特征。具体地,根据本发明的方面的系统是一种用于检测在用户终端处玩的游戏中的用户作弊的系统,所述系统的包括:用户终端,用于执行用于玩游戏的游戏程序,确定用于执行所述游戏中的特定事件的参数,发送所述参数,基于所述参数执行所述事件以生成作为所述事件的结果的用户结果,并且发送所述用户结果;以及服务器,其包括验证用结果生成单元和作弊验证单元,其中,所述验证用结果生成单元进行以下操作:生成用于虚拟化所述用户终端的多个虚拟实例,在所述多个虚拟实例中以无头模式执行所述游戏程序,从所述多个虚拟实例中选择用于基于所述服务器所接收到的参数来执行所述事件的虚拟实例,以及基于所述参数来在所选择的虚拟实例中执行所述事件,以生成验证用结果,以及其中,所述作弊验证单元将从所述用户终端接收到的用户结果与所述验证用结果进行比较,以判断在所述用户终端处是否进行了作弊。

所述验证用结果生成单元可以通过以所述无头模式执行所述游戏程序,在至少禁用图形处理和声音处理的情况下,执行所述事件以生成所述验证用结果。

在从所述多个虚拟实例进行选择时,可以基于类型信息来识别虚拟实例,所述类型信息包括表示所述虚拟实例所执行的游戏程序的种类的信息、以及表示所述虚拟实例中所挂载的目录的信息,以及可以选择如下的虚拟实例,其中,该虚拟实例具有与所述用户终端处执行的游戏程序相同的类型信息并且在输入与该游戏程序的参数相同的参数时生成与该游戏程序相同的结果。

所述验证用结果生成单元可以包括单个虚拟实例管理单元,所述验证用结果生成单元可以使得所述多个虚拟实例并行地运行,所述验证用结果生成单元的所述单个虚拟实例管理单元可以基于来自虚拟实例的输入/输出中断信号来判断该虚拟实例的操作状况,由此使得能够基于由从所述多个虚拟实例中选择的虚拟实例所接收到的参数来执行事件,同时选择另一虚拟实例并基于所接收到的另一参数来并行地执行事件。

所述虚拟实例可以实现基于容器的虚拟化。

所述服务器可以包括负载均衡器和多个验证用结果生成单元,所述多个验证用结果生成单元中的各个验证用结果生成单元可以包括单个虚拟实例管理单元,所述负载均衡器可以将基于所接收到的参数的事件的执行分配至其中一个验证用结果生成单元,以及所述单个虚拟实例管理单元可以在包括单个虚拟实例的验证用结果生成单元中搜索可用的虚拟实例,并且可以选择其中一个可用的虚拟实例作为用于执行被分配至单个验证用结果生成单元的事件的虚拟实例。

此外,根据本发明的方面的服务器是一种服务器,其在用于检测在用户终端处玩的游戏中的用户作弊的系统中使用,其中,所述系统中的所述用户终端执行用于玩游戏的游戏程序,确定用于执行所述游戏中的特定事件的参数,发送所述参数,基于所述参数执行所述事件以生成作为所述事件的结果的用户结果,并且发送所述用户结果,所述服务器进行以下操作:生成用于虚拟化所述用户终端的多个虚拟实例,在所述多个虚拟实例中以无头模式执行所述游戏程序,从所述多个虚拟实例中选择用于基于所述服务器所接收到的参数来执行所述事件的虚拟实例,以及为了通过与所述用户结果进行比较来判断在所述用户终端处是否进行了作弊,基于所述参数来在所选择的虚拟实例中执行所述事件以生成验证用结果。

可以通过进一步将从所述用户终端接收到的用户结果与所述验证用结果进行比较,来判断在所述用户终端处是否进行了作弊。

此外,根据本发明的方面的程序是一种程序,其由用于检测在用户终端处玩的游戏中的用户作弊的系统中的服务器来执行,其中所述系统中的所述用户终端执行用于玩游戏的游戏程序,确定用于执行所述游戏中的特定事件的参数,发送所述参数,基于所述参数执行所述事件以生成作为所述事件的结果的用户结果,并且发送所述用户结果,所述程序使得所述服务器执行以下步骤:生成用于虚拟化所述用户终端的多个虚拟实例;在所述多个虚拟实例中以无头模式执行所述游戏程序;从所述多个虚拟实例中选择用于基于所述服务器所接收到的参数来执行所述事件的虚拟实例;以及为了通过与所述用户结果进行比较来判断在所述用户终端处是否进行了作弊,基于所述参数来在所选择的虚拟实例中执行所述事件以生成验证用结果。

此外,根据本发明的方面的在系统中执行的方法是一种在用于检测在用户终端处玩的游戏中的用户作弊的系统中执行的方法,其中,通过所述用户终端执行用于玩游戏的游戏程序,确定用于执行所述游戏中的特定事件的参数,发送所述参数,基于所述参数来执行所述事件以生成作为所述事件的结果的用户结果,并且发送所述用户结果,其中,验证用结果生成单元进行以下操作:生成用于虚拟化所述用户终端的多个虚拟实例,在所述多个虚拟实例中以无头模式执行所述游戏程序,从所述多个虚拟实例中选择用于基于服务器所接收到的参数来执行所述事件的虚拟实例,以及基于所述参数来在所选择的虚拟实例中执行所述事件,以生成验证用结果,以及其中,作弊验证单元将从所述用户终端接收到的用户结果与所述验证用结果进行比较,以判断在所述用户终端处是否进行了作弊。

此外,根据本发明的方面的服务器所执行的方法是一种由用于检测在用户终端处玩的游戏中的用户作弊的系统中的服务器执行的方法,其中,所述系统中所包括的所述用户终端执行用于玩游戏的游戏程序,确定用于执行所述游戏中的特定事件的参数,发送所述参数,基于所述参数执行所述事件以生成作为所述事件的结果的用户结果,并且发送所述用户结果,以及其中,通过所述服务器进行以下操作:生成用于虚拟化所述用户终端的多个虚拟实例;在所述多个虚拟实例中以无头模式执行所述游戏程序;从所述多个虚拟实例中选择用于基于所述服务器所接收到的参数来执行所述事件的虚拟实例;以及为了通过与所述用户结果进行比较来判断在所述用户终端处是否进行了作弊,基于所述参数来在所选择的虚拟实例中执行所述事件以生成验证用结果。

本发明使得可以通过在服务器处以无头(headless)模式执行游戏程序来容易地实现高速作弊检测。

附图说明

图1示出根据本发明实施例的系统的总体结构。

图2是根据本发明实施例的用户终端的硬件结构图。

图3是根据本发明实施例的服务器的硬件结构图。

图4是根据本发明实施例的系统的功能框图。

图5是示出根据本发明实施例的信息处理的流程图。

图6是示出根据本发明实施例的信息处理的定时的示意图。

具体实施方式

现在,将参考附图来说明本发明的实施例。如图1所示,根据本实施例的作弊检测系统100可以由包括经由网络110连接的一个或多个用户终端120(客户端)以及服务器130的系统来实现。

本实施例中的用户终端120是在经由网络110与服务器130进行通信的同时执行游戏程序的装置。例如,用户终端120是诸如移动电话、智能电话、平板终端或便携式游戏机等的电子装置。如图2所示,用户终端120可以包括处理装置201、输出装置202、输入装置203、存储装置206、通信装置207。存储装置206包括诸如游戏程序(游戏App)等的程序209。

处理装置201基于程序209、经由输入装置203输入的数据或从通信装置207接收到的数据等来执行各种处理。处理装置201包括控制用户终端120中所包括的各个装置的处理器,并且处理装置201通过使用处理器中所包括的寄存器或者存储装置206作为工作区域来执行各种处理。这些组件经由总线208连接;然而,可选地,这些组件可以根据需要而单独连接。输出装置202在处理装置201的控制下输出游戏画面所用的显示和音频。输入单元203是诸如触摸屏、触摸板或输入按钮等的、具有用于接受来自用户的输入的功能的单元。

存储装置206包括硬盘、主存储器和缓冲存储器。可选地,硬盘可被替换为能够存储信息的任何种类的非易失性存储设备或非易失性存储器,并且可以是可移除型的。例如,在用户终端120是智能电话的情况下,包括ROM和RAM。存储装置206存储程序209、以及在执行这些程序时可以参考的各种数据。程序209包括操作系统、或者诸如视频游戏或web浏览器等的需要玩家输入的任何种类的应用所用的程序和数据。

通信装置207执行诸如移动体通信或无线LAN通信等的无线通信、或者使用以太网(Ethernet,注册商标)线缆或USB线缆等的有线通信。通信装置207使得可以从服务器130下载程序并将该程序存储在存储装置206中。可选地,可以将程序存储在诸如CD或DVD等的光盘中,将光驱连接至通信装置207,从光盘读取程序等,并将该程序等存储在存储装置206中。

图3是示出根据本实施例的服务器130的硬件结构的框图。尽管本实施例中的服务器是包括一个第一服务器300以及两个或更多个第二服务器310的服务器组,但服务器可以仅由单个服务器装置来实现。

第一服务器300和第二服务器310具有相同的硬件结构,并且分别包括处理装置301和311、输出装置302和312、输入装置303和313、存储装置306和316、以及通信装置307和317。这些组件经由总线308和318连接;然而,可选地,这些组件可以根据需要单独连接。第一服务器和第二服务器经由各自的通信装置307和317连接。

处理单元301和311包括控制第一服务器300和第二服务器311中所包括的各个装置的处理器,并且通过使用存储装置306和316作为工作区域来执行各种处理。输出单元302和312具有用于向服务器的用户显示信息的功能。输入装置303和313是诸如键盘或鼠标等的、具有用于接受来自用户的输入的功能的装置。

存储装置306和316包括硬盘、主存储器和缓冲存储器。硬盘存储程序309和319。可选地,硬盘可被替换为能够存储信息的任何种类的非易失性存储设备或非易失性存储器,其可以是可移除型的。存储装置306和316存储程序309和319、以及在执行这些程序时可以参考的各种数据。通信装置307和317通过执行使用以太网(Ethernet,注册商标)线缆等的有线通信、或者诸如移动体通信或无线LAN通信等的无线通信而连接至网络110。

图4示出根据本发明的系统100的示例功能框图。用户终端120包括游戏执行单元400。服务器130包括游戏服务器单元401、负载均衡器402、验证用结果生成单元404和作弊验证单元405。在本实施例中,第一服务器300包括游戏服务器单元401、负载均衡器402和作弊验证单元405,并且第二服务器包括验证用结果生成单元404。服务器130包括多个第二服务器,并且这些第二服务器各自包括验证用结果生成单元404。在其它实施例中,各个功能单元可以包括在一个或多个服务器装置其中之一中,并且任何功能单元可以包括在任何服务器装置中。例如,第二服务器可以包括作弊验证单元405,或者可以设置包括作弊验证单元405的第三服务器。可选地,所有的功能单元都可以包括在单个服务器中。

用户终端120的游戏执行单元400基于游戏程序、游戏数据等来运行游戏。游戏执行单元400在特定定时生成特定事件,基于来自用户的输入等来确定事件参数,将这些事件参数发送至游戏服务器单元401,执行事件以生成事件结果,并且将该事件结果发送给游戏服务器单元401。事件结果经由输出装置202被呈现给用户。

游戏服务器单元401接受来自各个用户终端120的访问,并且经由网络提供游戏服务。例如,游戏服务器单元401提供如下的服务,其中在该服务中,例如,将诸如用户的游戏进度状况等的数据与各个用户ID相关联地存储,响应于请求而将该数据发送至用户终端120,并且在与另一玩家的对战游戏等中,相对于该另一玩家来发送和接收输入信息。负载均衡器402将用于基于由游戏服务器单元401从游戏执行单元400接收到的事件参数来执行验证用结果生成处理的请求分配至多个验证用结果生成单元404其中之一。

验证用结果生成单元404基于事件参数来生成验证用结果,并将该验证用结果发送至作弊验证单元405。验证用结果是为了作弊检测的目的所生成的事件结果。验证用结果生成单元404包括虚拟实例管理单元410和多个虚拟实例(virtual instance)411。为了执行由负载均衡器402分配的验证用结果生成处理,虚拟实例管理单元410选择包括该虚拟实例管理单元410的验证用结果生成单元404的多个虚拟实例411其中之一。

虚拟实例411是用于虚拟化用户终端的虚拟实例。例如,虚拟实例411可以通过使用docker(注册商标)等中的被称为“容器(container)”的操作系统级虚拟化技术来实现。docker(注册商标)使得可以控制由Linux(注册商标)内核提供的Linux容器,以实现各进程的虚拟化,即以提供CPU的使用和文件系统的使用与其它进程分离的空间。由于容器是相互分离的,因此各容器可以表现得仿佛该容器是在操作系统上运行的唯一游戏App一样。因而,可以通过使得各个容器执行游戏程序以激活游戏程序的进程来在用户终端处实现游戏程序的虚拟执行。因此,可以在单个服务器装置处生成多个虚拟实例,并且分别且同时并行地执行多个游戏程序,由此生成验证用结果。在本实施例中,使用docker(注册商标)中的“容器”作为虚拟实例411。

利用虚拟实例411的验证用结果生成处理是通过以无头模式在服务器130处执行如下的游戏程序来执行的,该游戏程序是为了在用户终端120处玩游戏所执行的游戏程序。在本实施例中,无头模式是指如下的模式,其中在该模式中,涉及对GPU的访问的图形处理被禁用,并且此外,涉及对音频源芯片的访问的声音处理以及对外部服务器的访问所用的处理被禁用。这使得可以在仅使用CPU、存储器和辅助存储装置(即,仅存在对封闭在容器内的资源的访问)的状态下执行游戏。因而,可以排除诸如以人类观看为先决条件的动画处理的速度和以人类听见为先决条件的音频重放的速度等的速度限制因素(决定速度的因素)。此外,考虑到这些图形装置和声音装置通常被实现为CPU外的外部装置,也可以节省在CPU和外部装置之间的I/O处理中需要的同步所用的等待时间。这样使得可以通过仅依赖于CPU本身的处理速度的无等待(no-wait)处理来高速运行游戏,其中在该无等待处理中,省略了对人类的影响或者与外部装置的同步所用的等待处理。

在本发明中,以无头模式执行游戏程序可以是以无头模式执行游戏程序或者执行无头游戏程序。执行方式可以是任意的,只要可以在无头状态下运行游戏即可。利用作为广泛采用的游戏引擎的Unity,可以仅仅通过从GUI中选择无头模式来容易地生成无头游戏程序。也就是说,可以通过再使用用户终端120所用的游戏程序来容易地准备作弊检测所用的游戏程序。

作弊验证单元405通过将作为用户终端120所执行的事件的结果的经由游戏服务器单元401从用户终端120接收到的用户结果与验证用结果生成单元404所生成的验证用结果进行比较来进行作弊验证。这些结果之间的至少一定程度的差异表示:由于用户的不正当的信息改变等,在用户终端120处篡改了事件结果。

在本实施例中,通过利用处理装置执行图2和图3所示的硬件结构中所包括的程序,使得输出装置、输入装置、存储装置和通信装置的各个硬件以及软件协作,来实现各个功能单元。然而,可选地,可以通过设置与各个功能相对应的电子电路等来实现各个功能单元。

接着,图5示出本实施例中的用户终端120和服务器(组)130的操作的流程图。服务器(组)130包括第一服务器300和第二服务器310。尽管假定在本实施例中设置有多个第二服务器310,但为了简化的目的,图5仅示出单个第二服务器310。

在第二服务器310处,首先,生成多个虚拟实例411(S501),通过所生成的多个虚拟实例411以无头模式执行游戏程序以激活游戏程序的进程(S502),并且等待从用户终端120接收事件参数。除了以无头模式执行游戏程序以外,游戏程序与在用户终端120处执行的游戏程序相同。预先估计可以由第二服务器310同时执行的游戏程序的最大数量,并且在用作上限的最大数量内激活利用用作虚拟实例411的容器被虚拟化的游戏程序的进程。

本实施例中的游戏是计算机充当对手(NPC)的卡牌对战游戏,并且事件是对抗对手的战斗。然而,可选地,对手可以是另一玩家,并且可以针对不同种类的游戏类似地实施本发明。此外,这里假定对战是自动对战,并且对战根据基于对战开始时的用户输入等所确定的参数而自动进展和终止。然而,即使在游戏开始之后作为用户输入等的结果而添加、更新或以其它方式改变事件参数的情况下,也可以通过在需要时将事件参数发送至服务器130来类似地实现本发明。

在用户终端120处,在下载游戏程序并将该游戏程序安装在用户终端120中之后,进行设置,使得可以玩游戏。然后,在执行游戏程序时(S504),将对所需的游戏数据的请求发送至服务器130(S506)。在接收到游戏数据请求时,第一服务器300的游戏服务器单元401将用户的游戏数据发送至用户终端120(S508)。

用户终端120接收游戏数据并开始推进游戏。随着游戏的推进,在一定定时生成事件(S510)。这里假定事件是与由游戏程序自动控制的对手(NPC)的对战。玩家通过使用包括从玩家拥有的多个卡牌中选择的预定数量的卡牌的卡牌组来与另一玩家玩对战。当发生对战时,NPC确定将其的卡牌组用于对战,并且用户确定他或她的卡牌组。用户终端120确定包括这些所确定的卡牌组的参数(S512),并将这些参数发送至服务器130(S514)。

在接收到这些参数时,第一服务器300通过使用负载均衡器402将针对事件的验证用结果生成处理例如以循环方式分配至多个验证用结果生成单元404其中之一,并将事件参数发送至获得分配的验证用结果生成单元404的第二服务器310(S516)。

本实施例中的验证用结果生成单元404可以将验证用结果处理同时执行与所生成的虚拟实例41的数量相等的次数。此外,在诸如游戏中的对战持续时间的1/n(其中n是数个到数十个)等的短时间段内完成验证用结果生成处理,然后可以接受新处理请求。由于该行为不同于传统的web服务器等的行为,因此优选设置适合于本实施例的负载均衡器402。在可设想的实现中,负载均衡器402例如以循环方式分配任务,以将任务均匀地分配至各个第二服务器310的虚拟实例411,在第二服务器310其中之一处发生表示容量过剩的错误的情况下允许所有的服务器310重新尝试,并且仅在超过了所有服务器310的容量的情况下才生成错误。在另一可设想的实现中,为了将任务立即且均匀地分配至各个第二服务器310的虚拟实例411的可用实例,例如,负载均衡器402具有用于存储可用第二服务器310的IP地址的队列,并且当第二服务器310其中之一发出处理完成通知时,负载均衡器402将该服务器添加到队列的尾部,并且在请求到达时,负载平衡器402从队列的头部开始顺次分配请求。在可设想的实现中,仅在该队列为空的情况下请求到达时,才生成错误。

被分配了验证用结果生成处理的第二服务器310接收用作验证用结果生成请求的事件参数,并且选择多个虚拟实例411其中之一,以基于事件参数来生成验证用结果(S518)。在本实施例中,虚拟实例管理单元410通过异步I/O来管理虚拟实例411。具体地,第二服务器310的验证用结果生成单元404包括单个虚拟实例管理单元410,并且虚拟实例管理单元410基于来自虚拟实例的输入/输出中断信号来判断并行工作的虚拟实例的操作状态,以在通过从并行工作的虚拟实例中选择的虚拟实例执行另一事件时搜索可用的虚拟实例411,并且虚拟实例管理单元410选择可用的虚拟实例411其中之一作为用于执行事件的虚拟实例411。

在本实施例中,经由文件来执行第一服务器300与虚拟实例411中的进程之间的通信。更具体地,第二服务器310例如以存储各个参数的JSON文件的形式从第一服务器300接收到事件参数,并将这些事件参数写入特定文件路径。虚拟实例411中的进程监视该特定文件路径,并且当写入文件时,进程将该文件读取为事件参数,执行事件,并将验证用结果写入单独文件中。然后,将单独文件发送到第一服务器300。本发明也可以通过使用诸如经由管道的进程间通信等的其它方法来实施。

这里,如果存在即使未进行作弊、也未返回具有至少一定程度的类似度的结果作为用户结果和验证用结果的情况,则仅仅通过将用户结果与验证用结果进行比较是不能准确地检测用户的作弊的。在本说明书中,在当给出相同自变量时、返回具有至少一定程度的类似度的结果的情况下,认为存在结果一致性,而在当给出相同自变量时、未返回具有至少一定程度的类似度的结果的情况下,认为不存在结果一致性。也就是说,除非通过使用由在用户终端120处执行的游戏程序确定的事件参数来执行事件的进程和通过在服务器130处的用作虚拟实例411的容器中以无头模式执行的游戏程序所执行的进程具有结果一致性,否则仅仅通过将用户结果与用于验证的结果进行比较是不能准确地检测作弊的。

在本实施例中,在用户终端120处执行的游戏程序被挂载(mount)在服务器130的文件系统中的目录其中之一中,以写入诸如事件参数等的信息。用作虚拟实例411的容器也挂载在服务器130的文件系统中的目录其中之一中。这里,假定针对所挂载的目录在只读模式下参考容器。

为了选择与用户终端120处的游戏程序具有结果一致性的容器,基于表示容器所执行的游戏程序的种类的类型信息和表示容器中所挂载的目录的信息来识别容器。然后,选择具有与在用户终端120处执行的游戏程序相同的类型信息的容器作为具有结果一致性的容器。表示游戏程序的种类的信息是表示游戏的种类、游戏程序的版本等的信息。表示容器中所挂载的目录的信息可以是用于从容器挂载服务器130的文件系统的“路径”。也就是说,在用户终端120和容器所执行的游戏程序的种类相同、并且用户终端120和容器挂载在相同目录处的情况下,存在结果一致性,并且选择具有这样的结果一致性的容器。

表1示出根据是参考还是复制挂载有用作虚拟实例411的容器的目录、以及是以只读模式还是读写模式访问该目录,来进行与验证结果一致性的方法有关的分类。如该表所示,通过对与游戏程序的特性相对应的结果一致性的验证,可以选择与在用户终端120处执行的游戏程序具有结果一致性的容器。

{表1}

在表1中,“参考”表示容器参考容器中所挂载的服务器目录,并且“复制”表示容器将所挂载的服务器目录以及文件复制到容器镜像中。只读表示容器中的进程以只读模式访问所挂载的目录,并且读写表示容器中的进程以读写模式访问所挂载的目录。

也就是说,在用户终端120和容器之间所执行的游戏程序的种类和表示版本的信息相同,并且在如下的进程以只读模式进行访问的情况下,与在用户终端120处执行的游戏程序存在结果一致性,而在该进程以读写模式进行访问的情况下,不存在结果一致性,其中,该进程是对与写入有从用户终端120发送来的事件参数的服务器130中的目录相同的目录进行“参考”的容器中的进程。此外,在容器复制写入有从用户终端120发送来的事件参数的第二服务器310中的目录、并且进程以只读方式进行访问的情况下,如果所复制的文件相同,则存在结果一致性。在进程以只读模式执行访问的情况下,如果所复制的“内容”相同并且内容改变相互同步,则存在结果一致性。

在上述实施例中,由于容器以只读模式参考所挂载的目录,因此可以通过基于包括表示容器所执行的游戏程序的种类的信息和表示容器上所挂载的目录的信息的类型信息而选择具有与在用户终端120处执行的游戏程序相同的类型信息的容器,来选择具有结果一致性的容器(虚拟实例411)。

即使在对容器中挂载的目录的访问不限于只读参考的情况下,通过在类型信息中包括表示是“参考”还是“复制”所挂载的目录的信息以及表示对该目录的访问模式的信息,也可以基于该类型信息、表1所示的标准等来选择在各种环境中具有结果一致性的容器,由此确保了作弊检测。

第二服务器310基于所选择的虚拟实例411(容器)的进程中的事件参数来以无头模式执行事件,以生成验证用结果(S518),并将所生成的验证用结果发送至第一服务器300(S522)。由于可以在执行事件时以无头模式排除速度限制因素(决定速度的因素),因此可以在短时间内生成事件结果。

将参考图6来更详细地说明这一点。在图6中,(a)示出在以正常模式执行事件的情况下的CPU的操作状况,并且(b)示出在以无头模式执行事件的情况下的CPU的操作状况。如(a)所示,在正常模式下,CPU不是经常具有高负载,而是局部发生高负载。例如,这对应于生成绘制游戏画面的帧所需的数据的部分。由于音乐和画面显示需要适应人类感知,因此在达到一定定时之前发生等待。因此,在正常模式下,CPU按照以游戏进展的实际时间所调节的速度而局部地工作。另一方面,在无头模式下,由于不需要构成速度限制因素的GPU和声音,因此CPU单独可以高速(即,在不需要等待的短时间内)执行事件。因而,可以在短时间内一起执行至此为止已分发的处理,从而使得可以在以正常模式执行针对一个玩家的事件的时间段内执行针对多个玩家的验证结果用生成处理,由此可以实现高处理效果。

在发送事件参数之后(S514),用户终端120基于事件参数来执行事件以生成事件结果(S524)。作为在用户终端120处生成的事件结果的用户结果被发送至服务器130(S526)。在本实施例中,事件结果是对战的胜/负结果。在用户终端120处,由于对战图形和音频是利用CPU、声源芯片等经由用户终端120的输出单元202输出的,因此这些装置构成速度限制因素,因而与验证用结果生成单元404相比生成事件结果需要更长的时间。

第一服务器300的作弊验证单元405通过将用户终端120所生成的用户结果与验证用结果生成单元404所生成的验证用结果进行比较来进行作弊验证(S528)。如果这些结果相同,则判断为用户结果是正当的,并且如果这些结果不同,则判断为用户结果是不正当的。在结果判断中不一定需要严格一致。如果在一定范围内结果彼此一致,则可以判断为不存在作弊。例如,可以进行判断,以许可在一定范围内的诸如损害等的参数的差异,只要胜/负结果彼此一致即可。在判断为检测到作弊的情况下,例如,作弊验证单元405将作弊检测信号发送至游戏服务器单元401,并且游戏服务器单元401执行诸如将表示检测到了作弊的消息发送至用户或游戏系统管理员等的处理。

在本实施例中,通过在验证用结果生成单元404中以无头模式执行游戏程序,可以无等待地高速执行事件以生成结果。此外,可以在验证用结果生成单元404中并行地运行多个虚拟实例411,使得在基于由从多个虚拟实例中选择的虚拟实例411接收到的参数正在执行事件时,通过所选择的另一虚拟实例基于所接收到的其它参数来执行事件。通过准备多个第二服务器310,可以并行地运行更多数量的虚拟实例。因而,可以高速并行地生成验证用结果,从而使得能够对大量用户进行高效的作弊验证。此外,由于可以根据需要附加地安装第二服务器310,因此可以构建可扩展的系统。

在通过虚拟实例411以无头模式执行在用户终端120处执行的游戏程序的情况下,可以使用与在用户终端120处执行的游戏程序相同的游戏程序。在使用在用户终端120处执行的游戏程序的无头版本的情况下,例如,利用作为广泛采用的游戏引擎的Unity,可以仅仅通过从GUI中选择无头模式来容易地进行无头构造(headless build)的设置。因此,即使在游戏App频繁地或以复杂方式改变的情况下,也可以容易地构建适应这些变化的欺诈检测系统。

此外,通过选择具有与在用户终端120处执行的游戏程序相同的类型信息的虚拟实例411,即使在包括多个种类的游戏等的各种环境中,也可以通过选择与在用户终端120处执行的游戏程序具有结果一致性的容器来确保准确的作弊检测。

此外,通过根据游戏程序的更新状况来在服务器处以无头模式同时执行游戏程序的多个不同版本,可以容易地高速实现作弊检测。

此外,通过在虚拟实例内控制游戏程序,当更新游戏程序或更新游戏程序中的资产时,可以实现在运行现有版本的游戏程序的同时进行向新版本的迁移的实时迁移。此外,处理节点的自动缩放也很容易。

只要在上述的处理或操作中没有出现矛盾,就可以自由地修改处理或操作。此外,上述的实施例是用于说明本发明的示例,并且本发明不限于这些实施例。本发明可以以各种形式实施,只要没有背离本发明的精神即可。此外,在本实施例的上下文中所述的优点仅仅是从本发明产生的最优选优点的列表,并且本发明的优点不限于在本实施例的上下文中所述的优点。

100 作弊检测系统

110 网络

120 用户终端

130 游戏服务器

201 处理装置

202 输出装置

203 输入装置

206 存储装置

207 通信装置

208 总线

209 程序

300 第一服务器

301 处理装置

302 输出装置

303 输入装置

306 存储装置

306 存储装置

307 通信装置

308 总线

309 程序

310 第二服务器

400 游戏执行单元

401 游戏服务器单元

402 负载均衡器

404 验证用结果生成单元

405 作弊验证单元

410 虚拟实例管理单元

411 虚拟实例

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号