茉莉花新闻网

中華青年思想與行動的聚合地

国产游戏《戴森球计划》怎样布局更科学高效?

灵剑的回答

之前分享过福报工厂的立体工厂设计模式,由于《戴森球计划》不支持《staticsfactory》的盖楼房的模式(立体建筑基本上只是同类扩容的作用,而且只有仓库和科研可以扩),是没法做类似的设计了,不过《戴森球计划》的特点在于传送带和分拣器从初期开始速度就非常快,而且支持智能过滤,分拣器占用面积非常小。比如说一般的建筑的生产速度通常也就是几十/min,而最高级的传送带传送速度高达1800/min,富余的带宽和智能分拣模式提示我们可以考虑将各种产物混合在一条传送带上,从而极大提高布线效率。然而,一般的传送模式中,这种设计会在其中一种产物过多的时候卡死整个传送带,通常是不可行的,这里的方式是将整个传送带形成一个大环,让所有的产物在传送带上循环运行,这样只要放到环路上最终一定会被其他设备消耗掉,不用担心卡住的问题,需要解决的问题是如何限制放入环路的速度防止环路整体被堵死。

先占个坑,放个截图看一下效果。这种设计的最大优势在于惊人的布线效率,很小的面积上可以生产数量众多的产物而不用过多考虑上下游关系;主要的缺点在于整体产量受到传送带速度限制。

要达到这种效果,必须要在接入的地方有特殊的设计。

我们来具体讲一下这种布局的原理

引言

本文中的环形总线接入的生产系统有以下特点:

  1. 极高的布线效率:整体上只需要一条环形传送带就能完成所有生产设备的接入,对传送带形状没有要求
  2. 自平衡:产线上所有生产和消费可以自动形成平衡,在消费端消费速度发生变化(如接入了新生产设备,仓库已满等)时可以使生产端自动适应,自动完成复杂的产量重分配任务,可以适应各种复杂工况
  3. 较为优秀的产量支持:一条极速传送带(30/s)经过合理的配置可以同时支撑全部五种矩阵的生产,也就是说理论上一条极速传送带配合初级产物接入(铁板/铜板/硅块/玻璃/钛块/石墨/油等)就能生产最终产物白矩阵。当然,实际上建议合理分区为传送带保留带宽,避免生产效率波动。
  4. 方便增加产物、产量:因为环线只要是个环就行,没有特别的形状要求,因此要接入新生产设备的时候,只要随便找一段暴露在外面的环线,重新绕个圈,就能产生新的接入空间,要扩容也可以通过相同的方式。因为环线没有严格的上下游,所以理论上放在哪里都可以。

要达成以上目的,需要采用特殊的产物接入方式,以下会进行介绍。

0. 基础知识

首先需要了解一下这个游戏中的物流系统的基础知识:

  1. 传送带
    1. 一条传送带上,任意时间,只要当前物品前方(可以间隔其他物品)仍有空隙,当前物品就会按照传送带速度向前移动。如果没有空隙则会停止。
    2. 上一条规则对于环形的传送带也成立,环形传送带是首尾相接的传送带,因为沿着传送带向前会回到原处,所以环形传送带上只要至少有一个空隙就会整体向前移动,如果一个空隙都没有则会完全停止。
  2. 分拣器
    1. 分拣器的基本工作流程是从原位置等待和过滤器匹配类型的物品(如果分拣进生产设备,会自动选择生产设备允许接受的物品),取到之后进行移动,移动到目的位置时如果目的位置有空位(仓库有空格,生产设备原材料储备未到上限,传送带位置有空隙)则立即放下物品(不耗时)然后反向移动回原位置,形成一个循环。升级了堆叠后的极速分拣器,会在原位先连续抓起多个同类物品,然后再移动,在目的位置等待放下再返回,在传送带速度足够快的情况下,可以近似认为分拣速度按堆叠数量成比例提升(实际略低一点点)
    2. 基于上面的原理,分拣到传送带的时候有个隐含的优先级:由于只有在有空隙的时候才会分拣,而传送带向前移动时,没有空隙的物品之间不会临时产生空隙,而是整体向前移动,因此分拣到传送带的分拣器输入优先级比传送带上游低。如果考虑输出到同一条传送带上的多个分拣器,则上游的分拣器优先级高,下游的分拣器优先级低,如果发生阻塞,下游的分拣器会先停止工作。这个特性非常重要,是下面设计的基础。
    3. 分拣器的工作速度和分拣器类型、分拣器长度有关,最小0.5/s,最大6 * 堆叠等级/s。
  3. 仓库
    1. 仓库的输入会从前往后找空格或尚未填满的同类物品的格子,输出则会选择最后一个有物品的格子。因此仓库如果输入和输出多种不同的物品,输入和输出的顺序会发生变化。这种变化通常对于生产来说是不利的,如果所有输入和输出都设置过滤器,虽然能避免乱序,但是仓库填满之后有可能会导致其中一种产物完全耗尽而中断传输。因此一般要避免多种产物接入同一个仓库。
    2. 分拣到仓库的多个分拣器没有优先级差异,仓库填满时哪个优先是不确定的,这种不确定性通常有害,应当考虑配合传送带来明确哪个输出更加优先。
  4. 生产设备
    1. 生产设备在两种条件下会停止工作:原材料不足,或输出堆积到最大数量。要让生产设备根据下游的消耗量自动调整生产速度,原理就是要恰当地产生输出堆积,从而间歇式停止生产来调整产量。
  5. 四向分离器
    1. 四向分离器也有比较强大的功能,而且可以设置过滤和优先级,但是考虑到它占用的面积很大,远不如分拣器,因此这个方案中几乎没有使用到四向分离器

