第68章

深渊游戏 水千丞 2752 字 1个月前

“我们熟知的现实世界,运行任何程序都是单服务器的,这个单服务器不是指一台服务器,而是说所有服务器都在运行同一个程序,因为数据量巨大的程序一台服务器是肯定载不动的。但是这个游戏,我可以肯定,至少是基于多服务器的分布式计算和存储的,《黑客帝国》的英文名字——Matrix,就是这个意思。Matrix互相共享数据和计算,一类服务器,只负责某一片区域的运算,比如,这一类服务器负责地图,那一类负责装备,然后交互运行。我之所以能肯定,就是因为这个游戏涉及到的理念太复杂,我之前跟你们说过的,这个程序有多么可怕,能将活人完美地并入计算机程序里,如果不运用这样超前的技术,是不可能实现的。而Matrix不过是人类幻想的最超前技术,这个游戏已经超出人类的想象,至少就将活物完美对缝程序来说,这个技术就必定有更高的科学去实践。”

乔惊霆搓了搓额头:“你……不是说要简单解释一下吗……”

沈悟非看着4人略显茫然的脸,像是被浇了一桶冷水,蔫儿了不少,他轻咳一声:“单服务器运算和多服务器运算的区别,就像……我们要得到100公斤的水果拼盘,这个拼盘由100种等质量的水果组成。单服务器就是用100个碗去盛拼盘,每个碗里都是1公斤的一模一样的水果,合起来就有100公斤。而多服务器则是每个碗只有一种水果,100个碗合到一起,才是100公斤,但同时,这7种水果要挨在一起,那3种水果和那6种水果永远不能碰到一起,这个水果要在那个水果上面,那个水果要从这个水果中间穿过,你知道100种水果能有多少种不同的排列组合吗?2的100次方,那是一个天文数字。何况这个游戏里的元素何止100。”

“哦,这么说就大概懂了。”乔惊霆再次觉得自己需要去加点智力,“那么这个BUG到底是啥?”

“你别急,我不把前面讲明白,你们更听不懂。”沈悟非看上去也很费劲的样子,“这个多服务器的系统,在进行如此复杂运算的同时,自然需要不停地维护,虚拟系统的存在,就是分配系统资源和空间,维护整个脚本系统运行状态的,当然,这是单服务器的虚拟系统,多服务器的情况肯定更复杂,也许不叫虚拟系统,但必须有这么一个东西,来自动化分配和控制资源,虚拟系统就像个幽灵一样,就存在于系统之中,控制系统中的所有数据。”

“那么我看到的那些东西……为什么只是一部分东西出现在虚拟系统中?”

“程序里面有类和象。类就是个模板,比如武器就是一类,符石是一类,地图是一类,而象就是具体的东西,基于类创造出来的,比如某个武器,某个符石,某个地图。而虚拟系统,维护着对所有象的引用。”

“什么?”

“就是……你使用这个武器,就成为这个类实例化的对象,不然我说这一类叫做ABC,你知道什么是ABC吗?只有我拿出一个代表ABC的东西,ABC才有了实际的意义。而当你不使用这个武器的时候,虚拟系统就删除对这个象的引用,但实际象还存在,只是你使用它的这个行为消失了。”沈悟非敲了敲桌子,“关键是,某些情况下,如果这个象一直不被引用,那么虚拟系统为了减轻服务器的压力,就会把这个象删除。”

舒艾恍然大悟:“所以惊霆看到的,就是被虚拟系统删除的象!”

“没错。比如,有一个物品,一直没有人买,虚拟系统就会把它删除来释放系统资源,但实际上这个物品并不是从系统里消失了,它的编码还在,随时可以再造。只有当你买它的时候,就是引用它的时候,虚拟系统就会造出一个给你。同样的,一种怪被反复打,期间可能会检测出各种各样可以改进的地方,比如你玩儿游戏,就有内测,内测发现的不足就会不断改正,而那些被改掉的旧版本呢?因为不再被引用,所以被虚拟机删除了。”

“怪不得我有时候碰到的怪有点破。”乔惊霆还记得自己第一次碰到的灰鼠,电线都露在外面。

“对。”沈悟非专注于某事的时候,周身就有一种坚定的气场,强过平日怯弱的样子数倍,“所以,那个虚无空间,就是游戏的虚拟系统,而你在里面看到的所有东西,都是因为版本更新、因为修改数据、因为没人买等各种原因不再被引用的象,但是其数据依旧留存于服务器之中,被虚拟系统删除之后出现在了你面前!”

几人屏息数秒,同时点了点头。

“虽然有点复杂,不过我听懂了。”邹一刀吐了口烟圈,“这个解释很合理。所以,他每到一个地方,看到的东西都不一样,也是因为服务器化区域运算。”

“对,我不知道这个游戏是靠多少个服务器支撑起来的,但是每到一个新城市,虚拟系统里被删除的东西都不一样,证明了服务器肯定不少。不过,分布式计算的多服务器系统肯定都是冗余系统,意思就是多个服务器会有叠加运算某一程序的情况,这样能够保证一个服务器坏了,这段程序也不会出问题,通过多重运算和备份来保证系统的稳定,所以,你肯定会看到重复的东西,只是概率上不常见罢了。”

乔惊霆则问道:“那么我成为城主之后,突然就看到了比之前多得多的东西,是因为什么?”