自动化工厂流水线(Automation / Factory)游戏策划专题进阶技术精华3 / 21 已发布

分流与合并:物料在岔路口的命运

分流比控制 · 优先合并 · 堵塞与背压 · 分流器设计

· 15 分钟阅读
分流与合并:物料在岔路口的命运 Splitters & Merges: The Fate of Items at the Fork — 自动化工厂流水线(Automation / Factory)游戏策划专题

分流与合并:物料在岔路口的命运 Splitters & Merges: The Fate of Items at the Fork

为什么岔路口是第一块基石

先讲个我翻车的真实故事。去年给一个类《Factorio》的demo做系统设计,传送带、组装机、科研树都搭好了,玩家测试反馈却出奇地一致:"总感觉哪里堵得慌,但又说不出为什么。"我以为是带速问题,调了三天带速,没用。最后把存档截图放大一看,破案了——某个混流节点的优先级反了,铜板排队等着进铜线组装机,而铜线组装机那儿早就堆满了,于是整个铜板生产线全被卡死,连锁反应一路烧到采矿机。玩家根本不知道问题出在哪,只觉得"这游戏不讲理"。

那一刻我明白了一个道理:在自动化游戏里,传送带是血管,岔路口就是心脏瓣膜。瓣膜坏了,血再充足也白搭。所以这个系列从吞吐聊到分流与合并,不是我在凑章节,而是这玩意儿确实是进阶的第一道坎——很多小团队的做法是"分流就是加个splitter呗",真铺开玩就会发现,分流器本身的优先级规则、背压传播、堵塞连锁,才是决定玩家体验是"再来一局"还是"卸载游戏"的分水岭。

这篇文章就讲三件事:岔路口上物料的真实物理,分流器的优先级哲学,以及背压——这个让工厂真正"活"起来的隐形机制。最后给你一套可直接抄的参数表和双路径对照。别嫌基础,你越往后做,越会发现所有复杂的产线病根,都出在这几个最不起眼的分岔点上。

第一层:岔路口的物理——吞吐不是修路,是治理堵塞

先说结论:分流与合并的底层模型,不是"路分几条",而是"单位时间里有多少件物品能通过这个点"——吞吐量。而吞吐量的敌人不是路窄,是堵塞(jam)。堵塞的本质是输出端速率低于输入端,物料在岔路口堆积,然后背压(backpressure)一路传导,像高速路连环追尾,从组装机一路堵回采矿机。

参数含义建议区间 / 初始值对体验的影响
带速(belt speed)每 tick 推进的格子数1.25 - 2.5 格/秒(低-中),高带速 4+带速太快会让岔路口决策频率过高,玩家看不清
分流器循环时间物品进入分流器后到分流器重新可用的间隔0.5 - 1.0 秒循环太慢会直接卡成间歇性堵塞
队列深度岔路口前最多排多少件4 - 8 件队列太浅浪费带速,太深玩家看不到堵塞源头
合并窗口宽度合并时能同时接收的输入流数量2(最常见,经典合并器)/ 3+(高端)窗口越宽,拥堵概率越低,但造价可能翻倍

拿《Factorio》当标尺。它的分流器(splitter)默认是"平均分配",一个上游、两个下游,精确 50/50。最早版本里分流器没有优先级概念,所有输出端一视同仁。玩家很快就发现:如果你把一条满载的铁板带分出 10% 给科研,再分 90% 给绿瓶产线,你没法直接设置 10/90——你只能靠"每次放 1 个给科研,剩下都进产线"的循环实现,于是大家发明了各种"断断续续的喂料器"(俗称蹭料器)。那体验怎么说呢——能玩,但憋屈。后来官方在后期加了优先级输出(priority output),直接引爆社群:"终于不用再搭那种五连分流器骗比例了!"这个例子最能说明问题:分流器的设计不光是数学配比,更是"玩家怎么思考这条岔路"的心智模型。平均分很好懂,但真正的游戏深度,来自让玩家"手动实现自己的意图"的能力——哪怕这个能力是通过别扭的搭法实现的,也比一刀切的"智能分流"更让玩家上头。

