游戏反外挂的一些建议和想法

一. 对抗基于内存扫描定位变量内存地址

在编程中,通常使用8位,4位,2位或者1位内存来保存数值。比如单机游戏中,生命数用整数型变量保存,使用内存修改工具多次扫描内存变动情况,即可较容易找到变量内存地址,修改或者锁定相应的内存地址即可达到作弊的目的。

使用单变量保存的方式很容易因数值变动,被快速定位内存地址。为避免这种情况,我们不妨用多变量组合存储的方式。比如一个变量原本为4位整数型变量,我们可以10个8位整数型变量采用求和的方式来表示。当需要修改这个组合变量的时候,采用随机方式选取其中的3个变量,使用随机数填充其中2个变量,采用求和的方式计算出第3个变量的值,使得这个求和值等于要修改的值,或者简单加密一一对应映射成需要修改的值。

组合变量可使用多个子变量,多个随机数值,多种计算方法的组合方式表示同一个数值。甚至在读取数值的时,可随机修改子变量的随机数值来迷惑对抗内存扫描。数值变动与同一内存地址数值变动不存在一一对应关系,这使得扫描变量内存地址将成为不可能。

二. 建立基于举报信誉权值的游戏举报功能

我觉得现在好多游戏的报告作弊功能并没有发挥其应有的作用,反而成为了一种拖累。就拿绝地求生来说,玩家基数多,报告作弊行为跟着多,审核全部作弊行为成为不可能,只能是通过场次击杀数,被举报次数多等多一些疑似作弊行为的才会被处理,玩家举报作弊行为的用户体验非常差,可以从两个方面着手改善和提高这个用户体验:

1. 为报告作弊明显程度分级

一个非常明显的例子,作弊玩家非常短的时间内穿墙团灭了一个4人队伍,这个作弊行为是非常明显的,但是给予的举报作弊界面是非常简陋的,没有表达出受害玩家对作弊行为的肯定程度。

作弊行为的肯定程度按百分比划分,100%与10%的赞成要表达的肯定程度,是两个完全不同的概念。现在的做法是将100%与10%的肯定程度都混在一起进行处理,玩家是可以给出这个肯定程度的,忽略这个肯定程度的区别,这明显是不合理的。

2. 为报告作弊行为引入奖惩机制

现在是胡乱举报没有惩罚,导致了需要浪费精力来处理非常多的无效乱举报,成功举报也没有奖励,这就使得举报作弊行为是混乱不堪的。解决办法是找到并团结拥有识别作弊行为能力的诸多玩家,通过有效奖励方式使得其积极成为识别作弊行为有力帮手,优先处理其高肯定程度作弊的报告,使得有效的作弊报告能得到及时审核处理。

怎么找到拥有识别作弊行为能力的玩家呢?基于举报作弊历史的审核通过程度不同,根据经验为其设置相应的信誉权值。信誉权值越高说明其举报的作弊行为的信息就越有价值,就可以奖励回报他与反馈适时提高其信誉权值。信誉权值越低说明其举报的作弊行为的信息就越没有价值,就可以忽略其举报行为与反馈适时降低其信誉权值。

经常吃鸡的高手和落地成盒的萌新,他们的识别作弊能力肯定是不一样的。游戏积分也体现出这个能力,游戏积分兑换为相应的举报能力积分,在报告的时候可以选择是否消耗举报能力积分来增加举报的肯定性,根据报告的作弊肯定程度消耗相应的举报能力积分,再根据作弊识别结果奖励相应的举报奖励积分。

当选择消耗举报能力积分进行报告时,使得胡乱举报会被白白消耗掉举报能力积分,使得配合成功举报会得到相应的奖励,这会在很大程度上解决现在胡乱举报的行为,可以极大提高玩家的有效作弊报告概率。

现在通过信誉权值,举报能力积分和其报告的各作弊肯定程度通过审核的次数,概率等,使用较小的消耗,即可完成大概率是有效的作弊报告的筛选工作,再进行下优先级安排,剩下的事情就是审核下这些大概率作弊报告即可。

猜你喜欢

转载自blog.csdn.net/zyq5945/article/details/79780678
今日推荐