【模组宣传】大气层重构

作者:左爻 发布时间:2026年11月02日 13:21

以下的“我”均指该模组作者Acutus。

在原版游戏里,天气由随机数决定。不论是晴,雨,有毒尘埃,沙尘暴,不过只是一次掷骰子。

但是,如果我告诉你,在你的地图上有一团潮湿的空气上升,遇上高空冷气团,因此化作雨落下,并且浇灌了地上的植物和土壤?

如果我告诉你,沙尘暴来自一个附近的真实的沙漠,干燥的风把它的沙尘卷起吹到你这里?

如果我告诉你,热带的海边总是受到飓风侵袭,而在毁灭之中的宁静的风眼却让殖民者纷纷走出门外,抬头仰望?

如果我告诉你,太空应该是没有任何气压的,船体破开一个洞,舱内空气就会从缺口狂泻而出,撕开一个大裂口,将人与物品抽吸出去,而没穿宇航服的人,血液迅速沸腾?

《边缘世界》实机截图 1

如果我告诉你,房间的热量无法瞬间平均,它随风传播,热空气理应上升膨胀,冷空气理应下降收缩?

如果我告诉你,一个完整的,包含如此多物理量耦合的流体力学求解器,加上八层的仿真全球气候模拟,依然能在你的电脑上跑出500tps?

这就是大气层重构。

本地大气

每一格都有一份空气。它从高压流向低压,绕过墙壁、穿过门,混合热量与水汽,甚至,因为科里奥利力而些微旋转。本地地图新增10个图层,显示风、风场流线、气压、地面温度、体感温度、湿度、氧气含量、土壤含水量,以及建筑或屋顶在下一秒内损坏的概率。

气压

气压是驱动气流的主要动力。本地地图有一个环境气压,取决于该地的海拔与气候系统在这一地带的状态。

你可以建造空气压缩机,抽吸空气并产出压缩气瓶。密闭的房间中的气压会降低。同理,在其中释放气瓶,气压就会上升。在气压不同的两个房间之间开门,空气会冲过去。

《边缘世界》实机截图 2

爆炸会产生向外扩散并且反弹的冲击波,摧毁人的听觉。

气压差会导致墙壁和屋顶受力。小心,墙、门和屋顶会被过高的气压压坏!

风

风绕着建筑流动,在缝隙里加速,在障碍物后产生湍流和经典的卡门涡街。植物随风向与风力摇曳。

《边缘世界》实机截图 3

强风会让人站不稳,吹飞物品和殖民者,造成伤害,掀掉屋顶,甚至吹倒脆弱的墙!

《边缘世界》实机截图 4

毒气,腐烂臭气,致盲烟雾等气体会以不同的速度随风飘走扩散,因此战斗时根据风选择位置也很重要。

《边缘世界》实机截图 5

你可以建造风扇来制造人为的风,以帮助空气循环,甚至建造喷气发动机,喷射超强的风来阻挡和摧毁敌人!

《边缘世界》实机截图 6

湿度

水蒸汽也会影响空气的性质。湿度代表水蒸气的分压相对于最高水蒸气分压的比例。

水的蒸发与凝结会吞吐热量,因此在急剧泄压的情况下你有可能见到水雾短暂地形成,这是由于气压和温度的同时下降导致最高水蒸气分压降低,多余的水析出。

潮湿的空气让食物腐坏得更快,干燥的环境则让它们保存得更久。植物需要一定的水分或湿度才能生长,人也是一样,记得准备好充足的水源。

你可以建造加湿器和除湿机来改变湿度。

《边缘世界》实机截图 7

《边缘世界》实机截图 8

温度

热空气膨胀上浮,冷空气收缩下沉。由于这是个水平的2d游戏,则体现为:空地上的热空气上浮,造成局部低压区,周围空气涌入;密闭房间里的热空气(如屋内起火)提高气压,直到冲破房门。

《边缘世界》实机截图 9

地面也会存储热量,因此在无风的殖民地,你有可能见到,白天旱地受热更快,风从湖面吹向陆地;夜晚湖水保有更多热量,风从陆地吹向水面。

热量现在随风传播。若想更高效地抬升和降低屋内温度,也许原版的加热器和空调不大够,你同时也需要风扇来帮助热量混合。

《边缘世界》实机截图 10

有了风和湿度的数据,现在决定殖民者是否中暑的便不再是单纯的温度,而是体感温度。干燥的风使人感到更凉快。

《边缘世界》实机截图 11

氧气

人需要氧气才能生存,但是过浓的氧气也会使人中毒。

火会消耗氧气,在密闭房间里,它们会自我窒息,而富氧空气中火蔓延得更快。

深洞和远古遗迹里是陈旧稀薄的空气。记得戴上氧气面罩。面罩,真空服,海军装甲之类的服装可以提供内环境,将殖民者与危险的环境隔离开。

《边缘世界》实机截图 12

《边缘世界》实机截图 13

全球大气

你可以在空地上建造一个多普勒气象雷达,当它运行时,你就能在世界地图上查看气候图层。

