程砚靠着石阶的扶手看了一眼河水的方向。"那下一步是什么?他把框架都建完了,链路也跑通了,下一步要做什么?"
三个人在河岸的夏日光线中各自想了一会儿。沈叔把系统架构的每一层都写完了、接口都留好了、测试数据也跑通了——他留下的最后一句话是"如果你读到了这里,那你已经找到了比游戏更重要的东西"。那意味着在他自己的计划框架中,"下一步"不需要被指定。找到"比游戏更重要的东西"就是终点本身。
"下一步——"骆襄铃偏头看了一眼河面上浮萍漂移的方向,"下一步可能是在系统里把'老槐巷'的标记跟'引渡口'之间的路径也连上。地图上现在它们俩是分开的。如果能连成一条线,那整条路径就能被系统识别为一条'可通行的现实虚拟对应路线'。"
许诺从保温杯里倒了水出来,没有接话。但骆襄铃注意到他在低头看杯子的时候嘴角有一个很浅的弧度,像是对她提出的"下一步"不打算补充额外内容,只是确认听到了。
程砚从石阶上站起来在河岸边伸了一侧手臂活动了一下肩膀。"行,"他说,"那下次上线的时候研究一下怎么把两个标记连起来。"
三个人在河边待到夏日的影子开始向东拉长的时候才各自站起来。骆襄铃走的时候回头看了一眼石拱桥在夕阳中的轮廓——桥拱的弧度在低角度的光照下呈现出一种比正午时更清晰的曲线。她拍了一张照片,然后快步跟上前面两人的步伐,三个人在地铁口分散了方向。
四
当天晚上骆襄铃登录游戏的时候,水乡的暮色已经接近夏季末尾的深蓝色调了。她在连理亭坐下来翻开队伍频道看了一眼地图——引渡口的浅绿色标记和老槐巷的深绿色标记仍然各自亮着,间距没有变化,也没有自动连线的迹象。她把地图缩放了一下,在靠近两个标记中间点的位置看到一个以前没有注意到的网格线交点——那是一个普通的坐标点,没有标记、没有标注,只有一圈灰色的辅助线在网格交汇处微微亮了一下。
她把那个坐标点截了图发到队伍频道里:"你们看这个位置——在引渡口和老槐巷的中间线附近,网格交汇处有一个灰色的辅助线亮点。"
许诺过了一会儿才回:"那可能是系统预留的'路径节点'位。"
"预留的?"
"第三版规划里有一页写了关于中间节点的事——手记里也提过一句。他说'在引渡口与老槐巷之间可能存在一个默认的坐标中继点,用于验证两端数据的传输稳定度'。"
骆襄铃翻了一下手记电子版搜索关键词,"中间节点"——果然在靠近手记后段的位置找到了一行描述:"如果引渡口和老槐巷两侧的坐标被独立收录,系统会自动在两者之间生成一个默认中继点。该点的坐标值取两端的中间值。"她对照了一下手记中描述的中继点坐标计算方式,手算了一下——那个灰色亮点所在的位置确实就是两个坐标值的中间值。
"中继点已经生成了。"她说。
"那下一步就是确认它能否被标记。"许诺说。
"要确认的话,需要有人到那个中继点的对应现实位置去站一次。"程砚说,"跟老槐巷一样——同城频道的定位数据会记录在那个坐标范围内的停留时间,然后触发系统的'已同步'反馈。"
三个人看着地图上那个灰色亮点的位置。它位于两个标记之间的中间点上,在游戏中没有名称,在现实中对应的是A城的一条普通街道——骆襄铃在地图软件上对应了一下那个坐标位置,发现那是一条她每天上班都会经过的路段的中段位置。她每天经过那里,从未注意到它在沈叔的系统坐标系中处于"引渡口与老槐巷之间的中继点"的位置。
"那我明天上班经过的时候把同城频道开着。"她说。
"会自动录到的。"程砚说。
骆襄铃在手机地图上给那个位置打了一个标记——用的是她自己的私人收藏分类,颜色选了跟系统标记不同的深蓝色。那条她每天都在走的街道,在沈叔的坐标体系中是连接两个已标记位置之间的中继点。她从明天开始每天经过那里的时候,她的同城频道定位数据会持续在那个坐标范围内停留一小段时间。
"周内应该就能同步。"她说。
"同步之后地图上就会显示三个连续的标记——引渡口、中继点、老槐巷。"许诺说,"形成一条路径。"
三个人在地图界面上各自看了一会儿那两个标记之间的灰色亮点。它还只是一个辅助线的灰点,但它的生成逻辑是基于引渡口和老槐巷两侧坐标被同时收录后系统自动计算出的中间值。它不需要任何人单独去标记——它是路径本身在两端被确认之后自然生成的那部分间隙。
"明天开始,我每天打卡这个中继点。"骆襄铃在队伍频道里发了一句。
"中继点打卡。"程砚回了一句。
许诺没有回文字。但骆襄铃看到他在同一时间把暮雨剑从腰间解下来横放在石桌桌面上——剑鞘上那条从引渡口延伸到老槐巷的纹路,在连理亭的夜灯光线下,跟地图上两个标记之间的那条虚拟连线形成了一种在物理坐标层面上的呼应。她看着那把剑鞘上的纹路在地图页面和实物之间来回过渡,在那一刻觉得沈叔留下的这套系统正在以比他们预期更快的速度被填满。
她关掉地图之后从连理亭走到书房门口。书房窗台上那幅"灯给你留着"的速写还在原处,夏季的夜灯把窗台的木质边缘照成温润的暖色。她站在窗台旁边安静了一会儿——不是在看画本身,是在看画的光线角度和它在夏夜中的状态是否跟春天时一样。答案是不完全一样。但灯一样。她站在那里看了大约两分钟后转身回了连理亭。
五
九月中旬的同城频道推送是在一个周二的傍晚出现的。骆襄铃当时正在下班路上,手机在同城频道的消息栏中弹出了一条系统的自动推送通知——她在地铁车厢里点开看了一眼,标题是"关于您所在城区的同城标记路径更新通知",正文内容写道:
"根据系统检测,您所在城区已录得以下标记位:引渡口(坐标:XXX)、老槐巷·七号(坐标:XXX),以及两处标记之间的中继点(坐标:XXX)。三条标记已形成连续路径,系统已自动将该路径标记为'可识别'状态。您的个人同城档案中已新增此路径的存档记录。"
她看着那行"三条标记已形成连续路径"的字样在地铁车厢的移动光线下,站在车门旁边看完之后把消息转发到了三人小群里,没有配文字。许诺在她到家之后回了一句:"我这边也收到了。中继点的坐标显示为'已确认'。"程砚在晚些时候回复了一条:"三点的路径在系统里被标注为'已建路径'了。"
三个人在同一条消息的回复中各自确认了自己收到的版本一致——同一坐标、同一路径、同一状态。骆襄铃坐在书房里把同城频道中的"已建路径"标注入口点开看了一眼,路径线的两端分别是"引渡口"和"老槐巷·七号",中间经过的中继点标注为"未命名",路径的颜色在系统界面上显示为深墨色。
许诺在当天晚上的队伍频道里发了一条:"路径线的颜色是墨色的。跟暮雨剑鞘上的纹路颜色一样。"
骆襄铃看着那条消息。墨色——系统自动为整条路径选择了跟暮雨剑鞘相同的颜色。她用墨色标记了路径,沈叔用了墨色刻画剑鞘,两种媒介在同一个坐标体系中的同一段路线走向上使用了同一色域。她退出同城频道之后把游戏地图重新打开看了一下——引渡口的浅绿色标记、老槐巷的深绿色标记、以及两者之间新生成的那条深墨色路径连线,在她面前的地图页面中形成了一段完整的三点路径,从水乡的西南边界延伸到城南老城区的地下坐标位置。
她在连理亭里坐了一会儿等许诺上线。他在她之后几分钟进入队伍频道的时候暮雨剑的剑鞘正在月光下呈现出一种比平时更深的反光,像是表面涂层中的墨色纹路在白天的日光和傍晚的夜灯交替照射后吸收了足够的光线,在月光下发出一种极暗的、几乎不被注意到但确实存在的微弱反光。
"路径的颜色跟剑鞘一样。"骆襄铃说。
"嗯。"
"系统可能不是随机选的配色——它可能从剑鞘的纹路颜色数据里读取了色值。"
许诺低头看了一眼自己的剑鞘。"他做剑鞘的时候可能已经写好了那条颜色规则。"
连理亭的夜灯在水面上持续亮着。夏季的风正在从西南方向穿过桃林的枝桠,把叶片边缘的细密声响带到亭子的开口处。骆襄铃坐在夜灯下把同城频道中那条"已建路径"的状态页面又打开看了看——路径线的两端已经标记了名称,中继点还没有被命名。她在系统允许的备注栏里打了一行字:"中继点——无名之路中间段。"
她保存了备注之后关掉了手机。许诺在旁边坐着,暮雨剑横在膝头,剑鞘上的墨色纹路在夜灯光线下呈现出跟地图路径相同的走向和同样的深墨色。夏季的尾声正在缓慢地接近,但她没有去数日历上还剩下多少天。她只是坐在许诺旁边,看着水面上夜灯的倒影在暗色中持续地亮着。
"第三块地——"她在安静了一段时间之后开口,"我们在现实里标了路径,在游戏里也标了路径。沈叔说'如果你读到了这里,那你已经找到了比游戏更重要的东西'——现在读到了。找到了吗?"
许诺在夜灯下安静了一下。然后他说了一句话,声音很轻但很清楚:"找到了。"
骆襄铃没有再追问"那个东西是什么"。她从他的语气里感觉到"找到了"指的不是可以被概括成一行文字的内容,而是一整套关系的总和——他、她、程砚、水乡、沈叔的遗产、引渡口的地图碎片、梧桐巷的木盒、老槐巷的铁盒、以及同城频道里那条深墨色的路径线。所有这些碎片在经过了春天和夏天的排列组合之后,在"找到了"这个回答中已经不需要再单独列出来了。
"找到了就行。"她说。
三个人在连理亭的夜灯下坐到了夏季的虫鸣声开始逐渐稀疏的那个时段。水面上的倒影在微风中持续地晃动。许诺在准备下线之前把暮雨剑挂回腰间站起来走到了亭子开口处,面朝水道的方向站了一小会儿,背影被夜灯的光线描出一层浅金色的边缘。骆襄铃看着他的背影在水道夜灯的映照下的轮廓,觉得那幅画面跟那幅"灯给你留着"中的背影站的是同一位置,只是这个背影没有在等待其他人从远处归来。它已经在了。
六
夏季的最后一次系统推送出现在九月末的一个清晨。骆襄铃在上班路上打开同城频道,看到了一条来自系统的消息,发件人标注为"暮雨·系统"。消息的内容很短,只有一行文字:
"坐标已记录。路径已归档。感谢您完成本次映射测试。——暮雨·系统"
她看到那行文字的时候在楼梯上停了一步。发送者的ID是"暮雨·系统",跟常规的系统消息不同,这个ID更像是一个被预先命名好的固定账号。她在手机屏幕上看着那行字在晨光中的显示状态,在进入办公室之前先截了图,然后锁了手机。
她在工位上坐下来之后打开队伍频道看了一眼有没有新消息——许诺和程砚应该都还没有上线。她在频道里把那行"暮雨·系统"的截图发了一遍,附了一句:"你们也收到了吗?"
许诺在一个小时后回了一条:"收到了。'暮雨·系统'——他的账号还在运行。"
"还在运行?"程砚在午饭前后上线时看到消息后回复,"沈叔的账号没有注销?"
"没有。"许诺说,"他走之前设置了自动运行接口。游戏端会以预设的时间间隔发送状态确认信号给'暮雨·系统'账号,系统自动回复。只要游戏的服务器还在,他的账号就会一直保持在线的接收状态。"
骆襄铃在同城频道中搜索了一下"暮雨·系统"这个ID——它在列表中确实存在,状态显示为"在线",但位置坐标那一栏显示的是"系统预留位——无真实定位"。这个账号不需要使用定位功能也能运行,它只是在系统后台持续接收来自各个同城频道的标记数据,然后以固定的间隔发出确认信号。
"他的账号还在收信号。"她放下手机之后轻声说了一句。窗外是九月的日光,正在以夏季末尾的亮度持续地照亮着这座城市的街道和屋顶。骆襄铃看着手机屏幕上那行"感谢您完成本次映射测试"的字样在锁屏界面上停留了一会儿,然后把手机收进了包里。
她走过那条每天必经的街道中段时没有停下来。中继点的位置在她脚下的这段路面之下约三米处,在游戏地图的坐标系中正位于两个标记点的中间线上。她每天经过它,同城频道的定位数据每天在同一时刻自动录入该位置的停留记录,而"暮雨·系统"账号正在游戏后台持续接收这些记录——从引渡口到梧桐巷到老槐巷,再到路径线上每一个被标记或未标记的坐标点。
沈叔在游戏的服务器端留下了一扇始终开着的窗,而那扇窗正在不断收到从现实世界的道路和坐标中传来的信号。她没有停下脚步,但她在走到十字路口等红灯的时候拿出手机,在同城频道的"暮雨·系统"账号信息页停留了一下。页面没有更多内容可以查看——没有签名、没有个人介绍、没有历史动态——只有"在线"两个字和一行灰色的"系统预留位"标注。
绿灯亮了她收起手机继续往前走。同城频道在她锁屏之后仍在一刻不停地接收并储存着所有玩家启用了定位功能后产生的坐标数据,而"暮雨·系统"的账号正在其中以固定的间隔持续地亮着"在线"的状态灯。
夏季已经结束了,但那些在春天和夏天里被走完的路、被标记的位置、被接通的接口,正在以系统后台中持续稳定的运行状态证明它们的存在。那条深墨色的路径线在游戏地图上仍然完整地连接着引渡口和老槐巷,中间经过那条她每天都会经过但从未在现实中被命名为任何名称的街道中段。它在系统中被记录为"已建路径",状态栏显示"运行正常"。
她在进入办公楼之前最后看了一眼夏季的天空——九月底的日光已经不再像盛夏时那样灼热,风中也开始混入极淡的秋季气息。她推开办公楼大门走进去的时候,手机在包里又一次震动了。她以为是系统推送或者常规的通知,但她拿出来看的时候发现是一条新的消息,来自一个她在手机上早已保存但很久没有查看过的联系人的对话框——"许诺"。
消息内容只有一句话:"画展上那幅'灯给你留着'的原稿,有人买了。买的人说他是替一位姓沈的老先生提前预留的。"
骆襄铃站在办公楼大厅里看着那行字。她在那里站了一小段比平时更长的时间,然后把手机锁屏收回了包里。大厅的日光从玻璃幕墙透进来,在地面上铺开一片持续的明亮区域。夏季正在结束,但某扇在夏天被推开过的门,正在以一种她暂时无法完全理解的方式,继续保持着开着的状态。