游戏上线没多久,就遭遇了不少游戏工作室的外挂浪潮。游戏工作室很喜欢新游戏,因为新游戏对抗外挂的手段和技术并不多,漏洞也比较多。再加上新游戏会不断烧钱引流,游戏工作室也借机寻找大量客户。
经过一番实战,总结了一些经验和技巧,分享给大家。本文从常见作弊手段、安全日志、安全预警、预案层面、技术对策等角度探讨网络游戏作弊的应对措施。
常见作弊对策
下面就网络游戏中影响较大的三类作弊手段,分别进行讲解:
1)产生经济效益
a. 利用游戏漏洞获取经济利益
游戏漏洞是最常见、最致命的外挂,尽管经过充分的代码审查和广泛的测试,但仍然无法完全避免漏洞。
针对此类外挂,比较常用的对策策略是:
1.玩家收入警告,收入超过预估值的警告
2.安全日志记录,当遇到玩家作弊行为时,可以快速定位问题并进行热修复
3. 根据玩家举报,查看被举报玩家的数据和日志。(这个看似没用,其实作用很大,游戏中的利润最终还是要转化成现金的,所以要向玩家宣传)
b. 利用运营漏洞获取经济利益
为了增加留存,游戏必须在某些场景给予玩家真正的好处,工作室利用这些场景进行反复刷量、盈利。
针对此类外挂,比较常见的对策策略是:
1.划分新手区,高等级玩家不能进入新手区
2.限制未充值、刚注册的玩家数量
3.限制领取次数(这个说法比较宽泛,除了游戏明确规定每个人只能领取几次外,还包括内部限制)
2)减少重复工作
为了增加玩家的在线时间,游戏中设置了大量的重复性工作,比如杀200个怪物、收集50个道具,比如插件可以帮助玩家自动完成杀怪、收集道具、提交任务、接受任务,然后重复这个过程。
针对此类外挂,比较常见的对策策略是:
1.适当增加内置插件数量,也就是游戏内置的自动挂机功能
2.增加此类任务的随机性,改变任务数量和场景
3.随机添加一些确认对话框,如验证码
3)影响游戏平衡
这种外挂在竞技类游戏中比较常见,比如CF视角外挂、CF自动瞄准、LOL野怪计时、LOL技能闪避、王者荣耀视角外挂等等,这类外挂很影响游戏的平衡性。
针对此类外挂,比较常见的对策策略是:
1.加强客户端对插件的检测
2.针对外挂盈利点进行游戏优化,如LOL增加野怪刷新提示
3.内存数据加密(自定义安全类型,用于替代语言原生的int、string等类型进行数据存储,还可以重载操作符,可以有效对抗内存修改器)
4.客户端脱壳(增加反编译成本,降低游戏被反编译的可能性)
5.协议加密(增加修改协议的成本)
安全日志对峙
安全日志不同于游戏日志,它是关乎游戏经济、公平性的玩家行为日志。
为什么需要安全日志?
你知道某个玩家有问题,但是没有日志支撑,你不知道他是怎么获利的网络游戏开发,也不知道他是否真的违反了游戏规则。另外,你可以根据这个玩家的特点,找出其他作弊玩家。
安全日志收集哪些数据?
根据玩家盈利点:
1.游戏币:游戏币的获取和使用需要记录原因、增量、总金额、时间
2.道具:道具的获取和使用需要记录原因、增量、总金额、时间
3、技能:如技能释放次数、技能释放最大范围、技能命中目标总数、单次技能命中最大目标数、单次技能收益值、技能消耗能量总量、技能最大伤害、技能总伤害
4.怪物:怪物产出数量、击杀怪物数量、伤害值、受到伤害的怪物数量、初始地图位置、击杀位置
5.游戏过程:每局游戏情况,包括初始游戏币、结束时间、得分、获得的游戏币、获得的道具、游戏时长、客户端游戏时长
6.交易:交易双方信息、交易项目、交易币种、时间
当然安全日志远不止这些,需要根据不同的游戏制定不同的安全日志。
安全警告对抗
这是基于安全日志的预警,比如一个玩家注册第一天没有充值就赚了1亿游戏币,这个玩家就需要预警,预警的目的是为了发现可能作弊的玩家,提醒运营商发现作弊的玩家,就像美剧《疑犯追踪》一样。
安全预警手段主要有两种:
1.在线警告:在线实时警告,对部分游戏或者输出值严重超过警告值进行警告。这个是在线统计,玩家举报成绩、奖励时进行勾选处理。
2、离线预警:作弊玩家的收益可能不是一两局就能获得的,而是需要长时间积累,反复刷才能获得大量收益,所以需要通过分析安全日志和自定义一些规则来做离线分析,找到这些玩家。
根据作弊玩家的行为:
1.穷光蛋发财:注册当天无需充值即可获得巨额游戏币
2.一夜暴富:一天获得的游戏币是同类玩家的N倍,无需充值、无需交易
3. 明显:关注排行榜前 N 名玩家
4. 每场战斗都获胜:没有玩家可以每场战斗都获胜。总是排在前几名的玩家有问题。
5、如雨后春笋:新发布的功能还没有经过实战检验,出错的概率很大,需要对产量进行监控,给一个功能设定一个每日产量的预警值。
当然安全日志远不止这些,需要根据不同的游戏制定不同的安全日志。
帐号封禁对策
如果判定玩家的行为严重违反了游戏规则,我们应该考虑封禁该玩家。封禁的主要好处就是将作弊行为过于猖獗的玩家踢出。同时,封禁的存在相当于告诉玩家不要使用外挂。除了这两点之外,还可以有效防止游戏工作室转移资产网络游戏开发,增加作弊成本。很大一部分工作室靠卖游戏币、道具、高级游戏账号为生,而运营工作室需要花费不少成本,包括购置机器、网络、员工、游戏账号等。如果大量账号被封禁,可能会给工作室的营业额带来问题。
禁令类别:
1. 限制登录:限制玩家登录游戏,即封禁账号。短期封禁或永久封禁
2. 玩法限制:限制玩家的收入,限制可排名的积分数量
3. 限制聊天:屏蔽不良信息
封禁的难点在于如何过滤掉作弊玩家,避免误伤正常玩家:
1.注册后的作弊行为是封禁重点,尤其以牟取暴利为目的
2. 长期在线用户,日活跃用户达到15小时以上,甚至23小时以上
3. 对于大额存款的玩家,即使使用了作弊设备,影响也不大,可以忽略不计。(毕竟是家里的顶梁柱,适当提醒或警告即可)
4. 同一设备号或同一IP的多个玩家账号存在作弊数据
5.游戏日志或安全日志中有大量作弊日志
规划层面的对抗
1.增加交易成本,限制球员交易
提高交易费用很有效,工作室一般会用多个小号刷单然后聚合起来一起卖,限制的方式有很多,比如等级开通(30级开通),或者VIP2开通,需要充值多少才能达到。或者扣除交易费。
2. 为玩法(或功能)设定数值上限
每级最高得分,每技能最高伤害等等,即使属性太多或者其他原因,也要计算这个上限,做一个限制,不要为了体验而放宽这个限制。
3. 游戏(或交易)次数限制
玩法是每人每天只能玩3次,交易是VIP2每天可以交易2个道具,VIP3每天可以交易5个道具。
4. 限制获得更大回报的途径需要时间成本
工作室往往会研究最快的盈利路径,定制外挂来盈利。这种盈利路径肯定是有时间成本的。比如虽然是概率,但还是限制为每天一次。
5.减少重复任务带来的好处
很多作弊者都是通过长时间刷任务来积累收益的,一般玩家不会长时间重复做无脑的工作,同一个任务的收益应该会随着时间推移而减少。
6.适当提供自动挂断功能
游戏中很多任务都是重复性的,所以可以适当提供自动挂机。
其他技术对策
1.客户端脱壳(增加了反编译的成本,不同版本脱壳略有不同)
2.通讯加密(增加了修改协议的成本,密钥需要时时更新。或者可以将密钥做成动态的,比如自动加1)
3.内存数据加密(自定义安全类型,用于替代语言原生的int、string等类型进行数据存储,还可以重载操作符,可以有效对抗内存修改器)
4.协议通信频率限制(限制同一协议两次请求之间的间隔)
5.防加速(客户端连接到服务端后,服务端会把当前的时间发送给客户端,之后客户端再用自己计算出来的服务端时间发送协议,如果服务端检测到这个时间超出了实际时间,就会认为是加速了)
6. 账户充值及重复登录处理(必须踢出上次登录并允许保存本次登录前的数据)
7.关键数据服务器验证(如技能CD、移动速度、位置)
8.定期上报客户端核心资源或者配置文件md5,服务端会进行验证
9.客户端配置文件和资源文件加密
10.协议过期(避免拦截客户端数据包并重复发送)
最后的话
写到最后发现这是我第一篇不怎么谈技术的文章,很少谈游戏设计、开发经历、职业规划等,以后可能会花点时间在这上面,毕竟技术只是帮你打开新世界的大门,过程和结果都取决于你如何使用它。