Alt-F4 #3 - 创派对  2020-09-04

作者 JD-Plays, T-A-R, Raiguard, 编辑 Therenas, nicgarner,
翻译 Ph.X

目录

欢迎来到第三期 Alt-F4。本周末将有一场尝试在单个异星工厂服务器上打破最高在线人数记录的挑战,阅读下文来了解如何加入这场狂欢。此外我们还有关于大规模社区游戏发布派对的报道,本该写在上周来着,赖我(Therena)。最后,Raiguard 与我们所有人共享了一个激动人心的 Mod。让我们开始吧!

PS:我们正在寻找有意协助我们翻译每期 Alt-F4 的人。 如果你对此有兴趣,可以在本期末尾找到更多信息。谢谢!

活动:融化硅片 JD-Plays

有什么周末计划吗?小玩 25 分钟异星工厂然后发现太阳已经晒屁股了吗?或者跟三五好友一起联机异星工厂?

我们有一则好消息。这个周末,我们几个朋友打算聚在一起做一件简单的小事:彻底融化我们服务器的芯片!快来加入我们的“融化硅片”活动,我们的唯一目标是让尽可能多的玩家登录进同一台服务器并发射一枚火箭,顺便融化服务器的 CPU!从建立基地到与其他龙虾兵一同肃清虫巢,人人有事做。真正敌人或将长期存在,需要你们中的一些人加入到我们的伐伐伐伐伐木工队伍!

因此,如果您在本周末有几个小时的空闲时间,并乐意帮助我们打破 521 位同时登录玩家的先前记录,请在北京时间 9 月 5 日(星期六)下午 7 点加入我们的服务器。您可以很轻松的找到它,届时它将是最大的服务器!

倒计时已逾期

服务器信息将与活动开始时间之前不久在我们的 Red Circuit Discord 的 #information 频道中提供。更多信息,请访问我们的网站

请勿玩坏新玩具 T-A-R

对我这个执拗的在 8 月 14 日(星期五)刷新 factorio.com 试图看到 FFF #361 的人而言,第一篇 Alt-F4 是一个巨大的惊喜。我决定支持这项倡议,并立即采取行动。以下是一份有关 1.0 版“不是 bug”的 bug 报告现场。

一个不错的长期多人游戏服务器可以说是仅次于官方在布拉格举行的发布派对的好东西。在那个周五异星工厂的游戏大厅中举办了多场发布会,世界各地的工程师们都来到这些全新的地图里,放下了一条条雄心勃勃的总线。Big Community Games Discord 吸引了最多的人气,达到了 201 位玩家的水平,毕竟大家都需要一个相当不错的基地来消化掉这些科研瓶以解锁 1.0 的全新机制。(提示:是蜘蛛机甲!)

得益于密集的矿带和巧妙的地图标记(描述了团队的颜色及其职责),这个服务器的开局变成了一个拥有修建熔炼线本能的活跃蚁群。出生点周围的地图消息在组织不断增长的工程师队伍方面做得非常出色。在早期,科研工厂旁边另外建立了一个单独的工厂,为所有的红衫们提供装备和弹药。这给战斗员和建造者们提供了稳定的补给来捍卫和扩张工厂。

随着工厂的扩张,第一枚火箭于 11 个小时时建成,以及大约 20 台蜘蛛机甲,海量的护甲和装备,以及成吨的弹药和爆炸物。届时,依照资深工程师们在地图上留下的标记,Bilka Bay,Italy,和 Lake Twinsen 都已获得命名。

随着蜘蛛机甲投入生产,大家都开始体验到这些不寻常而又强大肢体们。能够轻易跨越湖泊和机器的奇异景象将探索之旅变成了对我们这个新玩具/工具的测试。传送带成为了地图上诸多奔跑的蜘蛛的兴趣点。同样兴奋的管理员们也为派对做出了自己的贡献,通过将发行派对变成了蜘蛛机甲舞会来挑战他们的极限。很快这些蜘蛛就开始在彩色的舞池中大展拳脚:

