『手速梗』成真,炉石设计师做了什么?


- # 炉石传说
- # 酒馆战棋
本文为作者原创内容,未经作者本人和营地同意不得转载
观看兽兽最新一期的【炉石科技】(bug传说),可以看到,老玩家经久不衰的『手速快防爆牌』梗,居然成真了!
视频中(04:34开始),另一具藏匿遗体出奖励的瞬间,可以通过手速快,抢时间用掉牌,从而防止爆任务奖励。
这个现象,可以说是开创了炉石(梗)史上的一个先河。
关于其中原理,我从程序员角度给大家解释(口糊)一下。
炉石的『手速』到底是什么梗?
首先我们把手速梗大致分一下类,从最离谱的远古传说『奉献让对面随从全部离开棋盘悬空,手速快抢在这个期间打出复仇之怒就能全部打脸』这个梗说起。
大部分人一眼就看懂,这个梗无厘头在于,奉献让随从悬空是纯粹的动画视觉效果,其实随从悬空和离场没有任何关系。
炉石的结算全部都是服务器端的,而服务器只认数据上的游戏状态,不认你客户端显示出来的效果。
曾经出现的【僵屍随从占位导致能上8个随从】,【消失的嘲讽既不能被解又永久护脸】等等显示bug都是这一类,本质是客户端显示和服务器不一致。具体原理的话,就是下面这样:
- 客户端觉得随从还活着,但实际已经死了,所以僵屍随从只是一个虚假的显示,不占格子,也不参与互动。
- 客户端把随从显示丢了(尺寸缩小到很夸张/坐标离开屏幕范围/z坐标沉到棋盘下方),但实际随从还在,所以还能阻止打脸。
为什么『手速快』也做不到硬币山岭?
最知名的硬币山岭梗,和同样经典的双魂火打8梗,这些属于同一类,是之前几种例子的进阶。
之前的举例,可以静态地理解客户端显示效果和服务器结算效果的差异。而双魂火的例子,则是客户端进度和服务器的时间差。
第一张灵魂之火打出去的瞬间,服务器确认你的操作后,第二张灵魂之火已经被结算为弃掉了(绿框也消失了,其实这个才是和服务器游戏状态同步程度最高的)。既然是已经不在手里的牌,当然不能趁着动画没放完耍赖用出去了。山岭巨人实际费用的变化和显示数字变化的时间差也是同理。
像这种结算,老玩家通过常年的体感也已经形成了理解,因此手速不能改变结算顺序,只能加快原本就能实现的流程已经是老玩家的共识。
哪些情况『手速』有用?
像前面那些属于看上去能做到的操作实际上做不到的反直觉(对新玩家来说的确挺反直觉的),还有相反方向的看上去做不到的操作实际上做得到。比如:
- 很多操作量大的盗贼卡组,用暗影步选中随从松手的一瞬间立刻又把半空中的随从往旁边一甩就能直接丢下去。而正常步骤等随从回手绝对不可能这么快完成操作。
- 带清凉的泉水的法师,用泉水过到法术时,根本不需要看到具体抽上来的牌就能用复原的水晶打出左手边的其它牌。
- 尤格-萨隆放电影烧绳的时候,即使铺满了场面,剩余0费,还是能把手牌中有绿框的非0费随从丢下去,接着看电影后续果然是施放了消灭友方随从和获得法力水晶的法术。
同样是『手速』,做不做得到的关键是什么呢?
这里就有一个用户交互方面极其基本而重要的概念【合法性检测】。
用户(玩家)所可能选择的所有操作,只有通过了“合法性检测”的合法操作才会得到响应,其它操作则会被拒绝,表现出来的就是“牌拖不动了”。
对炉石玩家来说,牌拖不拖得动,就是操作合法性的最直观表现。
看过了上面这么多例子,我们可以知道,要让一个操作可以执行,唯一的办法是让炉石的游戏状态引擎认为这个操作合法。而游戏状态引擎当中的你的实际所处进度,和你看到的动画显示之间有时间差。
当你理解了游戏引擎实际所处的状态时,所有的手速问题便全部可以理解了。
影响操作『合法性』的最大因素
在回到开篇的藏匿遗体手速问题之前,让我们回顾一下会影响我们游戏内各种操作合法性的因素。除了剩余法力值(铸币),随从数上限,还有什么呢?
对,就是发现!
在炉石传说中,“发现”操作(以及各种字面上不叫『发现』但共用一套交互界面的操作)有一条不言自明的隐藏规则。那就是发现的选择阶段,你除了选择选项之外,任何其它操作暂时都变成了非法。
从流程的角度来说,发现“阻塞”了所有其它操作。
而这对于炉石来说,虽然是规则需要——设计师不希望你看到发现选项之后,再进行操作以便确认哪个选项更有用。
但最大的问题是,游戏引擎结算到发现的时点,和发现选项出现在屏幕上的时点,时间差太大了!
玩过剽窃贼的朋友应该都有体会,当你正在一口口吃着偷来的神圣寿司卷,顺便打出一张奈法利安的牙时,这一瞬间,右手边出现的寿司卷就拖不动了——
很容易理解,虽然牙的动画还在慢慢播放,根本没进行到荣誉消灭→出现发现选项这一步,但游戏引擎已经认为你在发现阶段了,自然要遵循定例阻止你进行任何其它操作——即使你觉得自己只是在发现选项盖住屏幕之前争分夺秒吃寿司而已。
那这和藏匿遗体有什么关系呢?
有兴趣的朋友自己试验一下,【另一具藏匿遗体】任务奖励的选项出现在屏幕上时,你还能不能进行其它操作。
如果不能操作,那就说明,【发现选项出现后,所有其它操作暂时都变得不合法】这个规则前提并没有变。
那变的是什么呢?
没错,就是藏匿遗体结算发现的时点!
根据我个人独断地推测(准确度90%以上),另一具藏匿遗体的字面机制是【完成任务条件时,(显示任务动画并)提供一次发现】,事实上初版的任务设计应该也的确如此。
但后续为了优化卡顿游戏体验——没错,玩家才分不清楚程序细节,不管是动画进度滞后,还是网络延迟丢包,服务器响应慢,设备配置太差导致客户端被系统挂起,对玩家来说都叫卡顿——设计师想了个鸡贼的方法。
现在另一具藏匿遗体的实际机制应该是【完成任务条件时,如果在回合内,则令客户端播放任务完成动画,待客户端动画播放完成后,再视为(由客户端)自动施放“获取奖励”并立即将选项呈现在屏幕上】,以这种方式缓解发现动画时间差带来的游戏体验问题。
这是炉石史上第一次把一个扳機自动触发的事件流程拆分成两段,交由客户端来掌控时间进度,从而甚至改变了玩家被允许的操作顺序的先例!
上一个在一定程度上相似的“服务器听客户端”的例子则是北京龙诺兹多姆。现在大部分时候北京龙的实际回合时间都超过15秒,有时候一方玩家会看到回合结束了好一会绳子才开始烧。其原因,就是照顾到客户端往往要花很多时间播放动画,尽力避免某一方玩家被动画完全卡掉回合——虽然极端情况下还是会卡掉,但至少可以看出设计师在努力作出尝试。
我们可以期待什么?
『发现』对玩家操作的阻塞,可以说是炉石操作流畅性的最大历史遗留问题之一。
毕竟,满场出不了怪,需要送怪,大部分人的反射弧并不会觉得是游戏卡,而是自己操作慢反应慢。
但是发现选项出现得太慢却会早早卡住操作空间却是几乎所有模式玩家(除了回合内只有基础动画的佣兵和没有时间限制的pve)都会出现的一大痛点。
藏匿遗体的这种优化思路,能否延伸到其它的发现牌上呢?
或者,从推翻屎山的角度,能否干脆把发现的游戏规则改了,直接允许玩家在发现选项出现的同时进行其它操作,甚至同时进行多项发现?
无非是用户界面需要作一些调整,但长远来看,却是能解决操作流畅性的同时不引入更多时序隐患的好方案。
又说不定,这种规则变革,还能给炉石的设计空间注入新的活力呢?
还没有评论