失控算法
四个字母的ID------------------------------------------,晨光刚好从窗帘缝隙里挤进来,在地板上画出一道细长的金色光带。。,换了身睡衣,头发湿漉漉地搭在肩上,然后坐到了自己那台台式机前面。机箱是攒的,配置拉满,双4K显示器并排架在桌上,启动的时候RG*灯带亮起来,把半间屋子染成冷蓝色。这套设备花了她做翻唱两年攒下来的大部分收入,但她觉得值——写代码的人对屏幕的要求跟电竞选手对鼠标的要求差不多,差一点都不行。,盯着屏幕上稀稀拉拉的几条结果看了半分钟。。,公开渠道能爬到的内容少得可怜。职业生涯期间的比赛数据和新闻报道还算完整,但退役之后几乎是空白。社交媒体停在退役**那天,最后一条内容只有两行字——“本人陈淮安即日起正式退役,感谢所有曾经并肩的队友和一直支持的粉丝。江湖路远,后会有期。”。,最新的几条是今天凌晨的,有人在网吧拍到了他带队打比赛的照片发到超话,评论区瞬间炸出一群老粉。有人激动地问是不是要复出,有人分析说只是在带俱乐部的新人打训练赛,有人感慨“淮神还是那个淮神,三年了一点没变”。“一点没变”四个字上。。三年了,一个人退役三年,从万众瞩目的巅峰走下来,带着一群新人从头开始打次级联赛,中间经历过什么没有人知道。但他的眼睛还是那样——冷而锋利,像淬过火的刀刃。,能在经历了这些之后,眼睛里连一丝浑浊都没有?,打开了一个新的文件夹。“HuaiAn”。。遇到一个复杂的问题,先建一个文件夹,把所有相关资料、数据、分析脚本全部装进去,然后一个一个拆解。追一个人这件事她没做过,但没关系。在她眼里,任何问题都可以被拆解成数据,任何数据都可以被建模,任何模型都可以被优化。。
第一步,数据采集。
她花了一整个上午做这件事。不是漫无目的地搜索,而是系统性地抓取所有能抓到的公开数据——陈淮安职业生涯期间的全部比赛录像,一共二百三十七场。他退役后带队打次级联赛的录像,能找到的一共四十六场。所有赛后采访、纪录片片段、活动录像、粉丝现场拍摄的视频,凡是能搜到的全部进了她的数据库。
到中午的时候,她的硬盘里多出了将近两个T的视频文件。
然后她开始看。
不是像粉丝那样带着滤镜看,而是像分析实验数据那样,一帧一帧地看。她把每一场比赛录像都拆成三个维度来记录:操作维度、决策维度、沟通维度。操作维度记录他的手速、技能释放精度、走位习惯;决策维度记录他的gank时机选择、资源分配逻辑、团战切入位置;沟通维度记录他作为队内指挥的语言模式、信息传递效率、情绪控制能力。
这个工作量放在别人手里大概要花一个月。但叶一函写了几个自动化分析脚本,把能机器做的事情全部交给机器,自己只做机器做不了的那部分——比如判断他在某个时刻的表情变化意味着什么,比如分析他在某次采访中的语气停顿代表了怎样的情绪状态。
三天之后,她得到了第一份完整的“陈淮安行为数据分析报告”。
四十七页。
她自己都觉得有点过分了。但如果让她重来一遍,她还是会这么做。因为她在这四十七页报告里发现了一些东西,一些可能连陈淮安自己都没有意识到的东西。
比如他的操作习惯。职业选手的操作习惯通常会随着版本更迭、队伍体系变化、个人状态起伏而发生偏移,但他的操作曲线异常稳定。从第一届联赛到退役前的最后一场比赛,他的手速波动曲线几乎是一条直线,APM稳定在某个区间内,上下浮动不超过百分之三。这在职业选手里极其罕见,说明他对自己的控制力达到了一个近乎偏执的程度。
比如他的决策逻辑。她把他二百三十七场职业比赛的打野路线全部标注出来,放在坐标系里做路径聚类分析,发现他的路线选择有一个非常清晰的底层算法——永远优先选择“能在最短时间内对敌方造成最大资源压制”的路径。这个逻辑听起来简单,但在实战中要精确执行需要对整个地图的信息有近乎全知的理解。
他打游戏的方式,确实像她在写的代码。干净、准确、没有一行是多余的。
但最让她意外的是他的指挥录音。
她找到了几场有队内语音的比赛录像,把陈淮安的语音单独分离出来,用她的声纹识别模型跑了一遍。这个模型本来是她论文项目的一部分,用来分析说话人的情绪状态和压力水平,准确率已经做到了百分之八十四点三。她把陈淮安的指挥语音喂进去,模型跑出来的结果让她愣了很久。
情绪波动指数:极低。
压力水平:全程低于阈值。
语速变化:平稳。
这本身不奇怪。职业选手在比赛中保持冷静是基本素质。但奇怪的是,模型还输出了一个她不太常见到的指标——语音中的“开放性”参数。这个参数衡量的是说话人在沟通中愿意透露多少信息、愿意表达多少个人意志的倾向。
陈淮安的开放性参数,在指挥队友时呈现出一种规律性的变化:比赛前期最高,中后期逐渐降低,到决胜时刻几乎降到零。翻译成白话就是——比赛越到关键时刻,他说的话越少,但每一句话的权重越大。
她反复听了那几段决胜时刻的语音。
有一场总决赛的录音,打到第七局,双方战至三十分钟,经济差不到一千,一波团战定胜负。队内语音里所有人都在说话,辅助在报技能CD,射手在喊看我看我,边路在问能不能打能不能打。一片嘈杂里,陈淮安的声音忽然切进来。
“三秒后,我开。”
就五个字。
然后整条语音里安静了。三秒后他开了团,秒掉对面核心,一**平。
叶一函把那五个字反复听了十几遍。不是因为那五个字有什么特别的信息量,而是因为说那五个字时的语气。那种语气不是命令,不是商量,甚至不是指挥——是一种陈述。像是在说一个已经发生的事实,而不是一个尚未执行的决定。
这个人对比赛的理解,已经超越了“判断”和“决策”的层面,进入了一种近似于“看见未来”的状态。他不是在判断该不该开团,他是看见了团战开启之后的所有分支路径,然后选了那条通往胜利的路。
叶一函靠在椅背上,盯着屏幕上的声纹波形图。
她忽然很想知道一件事——这样一个对战场拥有近乎预知般掌控力的人,在二十二岁那年经历了什么,才会选择在巅峰时期把一切清零?
这个问题公开资料里没有答案。所有关于他退役原因的讨论都是猜测,他本人从未回应过,他身边的人也从未透露过。
但她不甘心。
她不是那种遇到“无解”就停下来的人。如果一条路走不通,就换一条路走。如果正面的信息源全部沉默,就找侧面的、边缘的、被所有人忽略的角落。
她重新设计了爬虫,这次不爬主流媒体和社交平台,而是爬所有提到过“淮安电竞HuaiAn陈淮安”的论坛帖子、评论区、小众社区的讨论。这些地方的噪音很大,信噪比极低,需要花大量时间过滤和交叉验证。但她有的是耐心。
**天晚上,她翻到了一条三年前的帖子。
发在一个已经没什么人用的电竞论坛里,楼主是个只发过三条帖子的账号。帖子的标题是“淮神退役的真实原因,知道的人都不敢说”。正文只有一句话:“不是手伤,不是钱,是人。”
下面的回复大多在骂楼主标题党、造谣、带节奏,楼主一条都没有回,之后再也没登录过。
叶一函盯着“是人”那两个字看了很久。
不是手伤,不是钱。是人。
什么样的“人”能让一个站在巅峰上的二十二岁年轻人选择退役?队友?教练?管理层?她在搜索栏里加了一堆***反复组合查询,最终在另一个论坛的某个长帖的某个不起眼的回复里,找到了一段让她沉默的话。
发帖人自称是当年陈淮安所在俱乐部的实习生,后来离职了。他在回复里说:“那年总决赛打完之后发生的事情,圈里老人都知道,但没人会公开说。简单讲就是队里有人不想让他继续打了,不是因为实力问题,是因为他太强了,强到让某些人觉得自己永远只能活在他的影子底下。决赛结束那天晚上**室里吵得很厉害,具体内容我不方便说,但第二天淮神就提交了退役申请。俱乐部没有挽留。”
叶一函看完这段话,关掉了网页。
她没有继续爬下去了。
不是因为没有更多信息可挖,而是因为她忽然觉得——自己做的这件事,正在从一个“了解”变成一种“窥探”。她想知道他是谁,但不是以这种方式。不是通过匿名论坛上的只言片语去拼凑一个他从未主动对外讲述的故事。
如果他有一天愿意告诉她,那应该是由他自己说出来的。
而不是她扒出来的。
她合上笔记本电脑,起身走到窗边。窗外是城市的夜景,万家灯火铺成一片明明暗暗的光海,远处的写字楼还亮着零星的格子,像矩阵里没有归零的像素点。她站在那里,脑子里反复转着那个实习生在帖子里说的那句话。
“他太强了,强到让某些人觉得自己永远只能活在他的影子底下。”
叶一函忽然明白了自己为什么在第一眼看到他的时候就移不开目光。
不是因为他是KPL的远古传说,不是因为他打游戏的样子有多好看,不是因为他长了一张让人过目不忘的脸。是因为她在他身上看到了同一种困境——那种因为走得太远、走得太快,而不得不独自面对的孤独。
她十五岁进少年班的时候,同班同学平均年龄十九岁。她坐在第一排,把每一门课都考到最高分,以为成绩能填平年龄的差距。但差距不是知识,是生活。是大课间有人聊昨晚的电视剧她接不上话,是寝室夜谈有人讲高中时候的恋爱故事她没有,是聚餐时有人提议去酒吧她拿不出***。
后来她不试图融入。她学会了把自己分成两个部分——一个部分是少年班的叶一函,上课、**、写论文、做项目,精确高效,从不犯错;另一个部分是网络上的“函”,在翻唱区用声音跟世界交流,有人喜欢她,但没人知道她是谁。
她把所有事情分门别类地装在各自的文件夹里,打上标签,设定好权限,从不混淆。
因为混淆意味着失控。而失控意味着危险。
但此刻她站在窗前,看着外面万家灯火,忽然觉得很累。维持那些文件夹、标签、权限设置,需要消耗大量的心力。而那些心力本来可以用来做别的事情——比如真正地写一首自己想唱的歌,而不是算法选出来的、最容易获得播放量的歌。
比如真正地了解一个人,而不是用爬虫和数据模型。
她回到电脑前,关掉了“HuaiAn”文件夹里的所有数据分析报告,只留下最开始的那张截图——网吧里他坐在人群中间打比赛的那张,是她从围观者拍的视频里截的。画质不高,光线也暗,只能看清他的侧脸和屏幕上亮着的ID。
HuaiAn。
四个字母。
她看着那张截图,做了一个决定。
她要认识他。不是以数据分析师的身份,不是以粉丝的身份,甚至不是以“函”的身份。就是以叶一函的身份——一个二十一岁的计算机硕士,写代码的时候会自言自语,唱歌的时候会闭上眼睛,凌晨睡不着的时候会去网吧通宵。
一个真实的、不设权限的、所有文件夹全部打开的人。
怎么认识?
她想了想,打开王者荣耀,注册了一个新账号。
ID:Cold*ug。
寒虫。一个她用了很多年的私人ID,取“*ug”在代码里的本义——不是错误,而是一个系统中尚未被完全理解的变量。一个让所有预设逻辑失效的存在。
她看着登录界面上那个ID笑了一下。
陈淮安,你的系统里,该出现一个*ug了。
接下来的一个星期,叶一函做了几件事。
第一件,她把王者荣耀从青铜打上了王者。不是因为她想证明什么,而是因为她需要了解这个游戏。她是LOL钻一,MO*A类游戏的基础逻辑相通,上手并不难。但王者荣耀有自己的节奏、自己的地图机制、自己的英雄池和装备体系,这些东西不亲自打一遍是理解不了的。她花了一周时间,用LOL里打AD位积累的意识和对线习惯,硬生生把手游的段位打上了王者。
第二件,她分析了陈淮安最近带队打的全部次级联赛预选赛录像,做了一个“排位时间分布模型”。简单来说,就是根据他在不同时间段上线打排位的频率、时长、队友ID的规律,推算出他个人账号最可能在线的时间窗口。
这个模型的准确率她算过,大约百分之六十七。不高,但够用了。
第三件,她把自己的王者账号的段位、胜率、常用位置全部调整到一个特定的数值区间——刚好能匹配到他的段位,但又不至于太显眼。她算过,以他那个账号的隐藏分和在线时间段,匹配池里能排到的人并不多。只要她在他上线的时间窗口内开始排,两个人的段位又在同一区间,碰上的概率会大幅度提升。
这不是什么高深的算法,本质上就是守株待兔。但叶一函做这件事的时候,心里有一种从未有过的感觉——像是写了一段没有预设输出结果的代码,不设断言,不跑测试,写完直接点运行,然后看着屏幕等。
等一个她不知道会不会来的结果。
第七天晚上。
十一点四十分。
叶一函坐在公寓的书桌前,台式机屏幕上开着王者荣耀的窗口,手机放在支架上,*站**的私信不断弹出新消息提醒。她又一周没直播了,粉丝群已经从天怒人怨变成了担心她是不是出了什么事,群管理私聊她好几次,她只回了一句“活着,别担心”。
她盯着屏幕上的排位等待界面。
那个转圈的匹配图标已经转了快三分钟了。她选的时间窗口是晚上十一点半到凌晨一点,根据她的模型,陈淮安在预选赛结束后通常会在这个时间段上线打几把排位保持手感。但模型毕竟是模型,百分之六十七的准确率意味着有三分之一的概率他根本不会出现。
匹配图标又转了一圈。
叶一函深吸一口气,正准备关掉游戏去写论文,屏幕忽然一闪。
匹配成功。
进入选人界面。
她飞快地扫了一眼队友的ID。
四个陌生的名字。
然后是对方的ID列表。
第三个。
第三个位置,四个字母。
HuaiAn。
叶一函的手指悬在键盘上方,一动不动。
她设想过无数次这个场景,想过他出现的时候她会是什么反应——她以为自己会很冷静,会按照计划选一个辅助位,在对局里观察他的操作,用最自然的方式打完整场,然后加好友。这是她写好的“剧本”,每一步都在掌控范围内。
但此刻她看着那四个字母,大脑一片空白。
心跳快得像跑完一千米。
她忽然意识到一件事——她写过的所有代码、建过的所有模型、做过的所有计划,在这一刻全部失效了。不是因为它们不精确,而是因为她要面对的不是一个系统,是一个人。一个活生生的、会动会思考会说话的人,不是一个可以用算法预测的变量。
选人倒计时的提示音在耳机里响起来,刺耳得像闹钟。
叶一函回过神来,手忙脚乱地选了一个辅助,锁定。
游戏加载界面弹出来。
她的ID,Cold*ug,跟那个叫HuaiAn的ID排在对面——不是队友,是对手。
她愣了一下,然后笑了。
不是队友,是对面。
当然是对面。以他的段位和隐藏分,系统会优先把他放在红色方做平衡。她算了匹配概率,算了时间窗口,算了段位区间,唯独忘了算这个。
不过没关系。
是对面,那就让他看看。
她活动了一下手指,眼神变了。
不是粉丝看偶像的眼神,不是数据分析师看研究对象的眼神,是一个MO*A老玩家看着对面那个最值得击败的对手时的眼神——专注、冷静、带着一点点被激起的、久违的好胜心。
加载完成。
对局开始。
叶一函操作着辅助英雄走出泉水的那一刻,脑子里只有一个念头。
陈淮安,这把我是你的对手。
你会记住这个ID的。
一定会的。
(本章完)
---
下章预告: 叶一函和陈淮安的第一场对局正式打响。她用LOL钻一的意识加上对他打野路线的研究,在对局中做出了几次让陈淮安意外的操作。而对面的陈淮安,在打完这把后第一次主动点开了一个路人的资料页面。那个ID叫Cold*ug。
第一步,数据采集。
她花了一整个上午做这件事。不是漫无目的地搜索,而是系统性地抓取所有能抓到的公开数据——陈淮安职业生涯期间的全部比赛录像,一共二百三十七场。他退役后带队打次级联赛的录像,能找到的一共四十六场。所有赛后采访、纪录片片段、活动录像、粉丝现场拍摄的视频,凡是能搜到的全部进了她的数据库。
到中午的时候,她的硬盘里多出了将近两个T的视频文件。
然后她开始看。
不是像粉丝那样带着滤镜看,而是像分析实验数据那样,一帧一帧地看。她把每一场比赛录像都拆成三个维度来记录:操作维度、决策维度、沟通维度。操作维度记录他的手速、技能释放精度、走位习惯;决策维度记录他的gank时机选择、资源分配逻辑、团战切入位置;沟通维度记录他作为队内指挥的语言模式、信息传递效率、情绪控制能力。
这个工作量放在别人手里大概要花一个月。但叶一函写了几个自动化分析脚本,把能机器做的事情全部交给机器,自己只做机器做不了的那部分——比如判断他在某个时刻的表情变化意味着什么,比如分析他在某次采访中的语气停顿代表了怎样的情绪状态。
三天之后,她得到了第一份完整的“陈淮安行为数据分析报告”。
四十七页。
她自己都觉得有点过分了。但如果让她重来一遍,她还是会这么做。因为她在这四十七页报告里发现了一些东西,一些可能连陈淮安自己都没有意识到的东西。
比如他的操作习惯。职业选手的操作习惯通常会随着版本更迭、队伍体系变化、个人状态起伏而发生偏移,但他的操作曲线异常稳定。从第一届联赛到退役前的最后一场比赛,他的手速波动曲线几乎是一条直线,APM稳定在某个区间内,上下浮动不超过百分之三。这在职业选手里极其罕见,说明他对自己的控制力达到了一个近乎偏执的程度。
比如他的决策逻辑。她把他二百三十七场职业比赛的打野路线全部标注出来,放在坐标系里做路径聚类分析,发现他的路线选择有一个非常清晰的底层算法——永远优先选择“能在最短时间内对敌方造成最大资源压制”的路径。这个逻辑听起来简单,但在实战中要精确执行需要对整个地图的信息有近乎全知的理解。
他打游戏的方式,确实像她在写的代码。干净、准确、没有一行是多余的。
但最让她意外的是他的指挥录音。
她找到了几场有队内语音的比赛录像,把陈淮安的语音单独分离出来,用她的声纹识别模型跑了一遍。这个模型本来是她论文项目的一部分,用来分析说话人的情绪状态和压力水平,准确率已经做到了百分之八十四点三。她把陈淮安的指挥语音喂进去,模型跑出来的结果让她愣了很久。
情绪波动指数:极低。
压力水平:全程低于阈值。
语速变化:平稳。
这本身不奇怪。职业选手在比赛中保持冷静是基本素质。但奇怪的是,模型还输出了一个她不太常见到的指标——语音中的“开放性”参数。这个参数衡量的是说话人在沟通中愿意透露多少信息、愿意表达多少个人意志的倾向。
陈淮安的开放性参数,在指挥队友时呈现出一种规律性的变化:比赛前期最高,中后期逐渐降低,到决胜时刻几乎降到零。翻译成白话就是——比赛越到关键时刻,他说的话越少,但每一句话的权重越大。
她反复听了那几段决胜时刻的语音。
有一场总决赛的录音,打到第七局,双方战至三十分钟,经济差不到一千,一波团战定胜负。队内语音里所有人都在说话,辅助在报技能CD,射手在喊看我看我,边路在问能不能打能不能打。一片嘈杂里,陈淮安的声音忽然切进来。
“三秒后,我开。”
就五个字。
然后整条语音里安静了。三秒后他开了团,秒掉对面核心,一**平。
叶一函把那五个字反复听了十几遍。不是因为那五个字有什么特别的信息量,而是因为说那五个字时的语气。那种语气不是命令,不是商量,甚至不是指挥——是一种陈述。像是在说一个已经发生的事实,而不是一个尚未执行的决定。
这个人对比赛的理解,已经超越了“判断”和“决策”的层面,进入了一种近似于“看见未来”的状态。他不是在判断该不该开团,他是看见了团战开启之后的所有分支路径,然后选了那条通往胜利的路。
叶一函靠在椅背上,盯着屏幕上的声纹波形图。
她忽然很想知道一件事——这样一个对战场拥有近乎预知般掌控力的人,在二十二岁那年经历了什么,才会选择在巅峰时期把一切清零?
这个问题公开资料里没有答案。所有关于他退役原因的讨论都是猜测,他本人从未回应过,他身边的人也从未透露过。
但她不甘心。
她不是那种遇到“无解”就停下来的人。如果一条路走不通,就换一条路走。如果正面的信息源全部沉默,就找侧面的、边缘的、被所有人忽略的角落。
她重新设计了爬虫,这次不爬主流媒体和社交平台,而是爬所有提到过“淮安电竞HuaiAn陈淮安”的论坛帖子、评论区、小众社区的讨论。这些地方的噪音很大,信噪比极低,需要花大量时间过滤和交叉验证。但她有的是耐心。
**天晚上,她翻到了一条三年前的帖子。
发在一个已经没什么人用的电竞论坛里,楼主是个只发过三条帖子的账号。帖子的标题是“淮神退役的真实原因,知道的人都不敢说”。正文只有一句话:“不是手伤,不是钱,是人。”
下面的回复大多在骂楼主标题党、造谣、带节奏,楼主一条都没有回,之后再也没登录过。
叶一函盯着“是人”那两个字看了很久。
不是手伤,不是钱。是人。
什么样的“人”能让一个站在巅峰上的二十二岁年轻人选择退役?队友?教练?管理层?她在搜索栏里加了一堆***反复组合查询,最终在另一个论坛的某个长帖的某个不起眼的回复里,找到了一段让她沉默的话。
发帖人自称是当年陈淮安所在俱乐部的实习生,后来离职了。他在回复里说:“那年总决赛打完之后发生的事情,圈里老人都知道,但没人会公开说。简单讲就是队里有人不想让他继续打了,不是因为实力问题,是因为他太强了,强到让某些人觉得自己永远只能活在他的影子底下。决赛结束那天晚上**室里吵得很厉害,具体内容我不方便说,但第二天淮神就提交了退役申请。俱乐部没有挽留。”
叶一函看完这段话,关掉了网页。
她没有继续爬下去了。
不是因为没有更多信息可挖,而是因为她忽然觉得——自己做的这件事,正在从一个“了解”变成一种“窥探”。她想知道他是谁,但不是以这种方式。不是通过匿名论坛上的只言片语去拼凑一个他从未主动对外讲述的故事。
如果他有一天愿意告诉她,那应该是由他自己说出来的。
而不是她扒出来的。
她合上笔记本电脑,起身走到窗边。窗外是城市的夜景,万家灯火铺成一片明明暗暗的光海,远处的写字楼还亮着零星的格子,像矩阵里没有归零的像素点。她站在那里,脑子里反复转着那个实习生在帖子里说的那句话。
“他太强了,强到让某些人觉得自己永远只能活在他的影子底下。”
叶一函忽然明白了自己为什么在第一眼看到他的时候就移不开目光。
不是因为他是KPL的远古传说,不是因为他打游戏的样子有多好看,不是因为他长了一张让人过目不忘的脸。是因为她在他身上看到了同一种困境——那种因为走得太远、走得太快,而不得不独自面对的孤独。
她十五岁进少年班的时候,同班同学平均年龄十九岁。她坐在第一排,把每一门课都考到最高分,以为成绩能填平年龄的差距。但差距不是知识,是生活。是大课间有人聊昨晚的电视剧她接不上话,是寝室夜谈有人讲高中时候的恋爱故事她没有,是聚餐时有人提议去酒吧她拿不出***。
后来她不试图融入。她学会了把自己分成两个部分——一个部分是少年班的叶一函,上课、**、写论文、做项目,精确高效,从不犯错;另一个部分是网络上的“函”,在翻唱区用声音跟世界交流,有人喜欢她,但没人知道她是谁。
她把所有事情分门别类地装在各自的文件夹里,打上标签,设定好权限,从不混淆。
因为混淆意味着失控。而失控意味着危险。
但此刻她站在窗前,看着外面万家灯火,忽然觉得很累。维持那些文件夹、标签、权限设置,需要消耗大量的心力。而那些心力本来可以用来做别的事情——比如真正地写一首自己想唱的歌,而不是算法选出来的、最容易获得播放量的歌。
比如真正地了解一个人,而不是用爬虫和数据模型。
她回到电脑前,关掉了“HuaiAn”文件夹里的所有数据分析报告,只留下最开始的那张截图——网吧里他坐在人群中间打比赛的那张,是她从围观者拍的视频里截的。画质不高,光线也暗,只能看清他的侧脸和屏幕上亮着的ID。
HuaiAn。
四个字母。
她看着那张截图,做了一个决定。
她要认识他。不是以数据分析师的身份,不是以粉丝的身份,甚至不是以“函”的身份。就是以叶一函的身份——一个二十一岁的计算机硕士,写代码的时候会自言自语,唱歌的时候会闭上眼睛,凌晨睡不着的时候会去网吧通宵。
一个真实的、不设权限的、所有文件夹全部打开的人。
怎么认识?
她想了想,打开王者荣耀,注册了一个新账号。
ID:Cold*ug。
寒虫。一个她用了很多年的私人ID,取“*ug”在代码里的本义——不是错误,而是一个系统中尚未被完全理解的变量。一个让所有预设逻辑失效的存在。
她看着登录界面上那个ID笑了一下。
陈淮安,你的系统里,该出现一个*ug了。
接下来的一个星期,叶一函做了几件事。
第一件,她把王者荣耀从青铜打上了王者。不是因为她想证明什么,而是因为她需要了解这个游戏。她是LOL钻一,MO*A类游戏的基础逻辑相通,上手并不难。但王者荣耀有自己的节奏、自己的地图机制、自己的英雄池和装备体系,这些东西不亲自打一遍是理解不了的。她花了一周时间,用LOL里打AD位积累的意识和对线习惯,硬生生把手游的段位打上了王者。
第二件,她分析了陈淮安最近带队打的全部次级联赛预选赛录像,做了一个“排位时间分布模型”。简单来说,就是根据他在不同时间段上线打排位的频率、时长、队友ID的规律,推算出他个人账号最可能在线的时间窗口。
这个模型的准确率她算过,大约百分之六十七。不高,但够用了。
第三件,她把自己的王者账号的段位、胜率、常用位置全部调整到一个特定的数值区间——刚好能匹配到他的段位,但又不至于太显眼。她算过,以他那个账号的隐藏分和在线时间段,匹配池里能排到的人并不多。只要她在他上线的时间窗口内开始排,两个人的段位又在同一区间,碰上的概率会大幅度提升。
这不是什么高深的算法,本质上就是守株待兔。但叶一函做这件事的时候,心里有一种从未有过的感觉——像是写了一段没有预设输出结果的代码,不设断言,不跑测试,写完直接点运行,然后看着屏幕等。
等一个她不知道会不会来的结果。
第七天晚上。
十一点四十分。
叶一函坐在公寓的书桌前,台式机屏幕上开着王者荣耀的窗口,手机放在支架上,*站**的私信不断弹出新消息提醒。她又一周没直播了,粉丝群已经从天怒人怨变成了担心她是不是出了什么事,群管理私聊她好几次,她只回了一句“活着,别担心”。
她盯着屏幕上的排位等待界面。
那个转圈的匹配图标已经转了快三分钟了。她选的时间窗口是晚上十一点半到凌晨一点,根据她的模型,陈淮安在预选赛结束后通常会在这个时间段上线打几把排位保持手感。但模型毕竟是模型,百分之六十七的准确率意味着有三分之一的概率他根本不会出现。
匹配图标又转了一圈。
叶一函深吸一口气,正准备关掉游戏去写论文,屏幕忽然一闪。
匹配成功。
进入选人界面。
她飞快地扫了一眼队友的ID。
四个陌生的名字。
然后是对方的ID列表。
第三个。
第三个位置,四个字母。
HuaiAn。
叶一函的手指悬在键盘上方,一动不动。
她设想过无数次这个场景,想过他出现的时候她会是什么反应——她以为自己会很冷静,会按照计划选一个辅助位,在对局里观察他的操作,用最自然的方式打完整场,然后加好友。这是她写好的“剧本”,每一步都在掌控范围内。
但此刻她看着那四个字母,大脑一片空白。
心跳快得像跑完一千米。
她忽然意识到一件事——她写过的所有代码、建过的所有模型、做过的所有计划,在这一刻全部失效了。不是因为它们不精确,而是因为她要面对的不是一个系统,是一个人。一个活生生的、会动会思考会说话的人,不是一个可以用算法预测的变量。
选人倒计时的提示音在耳机里响起来,刺耳得像闹钟。
叶一函回过神来,手忙脚乱地选了一个辅助,锁定。
游戏加载界面弹出来。
她的ID,Cold*ug,跟那个叫HuaiAn的ID排在对面——不是队友,是对手。
她愣了一下,然后笑了。
不是队友,是对面。
当然是对面。以他的段位和隐藏分,系统会优先把他放在红色方做平衡。她算了匹配概率,算了时间窗口,算了段位区间,唯独忘了算这个。
不过没关系。
是对面,那就让他看看。
她活动了一下手指,眼神变了。
不是粉丝看偶像的眼神,不是数据分析师看研究对象的眼神,是一个MO*A老玩家看着对面那个最值得击败的对手时的眼神——专注、冷静、带着一点点被激起的、久违的好胜心。
加载完成。
对局开始。
叶一函操作着辅助英雄走出泉水的那一刻,脑子里只有一个念头。
陈淮安,这把我是你的对手。
你会记住这个ID的。
一定会的。
(本章完)
---
下章预告: 叶一函和陈淮安的第一场对局正式打响。她用LOL钻一的意识加上对他打野路线的研究,在对局中做出了几次让陈淮安意外的操作。而对面的陈淮安,在打完这把后第一次主动点开了一个路人的资料页面。那个ID叫Cold*ug。