如果说过去几年,在技术上有什么值得自豪的话,我会选择「实现了一套复杂的仿真RTS战斗系统」。
手机上可以支持600+独立AI单位同屏战斗,拥有一套扩展性很强的技能系统,客户端和服务端共用一套核心代码,服务器的一个战斗进程可以在1秒内将这几百个单位全部战斗过程(寻路,碰撞,目标选择,自动施法等等)演算出来并与客户端战报播放达到完全一致。
这中间花费了我大量的心血,具体技术细节我披露了一些在技术博客上,在此想提一些我观察到的现象。
这套系统演示了「蝴蝶效应」:哪怕一个单位初始坐标存在0.001的误差都会让整个战斗回放过程变得天差地别,甚至使胜负发生逆转。
然而,只要保证初始输入和随机数种子一样,在所有设备上,他们的回放过程和战斗结果都将是一致的。
这很美妙,做游戏实际上就是在创造一个虚拟世界。亲眼看到这个游戏世界的运行居然能折射出一些现实世界的影子,则会让喜悦加多一分。
好吧,写到这里我承认我是标题党,这篇文章的原定标题是「混沌、熵和生死观」,我猜这个标题不会有人点进来看。为了影响更多的人,我借用了柯P的说法,取了这样一个标题。
混沌
有一句古话叫:「混沌初开,盘古开天地」。说的是世界最开始是混沌的,盘古开天辟地后,世界才变成了现在这个样子。
这当然是神话故事了,但是混沌是什么,世界是混沌的吗?
混沌理论是气象学家洛伦茨在研究天气问题时提出的理论,混沌理论和洛伦茨可能都不被大众所知。然而很多人都知道「蝴蝶效应」:在南美的一只蝴蝶,轻轻扇动了它的翅膀,会引发两周后在美国的一场龙卷风。
而混沌所描述的就是这样一种动力系统,其初始的微小偏差,都会导致整个系统朝着完全不一样的轨迹运行。
开篇的战斗系统便是一个混沌的系统,一个小兵初始站位哪怕只偏差了0.001个单位,都会使得整个战斗回放看起来天差万别,甚至影响到胜负走向。
这不禁让我联想起「马蹄钉和帝国」的故事:
- 失了一颗马蹄钉,丢了一个马蹄铁
- 丢了一个马蹄铁,折了一匹战马
- 折了一匹战马,损了一位国王
- 损了一位国王,输了一场战争
- 输了一场战争,亡了一个帝国
历史往往可能就是由一件小事铸就的,不过很少会有人相信这一点,因为这反直觉。人们更愿意去相信阴谋论,因为在起因未明之前,阴谋论能给人一个直白的解释。
17年NBA西决,渣渣的脚往前多伸了几十厘米,导致莱昂纳德伤退。而后勇士两连冠,莱昂纳德因为伤病与马刺产生隔阂,被送往猛龙,直接改变了后续的联盟格局。
2010年,一个小贩被警察虐待,抗议自焚,引发了茉莉花革命,进而引发「阿拉伯之春」。最终造成百万人死亡,千万人成为难民,逃往欧洲大陆,使得欧洲面临空前的难民危机。
1986年,切尔诺贝利,一个操作员没有按照SOP操作的一个小失误,引发史上最严重的核电事故。不仅对环境和经济造成了极大的破坏,也间接加速了苏联的解体,继而影响了整个世界格局。
……
如果说混沌系统对我有什么启发的话,我想主要有两点:
- 千里之堤,毁于蚁穴,魔鬼在细节中,做人做事做产品都应该要注重细节。
- 人是很渺小的,沧海一粟。但哪怕再渺小的我们,也能对世界的整体进程产生一些改变,只不过我们很难察觉到。
熵
熵一直被描述为一个系统的混乱程度,但这个描述曾让我很困惑,混乱也是可以度量的吗?
其实熵是描述状态数的一个量,一个系统内的状态数越多,其熵值越大。热力学第二定律说:在自然过程中,一个孤立系统的熵不会减小。
假设有两个相同大小且相通的房间,总共有四个气体分子在房间内,那么最终气体分子会怎么排布呢?
用一张图可以很好的说明这一点。
我们可以看到,所有四个分子都聚集到左边或右边房间的状态数为1;一个房间有三个,另外一个房间只有一个的状态数为4;两个房间分布均匀,都为2个状态数为6。
我们会发现,如果按照熵增的方向进展,气体分子会均匀的填满两个房间,这也与我们的常识相符。
实际上,房间内的空气分子非常多。理论上来说,有可能在一瞬间,我所在房间内的所有气体分子都跑到另外一个房间了,从而令我窒息而死。
不过这种情况发生的概率非常非常低,我完全用不着担心。
玻尔兹曼创造性的将统计与热力学结合起来,创造了统计热力学。因为单个分子的运动无法描述,而大规模的分子运动则可以观测出来,温度就是其中一种统计上的标度。
从微观上来看,我们很难确定每个分子的运动;然而从宏观上来看,我们可以利用统计来对一群分子的运动做一个描述。
这不禁让我想到了,在「如何科学的应对恐惧」的讨论下,有同学回复的一句话:「人性无定,众而御之」。
一个人的行为时刻会发生变化,很难预测;而一个群体的行为则变得比较好预测。因为人性千万年来没怎么变化,所以历史也会不断地重复。
生死
熵并不是一直都在增加,只不过从统计学来说熵是朝着增加的方向去发展的。
就好比一个赌徒带着千万筹码上桌,他输钱的概率大于其赢钱的概率。这个赌徒中间也许会赢,但是如果这个赌局一直进展下去的话,这个赌徒最终会输光其所有的筹码。
生命是一个高度有序的组织,宇宙在熵的涨落中,出现了低熵的生命,但生命最终都会走向死亡。其高度有序的组织会被降解,分化成各种肥料,滋养着新的生命,从而生生不息。
一个公司和朝代也是一样,最终都会走向不可避免的灭亡。其灭亡时,其内的人会被打散重组,从而诞生其他的公司和朝代。
所以人人死而平等,人都是会死的,死不是人生的目的,而活着的过程才是。
人不可能脱离一切而活,生命的存在总是要跟外界产生物质交换。如果一味索取,而不付出,则就像一个不断充气却不放气的气球一样,最终会爆掉。
我是幸运的,能有一个安稳的环境去读书,去写作。我交(感)换(恩)的一种方式是输出我的知识,分享我的感悟,希望能够影响并帮助到更多的人。一个小小的影响也许能在混沌的作用下会产生很大的变化。
柯文哲曾讲过一个故事:有一次他请老师吃饭,结账时才发现花了2万多新台币,他顿时吓得脸色发绿。第二天早上,他上完厕所,看着自己的大便,发现跟他平时吃的80块新台币的便当没啥区别。顿时他大彻大悟,觉得人生的荣华富贵不过就是一坨大便。
我深有同感,了解我的人都知道我对吃和穿都很随意。我可以连续吃一份西红柿炒蛋吃一个星期,一个夏天都穿着迪卡侬20块一件的黑T。
在马斯洛需求层面,我们早已满足了这些温饱的需求。我不再追求这些,是因为这些东西的快乐都太短暂,而且边际效益递减,它们已无法给我带来太多的快乐。
而知识和真理,看起来是更加长久的东西。在边界被拓宽的时候,在悟道后,我会更加轻松,也会更加淡然。
就以东坡的「定风波」作为结束吧。
莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。