5068儿童新闻中心

牛人讲究科学 从程序实现的角度讲解强化

lcz 2012-03-07 16:58:27 手机版

  关于垫刀强化理论和看灯强化理论,应该是目前DNF里主流的两种理论了,从这两种理论还延伸出各种实际操作的方法,而且都各不相同,然后便是唯心主意的“大脑只选择自己所相信的而相信”,比如某个人看红灯成功了个2-3次,就觉得,看红灯好。

  本人是学计算机的,毕业以后从事IT行业,先做数据库,后来有幸加入了游戏行业,也算是老玩家了,从KOK开始打起的,这个估计很多DNF的玩家在那时候还是幼儿园呢。

  之前类似的有强化,升级,打宝石等等概率的游戏,我也是相信各种“理论”,而且非常坚信“垫”理论。而随着后面对程序设计实现的学习,才对整个强化体系有了一定的认识。

  首先,先要了解强化在后台实现的方式。当你点下强化按钮的时候,会将当前放在窗口的装备信息传给服务器端,并调用一个实现随机roll点的函数。这个函数具体的内容每个游戏实现起来可能不同,但是最简单的无非是一个随机rand()函数,就把它理解成WOW里面的roll1-100好了。得到最后roll出的值后,再调用另外一个“判断是否成功”的函数来决定,这个函数的输入自然是roll出的值和服务器收到的装备的信息,要知道不同颜色不同等级的装备成功率都是不同的,可能存在一张配置表中,然后函数去匹配,比如,14上15要roll到90点以上才允许成功,而1到2只需要在5点以上就能成功,10到11要50点以上成功。

  强化秘药和高级碳只不过是在这个判断是否成功的函数里加了另外一段代码,即把传进来的已经roll出的点数加上个固定数值,或者乘以个百分比。

  有的人认为垫刀是服务器怜悯你,失败多了能提高成功率,那是在开玩笑,如果真的要实现这样的方法,那么服务器必须缓存下每个玩家近一段时间(数分钟,小时)的强化事件信息,然后还要在“判断是否成功”函数里加入一大段的基于缓存的历史信息来的判断。这样等于把计算的复杂度提高了几倍,服务器要缓存历史信息,需要为每个玩家开辟一大块内存空间来缓存,也就是,如果同时强化的人多了,服务器就要崩,但是你们碰过这样的情况么,没有嘛,所以,做为程序员,可以大胆的说,没有哪个游戏后台开发人员会愚蠢到写这样的方法,除非策划强烈要求“在失败一定几率后能提高成功率”….

  而你们在游戏里看到的灯呢,只不过是客户端在和服务器端计算通讯的时候的反映一样,就好像,你们看到的技能效果,人物装备的外观这些,都只不过是存在于客户端本地的文件,服务器后台只管计算,不管画面反映,所以即便是永恒之塔这类很吃美术资源的游戏,也只不过需要你客户端机器好,因为渲染和美术引擎是客户端做的,服务器端管的是计算,为什么韩国游戏外挂多,是因为韩国省下服务器干的活,把很多计算放到客户端,比如判断怪物掉血,死亡等等,因为在韩国是没有人用外挂的….所以呢,外挂就很容易的更改了客户端的内存,调用本来调用不了的函数。所以也就别再骂外挂多了,我玩过盛大,九城,光通等的游戏,都是外挂漫天飞,根本就打击不严,网易口碑好,也是因为魔兽世界是欧美人的开发风格,大量的计算放到后台校验,不给前端外挂机会,就好像LOL这款美国人开发的游戏,都那么久了,很难出现Dota那样各种变态的外挂,现在唯一的外挂功能只是阴影看到技能效果而已。换句话说,给网易来代理DNF,还真不一定能比TX好。

  根据上面可以知道,一切看灯理论都是扯蛋,还亏真有人发baidu,还求看灯论,开发人员看到要笑死了,这就跟古代人在做一件事情的时候上天下雨了,于是每天重复做同样的事求雨一样…..然而垫刀理论呢,其实是建立在科学的依据上的,这个跟程序设计就没有半点关系了,但是有一门学科,叫做统计学,和我们大学的时候学的概率论还是不太相同的。为了把话说的让高中生初中生都明白,我就不提什么正态分布这些专业术语了,就一句话,你扔个6面骰子,如果只扔6次,那么出来的结果可能每个数字不到16%,但是如果你扔1万次,你会惊奇的发现,总结果,就是16%,意思是,当抽样次数到了一定数量后,就会平均分布,而强化算的是某个值大于一定值,所以可以得出官方提供的强化成功率。

  所以呢,垫刀的目的,为的是抽样,但是现在人们一般强化也就垫个几下,十来下就上了,其实用处并不大,但是不是完全没有,垫个10下,大概可以把10%的成功率,上升到20%,仅此而已。另外,并不一定是说垫刀就一定要用高强的去垫,用高强垫,其实是这个原理,即假设你扔了10次都没扔过80,那么后面扔过80的可能性就会很大,还是根据概率密度分布嘛。同样的,如果你连续把从3强化到4,假设3-4的强化只要扔过20点就成功,那么你失败一次,就说明抽样已经取了个很小的值了,如果连续3-4几次失败,那么就可以扔高强了。只是3-4实在太难失败,等的话不知道要等多久,所以大可以用5-6或者6-7来垫,如果连续失败2-3次5-6,那么扔11-12或者12到13的概率就会比直接扔要高上个10%-20%左右,这些都是经验数据,没有加入数学算法深究。

  因此呢,最终的结论就是,以后看到什么强化帝教你强化的文章,一概不看,省一点时间去多赚点软妹币,直接买装备。