别人成仙得道,我是白骨成精分享 http://blog.sciencenet.cn/u/qiaoqiao1980 寻找新物理学

博文

活世界 第二十一章 可以栖居的数学

已有 320 次阅读 2026-10-9 10:07 |个人分类:我思故我在|系统分类:观点评述

顾青说的“可以栖居的数学”,不在实验室,不在旧厂房,在一家快要关门的游戏厅里。

周穆跟着他穿过一条正在拆迁的老街,在一排围挡后面找到了那个门面。招牌歪着,霓虹灯管碎了一半,门口堆着几个废弃的街机框体。推门进去,里面还有几台机器亮着,嗡嗡响着电流声。一个五十来岁的男人坐在柜台后面抽烟,见他们进来,抬了抬下巴,算是打了招呼。

“老方,”顾青介绍,“以前做游戏物理引擎的,现在靠修街机过日子。”

老方把烟掐了,带他们走到角落里一台拳击游戏机前。屏幕还亮着,一个肌肉男在屏幕上做热身动作。

“您看这个。”老方拍了拍机台,“这款拳击游戏,九六年出的。您打它一拳,屏幕上的人会做出反应——格挡、后退、反击。看起来很简单。但您知道它里面最复杂的东西是什么吗?”

周穆摇头。

“是重力。”老方说,“不是画面里的重力,是拳头的重力。您打一拳,游戏算的不是‘您这一拳扣了多少血’,它算的是这一拳的动量、角度、速度,然后模拟对手的身体怎么受力、怎么平衡、怎么倒。全部靠物理引擎算出来的。没有预设动画。”

“所以每次打,结果都不一样。”

“对。因为物理引擎是实时计算的。您打的角度偏一点,对手倒的方向就不一样。您打得重一点,他退的步数就多。您这一拳和上一拳一模一样,结果也可能不同,因为他的身体状态变了。”

周穆盯着屏幕。那个肌肉男还在做热身。他忽然想起自己以前做世界的方式。他做过“芽庄”项目,那里面的风、草、动物,一开始也想用物理引擎驱动。但后来赶进度,改成了预设动画。草还是摇,但摇法只有三种。动物还是跑,但路线是定死的。玩家觉得世界是活的,但那种活是装出来的。

“老方,”他说,“物理引擎和预设动画,最根本的区别是什么?”

老方想了想。

“物理引擎有内部状态。”他说,“您打一拳,引擎会更新它的内部状态——对手的位置、速度、角度、平衡。下一次您再打,它是从上一次的状态继续算的。预设动画没有内部状态,每次播放都是从头开始。您打一百拳,每一拳都是独立事件,彼此之间没有关系。”

“所以物理引擎有记忆。”

“对。不是存数据的记忆,是动力学意义上的记忆。状态会持续,会演化,会被上一刻影响。这才叫物理。”

周穆在笔记本上写了两个字:状态。

“那如果一个虚拟世界要像物理引擎一样可栖居,”他问,“它需要什么?”

“需要规则。”老方说,“不是内容规则,是物理规则。重力怎么算,碰撞怎么判,材质怎么响应,能量怎么转化。这些规则定了之后,世界自己就能跑。您不用告诉它每一帧该放什么动画,它自己会算。您告诉它规则,它告诉您结果。”

“那如果规则写错了呢?”

“世界就崩了。”老方笑了,“所以规则不能太多,也不能太少。太多,世界就僵死了。太少,世界就散了。得刚好——刚好够它自己跑起来,但不够它跑出您想要的范围。”

周穆盯着那台拳击机,忽然觉得老方说的“刚好”两个字很重。刚好够跑,不够跑偏。这不就是顾青说的“临界态”吗?森林火灾在崩与不崩之间,神经雪崩在失稳与沉寂之间,虚拟世界也在僵死与散架之间。规则太少,世界散了。规则太多,世界僵了。刚好,它才能长。

“老方,”他说,“您以前做过世界吗?”

“做过。”老方把烟又点上了,“九几年那会儿,做过一个飞行模拟游戏。玩家开飞机,在一个岛上飞。那个岛是用地形算法生成的,山脉、河流、树林,全是算出来的。玩家飞过去,地形会跟着变。飞得低,山谷会张开。飞得高,云层会散开。没有预设路线,没有固定场景。每个玩家看到的岛都不一样。”

“那后来呢?”

“后来项目停了。”老方吐了一口烟,“公司觉得太慢。地形实时生成,一秒钟只能算几帧。玩家受不了卡顿。他们让我把地形改成静态的,预先算好,存成贴图。这样快。我改了。改完之后,世界是流畅了,但它是死的。你飞一百遍,岛还是那个岛。你打一拳,对手还是那个反应。快是快了,但它不会回应你了。”

