[Warframe]DE没测试游戏?
以下内容以本人高中三年所学关于程式开发的知识为基础所写,如有错漏,请纠正
在贴吧看到一堆人喷DE,当下也没查什么资料,就按自己大概记得的写了一篇很短的贴文,希望大家理性抱怨,而不是随便乱喷DE。结果呢?还有人骂我tw*?就此,我决定查一下资料,以严谨的态度写一篇专栏给大家分析DE在Warframe这个游戏上是不是真的做的这么差。

DE没能力测试bug
有人看到开发者直播说了一句DE没能力进行压力测试就骂DE没能力查bug,当玩家是小白鼠,我请你看清楚说的是没能力进行压力测试。

附上翻译原文

这里就以我个人知识简单说一下程式码会经过什么样的测试。
程式错误的类别
syntax error语法错误,这个就直接影响程式码能不能成功编译成软件,在拥有IDE(进阶开发环境)的情况下这个是确保不会发生,也不会到我们这些使用者(玩家)身上出现问题。
logic error逻辑错误,主要检查程式的逻辑(游戏的机制),是否跟预期之中一样正确的执行某些操作就会输出相对应的结果。一般来说会在正式写程式码之前先运用pseudo code伪代码,flowchart流程图,data flow diagram数据流程图等方式进行dry run(中文大概是排练?)以确保程式逻辑。但依然会有一些bug在这里发生并回报给开发人员。
run-time error执行错误,程式/游戏实际运行的时候才会发生的错误。比如1/0无法得出结果或者常听到的stack overflow堆栈溢出。这类错误大多数情况会直接游戏崩溃。
而一个程式码主要有什么测试呢?
Boundary test(边界测试?),将预期输入值的最大和最小值输入并测试是否有正确输出。然后将预期值以外的数值输入看是否会正确报错。一般来说会以几组不一样的数据组以确保程式正确执行。
Stress test(压力测试),在一些小型的程式就不需要测试这个。压力测试主要是测试在长时间高负荷的情况下程式时候仍能够正确执行的稳定性,主要是一些大型、会长时间运行,特别是伺服器执行的程式才需要测试。
而这次猩红之矛出现地面队伍传代码而天上队伍收不到的原因是什么?正是这个压力测试没做。DE绝对是有测试过游戏逻辑的,直播也试过在内测伺服器(Alpha test)演示猩红之矛,当时只有天地各一队,能够正确接受代码,代表logic 跟 run-time没出现问题。那问题自然出在这一个压力测试上。问题是什么呢?我把这次猩红之矛代码的传送方式大概画了出来。

当初是一对一而且全在公司内网,这个传输自然不会有问题。可是DE员工有多少?开发组有多少?开发组里负责猩红之矛的有多少?他们能模拟真实玩家情况?真实情况下,地面主机到伺服器再到天上主机延迟多少?timeout(超时)不是很正常?这应该是其中一个收不到代码的原因。另外,刚开始貌似是地面队伍跟天上队伍一对一,假如地面队伍离开,天上队伍就没法继续任务,这也是收不到代码的原因。再者,没记错的话以往中继站是容纳50人,而这次变成容纳30队,数据传输量不就变多了很多?这也是导致出bug的其中一个可能的原因。但开发者不能模拟高强度的压力测试,这个时候该怎么办?很自然的就是丢给公开测试(beta test)。而Warframe本来就是一个Open beta test的游戏,可能有人说当年的确有在客户端显示open beta test,现在没了。但你看DE官网,他们仍然说自己是open beta test。

有人说这只是逃避政策的借口,开脱。可这就不是事实了吗?Warframe是一个玩家社群互动很强的游戏,很大一部分原因就是这个游戏做了七年还是公开测试。也没几个游戏跟Warframe一样有community team直播跟玩家一起玩吧?他们也在聆听玩家声音,你看官方论坛基本上提到bug都有员工回复表示会跟进。
那就有人问了,你DE就一定要直接放出未测试内容?这个就涉及到system conversion系统转换的问题。由于DE面向玩家的只有一个公测伺服器,所以没法使用最好的测试方式parallel conversion(平行转换)
parallel conversion的好处就是可以在不改动已有系统的基础上出一个新的系统进行测试之用。很多游戏都采取这个方式,就如PUBG跟英雄联盟(美服)会开设一个独立的测试伺服器(Public test/ Experimental Server)。然而DE只有一个公测伺服器,没法采用。
那么还有什么其他测试方式呢?
phased conversion(分阶段转换),其下还有gradal,modular,distributed等细分的方式就不说了。简单来说就是将一次改动分阶段的更新,用于一个个功能逐个检查。这个很明显就很不现实,总不可能一个版本更新都分好几个来更新吧(当然你要说热修或者细版本更新也算的话那也可以是phased)
那还剩下什么方式呢?就是DE所采用的direct changeover(直接更换)
direct changeover好处是什么呢?统一,需时和成本低,更能直观的发现用户体验出现什么问题从而让开发人员能够更快的发现漏洞进行修复。缺点:当更新出现问题会令使用者体验大幅下降。
很明显在没办法选择的情况下DE选择了direct changeover,而这个做法对于一个公测伺服器来说其实毫无问题,甚至应该说几乎每个公测伺服器都是这么做。可为什么一群Warframe玩家这么气?其实就是因为这是个只有公测伺服器的游戏,总觉得自己玩的就是正式上线,不应该有这么多会影响游玩体验的bug。
我理解有人会对这个很多bug甚至被调侃成bugframe的游戏有很多意见,很多怨气。可为什么就要直接喷呢?不能了解一下什么情况?不能心平气和的提意见?我就开一个相对比较客观的贴说一下,一堆人说我孝子给DE洗地,一堆人在这喷DE什么不好什么不好,还有对我人身攻击的。要是这是什么梗的话是没差,单纯抱怨没问题,为什么非要出口就是脏话,满口芬芳?为什么你骂之前不了解情况?
DE不玩游戏
有人骂DE不玩游戏,全靠代码。我怀疑你只看了国内转载的开发者直播devstream?开发者直播为了演示内容的确会大量使用代码,但是你有看过Prime time吗?任何一个平台的都好,无论PS4,Xbox,NS还是我们最熟悉的PC,你有看过吗?当中没有用过任何的代码好吗?的确,DE员工对游戏理解还不如我们玩家社群。可你要知道,DE我们最熟悉的员工除了开发部经理Steve之外,全是社群管理组community team的。他们的工作并不是玩游戏,而是与玩家互动,无论是直播,推特,Discord甚至论坛、客服单、电邮、合作玩家。这些事宜才是他们的工作内容。同时,他们真的没玩游戏?那这两张我从莲妈Rebbeca的推特截图截的什么?


这两张图还不能显示DE员工有在玩游戏同时跟玩家互动?只不过他们并不如一些肝帝一整天在玩,他们的游戏的理解也肯定没这么高。但你居然喷DE员工没玩游戏?那么Rebecca一个从7年前的开发者直播就在演示游戏的员工算什么?社群组其他员工在干什么?
还有其他问题我就不说了,我明白很多人对这个游戏在某一些方面会失望,会有怨气。不是不让你说,可你就不能了解情况,了解原因?你就不能心平气和的提意见?只能喷,只能骂?基本素质跟礼貌呢?