分卷阅读65(2 / 2)

深渊游戏 水千丞 1573 字 3个月前

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

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

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

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

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

“什么?”

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

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

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

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

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

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

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

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