再看《戴森球计划》,它的分流器(分拣器,就是那种六向分拣咔哒咔哒的小玩意儿)更激进——允许玩家直接设定"过滤"选项,指定只抓某种物品。这多方便啊!但代价是什么?玩家不用再费心搞"分流器筛选网"了,于是岔路口的"命运感"大大削弱。混合带上本来充满意外(一坨铁块和一坨铜块混在一起,你没法预料下一个上来的是谁),过滤一设,意外没了,趣味也稀了。很多老玩家跟我聊天时都说,戴森球的前期最好玩,因为还没解锁过滤,分拣器们还在"傻傻地乱抓",那种混沌感反而让产线有生命力。等全过滤了,工厂倒显得……整洁得有点无聊。

所以你看,分流器不光是功能件,它还是风味件。玩家要的不是"绝对正确",而是"我能控制的不确定性"。这个度,得拿捏好。

第二层:优先与公平——分流器的两个灵魂

分流器设计上最陡的坎,是"优先级"。我观察过很多新手的第一个产线,90% 的人会这么搭:一条满带铁板,主路进组装机做齿轮,分出一条旁路给科研。结果没玩三分钟,主路堵死了,科研那边饿着肚子。为什么会这样?因为默认均分导致"科研只拿了该拿的,而主路自己把自己塞满了"。新手看不懂,只会觉得"这游戏又卡了"。

设计方向代表做法玩家体验设计代价
公平优先(均分)分流器尽量让每个输出端轮换接收直觉好懂,但容易"谁都在等"几乎没有;但产线利用率低
显式优先级设定一端优先,满了才给另一端高端玩家狂喜,能精密控制新手上手成本高,需要教育
动态自适应根据下游需求自动调整分配爽,但"失去控制感"实现复杂度高,还容易让玩家觉得"系统太聪明,我不需要动脑"

我强烈建议:如果你的定位是深层次策略(像《RimWorld》那种,让玩家自己折腾),那就上显式优先级;如果一个游戏更偏休闲(比如《星露谷》式的自动化轻度延伸),都行都没关系。但千万别一上来就给"动态自适应"——那等于替玩家把脑细胞全杀了,后期必崩。

举个正面教材,《Satisfactory》的智能分流器(Smart Splitter)就做得很有层次。它允许玩家指定过滤(比如"只放铁板""只放螺丝",甚至"除铜板外全放行"),但获得这个能力需要解锁相当后期的高级研究节点。于是前期玩家只能手动搭分拣网络,歪歪扭扭但充满创造欲;后期拿到智能分流器,那种"升级快感"直接拉满。它的设计精髓是:优先级不是基础功能,而是奖励。你前期吃够了岔路口的苦,后期才懂得珍惜智能分流——这个节奏,跟我丢了半天家才发现冰箱里还有啤酒一样,爽得恰到好处。

反面的坑我也踩过。我之前做一个 demo,为了"让玩家更流畅",提前把优先级输出直接给了玩家,结果他们全线改成"一边倒",产线变得极其脆弱,任何小波动都会引发整条线震荡。后来我强制回退为均分,虽然玩家骂了一天,但改回来之后他们反而学会了用"三个分流器"搭出优先级效果——那一刻我突然明白:玩家要的不是结果,是那个"自己想明白"的过程。所以,优先级这个功能,给得太早,就是毒药;给在合适的时间点,就是神药。

第三层:背压——让工厂活起来的隐形引擎

如果说分流器是骨架,那背压就是血液。背压(backpressure)不是bug,而是工厂游戏的"物理法则"。简单说:当下游消耗变慢,堆积的物料会反过来堵住上游,最终让整条产线趋于平衡——这其实是一种天然的"需求感应"。没有背压的世界,物料会无限堆积,传送带变成永无止境的垃圾场;有了背压,工厂自动"听"下游的需求,哪里需要得多,哪里就流得快。

最经典的就是《缺氧》(Oxygen Not Included)里的管道系统。它的液体管道默认双路并行,如果下游不需要更多,液体会滞留在管道里,直到主路堵死。玩家必须精打细算每段管道的"容量"和"出口",否则一块管道就变成整个基地的"便秘点"。很多新手死磕不出,抱怨"为什么我的净水器不工作",一查根源:某个分支的优先级被抢了,水全被浴室截胡,净水器饿得干烧。这就是背压的残酷——它不会告诉你哪错了,只会让你的产线"慢下来",慢到你开始怀疑人生。

