自己的预研方案获得了VEL的支持后,吴沐潼明显感觉到没有之前那么的焦虑了,作息也很快恢复了正常。她开始在下班后留出固定的娱乐时间,努力做到工作与生活的平衡。
至于如何进一步争取其他员工的支持,沐潼凭借一条世界线的经验,认为最有效的方式是在关键时刻展现“神迹”,即做出其他人认为通常意义上绝对无法做到的事情,凸显出自己拥有的独特能力,以此在团队中树立起存在感,赢得其他员工的信任与崇拜。
8月下旬的一天中午,沐潼吃过饭回到工位,刚坐下就听见周围异常吵闹。顺着声音看过去,只见帝护和米特斯正在激烈争论。
米特斯是《神枪王女》的3D组长,以前在网易时是帝护隔壁项目的场景组组长,跳槽到圣白后同时管理建模与地编工作。
“问你话呢,之前我们地编组提的那个离线战斗的需求怎么还没做完?”
“这个功能牵涉的模块太多了,不只是工具,还要动策划和网络那边,确实不好做。”
“上个月需求评审的时候,歌德不是明确说过除了工作量偏大以外没什么大问题?说是工作量大也给你们TA留了一个月,现在都超时2星期了还没做完。”
“负责工具开发的是正霖,他这段时间在搞预研,确实没时间。要不你再等等?”
“MD,一直让我等,都说了七八次了。现在关卡数量一多,每次登录再进游戏就特别麻烦。要真做不了就早和老板说,把需求取消了算了。”
米特斯脸上带着明显怒气,头也不回地离开了。
帝护口中提到的正霖,全名文正霖,是他从网易直接带过来的亲信。帝护口头上说正霖在做预研,实际上是拿预研当借口推脱。离线战斗功能虽然实现起来工作量大,但是本身并不复杂,帝护怕麻烦不想亲自动手罢了。
实际上,私下里公司不少老员工都知道,帝护刚来圣白的一两个月还有在写一些简单代码,之后基本就当甩手掌柜了,日常上班混日子,工具和渲染需求全部丢给手下的人做。
眼前这场风波让沐潼察觉到了机会,她起身朝米特斯的工位走去。
“米特斯,能和我讲讲你刚才提到的那个离线战斗需求吗?正好我这边的新技能弹道的需求刚做完,现在有空,要不要把这个需求转给我看看?”
“其实也不复杂。我们地编这边希望能做一个工具,不用登录游戏就能直接在编辑器里的场景进入战斗模式。还能自由选择角色,敌人就沿用正常关卡的安排。”
“那这个功能现在做到什么程度了?”
米特斯点开需求管理系统,把界面展示给她:
“之前开会的时候策划和客户端那边已经确认过了,战斗功能已经拆分好,只需要工具这边对接接口就行。代码细节我不太懂,你也是客户端,应该比我更清楚这块,要不要我让歌德把这个需求转给你?”
“好,我了解了,谢谢你。”
沐潼点头道谢,随后回到了客户端组的工位。
与歌德简单沟通后,歌德向老板报备,在需求管理系统上将这个离线战斗的需求转交给了沐潼。
她打开需求文档,认真分析离线战斗所需的功能细节,将实现这个功能的路径逐步拆解。
第一步,必须从现有的战斗系统中剥离外围逻辑。虽然在项目初期,歌德就已经有意识地将战斗系统独立成了模块,只需填充特定的数据类,再调用统一的StartBattle()接口,就能完成关卡加载与战斗初始化。
然而战斗系统开始运行后,其中的大部分逻辑仍然绑定在账号系统,网络同步,服务器校验这些繁琐的外围逻辑之上。
沐潼反复阅读着战斗模块的代码,思索着最安全的剥离方法。修改现有的战斗模块风险很高,而且歌德大概率不会同意这个方案。而直接复制一份战斗模块进行修改未来维护成本也很大,每当战斗逻辑有更新,都需要把变更后的逻辑同步给复制后的战斗模块。
于是她选择了最稳妥的一条路,继承战斗相关的核心类,覆写特定函数,屏蔽掉与账号和网络强耦合的部分逻辑。
她首先写了一套硬编码的数据填充逻辑,用固定的玩家角色,固定的敌方单位,手动构造数据类,填充进入战斗的所有必要信息。然后开始进行外围依赖的剥离。
初步剥离外围依赖后,她在Unity编辑器中运行测试,观察战斗是否能正常启动。结果比预想中顺利,角色可以登场,敌人可以移动,技能释放正常,战斗结算也能顺利触发。
不过这只是最简单的一步。硬编码的数据只能验证战斗机制本身,真正的离线战斗必须支持自由选择角色和关卡。为了做到这一点,沐潼开始寻找可用的数据来源。
经过与策划组,后端程序组的沟通,她得知策划上传角色关卡等配置数据时,使用的内网工具其实自带了一个下载功能。这个下载功能使用的服务器接口也可以直接调用,虽然直接下载的数据表格式与客户端正式接入战斗所需的格式不同,但是只要能拿到原始数据,她就有办法进行转换。
在阅读了后端的接口文档与数据格式定义后,她重新在客户端侧实现了一套数据转换逻辑。解析下载的原始表格,映射字段到客户端需要的格式,生成角色,装备,关卡,棋盘等子表格,然后缓存到本地供后续调用。
功能基本搭建完成后,她在文档中上写下了这套离线战斗工具的完整流程,供美术和地编组学习使用方式。
编写离线战斗功能时,沐潼进入了一种心流状态。等到收尾的时候,她以为已经过去了很久,抬头一看窗外才刚到黄昏,再看时间不过四个小时而已。
她暗自感叹,自己的编程手感正在迅速恢复,远比前一条世界线中担任客户端主程时那种松懈的状态要好很多。
沐潼起身走到米特斯的工位前,此时的米特斯正扒着盒饭,屏幕上放着当季的动画。
“米特斯,中午提到的离线战斗功能,我这边差不多做好了,要不要过来看看?”
“这么快,做到什么程度了?”
米特斯顾不上吃饭,放下筷子跟着沐潼走回她的工位。沐潼打开编辑器,熟练地演示了一遍离线战斗功能的完整流程,米特斯看得连连点头。
“帝护他们那边搞了一个多月都没搞定的东西,你一下午就做完了。而且我们要的功能基本上都有了,太厉害了,先把项目上传到SVN吧。文档也一起发给我,我转发给地编的同事马上开始测试。”
之后的几天里,沐潼根据地编组反馈完善离线战斗工具。她调整了UI布局,增加了自动角色选择与敌方战力匹配等实用功能,她开发神速的名声也在同事之间流传开来。