为了再现偶发“下坠”的bug,整个策划部除了许主策以外的九个人,在测试服务器上漫无目的地跑了整整三天。
可惜这个bug就像幽灵一样地消失了,让段杉杉彻底地理解了为什么新来的副主策会说“偶发性bug具有很强的隐蔽性,会给策划和程序增加很多处理困难”,这三天策划部全力以赴却徒劳无功的测试过程,便是这句话最好的注脚。
不过段杉杉这三天倒也没有瞎跑,而是将已有的1到60级任务反复做了十来遍,跑着跑着,又琢磨出了一些自己的想法。
按照他的习惯,第一时间将刘可韦以抽烟的名义拉到会客室。
刘可韦心不在焉地坐下来,点上一根烟后便陷入了沉思之中,显然还没有从bug问题带来的烦扰中摆脱出来。
“你说这bug这几天怎么反复测试,就是触发不了呢?”刘可韦愤愤不平地道,“三天了啊,整个策划部,这得耽误多少时间。”
段杉杉耸耸肩道:“反正没这bug的情况下,许主策也会让我们一遍又一遍地改文档,一样也是浪费时间。”
刘可韦哼了一声,恶狠狠地吸了一大口烟,不说话了。
“我这三天跑了好多遍任务流程,忽然又有点想法,你听听看?”段杉杉开始转入自己的话题。
刘可韦也不说话,就是斜睨了对方一眼,露出“你姑且说来听听”的表情。
“你不觉得我们游戏的这些任务npc太呆板了吗?”段杉杉点着了烟之后,随意地开口问道。
刘可韦此时满脑子都是bug的事,一时间还没反应过来,愣愣地反问了一句:“呆板?别的游戏不都是这样的吗?国产的网络游戏大部分都是如此。”
“嗯,永远站桩一样呆在原地,不管你1级也好,60级也罢,只要你来到同一个地方,就总是能看见同一个npc还是站在同一个地方,就好像游戏里的这些角色都是冷冰冰的雕像一样,从来没有一点变化。”段杉杉努力地选择着说辞来表达自己的想法。
“你想要什么样的变化?”刘可韦茫然不解,就他所知大部分的国产网游都是这样做的,没感觉哪儿有问题。
段杉杉抱臂胸前,整个身体向后倾去,直到背脊倚上椅子的靠背,就此彻底地放松下来。
“我在想,能不能让任务npc们‘动’起来,具体的表现就是npc的出现位置甚至外形都会随着游戏进程而变化。比如说我是玩家,接到了‘去上海’的任务,你是npc刘可韦,这段剧情里你会跟随我一道前往上海,抵达上海后,我的任务进度变为‘去看演唱会’,这段剧情里你会出现在上海体育馆,而完成‘去看演唱会’这个任务之后,再去上海体育馆的时候你就不见了,因为此刻你将会出现在滨江。”
刘可韦摩挲着下巴想象了一下游戏效果,轻轻地点了点头问道:“有点意思,你有具体的实现方案吗?”
段杉杉忽然笑了,换了个话题道:“你听说过龟兔赛跑的故事吗?”
“废话,”刘可韦哼了一声,“不就是说兔子偷懒爱玩,乌龟坚持不懈,结果乌龟赢了胜利,这和你说的想法有啥关联?”
“我听过另外一个版本的说法,”段杉杉不以为意地道,“乌龟其实有好几个兄弟,长得一模一样,除了和兔子比赛那只留在起点等待比赛开始之外,其他几只早早就出发了,所以兔子一路上紧赶慢赶,超过了好几只乌龟,可是在它到达终点的时候,还是有一只乌龟在它前头,所以它就输掉了比赛。”
刘可韦眼前一亮:“我有点明白你的意思了……”
“没错,我的想法就是设置多个同名字的npc,也就是说实际上有两个npc刘可韦,一个在上海体育馆,一个在滨江,用任务编号控制其是否可见,当游戏程序检测到玩家身上挂着‘去上海看演唱会’这个任务的时候,上海体育馆那个刘可韦是可见的,如果玩家身上没有这个任务,就看不见了那个npc了。滨江的这个也做类似的处理,这样就能达到在游戏中随着剧情进程而改变对应npc位置甚至外形的作用。这就是我的思路,你觉得可行吗?”段杉杉满怀期望地看着对方。
“别忘了我和你说过那句话,对游戏制作来说,就没有什么东西是不可实现的!”刘可韦瞪眼道,“只是要考虑性价比的因素来决定是否值得去实现它。”
段杉杉也不接口,一边一连串吐出十几个小烟圈玩着,一边等着刘可韦的意见。
“复用npc本来就是游戏研发里的常用手段,你的意思是说这些npc通过玩家的任务信息判定其是否在对应的客户端内显示?”刘可韦的脑海里高速运转着,努力去模仿出游戏里实现该功能以后的状况,“这样做的话,当两个任务进程不相同的玩家组队的时候,会出问题。两个人在一起玩,一个能看见npc,另外一个看不见,岂不是穿帮了?除非把这种设计放到副本里,然后修改副本机制,让副本的组队任务进程强制全队共享,这样还差不多。”
“我倒觉得正相反,有些时候如果玩家有人能看见npc,有人却看不见,可能会给玩家更好的游戏体验。”段杉杉并不认同刘可韦的观点。
“举个例子说说你的想法。”刘可韦也不急于反驳,而是笑嘻嘻地说道。
“好吧,我就说你最熟悉的魔兽世界,是不是经常有时候完成了任务却找不到人交?因为npc被其他做任务的人‘带’走了。然后你就只能或者放弃这个任务,或者在原地发呆等待?”段杉杉想了想举出了一个例子。
刘可韦点了点头说:“嗯,有这样的情况,但是并不多,没到你说的‘经常’那种程度。而且通常来说,我是抢别人npc的那种人,很少会被人抢!”
“多少不是重点。”段杉杉不耐烦地挥了挥手,“重点是唯一的npc一旦在游戏里动了起来,会对其他玩家造成妨碍。所以我的想法是,实际上这是两个npc,站在原地不动的,和跟随你行动的,前者当任务进程还没有到它需要动的时候,它可以被你看见,而任务进程需要它伴随你行动的时候,实际上前者隐形了,并且召唤出后者,这个后者将只能被你看见并且伴随你行动,直到你完成了相关的任务才会消失。这样一来,每个玩家的游戏体验都是彼此独立并且完整的,而且还不会被别人的游戏的进程所干扰。”
“不让玩家看到彼此和游戏世界的交互?”刘可韦一脸震惊的表情,“那我们不如去做单机算了!”
“我没有说要屏蔽一切其他玩家和游戏世界的交互啊!”段杉杉解释道,“比如说魔兽世界里完成某个任务的玩家进了某个城市,会被城里所有的npc致敬或者唾弃,这种交互被其他玩家看到就是良性的,完全不需要屏蔽。而会对其他玩家的游戏进程造成干扰的互动,则是恶性的,比如说我刚才说的把npc带跑了让别人没法接交任务。”
“你是想保护弱势玩家的游戏体验?”刘可韦敏锐地把握住了段杉杉所说的重点,“可是你要知道,有玩家被抢了任务npc而不爽,那么肯定也就有抢了别人任务npc的玩家,比如说我!我们会在这个过程中获得独有的成就感。你说的游戏机制固然是增强了被抢那部分玩家的游戏体验,可是同样也削弱了包括我在内那部分抢别人npc的玩家的游戏体验。这是一个平衡问题,看你是什么角度去看待而已,不可能像你说的那样对游戏体验只有正面作用而没有负面影响!”
“呃,你这样一说好像还真是如此。”段杉杉挠了挠头,“就好像下雨的天气给旅人带来麻烦,但却是卖伞店铺的商机一样……”
“而且你的构想如果要实现,现有的npc系统和任务系统都要做出很大的调整。”刘可韦继续打击着段杉杉,“比如说召唤出npc,这个功能现在有就不说了,可是要让npc伴随玩家行动,这个功能我们就没有,另外,我们现在控制npc是否在客户端显示的规则是通过玩家角色与该npc的直线距离判定的,超过一定半径的npc就不显示,你的构思里还要添加任务进度控制npc在客户端显示的相关规则……以我们团队现在的状况来看,要额外实现这些功能,不太现实。”
想一想最近策划部被许主策和那个偶发bug折腾得鸡飞狗跳的实际情况,段杉杉也知道刘可韦说的一点都没错,于是叹了口气默默地垂下了脑袋。
“你也别灰心,现在做不了不等于以后也没机会。”刘可韦拍了拍他的肩膀,“你先把这些想法记下来吧,等到我能拍板决定什么能做什么不能做的时候,我们再来好好讨论你这些构思的可操作性。”
说罢,刘可韦也忍不住长叹了一口气,也不知道这一天的到来,到底还要多久……
————————第十八次登场的分隔线————————
p.s.今天下午接受了十四老爷关于qa、qc、游戏引擎、物理引擎、3d引擎、地面检测碰撞……等等一系列再教育,作者为自己相关专业知识上的浅薄无知表示极度羞愧,因此对前文一些专有名词的滥用错用进行了纠正,特此声明一下。