但背压也是乐趣来源。想想《异星工厂》里你精心设计的"平衡器"(balancer)——那种多进多出的交叉网络,本质就是在对抗背压的不平衡。你用 4x4 平衡器把四条带的铁板均匀分配到四跳分支,每一跳都能吃饱,同时又不会因为某条分支需求量大而把其他分支饿死。这玩意儿的解谜乐趣,不亚于填字游戏。玩家会为了一个8x8平衡器摆弄半小时,调完,看着四条带子各自满流,那种满足感,真的上头。

所以背压的正确设计姿势是:让玩家能看到它。不是给条"压力值"曲线(那太抽象),而是让堵塞的视觉反馈非常明显——传送带上物品堆积、机器停止动作、指示灯闪烁。《戴森球计划》那个黄色警示三角形做得就挺好,前期吓人,后期温暖。背压的设计目标不是消灭它,而是让它成为"玩家能感知的、被玩家驯服的节奏"。

第四层:环形与回路——分流与合并的终极形态

当你把分流器、合并器、背压都消化完,下一个出现的形态就是环形回路线路。这东西在很多小团队的手作里被当成"捷径",但真做起来,环形路的"内伤"多到你怀疑人生。

环形核心的机制是:让物料在同一段轨道上不停循环,在循环中不断地被"剔出"到需要它的分支——有点像一个旋转的自助餐厅,每道菜转过来你夹一口,夹多了就留给别人。这种设计最典型的展示是《Project Zomboid》里的"分拣中心"模组(对,僵尸生存游戏也有这需求),它用环形传送带加过滤装置,把满地的衣物、食物、弹药分门别类送入仓库。

环形之所以诱人,因为它的"物理"很直观:无论上游多乱,进了环,总能周游到需要它的人面前。但代价巨大:一是带宽利用率低——环上的物品可能绕十圈才能被夹走一次,相当于白白占用了传送带的吞吐;二是调试困难——玩家难以预料一个物品第一次经过分流器时会不会被夹走,于是"万一没夹走呢"造成的产能波动,让玩家焦虑。更隐蔽的问题,是死锁:当环上所有物品的需求端全部饱和(比如仓库全满),环就变成了一个永动的旅游观光车——物料不停转圈,但永远没人下车,然后整个环的入口被堵死,上游产线全面停产。

所以当我看到有开发者把这部分做成一整个"环状总线系统"并直接塞给玩家时,心里直犯怵。正确的姿势是把环形作为可选项,或者放在后期。你看《异星工厂》的圈内老玩家,自发发明的"火车站台环形"和"物流箱环"那都是大佬玩具,普通玩家前期根本不碰。

回归本质:环形路线解决的是"多对多"的分配问题,但多对多的天花板是物流机器人(后续第03篇会讲)。所以环形只适合中规模的"介于传送带与机器人之间"的过渡带——你给玩家一个"环",就是给他一个"用传送带思维模拟物流机器人"的机会。这个机会累人但迷人,两三个节点玩出花儿来,玩家会感叹"原来还能这么玩"。

参数表:给分流器装上旋钮

别光听我吹,给各位一张可以直接往自己项目里抄的参数表。这表的核心逻辑是:分流器的设计不是"有/无",而是一组可调旋钮,每个旋钮都要能独立调节,且要能让玩家感知到调节后的差异。

参数项可调范围建议默认值调节效果坑点提示
公平性(Fairness)0(全偏向A)- 1(全偏向B)0.5(均分)控制两路输出比例,0.8时A路拿80%B拿20%别做成"固定百分比",要允许玩家看到实时吞吐差异
过滤模式无过滤 / 白名单 / 黑名单无过滤指定哪种物品能通过,实现混流分离白名单太强,容易淘汰其他设计,慎用
优先方向左优先 / 右优先 / 均分均分优先方向非满时不往另一路送要允许玩家在运行中切换,否则调试痛苦
缓冲容量0 - 16 件4 件分流器内能暂存多少件,应对微小波动缓冲越大,越不容易堵塞,但会掩盖产线问题
合并防堵模式轮询 / 权重 / 完全自由轮询两条输入流合并时如何排队进单输出自由模式最易造成间歇性停滞,慎选

另外给你一条经验:所有分流器参数都必须在 UI 上"可视化",不能只给数值。玩家要能一眼看到"这条路吃饱了""那条路饿了"。最常见的表现手法是在分流器图标上画两根不同颜色的进度条,或者让传送带上的物品密度直接反映背压(物品挤在一起就是堵塞,稀疏就是缺血)。做得到这一点,你的分流器系统就成功了一半。

