下载 App
《宇宙异星工场》开发者日志 02 ——一个排队系统是怎么形同虚设
大家好。上篇结尾预告过,今天聊一个我们自己的翻车案例:生产队列。
──────────────────────── 一、翻车现场:排队?不存在的 ────────────────────────
《宇宙异星工场》里的蜂群是造出来的。玩家排队下单:一只勘探蜂、两只采矿蜂、再来一台守护舰——和所有工场游戏一样,我们给了它一个看起来很完整的队列系统:多个并行槽位,槽位之外还能排队等待,左上角有一张队列卡,每一行有进度条和倒计时。
看起来很美。直到我们回头看了一眼实际数据:
最便宜的勘探蜂,基础生产时长 2 秒。而机巢每升一级,生产速度 +30%,满级之后是 2.2 倍——也就是说,一只勘探蜂从下单到出厂只要 0.9 秒。三个并行槽位加一排等待位,从来没有满过。玩家下单的手速再快,也追不上产线消化订单的速度。
队列卡大多数时间是空的。我们精心做的进度条、倒计时、"还有几条产线可用"的提示,全都没有出场机会。
更尴尬的是,天赋树里有一个"协同孵化巢"——每级孵化速度 +8%,可无限投入。后来我们清理代码时发现:它的加成函数从定义那天起就没有被任何地方调用过。玩家投进去的每一层,都安静地躺在了一个没人读的变量里。
──────────────────────── 二、诊断:不是队列坏了,是时间太便宜 ────────────────────────
第一反应是修 UI——把队列卡做得更醒目、加个动画。但我们很快意识到方向不对:问题不在队列,在于"生产时间"这个资源太便宜了。供给远远大于需求,任何排队系统在这个前提下都是摆设。
想清楚这一点,方案就变成了四个动作:
第一,把时间还回来。全单位的生产时长整体重校:勘探蜂从 2 秒到 15 秒,中型单位 20 到 40 秒,最贵的守护舰从 30 秒拉到 120 秒。同时把机巢的速度加成从每级 +30% 降到 +15%——不然时长拉起来的部分会被速度乘区吃回去。
第二,把"开产线"变成成长。旧版开局就白给三条并行线。改版后开局只有一条,机巢和船坞每升两级各开一条新产线,再点一项科技多一条,满配六条。这样机巢升级的意义就从"造得更快"变成了"开一条新产线"——数值成长第一次有了看得见的形态。
第三,把"排队"变成另一条轴。旧版里"排队容量"和"产线数量"是同一个数。改版拆开:产线数量由生产建筑决定,排队深度由工场核心等级决定——核心是主基地,管的是"你一次能排多少个计划"。两条轴各自成长,玩家在界面上能分清"我现在是产线不够,还是排不下"。
第四,把那个死掉的天赋接回来。协同孵化巢正式接入生产速度,但同时设了叠乘上限:满效之后,再投只算沉淀,不再变强。无限成长的天赋如果不封顶,会把我们刚调好的时长表再次击穿。
──────────────────────── 三、一个不能破的底线 ────────────────────────
改版最大的技术风险不在新玩法,在老玩家:存档里可能压着三个正在生产的订单。而新口径下开局只有一条产线——多出来的订单怎么办?
这里有条铁律:玩家下单时已经付过钱了,一条都不能丢。
最终的处理是读档时把在产订单按剩余时间排序压实:快完成的继续产,挤不下的转入等待队列的队首,并且把已生产的进度一起带走。然后只要玩家扩建机巢,等待的订单会自动被提拔上产线。
──────────────────────── 四、事后 ────────────────────────
改完之后,队列卡终于是活的了:开局一条产线排着队,玩家会看到倒计时在走,会盘算"先造采矿还是先造防御",会在机巢升到 2 级的那一刻看到第二条产线亮起来。
回头看这次翻车,教训其实一句话:做系统之前先问"这个约束在真实数值下会被触发吗"。队列逻辑本身一行 bug 都没有——它只是从来没被真正使用过。
下一篇,我们聊聊另一场更漫长的拉锯:怎么让一个新玩家在开局 90 秒内明白"我到底在操作什么"。
—— 一支很小的独立团队