反向运动的传送带和地图缝隙的组合让全新的蜘蛛机甲腿部尴尬的分开,得以无限伸展这些蜘蛛腿。虽然晚了点但这些发现都在全新的 1.0 bug 报告中告知了开发团队。 它最终成为最多查阅的错误报告之一,但很快被标记为重复:不是 bug。开发人员 V453000 在最早的数个 1.0 错误报告之一中做出过回应(发布后仅 30 分钟),指出限制蜘蛛腿的移动并不理想,而我们的蜘蛛们实际上表现还不错。但是,我们“可以”的事实并不能消除我们是否“应该”的问题…

这场游戏十分劲爆,我们真正地爱上了蜘蛛机甲。现在它是我们中的一员了。

Mod 聚焦:编辑器增强(Editor Extensions) Raiguard

人人都知道创造模式(Creative Mod)。它提供了多种多样的“作弊”物品用以测试工厂布局。该模组在这么多年来一直为大家服务。

然而当你使用 Mod 一段时间内后,不可避免地会注意到时不时发生的卡顿。随着你使用时间的延长,卡顿的发生变得愈加频繁。最终,随着你使用的创作模式工具的增多,你的游戏将开始变慢。

当我的创造地图在一年半以前开始变卡的时候,我刚刚发布了我的第一个 Mod,所以我对 API 的应用有了少许经验。好奇心驱使我深入研究了创造模式的代码,看看我是否能搞清楚究竟发生了什么。

结论是:创造模式制作得非常出色……就其发布时间而言。该 Mod 是在 0.13 时期创建的,模组制作时可调用的 API 极为有限。因此,它用这一组极其有限的工具出色的完成了所有工作。不过现在 Mod 可用的 API 已经更加成熟而强大。于是我决定更新创造模式,利用这些新功能来降低其对游戏性能影响。

但是我最终意识到更新创造模式并不可行。对其进行更新需要重构太多的内容,因此我决定创建一个全新的 Mod。该 Mod 最初以“无限模式(Infinity Mode)”发布,但由于各种原因很快被弃用并由“编辑器增强(Editor Extensions)”代替。

编辑器增强并不会像创造模式或无限模式一样 替换 游戏本身的地图编辑器,而是 增强 编辑器本身。因此,编辑器增强没有类似于创造模式和无限模式的“作弊”窗口。编辑器本身就在其菜单中包含了上述 以及更多的 功能。

编辑器增强的主要吸引力在于其性能优异,它比创造模式快了几个数量级。下面我将介绍一些用于实现该目标的方法。

电力

我着手做的第一件事是创造和销毁能量。创作模式要实现此目的可以通过创建一个锅炉,然后在每个时间片内使用脚本将其充满电。不过游戏现在有一个可以自动执行此操作的内置实体:Electric Energy Interface(EEI,电能接口)。这个实体可以神奇地产生和消耗电能,而且其参数可以在运行时进行调整。

关于 EEI,我有两点需要改进——GUI 图形界面和使用优先级。EEI 的 GUI 虽然可以正常使用,但却令人困惑,并且一个实体只能分配一个使用优先级。显然 GUI 的问题可以通过创建自定义 GUI 来解决,但想解决第二个问题就比较棘手了。

您所看到的 无限蓄电池 实际上是五种可能的实体之一,每个实体都有不同的使用优先级。根据您在GUI中的配置方式,一个小的脚本会将当前实体与另一个外观相同但使用不同优先级的实体交换。这样一来,一个“实体”就可以完成从生产,消耗到存储任意自定义电量(高达 999 瓦)的所有事情。

箱子

下一个要解决问题是箱子。创造模式有多种箱子,用来生成,复制或消除物品。但是,它用了脚本来实现 全部 功能,这导致仅仅放置几个箱子就会产生相当大的开销。

在 0.16 中,游戏内添加了 infinity chest 无限箱,可以完成上述所有甚至更多的功能。通过设置 infinity filters 无限筛选器可以改变箱子的功能,该筛选器本身具有“至少”,“至多”和“精确”模式。这将所有物品操作转移到游戏本身,从而将脚本的开销减少到零!

编辑器增强通过添加物流箱变体并添加一种称为 aggregate chest 聚合箱的特殊类型的无限箱。聚合箱与创造箱相似——它包含了游戏里的每种物品各一组。在放置时会执行一个小脚本来为其设置无限筛选器,剩下的工作都交还给游戏本身。聚合常规箱和聚合被动提供箱两种变体都有提供。

通过使用使用无穷箱和聚合箱,你将可以获得测试构造所需的确切行为。