两条成长曲线:从"跟着感觉走"到"用代数看产线"

初级玩家路径(直觉流):开局先瞎接,堵了就拆了重摆,靠运气和预感。你可以帮他们做一件事:让一切的"堵塞视觉反馈"极其夸张——物品堆积密度、机器冒烟、警示灯闪烁。初级玩家不需要参数表,他需要的是"堵了能看出来"。别塞太多数字给他们,看着堵就拆,拆了就懂了。这种路径的关键是:操作要轻,反馈要重。

进阶玩家路径(代数流):这类玩家已经看过本系列第[11]篇的配比方程,他们会用计算器算"每秒钟需要多少个铁齿轮",然后用分流器精确配比。你要做的,是让"设定比例"的操作尽可能顺滑——比如允许直接在分流器上输入 3:7,或者按住拖拽权重条。同时要让"配比结果可见",比如显示当前两条路的实际速率(件/分钟),他们就安心了。

两条路径要在游戏里共存,别互相打架。我见过最失败的做法是:想兼顾两类玩家,结果把分流器 UI 做得极其复杂——新手懵圈,老手嫌慢。我的建议是:默认模式保持"傻瓜可用"(均分+过滤),高级设置(优先级权重、过滤名单)收起在"高级选项卡"里,玩家点开才看到。这样两条路径都舒服。

FAQ

Q1:分流器和合并器的数量有没有上限?是不是越多越好?
没有物理上限,但有体验上限。每条产线上超过 12-15 个分流器/合并器,玩家的大脑就开始罢工——他们不再理解每条路的物料流向,纯靠试错。所以设计的重点不是"无限可扩张",而是"该合流时就合流,该分流时才分"。换句话说,设计产线时,给分流器们做"减法",往往比加法更让玩家爽。

Q2:我的游戏里能不能一上来就全都用"优先分流器"?
能,但我劝你慎重。正如我前面说的,优先级是高级工具,过早让玩家获得等于替他们解决了一部分核心乐趣("为什么我的产线不平衡"的思考)。建议优先级放到游戏中期或后期解锁,前期先用均分强制玩家手动搭"比例"——这样当他们终于拿到优先级分流器时,会有"终于解放了"的快感。

Q3:背压是不是必须模拟?如果我不做背压,让物料无限堆叠会怎样?
不做背压就等于告诉玩家"你的工厂不会失败",那自动化游戏就变成了纯摆积木——爽一下,然后空虚。背压是"挫折-克服-满足"循环的关键一环。你可以弱化背压(比如传送带能无限堆料),但一定要保留"堵塞"的概念,否则产线永远没有"需要被优化"的理由。说白了,没有背压的工厂,就像没有重力的跳跃游戏,飘。

Q4:环形回路真的不能作为主系统吗?
可以,但只适合做"大后期彩蛋"。我做过测试:环形作为唯一分配系统的游戏,玩家在 5 小时内会出现严重的"补偿性拆线"行为——疯狂拆了重建,只为让环看起来不那么乱。把它当主系统,除非你的玩家全是物流工程师。否则把它定位成"中期过渡方案"或"挑战模式的彩蛋",会更长寿。

Q5:分流器模拟的 tick 成本高吗?会影响性能吗?
单个分流器的判断逻辑很简单(查优先级、查过滤、转发),不会成为瓶颈。真正的性能大头是传送带上的实体调度——所以[06]篇的海量实体渲染和[07]篇的 tick 架构才是你该担心的。但注意:每个分流器每秒要做的"决策"数量会随着带宽上升而爆炸,如果每分钟过万件物品的产线,分流器的逻辑就不能用纯逐件判定,建议用"批量判定"(一次处理同类型的一小段),否则后期 500 个分流器能吃掉一整个核的性能。这也是为什么我们在第07篇里讲 tick 架构时,强调"区域内批处理"的重要性。

文章标签
自动化工厂策划Factorio-like流水线设计传送带吞吐物流网络寻路科研树节奏蓝图系统海量实体优化比例规划数学产能瓶颈削减理论优化即乐趣
更多专题全部专题
觉得有价值?点赞或收藏支持内容持续产出。
← 返回专题:自动化工厂流水线(Automation / Factory)游戏策划专题