【异星工厂】FFF#377 - 新轨道


3楼猫 发布时间:2023-09-28 23:49:58 作者:Wube Software Language

你们好!

在异星工厂的一些地方,我们很长时间没有真正的勇气去做出改变。这些地方是轨道系统......


轨道系统需要改变吗?


每当玩游戏时,我们都会想起由技术限制引起的两个烦恼。

所谓的“S 形弯曲”是不可能实现的 - 两条平行的轨道在垂直方向上至少需要 6 个图块才能连接。

【异星工厂】FFF#377 - 新轨道-第0张

你有多少次遇到两条轨道无法轻松连接的情况。


一旦弯曲的轨道与任何其他轨道交叉,信号位置通常会受到很大的限制。因此,建设交叉路口需要进行大量的试验,以检验是否可以正确地发出信号。

【异星工厂】FFF#377 - 新轨道-第1张

你有多少次因为无法在十字路口内放置信号而需要重建十字路口?


除此之外,轨道系统的代码随着时间的推移积累了一些技术问题,例如:

⚙ 硬编码的连接规则

⚙ 硬编码的轨道规划器逻辑

⚙ 曲线轨道是唯一具有多个边界框的实体

⚙ 对角线轨道的前后信号位置重叠

我们有位同事boskid非常热衷于重写底层铁路代码的大部分,好处之一是我们可以轻松定义几乎任何轨道形状。 这是经过认真思考后想出的绝佳方案。

如果我们决定更新铁路系统,就必须以令人信服的方式修复所有主要问题......


S 形弯道

添加 S 弯听起来像是一个非常简单的更改 - 只是一个特殊的部件,可以让你将轨道偏移 2 个图块。

【异星工厂】FFF#377 - 新轨道-第2张

幻想一下,这样的 S 弯是多么美丽的想法。


但与往常一样,当谈到异星工厂时,事情从来都不是简单的……

【异星工厂】FFF#377 - 新轨道-第3张

所有这 5 个方向都需要连接到单个轨道件。


目前,每条轨道最多可以连接3个方向——左、直、右。 添加特殊的轨道部件要么会使曲线与 S 形弯曲不兼容 - 只能在同一位置构建一个,而不能同时构建两个 - 这将是一个技术限制,玩家可能不清楚原因。


或者需要两个以上的连接(向左弯曲,向右弯曲)——这意味着轨道的性能会因为更多的选择而受到影响,而且当你手动驾驶火车时,箭头键不足以清楚地带你前往想去的地方。


而且情况会变得更糟,因为仅添加一个 S 弯特殊部件是不够的。 将导轨偏移 2 个图块很好,但也许 4 个图块偏移会更好 - 这可以通过连续构建两个 2 个偏移来实现,但这将......看以看 :

【异星工厂】FFF#377 - 新轨道-第4张

我不完全确定这是否需要解释,但我相信对很多人来说,这是像素原因。


想法

因此我们得出的结论是,将曲线分成两半可能是理想的选择,允许相反的曲线相互连接 - 形成 S 形弯曲并允许将信号放置在中间。 另外,我们会在轨道上添加半对角线方向,这样可以根据需要延长 S 弯。

【异星工厂】FFF#377 - 新轨道-第5张

两条半曲线之间的半对角线轨道 - 任意长度的 S 弯!


这个想法很棒,但是如何将它放入图块、轨道形状和实际图形中......


几何形状

以上所有这些在纸面上听起来都很棒,但当涉及到具体实现时,几何学是无情的。

即使是新的轨道也必须遵守一条主要规则 —— 每个连接点都必须位于整数网格坐标上。使轨道规划器和信号位置合理简单地工作是必要的。

直线轨道很容易制作,但当我们只能通过整个图块移动控制点时,曲线就很困难了。

将曲线切成两半会在某些地方添加控制点,从而使曲线看起来不太漂亮。新的轨道曲线有很多锯齿状:

【异星工厂】FFF#377 - 新轨道-第6张

部分原因是控制点太多。对角三角形一般来说构建起来都很奇怪,并且造成了很多几何困难,所以我尝试放弃。

正如你在下面看到的,这样的曲线的中间最终将位于图块的中心,这不是允许定义的位置,因此这也不起作用。

你还可以注意到,虽然曲线在中间更加平滑,但在末端它仍然比 1.1 轨道尖锐得多 - 这看起来也不太像自然圆。

【异星工厂】FFF#377 - 新轨道-第7张

这意味着我们已经没有选择来制作漂亮的曲线了。或者说制作 - 这个曲线半径。但如果我们尝试让曲线变大怎么样?

事实上,最小的半径增加 11 到 13 个图块就有很大帮助,边缘块是完美圆的一部分,中间控制点位于整数网格坐标上。

【异星工厂】FFF#377 - 新轨道-第8张

