一般来说,BUG专指电脑系统或程序的缺陷问题,而游戏BUG就是游戏里面的系统缺陷产生的漏洞。
Bug一词的原意是“臭虫”或“虫子”。但是在电脑系统或程序中,如果隐藏着的一些未被发现的缺陷或问题,人们也叫它“Bug”,这是怎么回事呢?
从电脑诞生之日起,就有了电脑BUG。第一个有记载的BUG是美国海军的编程员,编译器的发明者格蕾斯·哈珀(GraceHopper)发现的。哈珀后来成了美国海军的一个将军,领导了著名计算机语言Cobol的开发。
1945年9月9日,下午三点,哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束,哈珀的小组日以继夜地工作,机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。
突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例。”
从此以后,人们将计算机错误戏称为虫子(BUG),而把找寻错误的工作称为(DEBUG)。如何减少以至消灭程序中的Bug,一直是程序员所极为重视的课题。
我们知道游戏研发是一个非常复杂繁琐的过程,不仅涉及到程序代码,还有美术资源,音频资源,游戏数据等,这些内容都是业内不同工种的开发者产出的(程序,策划,美术,音乐等),那么只要是人做的东西就会有产生错误的可能。
程序的代码存在漏洞,例如同一个变量名前后写法出现差错,或者调用某一个方法时拼写错误等都会导致BUG。除了程序层面的问题以外,策划填写的数据出错,或者美术使用了错误的图片,以及模型的穿模,动画的跳帧滑步,以及后期运营人员的手抖都可以视为游戏BUG。从严重程度来说,程序代码层面造成的BUG最为致命。解决BUG最好的办法就是优化研发环节流程,尽量做到面面俱到。
关于游戏历史上的重大BUG有三个,这里说的重大BUG已经严重影响到了游戏体验和平衡性,甚至登上了新闻媒体。
第一个重大BUG产生于MOBA类游戏(竞技类游戏)英雄联盟。在2012年在电信一区德玛西亚,一个ID名叫:发呆丶的玩家无意之间发现了一个BUG,用金山软件修改游戏文件这个BUG可以让技能无CD(技能释放后可以立即再次释放,无视技能冷却时间),无限治疗并且可以无限闪现,这样的BUG在当时已经严重影响游戏公平,仅用5分钟就推上了中路的高地!经过几轮的游戏后,发呆哥可能觉得没意思,决定把这项BUG反应给腾讯的客服。
虽然这位玩家并不是高分段的玩家,但是却依然秉持着对游戏的热爱,决定还给英雄联盟一个公平,腾讯的客服也回复发呆哥会尽快恢复游戏BUG,几天过去了,这个BUG却一直没有修复,发呆哥发帖投诉这个BUG,可是每次发完都会被秒删。
发呆哥为了引起英雄联盟官方的注意,决定用BUG横扫整个联盟界,发呆哥一路上分,一夜超过了当时的国服第一若风,发呆哥将这个BUG的方法告诉了更多的玩家,一夜间电信一区爆炸!所有知道BUG的玩家疯狂上分。当时的若风甚至不敢打排位,一进场遇到的都是这个恶性BUG。后来若风也得知BUG横行是为了让腾讯重视,也在微博发文表示。
因为越来越多的人用这个BUG,终于引起了腾讯的重视,经过官方的修复才解决了这个BUG。后来腾讯还出了一款皮肤叫至死不渝,上面写着献给那些即使饱受创伤,仍然坚守正道的召唤师,据说就是为了发呆哥而设计的。
第二个重大BUG出现在游戏DNF中(地下城与勇士),游戏中出现了一种可以赚钱的BUG,事情的起因是在游戏的80级版本中,出现过一个叫做云幂的NPC,而在这各NPC商店售卖的罐子道具可以开出装备,但也是极小的几率开出5000万和1亿的游戏金币。
这个BUG就是围绕这个罐子展开的,根据游戏的判定在玩家背包已满的情况下会提示罐子开启失败,因为背包已满在开出装备的情况下是无法放入到背包中的。但如果开出了游戏金币则是可以放入到背包存放金币的区域(一般来说游戏中一个账号最大的金币存储额度为21亿)。
所以玩家利用了这个BUG一直开启罐子,直到开出金币为止。这个BUG竟然好几天之后才被修复,被修复的时候已经泛滥开来,有的玩家在这几天内利用这个BUG狂刷游戏币,赚到了一大笔现金,在当时游戏中几乎人尽皆知,至此之后云幂NPC也被官方移除。
第三个重大的游戏BUG出现在魔兽世界中,这个BUG被称之为堕落之血。这是一个游戏副本中角色的技能名称。这个技能却在游戏中造成了一场灾难般的瘟疫。
疫情开始于2005年9月13日。魔兽世界的开发商暴雪公司在当天发布了游戏的1.7版更新程式,其中包括一个名叫“祖尔格拉布”(Zul'Gurub)的新的地下城。地下城中的头目“哈卡——灵魂剥夺者”,又被称为“血神”。
在玩家与哈卡战斗时,哈卡会释放一种DEBUFF技能(一种在一定时间内产生负面影响的法术)感染——这个法术就是瘟疫“堕落之血”,每过几秒钟会造成250-300点伤害(游戏中高等级的角色有约2500-5000点生命力,中等级约1500点)。被感染的角色周围距离太近的其他角色也会随之被传染。低级别的角色会在几秒钟内被这一瘟疫杀死,但是高级别的角色却因拥有较高生命力并可以使用治疗法术而存活下来。NPC和角色的宠物是瘟疫得以传播的重要因素。
一般情况下瘟疫在地下城中产生,并随着时间的消逝或角色的死亡而消失,影响范围有限。唯一将其传出祖尔格拉布地下城之外的方法是让宠物(由玩家控制协助战斗并能跟随玩家的动物)感染瘟疫,并在5秒钟内将宠物遣散,最后在地下城外人口聚集的地区把宠物召回。宠物被遣散时保留了被瘟疫感染的状态,瘟疫的计时效果也被暂停,直到宠物被重新召唤时仍然处于被感染状态。
因个别玩家采取了这种恶性方式将堕落之血瘟疫在几天时间内传遍了魔兽世界的所有领土,整个城市都变得无法居留,玩家不得不躲避其他玩家聚集的场所,或者彻底避开大城市。部落和联盟的首都到处都是尸体,尸体和骷髅遍布街道。
最终靠着官方和一些具有良知的玩家在游戏中建立起隔离区,加上官方的紧急修复才彻底的解决这个恶性BUG。最后瘟疫在哈卡的魔法能力被修改后得到“治愈”——哈卡仍然在战斗中对随机玩家施放堕落之血魔法,但魔法被改成了一道红色的闪电,不再以瘟疫的形式在玩家间传播。
这次在游戏中瘟疫的大范围爆发(很多服务器中有半数以上的角色被感染)还引起了现实生活中媒体的广泛关注。2007年8月,塔夫斯大学公共健康与家庭医学助理研究教授,呼吁针对这次虚拟瘟疫事件与现实瘟疫的相似性进行研究。美国疾病控制与预防中心,也向暴雪请求得到这次瘟疫爆发的数据,以研究应对现实世界中的疫情。
游戏BUG的出现绝不仅仅只有这三次,只是这三次bug具有代表性,且给游戏官方和其他玩家造成了重大损失,放到今天来看依然是让人震惊。希望今后的游戏不再出现类似的重大BUG,让所有玩家都能在游戏中找到乐趣,而不是悲伤和愤怒。