测试舱的呼吸灯还在闪,一红一蓝,像是两颗同步跳动的心脏。唐雨柔的手指还搭在操作台边缘,指尖微微发颤。她没动,眼睛也没从眼前的屏幕上移开。
刚才那一切——浮空山崖、代码阶梯、星空广场、教堂门口的NPC——都不是预设流程。
这是《重生》的隐藏关卡。
但她知道是谁做的。
林墨从来不说什么轰轰烈烈的话。他只会把心意藏进一段废弃指令码里,藏在三段高难度跳跃之后,藏在只有她能复现的操作逻辑中。/love_is_not_null——这串命令她记得,是上周调试“情绪反馈系统”时他随口提过的测试变量名,后来被标记为“无效路径”,删进了回收区。
可他没真删。
他只是把它变成了钥匙。
唐雨柔深吸一口气,重新看向屏幕。角色站在星空广场中央,脚下是缓缓旋转的地球轮廓,表面浮现出一行行项目名称:《流浪地球》《华胥》《神经漫游者测试版1.2》……最后定格在《重生》的LOGO上,银灰色的字体像一道裂痕,又像一道光。
然后,声音来了。
不是游戏角色配音,也不是AI合成音。
是林墨本人的声音,低,稳,带着点耳机录音特有的轻微电流感:“我知道你不会喜欢太吵的场面。所以……我就把答案,藏在了你能找到的最安静的地方。”
唐雨柔的喉咙动了一下。
她没哭,但眼眶已经热了。
她想起第一次见他,是在《华胥》的动捕房。他戴着口罩,穿着初音未来的T恤,在角落调试NPC表情参数,嘴里念叨着“这个眨眼延迟0.3秒,太假了”。她走过去看了一眼代码,顺手改了个权重值。他抬头看她,第一句话是:“你懂帧间插值?”
后来火灾那天,她在医院守了三天服务器数据备份,凌晨两点睁眼,发现他坐在走廊长椅上,手里捏着一份泡面,等她出来。
他什么都没说,就把面递过来。
她问他怎么还不睡,他说:“我写的特效模块还没验收,我得看着你调完。”
现在她懂了。
那些深夜的泡面,那些默默命名的“柔光折射1.0”“雨柔滤镜v2”,那些她以为只是工作交接的细节——全是他没说出口的话。
而他选的方式,是把她最熟悉的战场,变成求婚的现场。
不是玫瑰,不是钻戒,不是万人见证。
是一段只能由她触发的程序,一个需要用专业本能才能抵达的终点。
她忽然觉得喘不上气。
不是因为激动,是因为太合适了。
合适到她想笑,又笑不出来。
她的角色还站在原地,星空安静流转。系统没有弹出成就提示,没有烟花特效,只在画面右下角浮现了一行小字:“协议已签署 · 双向奔赴”。
她让角色单膝跪地,伸手,掌心贴向屏幕。
指尖触到玻璃的瞬间,现实中的测试舱同步传来震动。脑波监测曲线猛然拉高,两人频率进入共振区间,实验室后台自动标注为“沉浸交互峰值事件”。
她没说话。
只是低声说:“我愿意。”
声音很轻,像怕惊扰了什么。
可这句话落下的那一刻,整个虚拟空间开始重组。星空褪去,地面升起无数细小的光点,拼成一行代码:
> if (marry_request == true) {
> life_status = "synced";
> loop_mode = "infinite";
> }
然后,黑屏。
载入界面跳出,显示“返回主菜单”。唐雨柔没动,手指仍贴在屏幕上。她知道程序已经结束,但她不想退出。
她怕一睁眼,刚才的一切就变成一场错觉。
现实世界,地下实验室B3区。
林墨靠在测试椅上,闭着眼,嘴角挂着笑。他的神经连接尚未断开,耳机还戴在头上,手里攥着一张打印纸,上面是手写的脚本片段,边角被反复涂改过。纸页最下方有一行小字:“如果她点了‘拒绝’,这段代码会自毁,谁也找不到痕迹。”
他没删。
但他准备好了退路。
唐雨柔的测试舱指示灯由蓝转绿,系统提示“用户即将退出沉浸模式”。她的手指终于离开屏幕,缓缓摘下头显。
眼前是熟悉的实验室天花板,冷白灯光,通风管道的低鸣。她坐起来,头发有些乱,尾端蹭到了脸颊。她抬手抹了下眼角,指尖沾了点湿。
隔壁舱的林墨还没醒。
他的头显还亮着,呼吸平稳,脸上笑意没散。
唐雨柔盯着他看了几秒,忽然开口:“你故意的。”
林墨睫毛颤了下。
她声音不大,但足够清晰:“那个跳跃解密,第三段的落地判定窗口只有0.2秒,普通玩家根本过不去。你是算准了我会用‘预判补偿算法’强行通过,对吧?”
林墨没睁眼,但嘴角翘得更明显了。
“还有那段脚本。”她继续说,“‘marry()’方法返回值设为‘一生’,语法上根本不成立。你就是在胡来。”
“可你点了‘接受’。”他终于睁开眼,声音哑着,带着刚脱离沉浸状态的迟缓。
“因为我知道是你写的。”她说,“哪怕逻辑不通,我也得点。”
林墨笑了,这次是睁着眼笑的。他摘下头显,坐直身体,转头看她:“那你早就能点,为什么等到现在?”
“我之前不知道有这个关卡。”
“你每天都在跑BUG路径。”
“可我一直以为那是废案。”
“现在呢?”
“现在我知道了。”她看着他,眼神很静,“你把我写进了你的底层协议。”
林墨没再说话。他解开安全带,从测试椅上站起来,走到她舱边,隔着透明罩看她。
“我不是流量小生。”他说,“我不是什么国民儿子。我就是个宅男,会写点代码,喜欢初音未来,连表白都得靠游戏当掩护。”
“我知道。”
“可我喜欢的人,是那个敢为0.1秒特效争三天的技术狂魔,是那个在火灾里抱着硬盘睡的疯子,是那个连我写的垃圾彩蛋都能挖出来的唐雨柔。”
她望着他,没躲。
“所以我不在乎你怎么回应。”他说,“我在乎的是,你愿不愿意和我一起,把接下来的代码,一行一行写下去。”
唐雨柔沉默了几秒。
然后她伸手,按下了舱体解锁键。
舱盖缓缓升起,她站起身,比他矮半个头。她没说话,只是抬起手,轻轻碰了下他的耳钉——那里戴着一枚小小的像素风戒指模型。
“协议生效了。”她说,“别想反悔。”
林墨低头看她,忽然伸手,将她拉进怀里。
抱得不重,但很紧。
实验室的监控屏上,两人脑波频率仍在同步跳动,曲线几乎重合。系统自动记录时间戳:23:47:16,情感共鸣强度评级:S级,备注:“非任务触发,自然达成”。
门外传来脚步声,是值班的技术员来检查设备。他在玻璃外站了两秒,看了看里面的情况,转身走了,顺手把走廊灯调暗。
没人打扰。
唐雨柔靠在他肩上,听见他心跳声透过衣服传过来,一下,又一下。
她忽然说:“下次别藏这么深。”
“那你得保证每次都认真跑测试。”
“我要是漏了呢?”
“那就让我再设计一个,更难的。”
她笑了,真正地笑了。
然后她抬起头,看着他:“下一个彩蛋,能不能写点人话?”
“比如?”
“比如……‘唐雨柔,嫁给我’。”
“就这么一句?”
“嗯。”
“不加特效?”
“不加。”
“不埋线索?”
“不埋。”
“那多没意思。”他眨了下眼,“至少得配个BGM。”
她推开他一点,假装要打他。
他笑着后退半步,手插进裤兜,摸出一张U盘:“给你,新项目的启动包。密码是你生日。”
她接过,掂了下:“又是彩蛋?”
“算是预告片。”他说,“叫《双线程》。”
“讲什么的?”
“两个程序员,写了半辈子代码,最后才发现,他们的人生主线,早就绑在一起了。”
她盯着他看了两秒,忽然伸手抢过U盘,转身就往出口走。
“喂!”他在后面喊,“你去哪儿?”
“回家。”她头也不回,“明天还要上班。你要是敢迟到,我就删你所有存档。”
林墨站在原地,看着她背影消失在电梯口,笑容没停。
他低头看了眼手表,凌晨零点十二分。
他拿起自己的头显,轻轻放回支架,然后走向控制台,输入一行指令:
> /save_progress --character="linmo" --status="engaged"
系统回执:【保存成功】。
他最后看了眼监控屏上那两条并行的心跳曲线,关掉主灯,走出实验室。
走廊尽头,天边已有微光。