作为一名老FPS游戏玩家,本人认为FPS的游戏体验是目前网游中非常优秀的,不论是射击手感还是游戏机制,FPS都能提供最极致的沉浸感和最刺激的战斗体验。当然,要除了猖獗的外挂!简直是FPS游戏噩梦!
01 FPS 游戏外挂从何而来?
众所周知,FPS 游戏最爽的就是击中敌方的一瞬间。为了保障战斗的顺畅进行,FPS 游戏通常会采用预加载技术,在敌人距离较近时,就把敌人的数据下载到本地并加载到游戏内存里。这样,在玩家和敌人真正碰面时,游戏客户端就无需再做大量的工作,从而避免实时加载受网络或设备性能影响导致卡顿。
外挂制作者恰恰就是利用这个技术特性,通过修改游戏数据或注入外部程序来获得非法优势,如自瞄和透视,可以让使用者轻松击杀对手,从而获得不公平的竞争优势。
侦察到外挂并不简单,一些入侵手段相当隐蔽,例如使用虚拟机、内存注入、HOOK 等技术,反作弊系统难以检测到。这是 FPS 游戏外挂屡禁不止的根本原因之一。
「外挂制作者->外挂销售代理->网络渠道->外挂使用者」的链条式传播和易于使用也是 FPS 游戏外挂泛滥的一个重要原因。外挂可以在模拟器运行手游的同时使用,甚至传播带有外挂功能的破解版游戏,这些方式使得外挂的使用者和影响范围变得更加广泛。
目前,在 FPS 射击类游戏中外挂类型使用最多的是透视挂,占比达到 58.33%;自瞄虽然只占了 8.33%,却是最影响游戏体验的外挂。
透视
FPS 游戏为了保证低延迟的效果而将大量资源预加载在玩家客户端内存中,使得外挂制作者可以从内存中获取到各种资源的信息,并将其可视化渲染出来,这就是透视外挂的基本原理。根据透视形态的不同,可以划分为方框&血条类、面板类、自瞄圈、射线类、骨骼类、染色类等等。相较于其他类型的 FPS 外挂,透视外挂更加难以感知,只要使用者刻意伪装,即使人工审核也很难发现。
自瞄
如下图,在 FPS 类游戏中自瞄外挂最多的类型是模拟鼠标行为,占比达到 81.83%。外挂在获取敌人坐标后,发送模型鼠标信号,使游戏程序执行后直接将准心移动到目标位置,在驱动层面很难检测到这样的外挂。但毋庸置疑,在正常玩家与自瞄玩家的行为上,会有很大区别,即行为数据层面才是解决外挂问题的关键。
当前主流的检测外挂方法包括签名检测、特征检测、内存扫描等,适用范围大都是已知、简单的外挂程序,更不用说主要依靠人工举报的审核程序。传统解决方案效果明显,但缺陷在于对抗程度高且存在严重的滞后性。面对频繁更新的外挂程序,传统方案往往要在迭代升级后才能扫描检测,如此一来便容易陷入到无止境的对抗中,消耗大量的人力和物力,最终失效。
针对 FPS 游戏中最为泛滥的透视挂和自瞄挂,此类外挂隐蔽性高也缺乏实锤证据,是传统解决方案难以处理的。因此,本文认为需要从玩家行为数据的角度直接入手,深入到透视和自瞄作弊行为的本质进行检测。
02 是时候让 AI 来解决游戏外挂了
网易智企游戏AI 反作弊解决方案使用在游戏中广泛存在的回放日志数据,构建玩家的时序行为数据,并基于该时序行为数据,分别搭建透视和自瞄外挂检测系统,可以有效应对外挂威胁。
玩家时序行为数据包括每一个时刻的位置坐标、摄像机/枪口朝向、武器类型、是否击杀、是否命中等信息,在此基础之上系统进行二次设计加工,构造每个时刻的准心移动的速度、加速度和目标相对移动轨迹、相对偏向角、目标是否在视野内等特征,再往上一层,构造以“开火、命中、击杀、回合、对局、玩家历史对局”渐进地多层次维度的特征。
透视和自瞄是 FPS 游戏里不同类型的作弊问题,该方案从同一个时序行为数据中提取多个特征,系统检测到部分特征非常明显且富于表达,呈现出正常玩家与作弊玩家的巨大差异性。通过喂养多个特征构成的序列的模型预训练,得到表征之后再进行分类监督学习,最后对玩家是否作弊进行预测。该方案采用自监督时序模型对玩家行为数据进行建模,过程分为三个阶段:
- 在第一阶段,通过对历史玩家对局数据进行对比构造样本,将上述信息输入到模型中进行学习,该模型能够自主学习游戏玩家的行为模式和数据特征。
- 在第二阶段,使用少量有标签的历史玩家数据进行监督学习,从而更好的学习到数据的潜在表示。
- 在第三阶段,模型对游戏玩家每场行为数据进行处理,以检测其是否存在透视或自瞄外挂行为。
基于时序行为数据的透视外挂检测方案
作弊玩家使用透视外挂,获取了正常玩家不具备的视野和整体宏观信息优势,也正因为如此,他们的行为表现的与正常玩家有所不同,例如能在视野信息未知的情况下进行走位和瞄准,从而获取对枪时的优势,在目标掩体后暴露瞬间会有超出正常水平的瞄准击杀表现,落在数据上有诸多特征维度可以进行区分,该方案选取了 2 个最为明显的维度进行展示:关键时刻目标相对偏向角的变化,以及综合多个击杀/多回合的瞄准击杀表现。
1. 关键时刻目标相对偏向角的变化
作弊玩家使用透视后,一般会有很多有意识或无意识的“预瞄准”现象,使得目标相对偏向角的变化曲线与正常玩家不同。
可以看到,在关键时刻例如击杀前目标在墙后移动的时候,透视作弊玩家的目标相对偏向角比正常玩家总体偏低,且变化较为稳定。
2. 综合多个击杀、多回合的瞄准击杀表现
作弊玩家在目标遮挡到“视野暴露”的瞬间,能够在很短的时间内完成瞄准与击杀,与普通玩家的正常反应时间呈现出较大的差距,该差距在综合多次击杀、多回合表现的情况下尤为明显。
如上图所示,尽管作弊玩家偶尔会“演”,正常玩家也会有偶尔“超神”表现,但是放大到单回合多次击杀,以及多回合、多场次的瞄准击杀表现来看,透视作弊玩家的平均反应时间(命中时间差)要比正常玩家低,且稳定,而平均击杀率(对枪 KD)则比正常高。
基于时序行为数据的自瞄外挂检测方案
该系统分析发现,使用自瞄外挂的作弊玩家在准星移动速度、加速度、准星落点等多维度特征上与正常玩家表现有明显差异。这是因为自瞄外挂能够快速锁定敌人,使得玩家的瞄准更加精准和迅速,而正常玩家则需要花费更多的时间和精力进行瞄准。具体来说,自瞄外挂使用者的准星移动速度和加速度更快,准星在敌人球面的落点更加集中。这些特征的显著差异导致了自瞄外挂使用者的表现与正常玩家不同。
1.准心移动速度与其加速
通过下图,蓝色曲线为准心移动速度红色曲线为其加速度,红色坐标点为玩家开枪时刻,自瞄程序通常会使准心的移动速度和加速度变得非常平滑,因为它们会获取目标的位置并自动调整准心的移动速度和加速度。左图为自瞄玩家,右图为正常玩家,相比之下,正常玩家的准心移动速度和加速度可能更加杂乱和不规则。我们可以看出自瞄玩家在开枪后依然可以保持较小的速度与加速度变化(丝滑压枪效果)。
2. 准心在敌人球面的落点
因为自瞄提前获取了玩家的某个部位坐标,再模拟鼠标信号发送信号,以下是准心在敌人球面的落点图,左图为自瞄玩家,右图为正常玩家,可以看到准心落在敌人所在球面时,自瞄玩家的准心轨迹会更加平滑,不会出现正常玩家那样准心的大规模角度变化。
时序模型网络架构
如上,通过将业务经验、专家经验构造的透视和自瞄的时序特征进行提取之后,结合原始特征,按照“命中、击杀”的时间顺序组合形成序列,喂入到自监督时序模型进行预训练,再经过 LSTM 序列分类网络进行监督学习。
03 结语
未来,游戏开发者和平台运营商需要不断更新和完善反外挂系统。在反外挂技术方面,需要继续研究和开发更加高效、准确的算法和模型,以应对不断变化的外挂形式和攻击手段。
这是矛与盾对决的巅峰之战,利用AI等先进技术升级反作弊系统,才能够更有力打击外挂行为。
对于游戏外挂,你是怎么看的呢?你有更好的解决方法吗?欢迎在评论区留下你的观点。#fps优化# #遇到外挂# #反外挂#
本文数据均来自网易智企旗下网易易盾对外发布的相关报告