Alt-F4 #13 - 巨型基地考古  2020-11-13

作者 stringweasel, 编辑 Conor_, nanogamer7, Therenas, nicgarner, Firerazer,
翻译 Ph.X

目录

在这期有者诡异巧合的 13 日星期五出版的第 13 期 Alt-F4 中(简直就像我们计划好的一样),我们只关注一个话题:尽可能多地建造火箭防御系统。你问什么是火箭防御系统?stringweasel 会在这里告诉你,带你回到一个更简单的时期,异星工厂 0.11 的年代。

Nauvis 档案:每分钟一火箭防御系统 stringweasel

从一开始,玩家们就一直在挑战异星工厂的极限;在游戏停止运行并屈服于缓慢而痛苦的 UPS 死亡之前,看看他们能建造多大规模的工厂。多年来,随着玩家达到新的高度,这些极限记录一次又一次地被打破。今天,记录的重点是不断地消耗尽可能多的科研包,以每分钟科研数(science per minute)即 spm 来衡量。这里的主要限制因素是,建造更大的工厂也会降低你计算机可以运行的的“每秒更新(update per second)”,即 UPS 速度。让一个大规模的巨型基地运行在接近理想的 60 UPS 本身就是一种艺术形式,而用较低的 UPS 来进行游戏则会在物理上减慢游戏速度,使得进一步扩大你的基地非常耗时。

目前,spm 的世界纪录持有者应该是 u/swolar60 UPS 20 千瓶基地。这个不可思议的基地运行在原版游戏上,但它是使用了一些 Mod控制台命令来生产矿石等。差不多三年前,这个记录很可能是由 u/SteveTrov 的原版式 15 箭基地所保持的,运行在 15 UPS 的速度上。(注意这个度量是 rpm,即每分钟火箭数(rockets per minute),因为这是在无限科研使 spm 度量成为可能之前。)同期值得注意的还有 u/AccidentalChef 的原版式 10 rpm 基地,以 10 UPS 运行,并促使 SteveTrov 去追求 15 rpm。

还有一种玩家,他们建立真正的原版巨型基地,不使用编辑器或控制台命令,有时甚至会保留虫群,这也让大搞生产变得更加困难。这个记录的保持者很可能是 Gh0stP1rate 和 Hamiebarmund 的 10 千瓶基地 ,运行在 15 UPS 速度上,这是最近才取得的。之前的记录保持者应该是 u/SteveTrov,他在 2020 年 8 月有着一个可以达到 90 UPS 运行速度的 5.8 千瓶基地,并且是用“老式方式”建造的。

那么,五年前——在我们还没有火箭可以发射之前——在异星工厂 0.11 的时代,最大的巨型基地是怎样的呢?确实有一个基地真的从中脱颖而出,我和制作者 DaveMcW 聊了聊他的设计。

故事

在古代,0.12之前,基地是以每小时的火箭防御系统(rocket defence per-hour)来衡量的,也就是 rdph。火箭防御系统是触发胜利条件的终结游戏项目,但它非常昂贵,所以才有了“每小时”。这个想法是为了“保护救援舰队的登陆”——虽然从来没有救援舰队真正到达。基地甚至很少达到 1 rdph,更不用说 60 rdph 了。以这样的规模建造基地在当时根本不可行,而且还争论游戏是否能处理这么大的工厂。例如,当时最大的工厂很可能是由 ColonelWill 建造的,它可以做到 15 rdph,但由于原材料耗尽,所以不能保持下去。而且它是在铁路自动铺轨机(FARL)等一些修改器的帮助下建造的。然后,在 2015 年 6 月 29 日,DaveMcW 向世界展示了他的破纪录的 古典 60 rdph(即 1 rdpm)巨型基地的可能性。

DaveMcW 的每分钟 1 火箭防御系统基地(发布于 Reddit异星工厂论坛)。

这个 6km × 6km 的基地震动了社区,正如 u/TheWrongCat 在最热门评论中所述的。它让异星工厂最大的一批建造者感到惊讶,包括 u/Zistauu/rootnegativeu/Xterminator5。甚至 Wube 的创始人 u/kovarex 评论到优化异星工厂以 60 FPS/UPS 的速度运行这个基地是多么的困难(后面会详细介绍)。 这个基地甚至在 FFF-93 中被称为“有史以来最大的工厂”,并在相当长的一段时间内被开发者用作优化基准。DaveMcW 打破了人们对异星工厂可能性的预期。

需要为不知情的读者指出的是,这一记录缔造者归属于 DaveMcW 并会不令人感到意外;他一直走在异星工厂技术的前沿。比如说,他是蓝图字符串最初的发明者,并在之后添加进游戏本体。他建造了第一个 大型彩色显示器,著名演示 Darude’s Sandstrom。他制作了称为递归蓝图(Recursive Blueprints) 的 Mod 来自动摆放蓝图,并用其实现了了一个占地仅 9×14 格的全能工厂。他甚至找到了原版外星核心图像的出处

