室内空气流动模拟
在设计飞船建造的游戏时,我想做一个空气流动的模拟系统。这里有一个初步的方案,不知道好不好,先记录一下:
- 空间是由二维的正方形格子构成的,有些格子如墙体会阻止空气流动。每个格子有温度属性及气体质量的记录。不同气体可以同时存在于同一个内,质量单独记录。温度传导系统另外设计。
- 每个游戏 tick 对每个格子做一次独立计算,根据温度值给出一个概率,这个概率决定了该格气体向周围扩展的比例。
- 温度越高,越可能将更大比例的气体平均扩散到最多邻接的 8 格空间。
- 当格子因为建墙而导致空间变化时,把该格内气体全部扩散到临接格,当极端情况下无法做到时,空气锁定在墙体内,不会消失,等待以后满足条件后再扩散出去。
为什么要做基于格子而不是基于舱室的空气模拟?例如, FTL 的氧气气压模拟就是基于房间的。
因为,这个模拟需要结合游戏本身其它玩法的需要。预计之后会做气闸舱,真空室等设定。需要有一个更微观的空气流动模拟,简单的给船舱加上气压的数值是不够的。和 FTL 不同,我希望做一个基地建设风格的游戏,舱室的结构是动态的,难以以房间为单位计算。
目前有气体流动模拟的游戏中,最流行是缺氧。为什么不直接使用缺氧的模拟系统?
缺氧的基本规则是:每个格子只能有一种物质,这种物质可能有三态:固态、液态、气态。物质会因为温度发生三态转换。不同形态的物质属于不同的东西,每一格不能混装。特殊情况下,气体会直接消失。气体倾向于从高压格流向临近的低压格,并受重力影响向下运动。
缺氧的流体系统是和其它游戏系统相结合的:动植物需要在不同的气体环境下生长,小人会对环境气体尤其是有毒气体做出反应。这些玩法我应该不会做。尤其是,我的游戏地图是平面的,和缺氧不同,没有上下之分,所以不考虑气体重力分层。
对于缺氧来说,它的核心玩法之一是治理无序的自然空间。在玩家拓展空间时,必须考虑原有空间的环境。配合这个设定,才有衍生玩法。而我暂时不想在我的游戏中设计这些。我需要和气体模拟相配合的玩法主要是,根据环境气压影响人物或动植物的状态。
我希望模拟系统简单、准确、符合直觉。
简单:每个格子可以单独运算,不涉及复杂的公式。
直观:尽可能符合玩家的预期。例如,空气从高温区流向低温区,从高气压处流向低气压处,直到平衡。如果空气中混入一点毒气,也会缓慢的随时间扩展,稀释。
准确:规则上可以保证,不会因为模拟计算的误差而出现气体总量的变换。
下面还有一些对玩法的初步想法,尚未推敲细节:
- 飞船内需要部署制氧机。制氧机只能通过管道和其它设备连接,不直接向环境排放气体。
- 氧气需要通过特定设备输入通风管道,通风管道需要通过排气口向环境排放。
- 船舱中可部署一些氧气面罩供应点,它们由管道供气。
- 角色随身携带一格氧气面罩,当环境气压在阈值附近变化时自动戴上或取下。氧气消耗完毕后,会自动寻找临近的面罩更换。
Comments
蒸汽朋克风格的工厂类游戏吗?蒸汽线路想想还挺有意思呢。
Posted by: bookong | (6) July 19, 2024 03:25 PM
风哥计划什么时候能上线
Posted by: 孤夜 | (5) July 15, 2024 07:24 PM
不如先画几套故事板,yy一下典型事件是否好玩🤔
Posted by: 怪物公司 | (4) July 12, 2024 10:17 AM
虽然很有意思,但产品遥遥无期
Posted by: 哦啦啦 | (3) July 12, 2024 09:50 AM
有限元思想,这类流体算法比较成熟了吧,空气还有挺麻烦的应该是要处理压缩和变形。
Posted by: foool | (2) July 11, 2024 02:00 PM
为什么是八个格子? 我就能想到六个😂
Posted by: 卫海 | (1) July 10, 2024 01:02 PM