“明白!”钟韶华立刻转向三名擅长底层开发的工程师,立刻行动。
沉逸带领另外三名工程师,负责移动数据监控功能开发,记录玩家角色的移动矢量(坐标、方向、时间戳)。算法内核是计算移动路径的馀弦相似度。
一名网络工程师提出难点:“沉总,全服上万人同时在线,每秒产生的移动数据是海量的,实时分析对服务器压力太大了!”
沉逸早有预案,“不能全量实时分析!
韶华那边的操作频率是第一道防线,一旦某个账号的操作频率触发‘非人阈值’,立刻给这个账号打上‘高危标签’。精度监控和移动数据监控优先对打上标签的账号进行第二、第三模块的深度行为分析。
同时,系统也会随机抽取一定比例的‘正常’账号进行抽样分析,避免漏网之鱼。这样能极大减轻服务器压力。”
沉逸看向另外两名网络工程师:“第三模块,‘数据对比与关联分析’交给你们。你们负责将前两个模块的输出数据,与玩家的登录时长进行关联建模。
要设计一个简单的概率模型,计算出一个账号是‘非人’的可能性有多大。这是最终判决的重要依据。”
“好的沉总!我用贝叶斯分类来做!”
分工明确,立即行动。
……
第一个24小时,沉逸带领团队在底层代码开发中度过。
钟韶华那边遇到了第一个难题。钩子程序植入得太深,虽然采集到了数据,但偶尔会引起游戏玩家卡顿。
“不行!要想办法优化!”钟韶华眼睛布满血丝,“减少非必要数据采集频率,分析内核的算法我再优化一下,减少循环嵌套!”
沉逸则在服务端,盯着不断波动的延迟监控图。
初版的抽样分析算法开始运行后,服务器CPU占用率瞬间飙升,导致全服延迟从正常的50左右波动到200以上,世界频道已经开始有玩家抱怨“卡了”。
“抽样算法不能这么粗暴。”沉逸深吸一口气,“创建动态抽样池。
另外,分析算法本身,看看有没有可以简化的计算步骤?”
沉逸坐在服务器工程师旁边,亲自参与到代码优化中。
他凭借着前世的经验,指出几个算法中可以优化的冗馀计算和内存拷贝操作。经过几处改动,让服务器CPU占用率下降了十个百分点。
……
第二个24小时,在测试、调整、再测试中度过。
“阈值调到每分钟220次操作,误差象素3个!测试一轮!”
“误杀了一个高手玩家的测试数据!他APM(每分钟操作次数)峰值能到210,但操作有波动,不是机械的。”
“把阈值放宽到每分钟250次操作,但添加‘持续时间’判断因子!连续维持高频操作超过30秒才触发!”
“移动轨迹分析模块,对开‘天眼挂’的测试账号识别率多少?”
“在算法里添加‘完美移动’惩罚因子!路径过于符合数学最优解的,要加分!”
沉逸和钟韶华不断地看着测试报告,调整、再试验。
桌上的草稿纸写满了各种阈值和算法公式,每个人的神经都绷紧到了极限。
高景行期间进来送过几次饭,看到技术部的景象都吓了一跳。每个人眼里都带着血丝,说话语速飞快,近乎癫狂的状态。
第三个24小时,最后冲刺和上线。
最终版的“行为识别系统”完成了测试。
内核采集器效率极高,服务端的分析模块经过了多重优化,在保证检测率的前提下,将性能影响降到了最低。
“上线!”沉逸拍板。
上线运行的第一个小时,流量正常,延迟正常,没有引发新的崩溃。
“行为识别系统”开始默默地采集、分析、打分…
后台监控屏幕上的数字安静地跳动着,每一次跳动都意味着一个“外挂玩家”被精准锁定。
钟韶华的眼睛紧盯着实时日志,突然,他喊道:“逸哥,第一个目标出现!ID‘无情’。每分钟操作频率达到400次,象素级精度小于5,持续超过5分钟!
移动轨迹分析显示完美三角形循环!
“调出他的详细数据!”沉逸命令道。
屏幕上迅速列出该账号的登录IP、游戏行为日志……所有证据都指向一个结论:刷怪机器。
“封禁!”沉逸毫不尤豫地下令。
紧接着,第二个、第三个……一个个“外挂玩家”被系统从茫