52pk游戏论坛's Archiver

diaomingji 发表于 2008-7-21 20:15

关于网络游戏防外挂的一点看法

关于外挂,首先我们来做一下分类,市场上流行的外挂无外乎两类:
1、辅助型外挂
包括:自动显血,加血,加魔,捡物品,助跑,助练级,挂机脚本,代替复杂操作等等,我们称之为辅助型外挂。
2、作弊型外挂
包括:使用加速器,根据系统漏洞或BUG做经验值翻倍,掌握其他职业技能,刷怪,复制金钱,复制道具,增强自身能力等等,我们称之为作弊型外挂。
对于外挂的使用发行商是明令制止的。我们玩家也希望能有一个公平、公正的环境进行游戏。对于作弊外挂我们深恶痛绝。如果某人使用了外挂而使能力迅速在己之上,那么自己的努力也就覆水东流。玩家将一个个流失,或者恶性循环,你用,我也用。游戏也就变的不在是游戏,而是外挂在玩游戏。即使是辅助型外挂也应该避免玩家使用。为什么呢?如果玩家使用了辅助型外挂,那么很显然是游戏本身在界面设计和操作设计上过于复杂。那么如何防止外挂的使用呢?根据我一段时间做的分析可以考虑以下几种方法:
避免辅助型外挂的设计方法:把各种辅助功能加在游戏操作中,也就是说,游戏本身已经提供了这种“外挂”,比如自动显血,加血,加魔,捡物品等等。这就从很大程度上避免了玩家使用辅助外挂的可能性。
下一个难点是如何避免作弊外挂的使用。
其实作弊外挂的存在并不绝对是游戏的BUG和漏洞造成的(当然这里在一定程度上是存在的)。绝大多数情况下是由于游戏在设计和开发时没有足够分析到玩家使用外挂对游戏造成的破坏。所以为了减少开发成本的考虑,并能足够的减少客户段的大小,和服务器承载量(这涉及到带宽成本和玩家支持度)而放弃了防外挂工具的开发,取而代之的是让客服和网管对玩家进行监督和制裁。
而从几个失败的例子来看,这个观点显然是‘捡芝麻丢西瓜’,从更大程度上缩减了利润。那么防外挂工具如何制作呢?我们先来分析一下作弊外挂的技术特点。
作弊外挂的特点是:首先连接到服务器, 并对服务器进行监控,然后在客户端做出一个动作(命令),这个时候客户端会发出一条数据包送到服务器。服务器进行处理后再发一个数据包返回给客户端。这个时候把两个数据包全部截取下来做分析,做比较就可以看出差别,把差别的地方做修改然后在发送给服务器就完成了作弊。
举例来说:甲乙两个人在一个屋子里面对面(假设没有任何干扰),甲向乙仍了一个火球,使乙受到了5点血的伤害。这个时候截取的数据包的字段里有一个数据是05,这个就是伤害对方的血,如果把这个05改成FF再发送给客户段,你就可以看到对方掉的不是5点血,而是255点血了。
当然上面举的例子只是精简到最容易的程度,实际的数据包内容和外挂要复杂多,但原理是一样的。那么如何防止这样的作弊外挂使用和出现呢?首先对数据包进行加密,当然大多数游戏都是这样做的,但效果并不明显,因为能加密就能解密。
所以要从根本上处理这个问题还是要采取两个办法:
1、把所有的可能作弊的动作全部转移到服务器段来运行,使作弊者无法得到数据包
2、开发防外挂工具,对玩家进行实时跟踪,发现玩家在线时间和所获得经验不符等等类似作弊行为时,自动把信息发送给GM,分析后对该玩家进行处理。
如此一来可避免大部分作弊外挂的存在。当然这样做也是有代价的。一个就是客户段肯定要大一些,第二就是服务器的承载量要再大一些。是提高了成本,但从长远来考虑是值得的。大话西游2的防外挂就做的很好,玩过的玩家一定有感触,这也是大话区别与其他代理的国外游戏的最大优点。
就写到这,内容有错漏的地方请大家批评指正。以上都是我个人的观点

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.