第3章 甜蜜期的隐藏BUG
武康第一次在艾馨儿家过夜,是个意外。
那天他们本来只是约着打新出的《霍格沃茨之遗》双人模式,结果游戏优化太差,连续闪退三次,两人较上劲了,非要排查出问题所在。等武康从代码层面分析出可能是显存泄漏时,窗外天已经蒙蒙亮。
“凌晨四点半,”艾馨儿瘫在沙发上,怀里抱着靠枕,“地铁都没了。”
武康揉着发酸的眼睛:“我叫个车……”
“别折腾了。”艾馨儿摆摆手,声音带着熬夜后的沙哑,“沙发能睡。柜子里有毯子。”
武康犹豫了三秒。这三秒里他脑子里闪过了很多东西:合不合适、会不会尴尬、明天上班怎么办。但最后所有这些都被一个更强烈的念头压过去了——他困得眼皮都在打架。
“那……打扰了。”
说是睡沙发,其实两人都没怎么睡。艾馨儿扔给他一个Switch,两人窝在沙发上,用最低亮度打《星露谷物语》,经营一个联机农场。天快亮时,艾馨儿的猫跳上沙发,在他们中间找了个缝隙,蜷成一团毛球。
“它叫什么?”武康小声问,怕吵醒猫。
“还没起名。”艾馨儿的手指在屏幕上种着蓝莓,“捡回来的流浪猫,来我家就天天追着光标跑,像在抓bug。”
武康看着那只橘猫,它睡得正香,爪子偶尔抽动一下,大概在梦里还在追什么东西。
“那就叫Bug吧。”他说。
艾馨儿愣了一下,然后笑起来:“行,挺合适。”
从那天起,Bug就成了他们之间第一个共同项目。武康买了自动喂食器,艾馨儿选了猫爬架;武康负责铲屎,艾馨儿负责梳毛。
Bug也很给面子,迅速接纳了这个新来的两脚兽。武康在客厅敲代码时,它会趴在他腿上一动不动,像个人体工学暖腿宝。
进度条就是这样不知不觉拉满的。
起初是每周见两三次,后来变成隔天,最后发展到武康下班直接背着笔记本去艾馨儿家。她的两居室渐渐有了他的痕迹:玄关多了一双男士拖鞋,卫生间洗漱台上并排放着两个牙刷杯,书架上混进了《算法导论》和《游戏设计梦工厂》。
艾馨儿的沙发从单人休闲区变成了双人工作区。武康在这头写代码,艾馨儿在那头画界面原型,中间放着共享的零食盘。有时候两人会同时伸手去拿薯片,手指碰在一起,就顺势牵一会儿,然后继续各干各的。
“像不像联机工作?”有一次艾馨儿问。
“比联机好。”武康头也不抬,“至少网络不延迟。”
三个月后的某个周六,武康盯着自己那间月租四千五、使用面积不到二十平的公寓,突然冒出一个念头:我该搬走了。
他算了笔账:房租、水电、通勤时间、还有每周来回跑浪费在地铁上的三个小时。所有数据都指向同一个结论——不高效。
当天晚上,他一边帮艾馨儿调试扫地机器人(这玩意儿总卡在餐桌腿那儿),一边状似随意地说:“我房东说要涨租。”
“涨多少?”艾馨儿正在给Bug剪指甲,头也不抬。
“百分之十五。”武康面不改色地撒谎,“而且隔壁新搬来的哥们天天打麻将到凌晨。”
艾馨儿停下手,看了他一眼。那眼神让武康心里一紧——她太聪明了,肯定听出来了。
但她只是问:“那你打算怎么办?”
“我在想……”武康放下手里的螺丝刀,“你这儿离我公司更近,通勤能省四十分钟。而且我们本来也几乎天天在一块儿。”
他停顿了一下,像在等待系统响应。
艾馨儿继续剪指甲,咔嚓,咔嚓。Bug发出不满的咕噜声。
“所以,”她终于开口,“你是想搬过来和我一起住?开启同居副本?”
武康松了口气。她用游戏术语接住了这个话题,这让他觉得安全。“可以这么理解。而且从资源整合角度看——”
“行了行了,知道你是理性分析。”艾馨儿笑起来,“搬吧。不过提前说好,我衣柜分你三分之一,不能再多了。”
“成交。”
搬家那天,武康叫了个货拉拉,所有家当一个中型面包车就装完了。最重的两个纸箱里全是游戏——光碟、卡带、典藏版附赠的模型,还有一堆已经停服的老游戏的安装盘。
艾馨儿开门时,正坐在一堆快递箱中间,手里拿着拆箱刀。客厅像个刚刷新了物资的副本现场。
“这些是什么?”武康放下纸箱,喘了口气。
“生活道具。”艾馨儿划开一个箱子的胶带,里面露出成套的餐具——两个马克杯,杯柄拼起来是个心形;两个碗,碗底印着“程序猿”和“程序媛”的卡通图案;还有两双筷子,尾部挂着小小的键盘和鼠标挂件。
武康拿起一个杯子看了看:“这……有必要吗?”
“攻略上说的。”艾馨儿又开了一个箱子,这次是情侣牙刷架、配对拖鞋、甚至还有同款不同色的睡衣,“‘同居初期需要通过视觉符号强化共同体认知,提升亲密度’。”
武康忍不住笑了:“你还看攻略?什么攻略?《恋爱模拟器》真人版?”
“知乎、小红书、豆瓣小组。”艾馨儿数着手指,“我收集了十七篇高赞回答,交叉对比总结出来的最优流程。”她说得一本正经,像在做项目调研。
武康看着满地“道具”,心里那丝异样感又浮了上来。他们好像在玩一个大型真人恋爱游戏,而这些物品就是完成任务后获得的奖励。他想起那些RPG里,每当主角和某个NPC确定关系,家里就会自动多出双人床和情侣装饰。
“周末我们去拍那个网红大头贴吧?”艾馨儿拿起一个空相框比划,“实体合照能有效增加归属感。”
“行。”武康点头,把那句“我们不是有好多游戏截图吗”咽了回去。
晚上整理东西时,这种“按流程走”的感觉更明显了。武康习惯把洗发水、沐浴露、洗面奶按高矮顺序排列在浴室架子上,像给数据库建索引。艾馨儿则是随手放,今天沐浴露在左,明天可能就跑右边去了。
“你这样找起来不方便。”武康第三次把瓶子归位时说。
“用完了就从最外面拿呗。”艾馨儿正在刷牙,满嘴泡沫,“又不会消失。”
武康洗完澡,习惯性用刮水器把玻璃门上的水珠刮干净。艾馨儿靠在门框上看他:“你这强迫症越来越严重了。”
“水垢不好清理。”
“明天还会有的。”
“所以今天要清理。”
类似的对话发生在各个角落。武康的电脑文件有严格的分类树:工作-项目-年月-具体任务。艾馨儿的桌面则堆满“新建文件夹”“新建文件夹(1)”“最终版”“最最终版”“打死不改版”。
“你这样迟早找不到东西。”武康说。
“用搜索功能啊。”艾馨儿理直气壮,“文件名记关键词就行。”
“那叫数据冗余。”
“那叫敏捷开发。”
第一次小摩擦发生在一个周三晚上。武康加班到九点回家,发现艾馨儿用他的机械键盘敲字——不是写代码,是在追星论坛跟人吵架。
“你按退格键太用力了。”武康忍不住说,“红轴虽然触发轻,但也不是这么砸的。”
“啊?”艾馨儿低头看看键盘,“我没感觉啊。”
“听声音就能听出来。”武康指着键盘,“而且你左手总搭在Ctrl键上,容易误触。”
艾馨儿沉默了几秒,把键盘推回给他:“行,下次不用了。”
武康立刻意识到自己说错话了。他想补救:“不是不让你用,就是……”
“就是你的装备你有你的使用规范。”艾馨儿接过话头,语气平静,“我懂。就像我也不会让你动我的数位板,对吧?”
话是这么说,但空气里有点微妙的僵硬。Bug似乎察觉到了,从猫爬架上跳下来,蹭蹭艾馨儿的腿,又蹭蹭武康的脚踝,像是在做冲突调解。
那天晚上两人背对背睡的时候,艾馨儿突然说:“这些都是小问题。”
“嗯。”武康应了一声。
“调一下习惯参数就好。”她翻过身,戳戳他的后背,“就像游戏版本更新,总得有个适应期。”
武康也转过身。黑暗里看不清彼此的脸,但能听到呼吸声。
“需要打补丁吗?”他问。
“先收集bug日志吧。”艾馨儿的声音里带着笑意,“等积累到一定程度,再发个修复版本。”
武康松了口气。对,就是这样,理性分析,解决问题。他们可是能通关347款游戏的黄金搭档,怎么可能被这些小事难倒。
他伸手握住她的手。两人的手指扣在一起,像完成了一次完美的操作同步。
窗外,上海夜景依旧璀璨。这个城市里,每盏灯下都有人在运行各自的“现实副本”——有的流畅,有的卡顿,有的正在加载新资料片。
而他们的副本,刚刚解锁了“同居”成就。
进度条继续向前走,谁也没注意到,角落里已经悄悄刷出了第一个隐藏bug的图标。
很小,很隐蔽,像一颗落在键盘缝隙里的尘埃。
暂时还不会导致系统崩溃。
暂时。