我们确定的轨道曲线的最终形状。 它漂亮又光滑,中间不需要任何三角形或其他直线部分。


新异星工厂 2.0 导轨

曲线尺寸的增加很小,仍然不显着。 实际上,令人惊讶的是,问题并不那么严重。 例如,由于额外的信号位置,T 形通常可以保持不变。

【异星工厂】FFF#377 - 新轨道-第9张

【异星工厂】FFF#377 - 新轨道-第10张

我们的玩具火车可以从大量不同的轨道部件中进行选择来运行。

【异星工厂】FFF#377 - 新轨道-第11张

新的曲线和半对角线允许更细致的形状,因此通过狭窄的间隙更容易。

【异星工厂】FFF#377 - 新轨道-第12张

选择在轨道方向之间建立 4 或 6 个图块间隙更加容易,现在 2 个图块间隙是完全可能的。

即使在形势危急的时候,也有足够的候选信号位置。你还可以注意到,轨道段可视化已更改,现在它显示信号方向。

【异星工厂】FFF#377 - 新轨道-第13张

事实上,现在有如此多的信号位置,中间有 2 个图块的交叉点是可能的,但如果您的异星工厂朋友已经习惯了 32x32 模块化轨道蓝图,他们可能无法容忍这种情况。

【异星工厂】FFF#377 - 新轨道-第14张

说到这里,更大的曲线半径意味着在不同方向之间有 4 个图块,现在最小的方便蓝图模块尺寸为 32x32 个图块。为了配合这一点,我们将大电极范围增加到 32 个。

【异星工厂】FFF#377 - 新轨道-第15张

如果重新设计一个实体,最好也重新设计它的其余部分。 另外,它们还有模糊的边缘,因此当轨道结束时,它们看起来不会像以前那样不合时宜。

【异星工厂】FFF#377 - 新轨道-第16张

如果我从这篇文章一开始就把你从梦中叫醒并告诉你这就是现实,你会怎么办?


图形处理

新轨道的图形是我特别自豪的设计。 重新设计轨道以改善视觉效果并不是我们的目标,也没有人真正抱怨高分辨率(FFF-163)。

但我只能说我真的非常喜欢研究轨道图形,所以我利用这个机会让轨道看起来比以前更好。

金属部件更厚,因此即使在缩小时也能更一致,轨道内部有一堆假阴影,使它们看起来不那么平坦,各个部件的分层比以前更加棘手和丑陋, 地面集成更加贴合,并且应用了更多微小的改进。

当然,旧导轨之前没有出现的新问题也出现了,特别是在将导轨部件组合在一起时,因为每个导轨现在都可以分叉成另外 3 个导轨。这意味着我花了几周的时间在一个令人发狂的过程中一点一点地排列木枕,但现在不同的轨道部件非常适合在一起。

不仅仅是轨道,我们还需要更新大量的东西以适应新的轨道。轨道终点、火车站、所有遗迹、轨道段可视化图形、轨道信号候选点可视化的图形和系统都必须改变,轨道信号有如此多的新方向,甚至电路连接器(黄色框)也需要新方向 ,我可能仍然忘记了一些事情。

我对我们 3D 艺术家的 Jerzy 的感激之情无法形容,他巧妙地处理了整个问题,这样我就可以继续执行其他任务,并保留一些理智。

我们非常清楚需要改变的事情有多少。 其中一些是我们在 2016 年将轨道图形更新为高分辨率的过程中已经完成的,其中一些是随着时间的推移添加的新功能,例如轨道信号/轨道段辅助覆盖。

当然,您会期望由于我们已经拥有用于所有这些图形处理的系统,因此它会比上次更快。 问题是,我们的质量标准也在不断提高,因为我们总是发现一些需要改进的地方,所以整个过程仍然需要几个月的时间来实施。

Boskid 和 kovarex 必须解决很多技术问题。 即使有更多的轨道部件可供选择,让轨道规划器也能正常工作是相当困难的。

最后,我确信这一切都是值得的,并且我相信一旦您开始使用它,您也会有同样的感觉。


结论

即使没有太空时代,新的轨道也将作为异星工厂 2.0 的免费更新推出。

正如您可能猜到的那样,新的轨道曲线将与旧的轨道曲线不兼容。 1.1 版本的存档可以打开,火车仍然会像平常一样在以前建造的轨道上运行,但你将不再能建造旧的轨道。

在未来的异星工厂更新中,当我们决定放弃与 1.1 的游戏兼容性(假设是 2.1)时,我们将完全摆脱旧的轨道形状。

【异星工厂】FFF#377 - 新轨道-第17张

#策略游戏推荐#            #steam游戏#           #pc游戏#          #单机游戏#         #多人游戏#        #游戏推荐#       #wube software#      #异星工厂 资讯#     #自动化#    #沙盒#   #资愿管理#  #基地建设# 


© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com