晋江文学城
下一章 上一章  目录  设置

32、第三十二章 辛苦了—— ...

  •   谢知年走出报告厅,外面的阳光毒辣辣的。他眯了一下眼睛,站在窗边,看着楼下拖着行李箱来来往往的新生和家长。热风从半开的窗户涌进来,吹在他脸上,带着桂花和防晒霜的气味。他站了一会儿,然后拿出手机,给纪淮书发了一条消息:【我好像找到一个想做的毕设题目了。】
      对面过了几分钟,回了一条:【什么题目】
      谢知年站在窗边,看着楼下那些拖着行李箱的人来人往,打了一行字,又删掉,又重新打了一遍,最后只发了四个字:【回去跟你说。】

      他锁了屏幕,把手机放回口袋里。窗外的阳光还是很烈,照在对面教学楼的玻璃幕墙上,反射出一片刺目的白光。他把选题册夹在胳膊底下,往楼梯口走去,步子比来时快了一些。

      下午剩下的时间,谢知年待在图书馆里,把那份课题说明从头到尾又读了三遍。他在笔记本上列了一份粗略的技术框架,画了几张行为树的草图,又在空白处写了几行关于“记忆标签”的初步构想。等他抬起头的时候,窗外的天色已经暗下来了,图书馆的灯不知道什么时候亮的,在他桌面上投下一圈暖黄色的光。

      他收拾好东西,走出图书馆。夜风比白天凉了一些,吹在脸上很舒服。他走在回公寓的路上,路灯把他的影子拉得很长。他低头给纪淮书发了一条消息:【回来了】
      对面秒回:【排骨冬瓜 还有一条鱼 吃不吃】
      谢知年看着那行没有标点符号的文字,在路灯下弯了一下嘴角,回了一个字:【吃。】

      他推开公寓门的时候,热气混着食物的香气一起涌过来。纪淮书正背对着他站在厨房里,手里握着锅铲,在翻炒什么。锅里发出滋啦的声响,抽油烟机嗡嗡地转着。火锅蹲在他脚边,仰着头,尾巴尖轻轻晃着,等着不知道什么时候会掉下来的食物。

      谢知年换了鞋,把选题册放在餐桌上,走到厨房门口,靠在门框上看着纪淮书的背影。

      “洗手,马上好。”纪淮书没有回头,但像是知道他在那里。

      谢知年没动。他靠在门框上,看着纪淮书往锅里撒了一把葱花,颠了一下勺,动作算不上多专业,但有一种很熟练的随意感。

      他洗完手回来的时候,菜已经上桌了。冬瓜排骨汤冒着热气,清蒸鲈鱼上铺着葱丝和红椒,旁边还有一碟凉拌黄瓜。纪淮书把最后一碗米饭放到他面前,自己也在对面坐下来,拿起筷子,夹了一块鱼肉放到谢知年碗里。

      “尝尝,今天鱼挺新鲜的。”
      谢知年低头吃了一口。鱼肉很嫩,蒸的时间刚好,酱油的咸淡也合适。他嚼着嚼着,放下筷子,说了一句:“我今天选了一个毕业设计的题目。”
      纪淮书抬头看他:“什么题目?”
      “一个游戏NPC的行为系统。”谢知年说,“让角色记住玩家做过的事,然后根据这些记忆改变自己的行为和对话。”
      纪淮书没有立刻评价。他夹了一块排骨,啃完,把骨头放在碟子边上,擦了擦手,然后问:“什么样的游戏?”

      “一个被暴雨困住的旧校区。”谢知年说,“玩家在里面探索,会遇到一个同行的NPC。那个NPC会记得玩家在路上做的每一个选择——帮过谁、拒绝过谁、去过哪里、漏掉了什么……然后根据这些信息,决定自己要怎么做。”
      他顿了顿,又说:“如果玩家一直不信任他,他可能会变得更沉默,也可能会在某一个节点主动解释自己。如果玩家曾经救过他,他会在玩家遇到危险的时候,比系统设定的更快一步做出反应。”

      他说完这些,忽然觉得自己是不是说得太多了。这些想法还只是笔记本上的几行草稿,连框架都算不上。但纪淮书没有打断他,只是听着,等他说完,才开口问了一句:“那他会累吗?”
      谢知年愣了一下:“什么?”
      “你刚才说,他会记得玩家做过的所有事。”纪淮书说,“那如果他记得太多了,会不会累?”

      这个问题问得很奇怪,不像一个技术问题,更像是一个——谢知年说不上来——像是一个替那个还没被创造出来的角色担心的问题。他看着纪淮书,发现对方的表情很认真,不是在开玩笑。

      “……他不会累。”谢知年说,“他只是数据。”
      “嗯。”纪淮书点了点头,没有继续追问,低头扒了一口饭,嚼完,又说了一句,“那你打算给他取什么名字?”

      谢知年又愣了一下。他还没想过这个问题。在他的构思里,那个角色现在还只是一堆功能需求和几行伪代码,连外形都还没确定,更别说名字了。

      “还没想好。”他说。
      “那你慢慢想。”纪淮书夹了一筷子凉拌黄瓜,嚼得嘎嘣脆,“名字很重要的。你给他取什么名字,他就会变成什么样的人。”

      他说这句话的语气很随意,像是在说一道菜的调味。谢知年看了他几眼,忽然浅浅笑了一下。

      晚上,谢知年坐在书桌前,打开笔记本电脑,新建了一个项目文件夹。他在文件夹名称那一栏停了一下,光标闪了几次,然后打了一行字:暴雨将至。

      他新建了一个文本文档,开始写设计大纲。写到角色设定的时候,他停下来,看着光标在空白页面上闪烁,想了很久,然后打了一行字:【同伴NPC。性别待定。会在游戏的早期阶段出现在玩家面前,主动提出同行。话多,但大部分是废话。喜欢在玩家做事的时候在旁边看着,喜欢问一些没必要的问题,习惯用开玩笑的方式掩饰真实想法。会在玩家需要的时候,第一时间出现。】
      他打完之后,盯着屏幕看了一会儿,然后把最后一句删掉,改成了:【会在玩家没有开口求助的时候,就已经出现在他身边了。】

      他保存了文件,合上电脑。窗外的夜色很深,城市的灯火在远处明明灭灭。他听到客厅里传来纪淮书和火锅说话的声音——“你别踩那个线,那是爸爸的充电线,不是你的玩具”——声音低低的,带着一种无奈的纵容。

      谢知年靠在椅背上,听着那个声音,在黑暗里坐了一会儿,然后站起来,推开门,走进了那片亮着灯的客厅。

      *

      之后的时间里,谢知年几乎把自己泡在了图书馆里。

      项目框架搭起来比想象中费劲。光是行为树的结构他就重构了三遍——第一版太复杂,跑起来卡得要命;第二版太简单,角色的反应像开关按钮,要么帮要么不帮,没有中间状态。第三版他才找到一个勉强可行的平衡点:把决策拆成三层,当下状态、记忆标签、行为倾向,每一层单独运算,最后加权得出结果。

      他把这个结构画在白板上的时候,陈迹路过看了一眼,说:“你确定大四毕设用得着这么复杂?”
      “用不着。”谢知年说,“但我想做。”
      陈迹没再说什么,拍了拍他的肩膀,走了。

      十一月中的时候,他做出了第一个可跑的demo。场景是一间废弃的教学楼走廊,窗外在下雨,玩家控制的角色从走廊一端走到另一端,中途会遇到那个NPC。目前NPC只会做两件事——跟在玩家身后,以及在玩家停下来的时候也停下来。

      功能简单到称不上是一个“系统”。但谢知年把demo打包发给了指导老师,然后靠在椅背上,盯着屏幕上那条昏暗的走廊,看那个像素小人站在窗边,雨水顺着玻璃往下流。他看了一会儿,拿起手机,拍了张屏幕的照片,发给纪淮书。

      【能跑了。】
      过了几分钟,纪淮书回了一条:【什么样看看】
      谢知年看着那行没有标点的文字,回:【一条走廊 还在下雨有个角色站在窗边】
      【就站着】
      【嗯就站着】

      对面没有再回。过了大概半小时,工作室的门被人推开了。纪淮书站在门口,外套上带着外面的凉气,手里拎着两杯热奶茶。他走进来,把一杯放在谢知年桌上,然后拉了一把椅子在他旁边坐下,看着屏幕上那条昏暗的走廊和窗边静止的像素小人。

      “就这个?”他问。
      “就这个。”

      纪淮书看了一会儿,没说话。屏幕上的雨一直在下,像素小人站在窗边,偶尔换一个姿势,偶尔低头看一下自己的手,然后又看向窗外。动作很细微,不仔细看几乎注意不到。

      “他等了多久了?”纪淮书忽然问。
      谢知年愣了一下:“什么?”
      “你打开这个demo的时候,”纪淮书说,“他已经在这里站了多久了?”

      谢知年看着屏幕上那个像素小人,沉默了一会儿。他从来没有想过这个问题。他只是设定了一个idle动画循环,让角色在等待玩家操作的时候播放。但如果——如果这个角色真的有意识的话,他确实是从程序启动的那一刻开始,就一直站在那扇窗边,看着外面的雨,等着玩家走向他。

      “……不久。”他说,“刚开机。”
      纪淮书没有追问,只是“嗯”了一声,喝了一口奶茶,然后说:“那你快点走过去找他。”

      谢知年没有说话。他把手放到键盘上,按了一下W键。屏幕上的角色开始往前走,沿着走廊一步一步地接近那扇窗。走到窗边的时候,那个像素小人转过头来,看着他。

      屏幕上没有弹出对话框,没有任务提示,没有任何文字。他们只是站在那里,在暴雨声里,面对面地站着。

      纪淮书坐在他旁边,看着屏幕,没有评价,没有提问,只是安静地看完了这一幕。然后他站起来,把空奶茶杯扔进垃圾桶里,说:“我回去了,你早点睡。”
      他走到门口,停了一下,没有回头。
      “那个角色,”他说,“等他走到玩家面前的时候,替我跟他说一声——辛苦了。”

      门关上了。谢知年坐在电脑前,屏幕上那条走廊还在下雨,像素小人还站在窗边。他看着那个角色,过了一会儿,轻声说了一句:“听到了。”
note 作者有话说
第32章 第三十二章

  • 昵称:
  • 评分: 2分|鲜花一捧 1分|一朵小花 0分|交流灌水 0分|别字捉虫 -1分|一块小砖 -2分|砖头一堆
  • 内容:
  •             注:1.评论时输入br/即可换行分段。
  •                 2.发布负分评论消耗的月石并不会给作者。
  •             查看评论规则>>