一个完全由流体求解形成的大气模型在你的显卡上运行。从地面到16000m高度,共分为八层,每层都有气压,风(强度与流线),湿度,温度,云层。

除此以外,还有洋流,海拔,地表温度,气象系统,降水量,经纬线等图层可供查看。总计54个显示图层。

《边缘世界》实机截图 14

本地地图的天气已经所有的环境预设量都和气象系统在这个地图格上的数据直接相关。

全球气候的计算预先计算,缓存起来(最多23帧),再逐帧播放给玩家。实际的计算头比当前时间超前数小时。当你暂停时,气候不会停止运算。

你还可以在多普勒气象雷达附近建造多元分析仪,以查看缓存中的气候模拟帧,作为一种天气预报。

《边缘世界》实机截图 15

接下来请一起欣赏我们美丽的星球。

  • 天气系统图层:锋面、热带气旋、雷暴、龙卷风风险区,以及沙尘、毒物、等等大气层气体

    《边缘世界》实机截图 16

  • 台风吸积附近的沙尘暴

    《边缘世界》实机截图 17

  • 超强台风

    《边缘世界》实机截图 18

    《边缘世界》实机截图 19

  • 气候操纵设施对局部气候的影响

    《边缘世界》实机截图 20

  • 黑幕发生器

    《边缘世界》实机截图 21

  • 海冰随季节冻结和融化。你可以在上面定居,但它未必长久。

  • 高空西风急流与行星波

    《边缘世界》实机截图 22

  • 在RimEarth真实比例地球上进行模拟,成功复刻西伯利亚高压,黑潮暖流

    《边缘世界》实机截图 23

    《边缘世界》实机截图 24

  • 最高气温,全海洋的星球上失控的温室效应

    《边缘世界》实机截图 25

  • 最低气温的雪球地球

    《边缘世界》实机截图 26

性能

我知道你们最关心的是性能。这种实时流体模拟,看上去就像要烧掉你们的电脑。大可放心。

以我自己的电脑为例(13th gen i7, rtx 4060 laptop, 16gb ram/vram):

本地地图的模拟引擎跑在CPU上,由Burst compile驱动的(这也就是为什么一时半会难以兼容1.7的新引擎)可压缩场RBSOR求解器,最大限度优化了数据吞吐和并行计算管线,
一帧大约需要6~9ms,在3tick/帧的设置下,单地图可以跑上500tps;

全球气候模拟引擎,由Silk路由至外部WebGPU计算库驱动的不可压缩场SSPRK3求解器,平均8-10秒一帧,并不占用游戏本体性能,
且提前计算并缓存,因此只要不长时间720tps运行,并不会遇到卡顿。创建世界或在AO环境下第一次进入存档时可能需要等待3-5分钟,以进行该星球大气层的适应性演算。

当然,我不得不承认,相对于其他大多数模组来说,它仍然很重。在开发工程的半年中,我用尽了一切办法调试物理效果,优化计算效率,也许最终适配上1.7后,我若是还有精力,能把这半年以来的思路,试错和调整整理成一篇文章,也是不辜负我披星戴月的努力了。

另外,在此特别感谢英格兰雷丁大学的Hilary Weller女士。她的好几篇文章,(尤其是 Controlling the Computational Modes of the Arbitrarily Structured C Grid)在开发过程中给了我巨大的帮助。

特别感谢 Performance fish 的作者 Bradson,我参考了他的代码写出了气体系统,和他的交流也给了我许多想法。

兼容性

原版DLC

该模组并不依赖任何dlc,但是你可以加上所有五个dlc,他们中有些机制也十分巧妙地兼容进大气层重构中了。

Dubs Bad Hygiene

本模组的水可以无缝兼容进Dubs Bad Hygiene的水系统,小人口渴时会去水槽取水,淋浴和泡澡也会让室内变得湿热。

Combat Extended

兼容。适配了CE中的环境风速与相关判定,并且燃烧黑烟也会随风飘荡了。

旧存档

本模组可以中途加入。旧的非100%覆盖的世界会自动填充剩余的海洋,并且在第一次进入存档时计算5帧大气,以适配新地形。

常见问题

更难了吗?是这样的,我不得不说。但是全新的机制也给了你很多解决问题的方法。

小人死太快了,能关掉口渴吗?可以,在模组设置里就可以关掉。

风会把东西吹出地图吗?可以设置是否吹出地图。吹出地图的东西有概率在临近地图找到,小人也有概率自己回来。

需要懂气象学吗?模组 44 条内置教程会讲解每个机制。但是我还是建议你懂一些,这样玩起来更加直观,也可以产生更多小巧思。

1.7?唉!泰南在1.7用的全新引擎,导致了两个问题:第一,本地引擎依赖的Burst Compile没法用了,所以我得花点时间在新引擎里面找替代方案;第二,听说新引擎支持多线程调用shader,这对全球引擎是个利好,我兴许可以拆掉一些绕路的手段,也许性能可以得到进一步提升。