Alt-F4 #45 - Satisfactorio 2021-08-06
翻译 Ph.X
在第 45 期中,Alt-F4 将与大家分享又一个 Mod 聚焦,而且这一期将与 Mod 本体一同发布!Niet 一直在努力将 Satisfactory 的一些机制引入异星工厂,这可比单纯的将配方拷贝过来要复杂得多。下面的文章介绍了用来尽可能地模仿另一个游戏所用到的奇技淫巧。
欢迎来到 Satisfactorio! Niet
啥?
在过去的一年里,我一直在制作一个名为 Satisfactorio 的 Mod。这是一个大改 Mod,允许你在异星工厂中体验 Satisfactory 的(几乎)全部内容!每个功能,从里程碑到无人机之间的所有内容,都细致的地在异星工厂中获得了重现。
为啥?
做 Mod 从来都不是因为“为什么”,而是“为什么不”!我很喜欢异星工厂和 Satisfactory,Satisfactory 的 Mod 门户网站上有个 Mod 在 Satisfactory 中重建了异星工厂,包括机械臂、科技树和发射火箭的目标。这看起来是个很酷的概念,所以我想也许可以把 Satisfactory 的元素引入异星工厂中。这个想法也曾有人尝试过,然而其开发没进展多少就被放弃了。
在我动手之前,我对一个特别的功能感兴趣,那就是 Satisfactory 的传送带能直接连接到机器上的输入/输出口。这也适用于火车站,列车进站后把货物扔在站台的仓库里,然后再装到传送带上。这比我在异星工厂中看到的一些装/卸货优化装置显然要简单得多!
谁来?
简单说一下背景,我在 Mod 领域算个新手。事实上,除了几个非常小的 Mod 外(一个是计算太阳能板比率,一个是从电线杆复制信号快照到常量运算器)我还没有尝试过任何有意义的 Mod。
不过,至少我是一个软件开发者。我的日常工作是开发一款免费宝可梦同人游戏,我已经在这个项目上工作了 12 年。但即使如此,那也都是用 PHP 和 JavaScript 开发的。Lua,制作 Mod 所使用的语言对我而言是完全陌生的。幸运的是,泛用的解决问题技能都可以继承过来,所以这主要是学习 Lua 脚本的语法和结构的问题。异星工厂的 API 有很棒的文档而异星工厂论坛则是帮助我入门的宝贵工具。
怎么整?
作为第一步,我开始琢磨如何将传送带直接连接到机器上。我试了试装卸机,但很快发现,它们对传送带的一边有强烈的偏好。如果输入没有饱和,那么只有传送带的右侧会被使用。如果一边被填满那么另一边就会被启动,而一旦清除瓶颈,你就会在一段时间内出现双倍的吞吐量,这并不理想。Satisfactory 通过只有单车道的传送带完全避免了这个问题,但不幸的是这在异星工厂中做不到。
我研究了其他 Mod,如迷你装卸机和编辑器增强,了解他们如何处理将物品装到传送带两侧的问题,并发现解决方案是设置一对隐形的机械臂,对应输出到传送带两侧。
没过多久,我就有一个采矿机把物品放在传送带上,传送带进入冶炼机生产金属锭,然后金属锭进入构造器制成板材,最后放进一个存储器中。酷!
我尝到了做 Mod 的甜头,我决定要移植 Satisfactory 的 所有 内容。也许很疯狂,但这个小实验让我遭到书呆子狙击了,所以我开始写下我需要实现的功能列表。
结果发现,功能好多啊!我开始着手做那些比较容易的功能。配方当然很容易移植,为不同类别的配方制作不同的组装机也很简单,但其他功能就难多了。
虽然在异星工厂中不可能创建全新的建筑类型,但可以通过使用“复合实体”来达到理想的效果。也就是说,多个不同的建筑相互叠加(或至少是靠近)。例如,我重新创建的采矿机实际上并没有在传送带上开采物品;这又会导致只有一边被使用。相反,它把产物放到一个看不见的箱子里,然后由一个类似迷你装卸机的结构把箱子内容卸到传送带上。通过这种方法可以创造各种新系统。
主要改动
虽然从根本上来讲异星工厂和 Satisfactory 有着一个相似的核心机制即“制作用于制作物品的物品”,但也有一些重大的差异需要我来修改。
首先,Satisfactory 中没有手工制作。至少,不是说你可以填满一个制作队列,然后去做你的事情,直到其完成。相反,你必须去制作台,在那里工作时你不能做任何其他事情。为了复制这一点,我做了一个不需要电源的组装机,但只有当玩家在屏幕上打开机器时才能工作。
与此类似,你并不把建筑制作成背包中的物品。相反,你可以选择一个建筑,当你放置所选建筑的副本时,其材料将自动从你的库存中提取。同样地,当拾取一座建筑时会退还它的成分。
另一个主要区别是与进度有关。在 Satisfactory 中你不需要大量生产科研包并送入实验室,而是把选择好的部件带到 HUB 来提交。我为此做了另一台组装机,但这台机器实际上根本就没有制作任何东西。它之所以存在,是因为配方的选择是最接近于里程碑的选择,当选择了一个配方,那么建筑就会接受所需的“原料”。一旦物品到位,就会出现一个闪亮的按钮供你点击,解锁下一个里程碑。
电力管理是另一个被重新设计的要素。在异星工厂中,如果你的电力不足,你的建筑只是工作得比较慢,一般来说不是什么大问题(至少在你的煤矿不能生产足够的煤之前……)。然而,在 Satisfactory 中,电力不足会使整个工厂立即停电,需要人工干预来修复和重置系统。实现这一点需要一些试错,但我最终决定给每个电网加一个微小的消耗器。如果这个消耗器没有得到它所需要的电力,所有的发电机都会关闭,直到玩家修复。
分流和合并传送带也差异很大。Satisfactory 使用的不是一个单一的“分流器”实体来平衡它的两个输入和输出传送带,而是一个传送带分离器和一个传送带合并器,它们分别将一条传送分成三条或将三条传送带合并成一条。这意味着平衡器有点不同!一般来说,Satisfactory 并不倾向于需要平衡器,但它们仍相当有用。
Satisfactory 还提供了智能分离器(以及更高级别的可编程分离器),允许你对通过的物品设置过滤器:
额外功能
Satisfactory 提供了大量异星工厂中没有的功能,所以这些功能需要尽可能地复制。
游戏初期的战斗是用近战武器进行的,通常涉及到躲避敌人的攻击同时戳刺他们。异星工厂并不适合这样做,相反,玩家的武器会造成击退和眩晕。如果使用得当,这可以让你在不受伤害的情况下击败游戏初期的敌人!敌人本身不会建造基地。敌人本身并不建造基地,而是以有限的数量守卫着资源节点和可收集物品等关键地点。
也不是所有的生物都是敌对的。在 Satisfactory 中,你可以找到并驯服蜥蜴狗,将其作为宠物饲养,它们偶尔会以随机拾取物来回报你。这一点在 Mod 中得到了重现,所以你可以拥有一个小农场!每隔一段时间就去看看它们。每隔一段时间去看望一下它们,瞧瞧它们找到了些什么。也许是一只电力蛞蝓,也许是核废料,你永远猜不到!
车辆配备了自动驾驶功能。记录一个路径,然后设置它自动运行。非常有利于你游戏初期得到火车之前的物流。车辆可以在卡车站装货和卸货,适用于有组织和分布式的工厂。
需要更多的交通选择吗?Satisfactory 提供了滑索,它可以让你沿着电线旅行。超级管道允许在相连的两个地点之间旅行。后期你可以做一个喷气背包来飞一段距离,再后来还有一个悬浮背包,利用电网的电力来飞行,想飞多久就飞多久。
无人机可以实现远程高效的物品运输。它们就像物流机器人,但又很好用!每架无人机可以同时携带九组物品,在目的地等待,直到它们都被卸下,然后再捡起任何可能被送回出发地的物品。它们的速度非常快,可以达到 240 km/h 以上的速度!然而,装载和卸载过程需要更长的时间,这使得无人机在较短的旅程中不太有效。
还有更多内容,但这已经是一个相当长的清单了,所以我就此打住。
需要帮助!
毫无疑问,你已经从上面的截图中注意到,我是一个程序员,而不是一个画师。游戏中的每个建筑都只是一张白色的卡片,上面画着 Satisfactory 的建筑图标。在这种状态下,游戏的功能是可玩的,只要你能适应“图像”,但它看起来一点都不好。我正在寻找这方面的帮助。如果你有为异星工厂 Mod 制作图形的经验,我很想听听你的意见,希望能有所收获。
与此同时,敬请享受这个 Mod,现已在 Mod 门户上架!
保持高效!
征稿
一如既往的,我们正在召集任何想要为 Alt-F4 做出贡献的人,无论是提交文章还是帮助翻译都可以。如果您有些有趣的想法,并乐于与社区分享,这里就是一个好地方。如果您没有太大把握,我们会很乐意帮助您讨论内容创意和结构问题。如果您有意参与,从加入 Discord 开始吧!