传送带

通常来说,当测试一个设计时,你会需要一个便捷的工具将物品放置在传送带上,或者从传送带上移除物品。在原版游戏里,你可以使用无限箱和 装卸机(一个在地图编辑器中可以获取的隐藏实体)来实现该目标。不过这些装卸机的功能很简单,如果你想要在传送带的两侧放置不同的物品,则需要放置两个装卸机和两个无限箱。加起来总共四个实体,还得额外花时间来配置箱子。

为解决这个问题,我基于另一个 Mod——迷你装卸机(Miniloader)进行了二次开发。迷你装卸机和 infinity loader 无限装卸机之间有很多相似之处,因此下面的解释也能让你简要的了解下该 Mod 的工作原理。

实际上,一个 无限装卸机 包含了至少五个实体:

从左到右,是我们的装卸机实体本身,一个无限箱,两个集装筛选机械臂和一个常量运算器。这些实体都在无限装卸机的工作中发挥着自己的作用。

当你放置无限装卸机时,你实际上放置了一个“虚拟运算器”。这是一个长得像装卸机的常量运算器。放置后,脚本会立即摧毁该运算器并将其替换为一个隐形运算器。该运算器将是你实际交互的对象,并将保存在蓝图中以记录筛选器。接下来加载装卸机实体,以及一个隐形的无限箱和至少两个隐形集装机械臂,并将机械臂的的速度提至最大。

当你通过自定义 GUI 配置装卸机的筛选器时,你实际上是在隐形集装筛选机械臂和隐形无限箱上设置筛选器。这些机械臂会从箱子里取出物品并极快的放在传送带上,使这些物品看起来像是凭空冒出来的。

反之亦然——如果您旋转无限装卸机以消耗物品,机械臂会将所有物品从皮带上拿下来扔到无限箱中,看起来就像魔术般消失了。所有这些都是用原版的行为在后台进行的。脚本被用来“设置”装卸机,但是设置完成之后就不再需要运行,从而使这些装卸机的脚本开销(再一次)降低到零。

当然,为了使事情变得尽可能简单,你只会摆放一个无限装卸机 物品。装卸机将根据其连接的传送带来切换自身的传送带类型,并添加或移除机械臂以跟上传送带的速度。并且由于有多个不同的机械臂,我们可以为传送带的两侧设置不同的筛选器。

由此我们获得了一个方便易用的实体,用以在传送带上生产和消耗物品,且对性能极为友好。

作弊角色

尽管编辑器增强本应在地图编辑器中使用,若想要以玩家角色来调用也很容易。通过使用 作弊模式(在控制台中输入“/cheat”或“/cheat all”来进入),您可以获得上述所有工具。

除此之外还有一些前面我没提到的超级装备:

装备上这些模块,你可以获得不朽,超级速度,和完美的夜视。超级机器人指令模块与超级建设机器人相结合可以让你以极快的速度进行建造和拆除。这样一来,你在保留舒适的身体的同时,得以使用许多编辑器的神之能力。而如果在未来你从存档中删除了编辑器增强,所有这些设备将会消失,仅留下无限臂长作为该模块曾存在的唯一证据。

结论

编辑器增强是超过一年份的游戏内构建和 Mod 测试的结晶。除此之外还有很多 很多 我没涉及的内容,包括“开关编辑器”的快捷方式,背包同步,无限管道和特殊的测试场景,若要谈起这会让这篇文章变得更加冗长。希望你喜欢本文,也希望你对异星工厂那令人惊叹的 Mod 用 API 的工作方式有所了解。

异星工厂的开发者们用丰富的游戏内容宠坏了我们,而且 API 也随着每次更新变得愈加强大。感谢你的阅读,也感谢开发者们让这一切成为可能!

征稿

我们始终在寻找想要愿意与异星工厂社区分享有趣事物的人士。如果您有兴趣,请从加入我们的 Discord(或 GitHub project)开始。几乎任何主题的内容都大受欢迎,不要犹豫了快来供稿吧!

同时我们还希望在本周开始提供社区翻译,来让 Alt-F4 可以服务于英语之外的读者们。网站已经配置了多语种选项来适应这一需求,因此我们需要更多的翻译员们。如果您有意参与,请加入 Discord,并前往 #translation 频道。