有什么大不了的?

即使以今天的标准来看,这个基地的规模和吞吐量也是惊人的。那时候,异星工厂还没有经过优化,导致这个基地在全速运行时,只能达到 2 FPS/7 UPS!如果要和我们今天所知道的比较,我们可以看看它所消耗的疯狂的电路数量,这是火箭防御系统的主要成分。原来,它几乎可以等同于今天的全产能插件 2.5 千瓶工厂。不过他的建造是革新的,它是 完全的 原版,包括虫群。没有复制-粘贴-撤销,没有蓝图簿,没有机器人指令模块,没有实时地图视角,或者任何现有的计算器,同时很可能是以 5 FPS/15 UPS(闲置工厂)的速度玩的。一个真正的老牌基地。

在当时,仅仅是实现这个吞吐量就非同小可。比如,传送带有转角压缩损失。然后,就是几乎每个巨型基地都会用到的插件效果分享塔。它们减少了你的基地大小,增加了你的 UPS,但需要高吞吐量的物品来保持供货。现在,在一个装配机周围放置 12 个插件效果分享塔是稀松平常的设计,只要有足够的机械臂和传送带来供给原料/输出产品。不过在 0.11 中,还没有集装机械臂,唯一的机械臂搬运量加成是用于容器与容器之间的传输,它可以堆叠五个物品。这意味着仅仅在一个组装机旁边放置足够的机械臂就成了一个问题。例如,注意下图中生产塑料的化工厂有四个输出机械臂,尽管它们每个只受四个插件效果分享塔的覆盖。

一个电路制造区域,在整个基地中遍布相同的镜像布置。注意生产塑料的化工厂周围机械臂的数量,以及在像最右边的满压缩铜板传送带上,物品看起来却不像是满压缩的排布,而是不知怎么分散开来。(10 倍速播放)

更令人印象深刻的是进口足够的原材料来满足这个基地的胃口,它所需要的物流在今天仍然被认为是庞大的。一个很大的原因是在 0.11 中没有采矿产能,这意味着矿区会迅速消耗,而维持一个巨型基地不幸地将包括不断重建前哨(因此在 0.15 中增加了采矿产能)。DaveMcW 解决缓解了这个问题,他使用火车建立了一个巨大的前哨网络。利用横跨四个独立铁路网络的 72 个装卸站,他有 216 辆火车从 216 个资源前哨站进口矿石(不,我没有手滑)。足以至少在 20 小时内,在不耗尽矿石的情况下,满足他的工厂。此外,他在枯竭的油田上有 1091 个带速度插件的抽油机,全部用管道输送到主基地。要知道 0.11 中也没有液罐车厢

这个庞大而吸引人的铁路网本身也是 DaveMcW 最喜欢的方面。如前所述,它规模巨大,在 216 个前哨站之间有 216 辆火车飞驰移动(它们使用煤炭动力)。在 0.11 中,没有联锁铁路信号,这意味着大的路口要设计成高吞吐量是很 tricky(棘手的),同时还要防止死锁。他的解决方案是消除交叉口。取而代之的是,他的四个镜像铁路网络中的每一个都是由一个大环路组成的,这意味着永远不会有来自对立面的车流交叉! 另外,在 0.11 中,列车时刻表只能处理停靠时间的车站条件。因此为了保证所有的前哨站都是平均采集的,216 辆火车中的每一辆都有一个自定义的等待时间。需要注意的是,在 0.11 中,仅仅是建造铁轨并不像今天的点击-拖拽建造机制那样简单。在 0.13 之前,钢轨必须使用直线和曲线的钢轨来一块一块地建造。作为参考,这个巨大的铁路网有近 77000 个钢轨。其中大部分可能是由人工放置的,因为只有在物流网络覆盖的情况下才能由机器人放置(彼时尚不存在机器人指令模块)。

干线(从左到右)显示支线到前哨(下)和一个铁矿前哨。请注意旧的火车图形和地上的外星核心。(10 倍速播放)

最后,也是在我看来最令人印象深刻的部分,就是这个基地优雅而简单的布局,尽管它的吞吐量是之前任何一个基地的四倍以上。DaveMcW 花了 11 个月的时间来设计和建造这个基地,你可以从这个基地的精度上看到它。一条传送带只有在它需要的时候才会快,而绝非不必要的浪费。所有的配比都精确到百分位的误差。这也导致了传送带很少出现后退的情况,这让基地看起来更加有生命力。而且所有的东西都是精美的镜像了四份,从一个点扩展开来,聚焦在火箭防御。而这一切都在原版游戏中构建,而且没有机器人指令模块,真是让人惊掉下巴。

在 1.0 中运行这个工厂

