起点
就在前些日子,北京迎来了新的疫情升级,楼下社区大门全部紧闭,进出严格检查,但是北京的大街上仍然人头窜动,要知道首都北京是中国人口集中和流动最密集的城市之一,如果感染性强、潜伏期长的病毒爆发,后果不堪设想。
在新型冠状病毒刚刚爆发的时候,大概是2020年2月份,我曾想过做一个对病毒传播模拟程序,以游戏的形式对病毒传播过程做出直观展示,后来一方面感觉这项工程的庞大,如果要真实还真不太容易,我做了大量的研究和笔记,发现工作量惊人,那时候也没什么心思弄,另外一方面有UP主,已经实现了类似的模拟程序,虽然功能很少,但是用来警示隔离措施的重要性已经很很不错。
从2020年6月13日得知北京新发地的确诊新闻后,就打算启动开发,以完成之前的遗憾。
设计灵感
首先是系统设计问题,灵感来源于个体互动,人类是社群化的生物,必然产生个体之间的交互,多个个体组合成为一个团体,比如家庭、队伍、社区,乃至城市、国家,而他们都处于一个特定的场所,随着个体和个体接触,那么病毒是否也可以借此机会传染扩散呢?
核心规则
整个系统虽说是比较复杂,但是核心规则非常非常简单,一共就三条:
1、有宿主的病毒会定时向所在场所复制自己,复制的病毒在存活期内,会尝试入侵附近的其他健康宿主
2、宿主会处在在一个场所中,宿主会依据随机意愿和世界活跃度,离开场所前往其他场所一段时间后返回
3、场所视为一个封闭空间,病毒和宿主一直处于一个场所中,世界等同于大场所,场所下面可以拥有子场所
创建一个模拟工具,考虑到其不可能完全模拟真实情况,因此简化分析和处理传播中的最常见的载体流动造成的传播问题,设计游戏模拟器的分析图,首先确定病毒的基础规则,传播规则、自身存活、数值对抗三大核心规则。
考虑载体是多种多样的,首先分为生物体和非生物体,但是经过简单的分解后,发现如果多种载体全部实现,比较复杂,且数据量较大,因此还是围绕着病毒传播主要载体人来作第一个基础载体程序, 转变思路将传播方式是散播到场所中,而人处于各种各样的场所里,比如家庭、社区、公共场合等,人一旦成为病毒载体,那么病毒将会定时向外散播病毒,让它的复制体留在场所里,这样去除了空气传播的计算问题,只需要考虑让病毒存活一段时间,在此时间中,可能有其他载体经过而被入侵,由于人所处于的场所有大小,所以活动的范围先对固定,因此这种设计也能模拟载体在一个比较固定的场所里,被感染的机率加大。
我考虑场所设计为相对封闭,它等同于一个空间,在这个空间中的病毒不会传播出去到其他的场所,只会入侵载体,而载体可以离开场所,这样病毒就会有机会向外散播。
场所的设计可以添加处理逻辑脚本,从而模拟各种各样的设施,比如人流较大的聚集地、能够消灭或抑制病毒的医疗环境等等,为了方便说明,从这个图中能看到大概的解释,就是世界里存在着场所,而人除了在世界中,它也存在于各种场所里,同样场所内也有可能有自己的场所,这样的做法就是尽可能的模拟独立空间带来的隔离传播的功能。
大概用了一整天的时间构思规则设计,然后边开发边做规则调整,确实非常的庞大和烧脑。
今天先写到这里,下一篇是游戏制作的日志延续,主要关于使用游戏引擎开发模拟游戏。
展示视频正在制作中,点个关注我,更新不错过!