一种游戏外挂检测方法、电子设备及存储介质
文献发布时间:2024-01-17 01:21:27
技术领域
本申请涉及网络游戏技术领域,尤其是涉及一种游戏外挂检测方法、电子设备及存储介质。
背景技术
在进行网络游戏时,如何保障游戏的公平、避免外挂是一个重要的研究主题。
当前大部分的实时战斗游戏为了让玩家获得更好的游戏的体验、实现玩家操作与游戏画面的实时响应,其游戏战斗过程中的相关计算逻辑会完全放到客户端本地进行,只有当战斗结束后才会将计算结果发送至服务器进行结算。此种本地化计算的方式保证了游戏的流畅性,但由于服务器没有进行战斗过程的校验,部分玩家可能会通过外挂程序进行作弊,例如可以通过内存修改器对自身属性和对手属性进行修改,从而造成秒杀对手或自身不掉血的现象。以上这类外挂活动严重破坏了游戏的公平性,影响了其他正常玩家的游戏体验。
为了解决以上外挂问题,现有部分技术通过收集战斗过程中玩家在客户端的所有操作指令,在战斗结束后将所有操作上报服务器,并由服务器进行全量的推演,从而获得正确的结果。但是,此类方案存在一定的局限性:其需要客户端通过帧同步来实现战斗机制,为确保服务器推演的正确性,客户端和服务器必须共用同一套战斗引擎,会增加很大的开发量和服务器压力,并且由于帧同步需要给房间内的所有玩家同步数据,对于视野外挂无法进行有效打击。
发明内容
为了有助于改善目前针对相关技术中实现成本高、服务器压力大等问题,本申请提供了一种游戏外挂检测方法、电子设备及存储介质。
第一方面,本申请提供一种游戏外挂检测方法,所述方法包括步骤:
S10:定期采集客户端本地的第一数据集;
S20:获取服务器中的第二数据集;
S30:分别使用第一数据集与第二数据集进行数据计算;
S40:将两组计算出的数据进行比对验算,并记录验算异常结果;
S50:战斗结束后,统计所有异常结果,并生成异常清单。
进一步地,所述第一数据集包括属性类数据;所述属类性数据包括属性值、帧率、随机种子、移动速度和/或buff值。
进一步地,所述第一数据集包括周期统计类数据;所述周期统计类数据包括移动距离、随机次数、攻击次数、暴击次数和/或最大伤害。
进一步地,步骤S20中,在玩家进入一局游戏时,根据游戏玩法需求进行第二数据集的数据缓存,以进行模拟验算使用。
进一步地,步骤S30中,数据计算包括移动距离验算、伤害验算、攻击次数验算和/或暴击次数验算。
进一步地,步骤S30中,第一数据集与第二数据集使用同一套战斗逻辑分别进行数据计算,且数据计算过程为延迟计算。
进一步地,所述战斗逻辑中,随机机制通过统一的随机种子和随机次数实现。
进一步地,生成异常清单时,根据玩家ID进行分组统计;当异常结果的记录条数超出预设值时,额外收集该玩家ID的辅助判断数据,并形成最终报表;所述辅助判断数据包括玩家活跃度、在线时长和/或玩法参与度。
第二方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,该电子设备包括:
至少一个处理器;
存储器;
至少一个应用程序,其中至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行如上的游戏外挂检测方法。
第三方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令所述计算机执行第一方面提供的任一种游戏外挂检测方法。
综上所述,本申请包括以下至少一种有益技术效果:
本发明技术方案用解决了实时战斗游戏中,由于服务器未参与战斗过程,客户端存在大量外挂,影响玩家体验和游戏平衡性的问题。相比于现有技术中通过收集所有玩家操作指令,上报服务器然后全量模拟来判断玩家是否存在作弊行为的做法,本发明提出的技术方案存在的开发成本低、服务器压力小、计算效率高的优点。
附图说明
图1是本申请实施例提供的一种游戏外挂检测方法的流程示意图。
图2是本申请实施例提供的一种游戏外挂检测方法的原理示意图。
图3是本申请实施例提供的一种电子设备的原理示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图1-3及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例提供一种游戏外挂检测方法,用于网络游戏系统中。
具体参照图1,一种游戏外挂检测方法,方法包括步骤:
S10:定期采集客户端本地的第一数据集;
在本实施例中,第一数据集包括属性类数据;属类性数据包括属性值、帧率、随机种子、移动速度和/或buff值。进一步地,第一数据集包括周期统计类数据;周期统计类数据包括移动距离、随机次数、攻击次数、暴击次数和/或最大伤害。
当然,第一数据集还可以包括其他数据,其不以本实施例中描述为限制。
S20:在玩家进入一局游戏时,根据游戏玩法需求进行第二数据集的数据缓存,以进行模拟验算使用。
S30:分别使用第一数据集与第二数据集进行数据计算;
在本发明实施例中,数据计算包括移动距离验算、伤害验算、攻击次数验算和/或暴击次数验算。当然,数据计算还可以包括其他验算,其不以本实施例中描述的计算为限制。
进一步地,第一数据集与第二数据集使用同一套战斗逻辑分别进行数据计算,且数据计算过程为延迟计算。而在战斗逻辑中,随机机制通过统一的随机种子和随机次数实现。
S40:将两组计算出的数据进行比对验算,并记录验算异常结果;
S50:战斗结束后,统计所有异常结果,并生成异常清单。
需要说明的是,本实施例在生成异常清单时,根据玩家ID进行分组统计;当异常结果的记录条数超出预设值时,额外收集该玩家ID的辅助判断数据,并形成最终报表;辅助判断数据包括玩家活跃度、在线时长和/或玩法参与度。
本发明技术方案用解决了实时战斗游戏中,由于服务器未参与战斗过程,客户端存在大量外挂,影响玩家体验和游戏平衡性的问题。相比于现有技术中通过收集所有玩家操作指令,上报服务器然后全量模拟来判断玩家是否存在作弊行为的做法,本发明提出的技术方案存在的开发成本低、服务器压力小、计算效率高的优点。
在本发明的另一实施例中,该外挂检测方法包括如下步骤:
步骤一、验算服务器定时对客户端数据进行采样,来获取客户端本地数据,本地数据包括特征系数以及周期统计结果。其中,本地数据中特征系数包括:属性值、帧率、随机种子、移动速度、buff值等。本地数据中周期统计结果包括:移动距离、随机次数、攻击次数、暴击次数、最大伤害等。
步骤二、验算服务器通过存储服务器获取准确的玩家特征系数以及对手属性。
步骤三、验算服务器根据前两步的结果进行模拟验算,从而获取准确的周期统计结果并记录。其中,模拟验算的实现逻辑包括:客户端和服务端共用同一套战斗逻辑代码、采用延迟计算避免影响玩家体验。步骤三中模拟验算会针对各个维度进行各自的算法验算,包括移动距离验算、伤害验算、攻击次数验算、暴击次数验算等。
模拟验算逻辑中的随机机制(例如暴击、闪避等),都是通过伪随机实现,即可以通过统一的随机种子以及随机次数来计算是否触发。具体地,伪随机是指基于一个固定的随机表的随机发生算法,这类随机算法将返回一个随机值。其中,随机种子初始化之后,某一次调用该算法产生的随机值是确定的,本发明中采用线性同余算法实现。
步骤四、验算服务器通过对比特征系数以及周期统计结果,来进行本周期内的异常行为数据记录。
步骤五、在战斗结束后,验算服务器合并该场战斗内的所有异常行为数据并记录。其中,如果在该场战斗中没有采集到客户端本地数据,也会记录一条异常行为数据(此时认为该玩家使用外挂屏蔽了上报)。
步骤六、定时统计异常行为记录并辅以玩家的额外数据,形成报表,并交由专人进行最终确认。其中,玩家的额外数据指活跃、在线、玩法参与度、对战记录等等。
步骤七、确认最终名单后,会对外挂玩家进行处罚以及对误判玩家进行数据分析并修正模拟验算逻辑。
本发明的优点是,本发明利用服务器的精准数据作为数据输入,利用客户端服务器端统一战斗接口作为模拟验算实现逻辑。通过定时采集客户端本地数据与服务器自身模拟验算结果进行对比,从而实现外挂识别。本发明在保证了玩家流畅性体验的前提下能够高效率高精准度地识别外挂,保证了游戏的公平性。同时,本发明无需推翻原有战斗框架(比如服务器实时战斗、帧同步),只需在原有基础上统一计算接口,新增采集和统计机制,即可在不影响客户端流畅性的前提下,快速而高效的接入该机制。
通过客户端服务器端共用战斗逻辑接口,解决了客户端本地计算和服务器模拟验算中存在的不一致问题。通过伪随机机制,解决了服务器模拟验算中遇到的随机性事件,比如暴击、闪避等。通过服务器的模拟验算,可以从不同维度高效识别外挂,比如通过分析双方属性、buff、随机种子,攻击次数等,就可以识别在伤害维度是否存在异常,比如通过分析移速、buff、移动次数等,就可以识别在移动维度是否存在异常。
本申请实施例还提供一种电子设备,如图3所示,图3所示的电子设备700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。可选地,电子设备700还可以包括收发器704。需要说明的是,实际应用中收发器704不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。
处理器701可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegratedCircuit,专用集成电路)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线702可包括一通路,在上述组件之间传送信息。总线702可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线702可以分为地址总线、数据总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(ElectricallyErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器703用于存储执行本申请方案的应用程序代码,并由处理器701来控制执行。处理器701用于执行存储器703中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图3示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行上述实施例提供的游戏外挂检测方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
- 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
- 一种游戏更新的方法及装置、电子设备、存储介质
- 一种游戏信息处理方法和装置、电子设备、存储介质
- 一种病毒邮件检测方法、系统及电子设备和存储介质
- 一种卡顿检测方法、装置、电子设备和存储介质
- 一种游戏外挂的检测方法、装置、电子设备及存储介质
- 一种游戏外挂检测方法、装置、电子设备及可读存储介质