沈渡的手指放到键盘上的那一刻,整个世界似乎都安静了。
键盘声停了。
十二个正在敲代码的“同事”同时停下了手指,骨节悬在键帽上方,一动不动。它们的头缓缓转动,干瘪的眼眶齐刷刷地盯向角落里的沈渡。
“你……”马主管的声音从办公室最深处传来,沙哑得像两块砂纸在互相摩擦,“在……做什么?”
沈渡头也没抬。
“改Bug。”他说。
办公室里的温度骤降了至少五度。
苏晓坐在沈渡斜对面的工位上,拼命给他使眼色。刘浩的手已经摸向了腰间——他的身份卡里据说配了一把警棍,但他不敢确定在一个全是鬼的办公室里掏出警棍会有什么后果。
王博的脸已经白得比那些死人还像死人。
只有沈渡,依然在敲键盘。
他的手指在键盘上飞快地移动,发出清脆的敲击声。屏幕上的代码一行一行地滚动,那个血红色的逻辑错误正在被他逐行修正。
马主管站了起来。
它的身体发出咔嚓咔嚓的声音,像是生锈的齿轮被强行转动。它的西装空空荡荡,每走一步,骨节就会从袖口和裤腿里露出来,白森森的。
它走到了沈渡身后。
沈渡能感觉到一股寒气从背后袭来,直往骨头缝里钻。但他没有停,因为他现在遇到的麻烦比一个死人大——他在修复一段三年前的代码,而这段代码的混乱程度远超他的预期。
“你在……改什么?”马主管的声音就在他耳边响起,近得像是贴着他的耳膜在说话。
“一个循环嵌套的逻辑错误,”沈渡说,“你在第二十三行写了一个while(true),然后在第四十六行才给它设置退出条件。中间这二十三行的代码会在特定条件下无限循环,导致内存溢出。”
他顿了顿,补充道:“简单来说,这段代码会自己把自己卡死。”
马主管沉默了。
整个办公室的“人”都在沉默。
然后,键盘声重新响起。
但不是沈渡的键盘。
是那十二个死去的程序员。
它们又开始敲代码了,但这次的节奏和之前完全不同——之前是在机械地、重复地敲击同样的内容,而现在,它们的敲击声变得急促、混乱,像是在疯狂地回滚代码。
沈渡面前的屏幕闪了一下。
他刚修好的那行代码,又被改回去了。
血红色的Bug重新开始闪烁。
“你……”马主管的声音里多了一丝情绪——不是愤怒,而是一种近乎癫狂的偏执,“不能改……不能……代码必须……按原来的样子……”
“原来的样子有Bug,”沈渡说,“有Bug的代码跑不起来,你自己不知道吗?”
马主管的指骨咔哒一声握紧了。
办公室的灯光开始闪烁,忽明忽暗。墙壁上浮现出暗褐色的裂痕,有什么东西正在裂缝里蠕动。天花板的角落里渗出黑色的液体,散发着腐烂的甜味。
“不能改!”马主管的声音突然拔高了八度,不再是之前那种缓慢的沙哑,而是尖锐的、暴怒的咆哮,“那段代码是——那段代码是——!”
它没有说完。
因为它说了一半,突然卡住了。
字面意义上的卡住。
马主管张着嘴,喉咙里发出咔咔咔的声音,像是一台卡带的录音机。它的身体僵在原地,眼眶里的光芒开始剧烈闪烁。
沈渡转过头,看着它。
然后他看了看屏幕上那个血红色的Bug,又看了看马主管。
“这段代码……是你写的?”他问。
马主管没有回答。它的身体开始发抖,西装下的骨节发出密集的碰撞声,像是在打寒颤。
沈渡皱起眉头。
他回忆起三年前的那天下午。
那天他本来应该完成一个副本草案的设计,但他卡在了一个逻辑上。不管怎么写,都无法让那个副本的核心循环正常运转。他试了七八个方案,每一个都有致命缺陷。
最后他放弃了。
他把那份草案扔进了“废稿”文件夹,打算过几天重新构思。
然后他就忘了这件事。
一直到今天。
“所以……‘404员工宿舍’这个副本,是用我三年前的废稿作为底层架构的?”沈渡喃喃自语。
【叮——】
系统提示音适时响起:
【恭喜您解锁隐藏线索!】
【线索名称:怨念的核心。】
【线索描述:马勇生前是“无限世界”的外包程序员,负责将主设计师的草案转化为可运行的副本代码。三年前,他接到了一个任务——将一份被废弃的草案“404员工宿舍”转化为副本。但草案本身存在一个无法修复的逻辑错误,无论他怎么改,代码都无法完整运行。截稿日期临近,他连续加班四十二天,最终猝死在工位上。】
【他的怨念被困在这段代码里,变成了副本本身。他唯一的执念是——把这段代码写完。】
【但他永远写不完。】
【因为草案本身的问题,不是他的问题。】
沈渡看完系统提示,沉默了。
马主管还僵在他面前,干枯的眼眶里有什么东西在闪烁——那大概是怨念之中仅存的一丝意识,属于“马勇”这个人的残渣。
“三年前……”沈渡说,“这段代码不是你写的问题。”
马主管的喉咙里发出一个含混不清的声音,像是在呜咽。
“这段代码的逻辑错误不是你能修复的,”沈渡说,“因为它的底层架构就有问题。就像盖楼,地基歪了,你在上面怎么砌墙都是歪的。”
他转过身,重新面对电脑屏幕。
“所以……”
他把手放回键盘上。
“我来修。”
这一次,他不再是简单地修改那行血红色的代码。他打开了整个项目的底层架构文件,开始从头重构。
办公室里爆发出一阵刺耳的尖啸。
那十二个死去的程序员同时站了起来,它们的身体开始扭曲变形,指骨伸长成利爪,眼眶里喷出幽绿色的火焰。天花板上的黑色液体加速滴落,在地面上汇成一滩一滩的漩涡。
“他不能——!”
“代码必须——!”
“主管说了——!”
它们用破碎的声音嚎叫着,同时朝沈渡扑过来。
“卧槽!”刘浩终于掏出了警棍,但他不知道该打谁——十二个厉鬼从四面八方涌来,他一根警棍能顶什么用?
苏晓尖叫一声躲到了桌子底下。王博直接吓晕过去了。陈刚扛起一把椅子护在胸前。赵琳不知道从哪里掏出一瓶清洁剂,对着最近的厉鬼就喷。
场面完全失控。
而沈渡,还在敲键盘。
他的手指快得几乎出现了残影。屏幕上的代码疯狂滚动,底层的架构文件被一行一行地覆盖、重写。这是一项巨大的工作量——如果是一个普通的程序员,至少要花三天。但沈渡不是普通的程序员。
这份草案是他写的。
他知道每一行代码的用意,也知道每一个逻辑断点在哪里。
他只需要把自己三年前没完成的事情做完。
“你不能——!”马主管终于动了。
它的身体膨胀了三倍,西装被撑得爆裂开来,露出下面森白的骨架。它的眼眶变成了两个黑洞,黑洞里燃烧着幽绿色的火焰。它张开嘴,嘴里没有舌头,只有一片无尽的黑暗。
“代码必须——保持——原来的——!”
它的双爪朝沈渡的头顶抓来。
沈渡头也没抬。
他按下了回车键。
电脑屏幕爆发出一道刺眼的白光。
所有的代码同时变成了绿色。
血红色的Bug消失了。
光芒从沈渡的屏幕上扩散开,像涟漪一样波及到每一台电脑、每一面墙壁、每一个角落。十二个厉鬼的动作同时僵住了,它们眼眶里的绿焰开始褪去,变成了一种柔和的蓝色。
马主管的爪子停在沈渡头顶不到三厘米的位置,再也无法寸进。
它的身体开始缩小,从一具膨胀的骷髅变回了干瘦的干尸,又从干尸变成了一个淡淡的、半透明的人影。
那是一个三十多岁的中年男人,微胖,戴着厚厚的眼镜,头发稀疏,眼袋重得像是挂了两个布袋。他穿着一件皱巴巴的格子衫,胸口挂着一张工牌,上面写着:
【马勇·研发一部·主管】
他看起来只是一个普通的、疲惫的、被加班折磨得不成人形的程序员。
马勇低头看着自己的双手——不再是骨节,而是十根有血有肉的手指。
“我……”他的声音也不再沙哑,而是一个中年男人略带鼻音的普通话,“我这是……”
他看着沈渡。
沈渡从键盘上抬起手,呼出一口长气。
“修好了,”他说,“三年前的Bug,修好了。”
马勇愣愣地看着他。
然后他转身,看向那十二个同样恢复了人形的同事。他们也在看着他,脸上带着同样的茫然和……释然。
“主管,”其中一个人开口了,“我们是不是……可以下班了?”
马勇没有说话。
他只是慢慢地坐回了自己的工位。
然后他做了一个三年来从未做过的事情——
他关掉了电脑。
屏幕黑了。
马勇坐在黑暗的屏幕前,沉默了很久。
然后他笑了。
那是一种极度疲惫之后的、彻底放松的笑容。
“下班了,”他说,“终于下班了。”
他的身体开始变淡。
从脚尖开始,一点点地变成细碎的光点,飘向天花板。那些光点在空气中盘旋了一小会儿,然后穿过天花板,消失在了不知名的地方。
十二个程序员一个接一个地关掉了电脑,朝沈渡鞠了一躬,然后同样化为光点,飘散而去。
最后只剩下沈渡和他的五个队友,以及一个空荡荡的办公室。
墙上的裂痕消失了。
天花板上的黑色液体干了。
灯光恢复了正常的白色。
陈刚还举着椅子,刘浩还握着警棍,苏晓还躲在桌子底下,赵琳还拿着清洁剂,王博还晕在地上。
所有人都在看着沈渡。
沈渡从工位上站起来,活动了一下酸痛的脖子,然后看向门口。
办公室的门开了。
门外是走廊。
走廊的尽头,楼梯间的灯光照进来,暖黄暖黄的。
“妈的,”刘浩缓缓放下警棍,用一种看外星人的目光看着沈渡,“你到底是谁?”
沈渡想了想,说:“一个会改Bug的测试工程师。”
---
同一时间,游戏大厅。
秩序铁壁的监控室里,白纸正盯着一排排的监控屏幕。她的墨镜倒映着不断跳动的数据流,表情一如既往地冷漠。
然后她的目光停在了一块屏幕上。
屏幕里是一个副本的实时监控画面,副本编号【404员工宿舍】。
画面里,一个穿着T恤和拖鞋的年轻男人正从一栋宿舍楼里走出来,打了个哈欠。
副本状态栏显示:
【副本状态:已完成。】
【通关时间:7小时23分钟。】
【原定时长:168小时。】
【完成评价:SSS。】
【备注:厉鬼全部超度。副本架构已被优化。建议收录为新手教程副本。】
白纸盯着那行数据,沉默了很久。
然后她在沈渡的档案备注栏里,删掉了“建议持续观察”这句话。
改成了:
【人才等级:SSS。建议不惜一切代价招揽。】
然后她又看了看其他两块监控屏幕。
一块屏幕上,几个身穿黑袍的人正鬼鬼祟祟地朝404宿舍的方向摸过去。
另一块屏幕上,一个背着巨斧的大汉正在徒手拆404宿舍的后墙。
白纸推了推墨镜。
“麻烦了,”她自言自语,“另外两家也盯上他了。”