技术开发 频道

Bug无处不在 国内知名游戏逻辑问题分析

        【IT168 技术】在本系列的文章中,作者举例分析了国内各公司网络软件中的Bug情况和基于这些Bug可以分析得到的这些公司的开发管理状况。其中的数据取自2007-2012年网络上运行的各种游戏和软件系统,还有一些数据并没有到发布的状态,所以,后期会补充从2005到2012年一些游戏数据情况分析的文字出来。本文主要介绍网易一款游戏的逻辑Bug,以及对问题的分析

  网易的问题和分析

  网易的东西用的不多,2012年上半年看到了支付宝里面的一个《战国风云》的宣传,貌似和曾经玩过的《热血三国》很类似(其实自从热血三国推出后,很多公司都模仿热血三国模式进行了自己的三国类或者战国类型的游戏开发,这样的抄袭很常见),于是就过去开始玩了一下。

  结果发现了这样的一些问题:

  1、一支部队从A走到B建立一个据点,然后再到C,如果没有到C的时候,就撤掉了B据点,部队会从中途往B据点返回,发现B消失了,就立刻回到A,然后部队损失一个百分比,好像是10%,因为有段时间没有玩了,所以,数值记得不是特别清楚。部队出发的时候每次携带都是往返的粮食数量,建立据点后,就可以立刻得到补充——这一点和热血三国比起来就弱了一些,热血三国的做法是,每个据点的粮食是单独计算的,必须运送过去或者收获到粮食,粮食不是全局共用的,这两者之间的数值计算差距,可就非常大了(注:青润曾经在game2热血三国第一服务器成为了那个服务器的老大,全服的州城12个,我手中的两个账号控制了4个,前后玩了将近一年时间,投入60块钱,最后卖掉一个账号3000块钱完全退出。个人认为,热血三国的数值计算做得很细,大部分地方考虑的都比较合理,几乎没有发现如此明显的弱点。当然后来热血三国升级后我就没有再玩,现在的情况就不知道了)。

  2、同样一支部队从A走到B建立一个据点,然后再到C建立一个据点,再到D建立一个据点,……中间只要我撤掉一些或者几个据点,部队自动返回,就会出现损失同样百分比的部队数量,军队立刻回到出发城市。

  3、在据点里没有出发的部队会立刻回到出发城市,并且没有任何兵力损失。

  4、针对这一点,很多玩家开始用这样的方式进行部队撤回:将领带一个兵出去,撤掉据点,将领返回,兵力一个不会损失就全部回到了出发城池。

  分析,网易的程序员可能是为了减少代码的复杂程度,我不了解他们的技术水平或者数学到底学的如何,但是从这里来看,这样的简化明显是不符合常规逻辑的,的确,这样的方式让代码的复杂度减少了很多,也许是为了性能考虑也许是确实感觉自己的服务器承受不了这样程度的复杂计算,但是,真得加上就很复杂么?笔者认为这是需要评估的,笔者没有时间去为他们做这方面的详细评估,所以只能写出来一泄了之。

  当然,热血三国也出现过一些比较明显的bug,诸如整点定时养兵法,只要在整点的那一秒,城池内是有粮食的,就可以保证不会出现逃兵的事情。于是本来只能养100万军队的,养了5000万军队,每次出发征战都要到处调集粮食然后才能出动。当然,别人也无法攻打,无论有多少部队,一次都只能带一定数量的,对付别人兵城内的几千万军队都属于被秒死。而同样也出现了使用计谋让粮草车自动返回然后进攻这个城池的对应战术。于是激发了后续的应对战术就是多路定点运粮法和特殊时期道具送粮法等等。

  另外,在这类游戏里面大都存在距离计算问题的粗略性,基本都采用了笔者称之为九宫格计算法的方式,也就是对角线和边角之间的距离同等。而实际上应该采用的是地图中心等距计算法,但是后者的计算复杂度要比前者高出很多个数量级。

  关于这类游戏的内容和如何才能吸引玩家积极投入,而不是报复性投入,笔者曾经做过一些深入的分析,但是还没有能全部整理出来,诸如,不要故意通过活动制造玩家冲突,要让玩家主动发生冲突,前者会造成一些玩家的反感而退出游戏,而后者是必然会发生的。

  例如,热血三国曾经推出一个挖宝的任务,挖宝的时间是24小时内的半个小时以上的采集,而经常打开宝藏地图看到的挖宝地点是别人已经占领正在进行采集的地点,于是,这样就不可避免的发生冲突,一方花了钱,另一方是先来后到不愿意让,这样通过活动设定让玩家发生冲突的活动基本上刚开始没多久就消亡了。

  也就是说,不要拿玩家当傻瓜,刻意的作恶,会引来玩家的反抗的。关于这方面和一些其他部分的数据因为不属于bug范畴,所以就不在本文中进行分析了。

0
相关文章