有山不周无弹窗 四十八 最后一个BUG
这单生意的主顾是佛罗伦萨大学一位政治学教授和他的学生们。姜若对接到这类生意并不意外——每一篇Science重磅文章都意味着新鲜出炉的学术热点,科学家也是很擅长蹭热点的;只是有点意外来得最快的是一帮意大利人——毕竟蹭热点这种事情,我国人民还从没有输过。但等姜若看到对方一并发来的各种材料扫描件,尤其是伦理审核时就了然了:国内现在正在舆论风暴口上,没几个课题组敢在这个风口浪尖撞在人民群众的悠悠众口上面,落下一个蹭遗忘症的热点吃人血馒头的可怕名声;但外国人不同,对生命他们其实有一种我们不能理解的漠视,用自己的生命冒险做危险实验什么的,大约也是公民的自由之一。
姜若对佛罗伦萨的唯一认知是那里离据说每年要过圣马库斯节的沃特拉城很近——圣马库斯节是庆祝驱逐吸血鬼的节日——于是他幽默地考虑在“不周山”找一面墙壁涂一幅吸血鬼主题的壁画以示欢迎。
怎么看这都是一单十拿九稳的生意。
姜若这么想着,启动了久违的“不周山”,准备例行跑一跑,替主顾打个前站。空无一人的校园诡谲依旧,像一片满目疮痍的古战场遗迹。姜若巡视一圈,没有发现异常,又进了物理大楼,准备把实验室一间一间排查一下,看看有没有以前玩家留下的什么陷阱——万一主顾们在这里发生流血事件,落下PTSD就不好了。
熟读过玩家日志,姜若深知玩家在恶作剧上的不遗余力,有些陷阱藏得很隐秘,只有触碰到特定机关才会触发。平日里姜若不是个手贱的人,但为了排雷,他把所有仪器都启动检查了一遍,还真找到了几个不大不小的机关,其中一套蒸馏装备里面塞满了番茄酱,一点火就疯狂地对着屋顶喷射,不知道是哪个玩家的恶趣味。
然而就在姜若哭笑不得等着番茄酱停止喷射时,空气中悬浮的液滴忽然静止不动,与当初“山海经”因为秋城山火卡掉线的情况如出一辙——卡了几秒钟后,姜若遭遇了闪退,当他从游戏仓里爬出来,看着运行窗口跳出的OOM错误提示,整个人登时陷入了懵逼中。
OutOfMemory,内存溢出,是几乎每只程序猿都见过的经典BUG。
运行出现了BUG,照说没有什么奇怪的,然则虽然姜若和普天之下所有程序猿一样,写出来的代码天天报错,但在他心目中顾荻就是神,所以看见顾荻写的游戏居然也有BUG时,有一种碰见耶稣跟你一个澡堂洗澡的难以置信感。
姜若从来没有想过自己有一天要帮顾荻DEBUG。生活真奇妙。
经典的BUG往往对应经典的DEBUG套路。姜若查了一遍内存分配,很快发现了症结所在:“不周山”的内存分配方式和“山海经”是不同的。如果把“不周山”的所有内存看作一个正方体,那么其中所有细节就是这个正方体的无限分割。比如分割出一块来模拟一条鱼,再在这一小块里分割出存储鱼鳞和鱼骨信息的部分,鱼鳞中有坚硬的上皮细胞,细胞里有蛋白质......
在模拟不断细分的时候,内存也不断被分割。可是内存有限而细节无限,当“不周山”的模拟精度达到一定程度时,就会出现试图把一个字节继续分割的情况,那么自然就发生了报错。在金叶服务器上运行过的“不周山”已经具备了更高的计算精度,再回到古董电脑簇上面发生内存溢出也就不足为怪了,这大概就是所谓的曾经沧海难为水。
而“山海经”则不同。“山海经”每一帧都会重新分配内存,确保将所有内存调用在玩家关注的地方,而没有被关注的地方则尽可能模糊处理。只有你视野里有一整条鱼的时候,才会存储整条鱼的信息,而当你开始剔鱼刺,会存储这根鱼刺的信息,你没有关注的鱼鳞鱼头鱼尾就模糊化了,仿若一个虚化的镜头,焦点和边缘的像素截然不同。
所以“不周山”保留着完整的场景,而“山海经”的最后一帧信息事实上是最后被踢下线的所有玩家观察到的信息,是无数盲人在不同的位置和角度一起摸象,由他们得出的图景拼接的结果。
修正这个BUG并不困难,只要改回“山海经”的内存分配方法就可以了。但姜若觉得顾荻不是会犯这种显而易见错误的人。他意识到,顾荻使用的内存分配方法,是所谓“神的视角”,整个世界完整呈现且纤毫毕现;而“山海经”使用的是“盲人摸象视角”,一叶障目不见泰山。
姜若忽然想起“山海经”刚刚被学术圈注意到时涌现出来的“VR实验”论文,他读过其中一些,学术圈普遍的认知是,“VR实验”与“现实实验”是存在一定偏差的,他们认为这种偏差是VR世界终究存在某种简化的缘故。但这种偏差在顾荻的实验日志中没有出现。“不周山”只能模拟到内存所能接受的极限程度,当然也不可能是对“真实”的正确描述,其简化程度相比“山海经”有过之而无不及,但为什么就能得到更优秀的实验结果呢?
是“观察者偏差”。姜若想。
在“山海经”式的VR模拟环境下,只有实验者时刻关注着样本才能保证实验在高精度模拟条件下进行,但这通常是不可能的。大部分实验者在实验过程中难免跑神聊天吃饭上厕所,当他们的注意力从样本上移开时,偏差就发生了。
只有在“神的视角”下,实验才是在神的监控下进行的。真正击穿现实与梦境的,或许并不是模拟精度本身。
在神的观察下的“不周山”,玩家不能感觉到与真实的差别,在“过度模拟”的信息过载下触发了自我保护的遗忘机制;而在“山海经”中,依靠玩家的观察而构建的世界是不是更有梦境的特征,所以大脑会不会其实明白眼前的一切终究不是现实呢?
在一个盲人摸象的世界,遗忘症是不是并不会被带入现实呢?