“为什么不修?这明显是bug!而且你们利用bug完成服务器首杀,让其他正常挑战的团队怎么想?不封号就不错了。”
“擦,哪来的傻狗,游戏是你家开的?你说是bug就是bug?”
“你说不是就不是?”
“行行行,我们等著看逆天堂到底修不修!”
本来世界频道还挺和谐的,大家都在祝贺,但很快也还是出现了一些刺耳的声音。毕竟酸葡萄这种事情,是很多人普遍都有的心理。
不过丁讲师显然也不会在乎这些事情了,他现在只想立刻去睡觉。
“好了兄弟们,感谢大家的陪伴,我睡觉去了!”
说完,丁讲师光速下播。
……
艾泽利亚大陆上恢复了平静,但顾凡的客厅里却是鸡飞狗跳。
在稍早之前,丁讲师发现bug后不久,莉莉丝就已经呈现出明显的抓狂状态。
而后随著这个bug的不断发掘,玩家们开始掌握了其他职业的技能和天赋,甚至还可以通过术士的‘恶意馈赠’来将这些技能给出去的时候,莉莉丝彻底无法淡定了。
“查!立刻给我查!这么明显的bug怎么会没有测出来的!
“你们设计团队和测试团队都应该引咎辞职!!”
莉莉丝简直是出离愤怒了,因为这次的bug未免有些太离谱,也太过挑战她的智商,以至于她内心中的熊熊怒火有些压抑不住。
她很想看看,顾凡这次倒是还要怎么甩锅!
然而顾凡却并没有慌,只是默默地打开笔记本电脑,认真翻找源代码,查找bug的成因。
直到丁讲师完成首杀,他才慢悠悠地说道:“莉总,你听我解释。”
莉莉丝愤怒地叉著腰:“好,解释!重点解释一下,为什么一个boss的判定会导致玩家可以随意解锁其他职业?你尽管解释,我信了算我蠢!”
顾凡沉默片刻,弱弱地说道:“简单来说……这属于是历史遗留问题。真要有锅,也是《魔界纷争》的锅。”
第274章 大改的遗留问题
莉莉丝愣住了:“啊?《魔界纷争》的锅?”
她的表情肉眼可见地蔫了下去,但很快,她又支棱了起来,显然打算以更加激烈的态度否认。
怎么会是原游戏的锅呢?
那四舍五入,不就是自己的锅了吗?
众所周知,买《魔界纷争》改游戏的事情,是莉莉丝自己最终拍板的,现在去追究人家原开发商的责任肯定是莫名其妙,也丝毫没有道理,那岂不是就只能莉总背锅了?
岂有此理!
莉莉丝显然不服:“好,那你说说为什么是《魔界纷争》的锅,我劝你想好之后再发言啊!”
顾凡小熊摊手:“这件事情……说来话长。
“莉总,你也知道《魔界纷争》这款游戏是经过了一次大改的吧?
“在最初,这位制作人也是野心勃勃的,他想要制作一款自由度极高的mmorpg游戏,不同于其他游戏那种固定的职业和技能搭配,而是像某些独立游戏一样,让玩家自选技能搭配,打造属于自己的构建。
“但是真正制作起来却bug一堆,最后他无奈放弃了这个想法,又回到了最原始的老路上来,制作了固定的职业技能和天赋。
“如此一来,游戏的平衡性问题和BUG问题大体解决了,但游戏也变得平庸了,这才导致游戏的夭折和难产。”
莉莉丝微微点头:“嗯,我倒是有所耳闻!但是这跟我们现在遇到的bug有什么关系?就算《魔界纷争》是个半成品又怎么样呢?那跟跨职业学习技能以及boss点名判定有什么关系!”
顾凡微微摇头:“你看,又急。莉总我还没说完呢。
“莉总你要知道,改代码这种事情,是不可能全部推翻重做的,只能小修小补,让它凑合著跑起来就行了。
“决定大改的时候,《魔界纷争》已经做了很长时间,也花了很多钱,就算原本那位制作人决定大改,也绝不可能推翻重做,公司高层是不可能答应的。
“他只能是在现有预算的情况下,小修小补,用比较迂回的方式来完成这种修改。
“所以,这游戏的底层代码中,其实能够看到很多遗留问题。
“比如,怒气和法力值的问题。
“如果在其他的游戏中,怒气就只是战士或者熊德独有的资源条,而圣骑士的资源条是法力值。即便圣骑士学了战士的横扫等技能,也压根没有怒气来释放。
“为什么《阴影世界》里就可以?
“因为在我们游戏中,‘怒气’和‘蓝量’这两个资源条,也是通过技能和天赋来实现的!玩家在最开始是没有资源条的,通过学习技能、点天赋获取。
“所以,当一名圣骑士玩家解锁了其他职业的技能时,他就可以通过学习技能、点天赋获得怒气条,同样的,他甚至还能获得能量条和其他职业的资源条。
“护甲专精和武器专精,也是同理。
“在其他游戏中,某一职业能够使用什么样的武器、穿什么样的护甲,都是直接限定在职业上的。
“圣骑士能穿板甲,也能穿布甲;而牧师只能穿布甲,不能穿板甲。
“可是在这游戏中,武器精通和护甲精通,也都在技能和天赋里,都是可以学的!
“之所以会出现这种问题,是因为《魔界纷争》最开始就是一款自由打造BD的游戏,为了让玩家自选,必须将资源条和护甲精通这一类的机制设计成可自主学习的东西。
“而在之后改动时,制作人根本没有精力和资源去重写底层代码,只能是通过‘将特定的资源条与护甲精通技能锁定在某一职业的技能与天赋中’的这种办法,来变相地实现这一功能。
“所以……就出现了一系列的问题。”
莉莉丝震惊了:“那,那,按照原本《魔界纷争》的设计,不是已经限制了不能跨职业学习技能了吗?这个限制到底是怎么失效的!”
顾凡继续解释:“是的,《魔界纷争》确实限制了跨职业学技能这一点,但是……限制了又没有完全限制。
“事实上,由于《魔界纷争》在制作的前半段,压根没有职业的设定,所以这些职业,都是后加入的。
“因此在一些影响重大的底层代码中,都是不跟职业代码挂钩的。
“毕竟写这些代码的时候,还压根没有职业这个东西,而之后加入职业,又不敢再去重写底层代码,只能凑合用著。
“所以,《魔界纷争》限制玩家跨职业学技能的办法非常简单,甚至可以说是简陋。
“玩家选好职业刚创建帐号时,就默认由系统塞给他一个相关职业的技能。比如牧师是惩击,法师是火球术,术士是暗影箭,战士是英勇打击,盗贼是背刺,等等。
“而之后玩家升级、找职业训练师的时候,职业训练师会检测玩家之前掌握的技能,以及对应的职业标签。
“如果有对应职业的技能,那么就正常开放技能和天赋学习列表,而如果是其他职业的技能,就不开放,取而代之的是说一句台词把他打发走。”
莉莉丝简直是目瞪口呆:“喂!这听起来也太草率,漏洞太大了!”
顾凡微微摇头:“其实吧……漏洞不大。
“这就是程序设计师实现功能的典型思路,用最简单的代码来完成功能。
“毕竟这样改动,工作量是最小的。不需要重新做一个职业表,然后重新将职业代码写入游戏底层,那样几乎等同于推翻重做,工作量太大,是无法接受的。
“而现在的这种改法,虽然看起来草率,却可以正常地完成功能。而且按照正常情况,也不会出什么问题。”
莉莉丝气得拳头都握紧了,但她也必须承认,顾凡说得对。
这个办法虽然草率,但正常情况下还真不至于出问题!
玩家的技能在创建角色的时候就默认给了,比如玩家选了法师,系统塞给他一个火球术,那么之后他在游戏中去找任何其他的职业训练师对话,系统检测到他身上有一个火球术,都不会对他开放训练面板。
只有在跟法师的职业训练师对话时,才能正常学习法师的后续技能。
这不是也就顺利达到了固定玩家职业和天赋的目的吗?
可偏偏,游戏出现了不正常的情况。
那就是……窃法者、恶意馈赠这两个天赋技能,以及涅法洛尔这个boss!
但很快莉莉丝又有了新的疑问:“等一下,你说职业训练师不仅会检测玩家的技能,还会检测玩家的职业标签?那不对啊,这是双保险,没道理出问题啊,职业标签的检查根本通不过啊!”
顾凡继续解释:“至于这个意外情况是怎么发生的……莉总我带你从头捋一下。
“首先我必须声明,窃法者、恶意馈赠这两个天赋技能,以及涅法洛尔这个boss,都是《魔界纷争》这款原游戏中就有的设计!这可跟我没关系啊。
“显然,窃法者和恶意馈赠这两个天赋技能是原制作人奇思妙想的设计,原本是所有玩家都能学的,后来才不情不愿地拿来用作了奥术法师和痛苦术士的终极天赋。
“如果游戏中的训练师只检测玩家上一个获取的技能,那么玩家其实不需要去挑战涅法洛尔,只需要去打一下战场就可以了。
“进入战场,找到敌对玩家,用窃法者偷一个技能,这样再去找训练师对话时,训练师就会检测到玩家的上一个技能是其他职业技能。
“可是,我们游戏也开了低等级战场,终极天赋45级就可以点了,但却没有任何一名玩家在战场中发现这个机制。
“这就是因为《魔界纷争》原本的设计就是一个双保险,它虽然没有直接写死在底层的‘职业代码’,但是有‘职业标签’这个东西。
“原制作人很有可能也注意到了这个漏洞,并用‘系统标签’去堵了一下。看起来堵住了,但实际上……可能他自己也没想到,会百密一疏。”
第275章 什么屎山代码!
顾凡继续解释道:“在进入游戏、选择职业的第一时间,系统不仅会硬塞给玩家一个本职业的基础攻击技能,还会再后台给玩家打上一个‘职业标签’。这个职业标签与底层代码没有太多关联,但在一些特殊情况下,相关功能会对这个标签进行检测。
“比如,玩家找训练师学技能的时候。
“可现在的问题在于……因为涅法洛尔这个boss的独特机制,也同样赋予了玩家职业标签!这就导致原本游戏中的双重限制,都被攻破了!”
莉莉丝的大脑有些过载:“等一下!涅法洛尔为什么会赋予玩家职业标签?你说清楚!”
顾凡轻轻叹了口气:“这就要从涅法洛尔第三阶段的这个点名机制说起了。
“看得出来,‘点名’这个机制,是制作人在设计涅法洛尔这个boss时就想到的一个独特机制,甚至可以说,就是为了这碟醋才包的饺子。
“但涅法洛尔作为第一个团本中的最终boss,它的设计本就比职业大改要更早。
“所以在最开始的时候,涅法洛尔并不能直接点名职业。因为那时候,玩家还没有职业。
“为了完成点名的效果,制作人将机制设计成‘涅法洛尔会根据玩家上一次对他释放的技能来进行点名’。
“比如,上一个对他释放过盾击类技能的玩家,将会放弃使用盾牌;上一个用图腾对他造成过伤害的玩家,将会插下各种图腾反过来给他加buff。
“这种机制能够给玩家造成一定的困难,但其实也给玩家提供了足够的反制手段:只要玩家在点名前,预先学习一个特定的、无关紧要的技能摸boss一下,就可以骗过boss,破解这一机制。
“而这本来就是原制作人允许甚至鼓励的玩法。
“但后来改了职业设定,那么涅法洛尔的机制,肯定也要进行一定的修改。原制作人一番小修小补之后,发现了一个令人有些蛋疼的问题,那就是点名职业时,经常会出现一些离奇的BUG,导致游戏崩溃。
“比如,原本的设计是上一个对boss释放过盾击技能的玩家,会放弃使用盾牌;可现在盾击变成了战士和骑士都有的技能,而圣骑士又对应著其他的点名效果,必须摘出来。
“又比如,原本的设计是在团本中用变羊术控制过小怪的玩家,被点名后会对随机队友释放变羊术。
“这个设计也有独特设计意图,它鼓励玩家在之前的开荒过程中不要使用变羊术,虽然在打小怪时会大幅增加难度,但打最终boss时就会少一个灭团技能。
“这对于玩家来说,就多了一种战术与取舍。
“但现在按职业划分了,只能改成‘点名法师玩家对队友使用变羊术’,可问题是,很多法师玩家压根没用过变羊术。甚至有可能没学变羊术,这就会导致系统在通过变羊术技能来判断法师玩家时,出现漏判。
“此外还可能出现一些极端的特殊情况,比如boss读到了技能,但读到了错误的玩家标签,这种情况虽然概率极低,但程序bug这种东西,也不能说就是0。只要玩家多,概率再低的问题也终究会出现。
“为了解决这些问题,尤其是为了解决漏判的情况,原制作人就又打了一个补丁,那就是当涅法洛尔点名时,优先判定玩家上一个对他的攻击技能。
“而且为了避免游戏后续可能出现的bug,在点名时,如果技能与职业标签冲突,那么以技能为准,并且还会在系统后台默认再给玩家一次对应的职业标签,防止因为读到错误的玩家标签而自相矛盾、导致bug。
“这样一来,至少玩家在打涅法洛尔这个boss的时候,不会因为点名和职业问题而发生报错、造成游戏崩溃。
“而后等玩家下线之后,系统会重新清理玩家身上的职业标签,下次上线就会回到原点。
“只是没想到……有玩家恰好没下线,而且去找其他职业的训练师对话了。”