1. 环线接入限速设备

要让生产设备接入环线之后能自动调整产量,关键在于一种反馈机制,即环线上多余的产物较多时停止生产,环线上多余的产物较少时继续生产。思路是首先通过一个高速分拣器将环线上的产物取回到一条子传送带的上游,然后再用低速的分拣器在子传送带的下游重新放回环线,生产设备的产物输出到两者之间,也就是子传送带的中游。我们结合下图看一下。

v2 9c213a900e63130e100fbf3633bc1b90 1440w

可以注意到图中的CPU生产线,它首先输出到一个仓库,然后从仓库左侧输出到了一段很短的传送带上,这个传送带上主要有三个步骤,上游时一个配了过滤器的CPU分拣器,从环线分拣到子传送带,中间是从仓库分拣到子传送带,下游是输出回环线,这里为了控制速度用了一个长度为2的分拣器绕了一下。注意子传送带的方向和环路运行方向一致,因此放入环路的产物会绕一个大圈再回到上游取回的分拣器中。

考察它的工作原理,首先考虑下游没有任何消耗的情况下,经过一段时间,放入环线的产物会再次被分拣器分拣到子传送带上,输入速度和输出速度一致,这时候子传送带上会产生堆积,向外输出的分拣器会停止工作,而上游从环路分拣回产物的分拣器仍然会继续工作,这时候环路上的产物数量是固定的,而且远小于环路的空隙数量。

如果输出的产物被消耗,但是未完全消耗,则剩余产物被分拣器捡回,子传送带上的堆积情况被控制在生产设备输出的分拣器下方恰好有物品的程度上,因此子传送带上有:

上游取回数量 + 生产设备输出数量 = 输出到环线数量

再考虑整个环线,产物绕一圈被消耗掉一部分,然后再次被分拣器取回,平衡时有:

输出到环线数量 = 环线上消耗数量 + 上游取回数量

联立两个式子,就可以得到,当产线达到平衡时,有

生产设备输出数量 = 环线上消耗数量

这就是环线接入限速的原理。

当接入环线的速度不足,或者生产设备生产速度不足时,则所有产物全部输出到环线,环线上消耗不足使下游生产设备减速。

2. 几个重要的数学原理

下游完全没有消耗时,环线上的产物数量取决于放置速度、环线长度和环线运行速度,运用简单的数学可以得到:

环线上产物数量 = 放置到取回中的时间 * 放置速度 = 环线长度 / 环线运行速度 * 放置速度

我们要保证环线上仍然有空隙,也就是要求环线上总的产物数量之和 < 环线长度,注意到产物数量本身就和环线长度成正比,因此只需要考虑 产物数量 / 环线长度的数值,这个比值称为环线带宽占比。注意到在下游完全没有消耗时,它固定等于 放置速度 / 环线运行速度,因此我们把环线运行速度称为环线总带宽,环线中产物传输的速度称为占用带宽,单位都是个/s。极速传送带的带宽是30/s,最低级的分拣器 + 3格距离占用带宽为0.5/s,如果是最低级分拣器 + 1格距离则为1.5/s。

当整个环线所有的输出全部都停止(比如说下游仓库全满,没有持续消耗)时,所有生产都停止,整个环线上所有的产物都会占用无消耗的全部带宽,这就要求要让生产线在任何情况下都完美运行,必须有所有接入产物的占用带宽之和小于环线带宽。不过实际设计时不可避免地会多占用一些,尽量在超载的情况下保持产线稳定的技巧会在后面讲。

当下游有消耗时,环线上不同位置的实际使用带宽是不同的,从输出开始时最大占用带宽,每次消耗之后,占用带宽都会下降。多数加工设备的输入材料总个数超过输出材料总个数,因此多数加工设备接入后,在生产设备持续生产的条件下,会在一定范围内降低环线的占用带宽,不过如果下游停止消耗,则会恢复最大带宽占用。

如果每种材料只有一个位置接入,则接入带宽就是下游能够消耗的最大速度,提高产量可以通过增加接入速度或者增加新的接入点来实现。