我很好奇,开发人员在这五年间应用了各种优化,那么异星工厂 1.0 中这个巨型基地会如何运行。所以,我迁移了它。虽然花的时间比我预想的要长,但它还是可以运行的。作为参考,在我使用 0.11.22 的电脑上,基本运行在 2 FPS/6 UPS,但在 1.0 中,它达到了约 65 FPS/65 UPS,并具有高质量的图形!(声明:迁移到 1.0 的过程绝不是完美的。我们的目标仅仅是让所有的机器都能类似于 0.11 的运行。很可能有一些我遗漏的地方,或者干脆忽略了,比如说可以忽略的发电量。)

生产图表可视化
新的生产图表与五年多前生产的项目几乎完全一致。中间的区域显示了失败/修复过程(并不精确对应所花的真实时间)。

四个镜像电路设计中的一个。请注意布局:它从左到右镜像了四个类似的部分,并且它显示了三个重复行的部分。

为了在 1.0 中运行这个老基地,需要做不少改动。首先是增加物品和改变配方以模仿 0.11,这包括液体量被乘以十和高级电路与铜线的比例是 8:1,而不是 6:1。然后,还有更直接的改变,比如用单台供水泵取代小泵设置(DaveMcW 也是这方面的专家);0.11 的小泵比今天的泵弱得多,所以你必须有多台并联才能保持全流量。另一个需要改动的地方是在以前不需要的地方手动增加了一格正对机械臂的传送带,这对大多数前哨站来说都是必须要解决的!而且,如前所述,当时机械臂的堆叠大小始终是一个,除了从一个容器到另一个容器时,那么可以是五个。用一个脚本为每个机械臂重新设置来解决了这一问题。

旧的小泵设置和新的供水泵之间的差异(左),包括新的离岸泵(右)和添加的污水。同时可以注意到地形转换是如何改变的。

还有一些其他变化,虽然起初并不明显,但相当有趣。例如,在 0.11 中,分流器的吞吐量受到其输出速度的限制,而今天则受到其输入速度的限制。一个黄色的分流器可以输出两条完整的黄带,而只有一条红带作为输入。我还必须确保虫群无法攻破过时的防卫圈。这部分是因为在 0.11 中没有巨型撕咬虫,但主要问题是 DaveMcW 使用了一个旧传送带技巧,打断了喷吐虫的攻击动画,使喷吐虫无法造成任何伤害。这意味着激光炮塔只需要关注近战的撕咬虫。这个传送带现在技巧不再有效,这意味着防卫设施也需要处理喷吐虫。为了在 1.0 中完全规避这个问题,同时又不损虫群的性能影响,我用一个脚本让他的约 24000 个激光炮塔威力提高 50 倍

传送带技巧与激光防卫边界
0.11 基地的围墙,显示了打断喷子攻击动画的传送带。注意老式的 1×1 激光炮塔图形。(图片来源于此

最后,我必须手动修改所有垂直的火车站,这是最耗时的部分,因为有超过 100 个火车站!这是因为在 0.13 之前,由于异星工厂的伪三维世界投影,垂直和水平的火车站有不同的长度。总而言之,这是一个非常有趣和令人兴奋的挑战,通过改变和修复游戏,而不是基础本身来寻找和修复瓶颈和其他问题。

铁路网地图视图,只显示了八分之一的前哨站。
铁路网地图视图,显示的只是 216 个前哨站中的 27 个。

亲自体验这个基地

这个基地是非常了不起的,并且将作为第一个真正的巨型基地之一永远被人们铭记。你可以通过简单地下载 1.0 存档和必要的小 Mod 来自己探索这个基地。或者,如果你喜欢复古,并且有耐心,你可以简单地下载异星工厂 0.11 和 DaveMcW 的原始 0.11 存档。或者,如果你只想快速浏览一下,你甚至可以在下面以谷歌地图的格式查看(或者这里),这是由 Twinsen 创建的。不过,谁第一个找到 DaveMcW 五年前搞丢的机器人指令模块,可以拿到网络积分奖励。

最后我想呼吁将四个镜像电路构建中的一个放在异星工厂即将推出的主菜单模拟中。这个构建虽然混乱,但仍然高度优化,实现精准,非常赏心悦目。更重要的是,这个基地奠定了未来几年都有效的巨型基地原则,在这个高度优化的构建艺术才刚刚开始的时代,这个基地的原则是有效的。这是一个可以被永远记住的基地。(或者至少在那支救援舰队最终到来之前)。

征稿

一如既往的,我们正在召集任何想要为 Alt-F4 做出贡献的人,无论是提交文章还是帮助翻译都可以。如果您有些有趣的想法,并乐于与社区分享,这里就是一个好地方。如果您没有太大把握,我们会很乐意帮助您讨论内容创意和结构问题。如果您有意参与,从加入 Discord 开始吧!