先太快,后太软:调校推力
有一个常数,比其他任何常数都更能决定 TUNL 的手感。在一位玩家告诉我游戏太快之后的同一天里,我把它改了两次,第二次改动教会我的比第一次更多。
操作方式和大多数人以为的不一样
在类似 Flappy Bird 的游戏里,轻点一下会给小鸟一个瞬间的向上速度。TUNL 不一样。按住并不决定你的速度,而是决定你的加速度。按住时,一股向上的力会叠加到重力上;松开时,只有重力起作用。飞船在切换过程中会保留其动量,所以如果你在上升的顶点松手,还会再多上升一瞬间。这既让游戏有了分量感,也让这些数值变得非常敏感。
三个常数定义了它:重力向下拉,推力在你按住时向上推,最大速度限制节奏的上限。对手感最重要的是这对净加速度:按住时你向上加速有多快(推力减去重力),对比松开时你向下加速有多快(仅重力)。两者之比就是游戏的个性。
它是怎么变得太快的
在多轮调整中,我把数值越收越紧,追求一种类似 Flappy Bird 那种灵敏的手感。重力从 1150 提高到 1300,推力从 2400 提高到 3400,最大速度从 820 提高到 1080。每一步在测试时都感觉更好,因为我在朝着缩短拇指与飞船之间延迟的方向调校。到最后,净上升加速度大约是净下降加速度的 1.6 倍。
后来 Reddit 上一位玩家说加速感觉太快了,他还没体会到一局的爽快感就已经死了。这是游戏收到的第一条主动反馈,所以分量很重。我一直在优化的东西,也就是响应速度,恰恰是让游戏变得不留情面的原因。
太软了,然后落在了中间某处
第一反应是把推力调回 2700。这个值离重力近得多,净上升加速度只比净下降加速度略大一点。同一天我试玩了一下,结果又朝相反方向错了:太软。飞船像悬在空中一样,上升和下降几乎没什么区别,这是另一种失去手感的方式。
于是第二次改动成了一种折中,是通过同时观察两个比值而不是只凭手感来选择的。最初那个灵敏的调校大约是上升 2100 对下降 1300。软化后的版本是上升 1400 对下降 1300。我把推力定在了 3100,也就是净上升 1800 对净下降 1300,大致居中。上升依然比下降感觉更灵敏,但不再有那种几乎瞬间锁死在最大速度上的感觉。整个过程中重力和最大速度都没有变动。
我从中得到的教训是,"太快"和"太软"是同一个比值的两端,而不是两个独立的问题。一旦我把净上升和净下降放在一起看,目标就很明显了。在那之前,我一直是在调整一个数字,然后凭感觉重新判断。
答案的后半部分是开局
重新调校推力解决了手感问题,但没有解决新玩家很快就死的原因。在测量新手的一局游戏时,中位数只有大约一秒的飞行时间。光是发射动画就比这更长。规律很清楚:新手按住不放,飞船撞上天花板,游戏结束。游戏里从来没有任何东西教过操作方案的另一半,也就是松手。
我放弃了文字提示的方案。我在标题下方试过一句"按住上升,松开下降",但当天就把它去掉了,因为它紧挨着那个已经在说"按住"的按钮,显得多余,还挤占了下面按钮行的空间。信息本身是对的,只是一句文字并不是传达它的正确方式。
于是改由开局的金币来教这件事。在洞穴的第一段,金币的排列被强制成一条平缓的弧线,起点低于发射高度,随后升到上方。要拿到第一枚金币,你得松手滑翔而下;要拿到第二枚,你得按住上升。到第三枚时,你已经体验过操作的两个方面,而没有人说过一个字。这与改动的其余部分配合得很好,也就是那段允许两次船体擦伤的安全开局,我在关于节奏的文章中有描述。
调校历史有什么用
我保留这份记录的原因是,像这样的常数会随时间漂移。它只是文件里的一个数字,很容易被稍微改动一下,而每一次小小的改动在当时看来都有理由。我保留了它曾经有过的每一个值以及原因,这样下次如果有人(包括我自己)觉得游戏再灵敏一点会更好,答案已经写在那里了:这已经试过了,玩家说太快了。
输入模型同样是固定的。按住加速是这款游戏的身份认同,调校可以在其中变化,但绝不能用瞬时脉冲取代它。不同尺寸的屏幕能获得相同的手感轨迹,靠的是一条缩放规则,我在关于公平性的文章中有描述。
如果你想亲自体会结果,飞船只需一点即可启程。