七秒区段:TUNL 如何把控一局的节奏

难度曲线告诉你游戏在某一刻有多难。它不会告诉你那一局玩起来是什么感觉。这是一个用一份方案取代一堆独立曲线,并衡量它是否奏效的故事。

開發日誌 · 2026 年 9 月 20 日 · 所有文章

在最初的十几个版本里,TUNL 的难度是一组各自独立的曲线。钟乳石间距有一条曲线,地雷间距有一条曲线,金币间距有一条曲线,每一条都是"深入洞穴多远"的函数。每条曲线单独看都合理。但合在一起,产生的却是一局手感参差不齐的游戏,等我终于把它量化出来时,数字和手感说的是同一件事。

审计发现了什么

我用四个技能等级的机器人重放了真实的生成器和真实的物理系统,每个等级各跑一百局,跨越 24 个不同的每日种子。然后我查看了新元素何时出现,以及机器人在哪里死亡。四个问题格外突出:

这个想法:一局是一串区段

我没有再写各自独立的曲线,而是写了一份方案。一局是一串区段,每个区段在固定的参考速度下持续七秒。区段 0 是安全的开局飞行。此后的每个区段要么恰好引入一个新东西,要么强化一个玩家已经了解的东西。从第三个区段开始,每个边界处都会出现"区段 n"的提示,让玩家能感受到这种结构。

长度被有意用秒来度量,而不是像素。洞穴一直在加速,所以固定数量的世界像素,随着对局推进代表的时间会越来越短。如果用像素定义区段,区段只会变得越来越短。用参考秒来定义,再通过对参考速度趋势积分换算回世界位置,区段边界就依然是位置的一个纯函数。这一点很重要,因为整个游戏必须对每个玩家保持完全一致:我在关于每日洞穴的文章中写过原因。

区段得分新增内容
00 - 50开阔通道。金币和沙漏金币。
150 - 110最初的钟乳石,护盾金币
2110 - 180弹药,磁铁
3180 - 250第一个地雷(单独出现,居中),炸弹金币
4250 - 330巨石
5330 - 410交错通道,逐渐淡入
6410 - 490加农炮
7490 - 580坠落的钟乳石
8580 - 680毒药金币
9680 - 770吸取金币
10+770 及以上没有新东西。各项速率持续增长。

两条规则决定顺序。工具要先于它们所应对的威胁出现。护盾金币在第一个地雷出现前一个区段就已登场,好让玩家手上有一个可用。而且工具也不能来得太晚,因为每日任务("收集五个弹药"、"拿到两个磁铁"、"使用三颗炸弹")是按天累计的,必须让那些对局大约在第二或第三区段就结束的休闲玩家也能达成。在移动任何一个金币出现的门槛之前,我先检查了任务列表。

密度是速率,不是间距

在一个区段内,某种危险的密度是一个每参考秒的速率:钟乳石槽位在区段 1 中是每秒两个,每区段增长 14%,从区段 8 起放缓为每区段 8%。地雷在区段 3 中从每秒 0.28 个开始,每区段增长 20%,之后是 10%。像素单位的间距是从速率推导出来的,并保留一个硬性下限,因此速率可以无限增长,而每一局依然会结束。地雷正是保证这一点的东西,因为地雷可以出现在通道的任何位置,所以无论通道多宽,都无法让一个足够快的洞穴变得可以幸存。

每个区段同时也是一个锯齿波。它的前五分之一以目标密度的 55% 运行,并额外提供更多金币候选作为回报,然后向着下一个边界从 80% 攀升到 115%。这样玩家在每个区段开始时都能喘口气,接着压力上升,然后迎来一个新点子。持续攀升会让人疲惫,带有休息的攀升,人们才会称之为公平。

按实测速率来调整,绝不要按间距数字调整。放置规则会否决那些会落在不公平位置的物体,而被否决的比例会随密度变化。把间距值减半并不会让危险物翻倍,而这种耦合正是地雷数量第一次变成三倍的原因所在。所以每一次调优都以一次重放收尾,统计每个真实秒钟内实际放置的物体数量。

船体擦痕:原谅撞墙,不原谅尖刺

第二个重大改动是为那些死在第一面墙上的新手做的。现在飞船有两次船体擦痕机会。撞墙一次会消耗一次,把飞船弹回通道内并显示"擦伤!"。用完之后,下一次接触就会结束这局游戏。

它们最初是一种临时辅助,会在区段 3 失效。一旦每局游戏都从飞入隧道口、墙壁从一开始就致命起就开始了,让它们贯穿整局就变得合理,现在也确实如此。擦痕之后的宽限期只保护玩家不被墙壁伤害。钟乳石、地雷、巨石和射击仍然是致命的,飞船也不会闪烁。如果宽限期覆盖一切,一个厉害的玩家就能故意蹭一下墙来穿过一片钟乳石区,所以规则是:擦痕原谅撞墙的失误,直接命中则是护盾该管的事。

我也尝试过一个显而易见的替代方案:在同一时刻给予一次免费护盾。结果这主要帮助了强者段位的玩家,他们用它在之后活过一次钟乳石撞击,中位数对局分数提升了约 72%。这是在奖励本就不需要帮助的技巧,所以我放弃了这个方案。

有效果吗?

同样的机器人,在同样的种子上,对比修改前后。"平均"是在上一版本中行为最接近真实玩家的那个段位。

机器人段位中位数得分达到 100 分在墙壁变得致命之后的 8 分之内死亡
新手65 → 954% → 39%41% → 3%
平均107 → 15532% → 70%16% → 2%
优秀205 → 40180% → 91%1% → 1%
专家715 → 928100%0%

平均段位每区段的死亡率变成了一条斜坡(前三个危险区段依次为 38%、60%、68%),而不是一道悬崖。这正是我想要的形状:一局游戏应该逐渐变得更有可能结束,而不是突然一定会结束。

没能解决的问题

专家玩家仍然会在区段 10 和 11 附近撞上一道反应时间的墙,那里有 63%、随后 77% 的专家对局在此结束。在这份方案之前,这个数字在区段 7 和 8 是 100%,所以这确实是一次真正的改善,但它并不像前面区段那样是平滑的斜坡。我尝试了两个显而易见的修复方案:让钟乳石长度增长得更慢,以及让交错通道概率的上升更慢。两者实测都没有效果。剩下的杠杆是速度本身,而我有意保留了它,因为速度从不刻意进入平台期,而一个不再加速的洞穴,也就是一个已经不再向非常厉害的玩家提出新要求的洞穴。

我会保留的做法

两个习惯。第一,规划玩家会遇到什么的先后顺序,而不只是每样东西有多难:一次只出现一个新点子,读起来像是游戏在教你;一次出现五个,读起来像是游戏在往你身上堆东西。第二,在模拟测试告诉你每种类型的玩家会死在哪里之前,永远不要相信任何难度改动。这里最大的两个意外,地雷数量和撞第一面墙而死,光靠游玩是看不出来的,但从表格上一目了然。

你可以在玩法指南中读到面向玩家的同一份方案说明。

遊玩今天的洞穴