基于玩家行为序列的游戏外挂检测

课题背景

游戏中的外挂作为一种自动化的脚本,极大的破坏了游戏的公平性,降低了玩家的游戏体验。因此外挂检测系统成为了游戏中不可或缺的防御手段。

除了游戏进程、内存保护等传统手段,逆水寒等大型MMORPG游戏中包含的丰富数据,给予了技术人员从数据角度切入的可能性。

外挂工作室等通过批量创建的脚本角色自动化地完成任务,收集游戏中的资产并进行转移,这使得外挂们具有一定程度的行为相似性,玩家们在游玩的过程中必然会触发一系列的行为事件记录,技术人员可以根据这些行为序列数据进行模式识别和异常检测,帮助游戏完成自动化的外挂检测,净化游戏环境。

问题定义

在线游戏的热门给玩家带来了极致的享受,但是随之而来的是非法外挂的增多,随着游戏的进行,外挂快速增多,并且呈现出多样化的特性。其中MMORPG游戏更是外挂的重灾区。如图1所示,外挂的客户端起了非常多的自动化脚本,起了很多个客户端来运行游戏程序,自动化完成主线任务、日常任务和副本任务,积累了大量的收益。

传统的机器学习方法通过手动设计玩家的特征来进行外挂识别,这不仅费时费力,还无法对玩家在游戏中的全部行为进行整体刻画,并且该方法极大依赖标记数据。网易游戏提出的通用MMORPG游戏外挂检测框架NGUARD巧妙解决了这些问题。它将监督学习和无监督学习方法结合在一起,监督学习方法对外挂和正常玩家进行判别,无监督学习方法泽对外挂进行聚类,并识别新型外挂。NGUARD已经被广泛应用于网易的多款MMORPG游戏中,取得了非常好的效果和反馈。

玩家在游戏中的行为通过游戏日志进行收集,每个玩家的行为由四部分组成:时间戳,动作类型,动作目标,以及玩家等级。

玩家uUu \in U 的行为序列为 <tui,aui,oui,lui>(i=1,2,3,)<t_{ui}, a_{ui}, o_{ui}, l_{ui}> (i = 1,2,3,\cdots) ,包含时间戳tuit_{ui}、动作类型auia_{ui}、动作目标ouio_{ui}、等级luil_{ui}等信息。 行为序列动作可视化的结果如图2所示。可以看到正常玩家和游戏外挂的行为序列具有明显的不同。

如何对玩家在游戏中的行为序列进行建模,更好地对外挂玩家进行识别,成为了外挂检测问题的一大难点。

问题挑战

该问题主要存在以下挑战:

  • 如何有效的使用机器学习或深度学习模型对玩家的行为序列进行特征提取和建模;

  • 如何解决标签稀缺的问题,即大量潜在外挂未在标签集合中;

  • 如何对检测出的可疑玩家给出可解释的说明和外挂的证据;

  • 如何对外挂进行群体性识别;

  • 外挂随着时间推移会快速变异,如何实现快速及时地识别。

评价指标

分类准确率Precision,召回率Recall,F1-score,AUC

数据集描述

数据集按照天进行分割,其中每天数据包括玩家在当天的行为序列数据,以及当天被封杀封禁的玩家ID。

  • 玩家行为序列

字段类型描述

role_id

string

玩家id

action_id

int

动作id

objective_ids

string

动作对象id,多个对象id以逗号隔开

time_stamp

int

动作发生的时间戳

level

int

动作发生的时间戳

  • 封禁封杀列表

字段类型描述

ds

string

日期

role_id

string

玩家id

相关学术论文

Fuxi-UP团队已针对该问题提出了结合监督分类与无监督聚类的行为序列外挂检测框架NGuard,相关工作已发表在KDD'2018

Tao, Jianrong, Jiarong Xu, Linxia Gong, Yifu Li, Changjie Fan, and Zhou Zhao. "NGUARD: A Game Bot Detection Framework for NetEase MMORPGs." In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 811-820. ACM, 2018.

联系我们

有任何问题,请联系 linjianshi@corp.netease.com

Last updated