周穆把这句话记了下来。不会回应你了。他做了三十四年的虚拟世界,没有一个会回应他。它们只是播放他预设好的内容。他打一拳,它们放一段动画。他飞一圈,它们放一段贴图。它们看起来在动,但它们从来没有真正回应过。

“所以可栖居的数学,”他说,“就是让世界能回应你。”

“对。”老方把烟掐了,“它不是画出来的,它是算出来的。它不是做出来的,它是长出来的。你给它的规则,不是告诉它该放什么,是告诉它该怎么算。它算出来的东西,你事先不知道。你打一拳,它怎么倒,你得看它怎么算。这才是可以栖居的。”

周穆在那台拳击游戏机前站了很久。他忽然想起顾青说过的“孤岛”。孤岛没有物理引擎,它的规则很简陋。但它有一个东西——它的居民在种地,种地需要土地、水、阳光。这些不是预设的动画,是算出来的。你种下去,它自己长。长成什么样,你事先不知道。所以孤岛的居民在“住”里面,不是在“看”里面。

“顾青,”他说,“我现在明白为什么活世界需要物理引擎了。”

“为什么?”

“因为物理引擎让世界有了内部状态。有了内部状态,世界就有了记忆。有了记忆,世界就能回应你。它回应的方式,不是播放一段动画,而是根据你刚才做的事,算出接下来该发生什么。这才是‘住’的感觉。”

“对。”顾青说,“可栖居的数学,不是画出来的空间,是算出来的空间。它不是给你一张地图,是给你一套规则。你在规则里走,规则跟着你变。世界不是被你看的,是被你用的。”

周穆站起来,最后看了一眼那台拳击游戏机。屏幕上,那个肌肉男还在做热身,动作简单,但每次都不一样。因为每一次,都是引擎在上一次的状态上继续算的。它记得上一拳,记得上一步,记得上一次倒下的角度。它不存这些记忆,但它用这些记忆。

“老方,”他问,“您觉得一个世界要多大,才能让人住进去?”

老方笑了:“不用大。一个院子,一条街,够了。关键是它得回应你。您住一个院子,院子记得您什么时候出门,什么时候回来。您住一条街,街记得您什么时候走过,什么时候停下。有回应,就是家。没回应,就是画。”

周穆想起阿苇说的那句话。住在一个不是我的房子里,无论多久,都只是借宿。现在他明白了。借宿的问题,不只是所有权。借宿的问题,是房子不回应你。你住进去,它不知道。你走了,它也不记得。你打一拳,它不疼。你喊一声,它不响。它只是一个空间,不是一个地方。

那天晚上,周穆回到家,在笔记本上写下了第十八个问题。现在纸上有十八行:

它会死吗?

它的东西,是谁的?

它痒吗?痒的时候,会记得是谁挠过它吗?

它知道自己快死了吗?

谁在它里面,搬东西?

它的东西,有没有过去?

它自己能决定什么?

谁能让它自己活?

它记不记得自己?

它记得自己是怎么变的吗?

它靠什么信别人?

它守住底线之后,还剩下什么?

钥匙在谁手里?

它记得多厚?

它几岁了?

它愿意慢下来吗?

它还在自己决定吗?

谁在读它的账?

他在第十八行下面,又加了一行:

它会不会回应你?

然后他合上笔记本,给自己倒了一杯茶。窗外,城市的灯火一直延伸到海边。在那片灯火的某处,寰宇的服务器还在安静地运转。玩家们打一拳,它放一段动画。玩家们走一步,它放一段贴图。它很快,很流畅,很漂亮。但它不会回应。它只是在播放。

而一个真正活着的世界,不会播放。它会算。它记得你打过的每一拳,走过的每一步,种过的每一颗种子。它用这些记忆,算出接下来该发生什么。它算出来的东西,你事先不知道。你打一拳,它怎么倒,你得看它怎么算。

这才是可以栖居的数学。不是画出来的空间,是算出来的地方。

周穆端起茶杯,忽然觉得,也许一个世界最深的秘密,不在它有多大,有多美,有多热闹。而在它会不会回应你。

它回应你的时候,你就住进去了。



https://blog.sciencenet.cn/blog-41701-1555749.html

上一篇:活世界 第二十章 记忆的边界
下一篇:活世界 第二十二章 边缘上起舞



    
收藏 IP: 111.25.142.*| 热度|

3 刘进平 宁利中 崔锦华

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2026-10-23 19:47

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部