3. 环线部署实用技巧

环线接入时仓库不是必须的,最小的接入单元就是一个加工设备 + 3格子传送带 +3个分拣器,占用面积极小,因此接入效率也极高。仓库在不同的接入位置可以有不同的作用,主要有以下几种:

  1. 放在生产设备到子传送带之间,如前面的图,用于缓存本地产出,可以在下游停止消耗时保持本设备继续运行直到仓库满,可以用来囤一部分产物用来手工加工之类
  2. 放在子传送带中游和下游之间,产物从环线取回,生产设备接入,然后先分拣进入仓库,再放到产线上,作用和1类似,区别在于在下游停止消耗时,这种结构可以让环线上所有的同类生产设备都保持生产,直到仓库满为止,这样一个仓库就可以收集环线上所有的生产设备的产物,其他生产设备不需要再配仓库。
  3. 放在子传送带上游和中游之间,即先分拣到仓库,再从仓库输出到子传送带,生产设备分拣到子传送带,然后再输出到环线。这种设计不太常见,可以用于在调整接入速度的时候回收环线上多余的产物,提高环线稳定性,不过有下游消耗的时候并不是特别必要,环线上多余的产物最终都会被消耗掉。
  4. 放在生产设备输入之前,用来提供额外的输入材料的缓冲。可以用于稳定关键生产设备的生产速度,避免受到临时性波动的影响。

产物接入环线的速度主要受分拣器类型和距离影响,不过由于分拣器的工作原理,实际上会比标称工作速度略慢一些,环线占用带宽(包括这个产物本身的占用)越低,接入速度越接近于标称速度;环线占用带宽比较大时,接入速度会明显低于标称速度,这时候需要考虑重新调整各个生产设备接入环线的速度了。

4. 环线过载的解决方案

虽然极速传送带有30/s的接入速度,接入产物多了之后还是会明显看到过载的迹象;初期如果采用高速传送带,则只有12/s的速度,更容易过载。有明显过载迹象时需要用各种手段来解决。

第一步,首先检查各个产物的实际生产和消耗速度,可以通过统计报表查看。如果产物的实际消耗速度并不高,可以降低接入速度来减小带宽占用

对于消耗量大的产物来说,最妥当的方法是采用多点接入的策略,多点接入的方法是在环线不同位置都有同一产物的接入,可以是铁块、铜块这样的初级产物,也可以是中间加工的产物。每个接入的地方采用独立的接入限速。要点在于,让产物的消耗分布在多个接入点之间,这样就可以做到使用较低的带宽来实现较大的传输速度。

比如说,下游对某个产物有60/min的消耗,分别是3个生产设备,各自20/min。如果采用一个接入点,则至少要占用1/s的带宽。如果采用三个接入点,分别在三个设备之间接入,每个接入点的接入速度为0.5/s,则整体只占用0.5/s的带宽就实现了60/min的消耗。

如果对某个产物的消耗比较大量而集中,另一个策略是改用传统方式使用专用线来接入,即拉一条专用的传送带从生产的点传输到消费的点,只传输一种产物,这样就不再占用环线带宽。这种方式可以跟环线相互配合,同一个产物既有专用接入,也有一定量从环线接入,同一个生产设备某些产物用专用线,某些产物走环线,很灵活。规划时可以将这种关系比较近的生产设备尽量安排在比较近的地方。

产量增加之后如果带宽还是不足,可以考虑分代的策略,将产物按一定标准分拆成不同的环线,通常是按照科技树上的位置。上一代产物在下一代产线中用到的,通过限速接入的方式,从上一代环线中接入到下一代环线,下一代产物在下一代环线中使用,这样就分别占用独立的带宽;还可以将生产设备放在两条环线之间,从两条环线分别获取产物。星际运输发达之后,可以考虑按照中心产物规划成不同的生产体系,相互之间使用运输站传输输入输出,这样就能支撑更大的产量了。

5. 实际结果

前面图中的游戏中,几乎所有的合成产品,除了非常初期的几种以外,都使用环线合成;最高级的几种产物(引力矩阵生产线)建立了第二条环线。目前已经解锁了全部五种矩阵(绿色矩阵尚未生产),挂机数小时验证证明产线可以稳定运行。

建议经常关注生产图表,确定有没有消耗超过生产的物品,尤其是矿因为会采完,需要经常去开新矿。

同类信息

查看全部

茉莉花论坛作为一个开放社区,允许您发表任何符合社区规定的文章和评论。

茉莉花新闻网

        中国茉莉花革命网始创于2011年2月20日,受阿拉伯之春的感召,大家共同组织、发起了中国茉莉花革命。后由数名义工无偿坚持至今,并发展成为广受翻墙网民欢迎的新闻聚合网站并提供论坛服务。

新闻汇总

邮件订阅

输入您的邮件地址:

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram