前文回顾

项目的开始都是令人记忆深刻的,而开发的过程却是平淡乏味的。好比高速上开车,周围的景色一成不变,就容易疲累瞌睡。

天刀开发几年后,逐渐和玩家见面,工作的重心,也从怎么让人眼前一亮,变成了怎么把这一大摊子的内容都整合到一起,如何确保性能和内存,如何满足策划和美术的需求。

项目早期什么都是新的,新的挑战,新的团队,新的游戏;项目的中后期什么都是旧的,旧的代码,旧的数据,旧的流程。倦怠不可避免,需要一些技术的理想主义,给团队寻找高光时刻,给大家找到远方的挑战。

几次测试后,工具大致可用,策划美术开始狂堆内容,逻辑和后台程序忙着做逻辑内容。引擎团队也需要找点目标。

海洋和航行进入了视野。

之前说过,程序员喜欢做水。天刀最初的demo有水,但还不够好。几次迭代后就不再使用了,这次又拿回来重做。

长时间的闭关开发是最有意思的事情。做水也许是很容易进入心流的吧,每天看paper,对着数学公式瞎想,没有什么人打扰,闭关一个月,努力搞一些说出去外行听完一脸懵逼的功能,搞定可以炫耀,失败了也很难有人指责。技术是最好的壁垒,隔绝世间的喧嚣。

我们安排小谢去搞这个功能。一方面他是资深渲染,之前也有类似的开发经验,另一方面也和公司内部的职级晋升体系有关。

在腾讯体系内,对一个技术人员,技术级别晋升是一个很重要的事情。没有做过好的技术,就不容易得到专业职级晋升,这个容易理解。但在一个项目里,总有人需要做一些相对不难的脏活累活,这个就很纠结。

我们团队,为了平衡项目利益和个人发展诉求,一般的做法是脏活累活轮流干,有难度的挑战也轮流做。有时冲刺,挑战技术难点,做有亮点的事情,以便升级,有时做助攻,分担点琐事,辅助其他同事晋级。

这次轮到渲染小谢挑战一下高科技了。

海水渲染一直是一个很有趣的领域,各个前沿项目不停做出各种高端效果,发布各种先进算法,眼花缭乱。大多数算法核心都是基于快速FFT变化来做,加上各种tricky的技巧,做出其他相关的效果,浪花、浪的形态、水的折射反射、水在海滩的波浪等,都是需要一一解决的,充分展现了工程上的复杂度,是可以持续做很久的一个技术。

海水这部分,我们大量参考了刺客信条的海水系统。刺客信条4-黑旗中的海水系统给我们留下了非常深刻的印象,海水的表现、和天气互动、以及海水和船的交互,是当时最顶尖的水准了,也只有神海3后期的海水能超越,但那个又是略有不同的技术体系。

水的这一块持续进步中,也加入了各种参数,二手QQ购买平台可以在统一的天气框架下调整天气表现,表达出狂风暴雨天气下的惊涛骇浪。

另一边,有了观感良好的大海,总是希望有些不一样的gameplay。既然大家都是刺客信条海战系统的深度爱好者,我们的第一想法自然就是做一个海战系统,这个能展现技术实力,有非常大的挑战,而且用各种违反物理常识的轻功在大海上跳跃和战斗,想想也是非常有趣的,应该可以非常出彩。

但难题接蹱而至。

最初的网络战斗体系,在位移层面,并没有考虑platform。也就是说,所有的位移相关的事情,默认都是发生在整个世界坐标体系下,并没有考虑人可能站在一个会移动的物体上。技术上倒是不复杂,所有的位移计算,都应该要考虑站在什么平台上,在这个例子中就是船上,位移要加上船的速度。但在这个接近上线的关口,我们却不敢做如此激进的改动。这个改动意味着所有的前后台逻辑都需要重新梳理,所有战斗体系中的位移要另行计算,多层移动的逻辑也要改变算法,技能中和场景的碰撞也面临冲击。更可怕的是,即使程序员有勇气去改,我们又怎么面对策划的大量数据,他们是不是需要重新配置数据,我们怎么面对玩家测试,已经有无数人测试过,验证过我们的移动体系,重新写一个,会有多大的冲击呢?移动模块是一个最基础的模块,改变实在太大。

当年多层碰撞体系,也是考虑到冲击过大,所以没有做真实物理碰撞,而是用折中的多层碰撞结构,这次的platform移动,相比上次,更是动摇了根本,实在下不了决心推翻重做。

项目大了,独立出自己的意志,裹挟着你的喜好,去向你不想的地方。理想和现实,总要有选择,我们还是选择了面对现实,收起不必要的幻想,先做点基础工作,把复杂留给以后。

既然如此,就只能做一个非常简单的航海玩法了。玩法本身不展开,大家可以随意吐槽,只说一下船体互动。

船的互动,是有一些文章介绍过的,刺客信条和神海的文章都有讲过如何做船和水的交互。简单说,就是在船下绑定很多probe,可以想象成一个虚拟的船,绑定了很多浮筒。每帧判断浮筒和水面的位置差,来判断船应该受到多少浮力,然后相应调整船的姿态。

但这工作真不是一帆风顺的。我们先让一个小杨同学去开发这个模块,当时离上线只有3周不到,我判断这个功能并不好做,如果来不及做好,老于又要动刀砍特性了。

偏偏越着急,越容易出问题。小杨做啥都挺给力,但做船就是没找到感觉,半天没有好的效果。船体和水的互动,一直有奇怪的问题,都谈不上什么物理规律,最基础的观感就不对。

实在来不及了,又过了一周,再搞不定,就真没法上线用了。咬咬牙,又拉了个壮丁,叫何老师一起来搞。

何老师是一个骨骼清奇,身躯微胖,脑洞大开大合的程序员。早年和我初识,天天魔兽3单挑,连赢我几个月。然而办公室里面回荡的一直是他的惨叫,天天哭喊着不行了要打不过了,不明真相的群众以为我又虐他。好事者过来张望,何老师一边喊着救命救命,一边指挥部队在我基地中拆迁违章建筑,驱赶采矿农民。

合作多年,对何老师有足够的信任。岔开话题,稍微谈几句,从占用leader的管理精力的维度,我怎么分类程序员。我们把能不能独立工作作为一个维度,需不需指导作为另一个维度,就可以看到有四类程序员。大致分为:不能干活不需要指导,不能干活需要指导,能干活需要指导和能干活不需要指导。

最低级的类别,不能独立工作且不需要指导。这类同学只能给最简单的工作,也没什么潜力,指导的念头都没了。

稍好点的,不能独立工作但需要指导。这类同学已经有不错的能力,但由于时不时需要leader投入一定的关注,而在一个大团队里面,leader的精力永远是团队的瓶颈,所以这类同学有价值,但团队里面如果这类人手太多,项目规模是很难扩大的。

更好点的,是能独立工作但需要指导的。这类人需要有简单的方向指导,就可以交付很好的成果,定期汇报成果,不用太操心做不出来,就是进度上要操心一下。

最好的,就是能独立工作且不需要指导的。你发现团队有啥搞不定,扔过去让他搞定即可。也不用管太多,对他有充分的信心,可以近似认为,如果他也没有搞定,那很有可能这个特性换了谁都没有办法搞定的。

最后一类就是预研的技术终结者,他一出手,要么功能做成,要么彻底失败,再无回旋余地。

何老师就要担任这样一个技术终结者。他做完奇葩的多进程加载,又喊着:不行啊、太难了、搞不定、要被开除、老板饶命啊,勉勉强强接下了烫手的热山芋,一起来开发船和水的互动。

几天内就看见了明显的改善,挑剔的老于也觉得,有希望,这个特性可以有。何老师又继续努力了一周,差不多把这个特性做进了版本,船终于可以在海上航行,随着海浪,一起摇摆。

我也已经记不清具体他是怎么解决问题的,这不就是feature teminator的价值所在。项目中有太多细节需要leader操心,如果有人能让我减少关注,且依然能安全交付feature,我就可以把精力放在更危险的领域,更好的确保版本的安全。

BTW,知道大家又要吐槽航海玩法单调,枯燥乏味,没有好好利用功能。但从这一篇来看,策划也很不容易,航海不仅仅他们的问题,技术层面依然有很多不容易解决的问题,也许值得另外起一个项目单独解决。

The world at your fingertips — 天涯明月刀幕后23(海战)相关推荐

  1. The world at your fingertips — 天涯明月刀幕后24(疏离)

    节奏 断断续续写了半年,发现越到项目中期,能写得内容越多.整个大型项目在我面前缓缓展开,项目中人来人往,时时在发生激动人心的变化.素材清单上还有长长的一堆主题,但我反而不愿意再深入写.回忆最美好的是高 ...

  2. The world at your fingertips — 天涯明月刀幕后(后记)

    终于还是写完了.后半段有点蛇尾.好多技术没展开,好多同事的功劳没写出来.无法展开的原因,是因为整个故事的发展方向,和前几回相比,并没有明显的不同.一次次的测试,就是一波波的轮回,定目标,预研,冲刺,总 ...

  3. 1月23日服务器例行维护更新公告,1月24日服务器例行维护公告(已完成)

    原标题:1月24日服务器例行维护公告(已完成) 亲爱的玩家: 青龙乱舞区.大地飞鹰区.血海飘香区.陌上花开区.天命风流区.沧海云帆区全部服务器将在1月24日6:00~8:00停机维护更新,维护完成后上 ...

  4. AI一分钟 | 马斯克证实:特斯拉私有化的幕后推手是沙特主权基金;DeepMind的AI可以检测出超过50种眼疾...

    ▌谷歌 DeepMind 的 AI 可以检测出超过 50 种威胁视力的眼疾  DeepMind 周一发布了一项研究,显示其在使用人工智能诊断眼部疾病方面取得的进展.该研究发表在自然科学杂志上,该研 ...

  5. 下一个大计算平台? Amazon Echo 研发幕后全揭露

    作为亚马逊打入智能家居并占据入口地位的标志产品,Echo的研发历程一波三折.本文记者采访内部一线人员,得到Echo问世幕后消息:亚马逊最初瞄准AR,不成后转做声控扬声器,Fire Phone的失败让这 ...

  6. 天涯明月刀7月4号服务器维护,7月8日服务器例行维护公告

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 亲爱的玩家: 青龙乱舞区.大地飞鹰区.沧海云帆区.把酒邀月区.边城浪子区全部服务器将在7月8日6:00~10:00停机维护更新,,维护完成后上述各服务器客 ...

  7. 8月28日服务器例行维护公告,天涯明月刀8月28日更新了什么-8月28日更新内容介绍...

    <天涯明月刀>8月28日服务器例行维护公告.<天涯明月刀>8月28日更新了什么呢?小编已经整理好了<天涯明月刀>8月28日更新内容,感兴趣的玩家们就一起来看看这次的 ...

  8. 腾讯互娱技术总监张正:《天涯明月刀》后台技术创新

    9月23日,首届"梦想·匠心"腾讯游戏开发者大会于深圳举行,在技术分论坛上,腾讯互动娱乐<天涯明月刀>项目技术总监张正分享了<天涯明月刀>的后台技术创新.拥 ...

  9. 产品读书《幕后产品:打造突破式产品思维》

    <幕后产品>是前网易云音乐副总裁王诗沐老师结合自己多年的产品实战经验所著.记录了诗沐老师多年的产品心路历程,就像翻开云音乐的评论一样,或感同身受,或遐想翩翩,或豁然开朗.对于云音乐的用户研 ...

最新文章

  1. Android NDK 导出独立工具链
  2. Json入门及基本应用
  3. 杨鹏谈世纪佳缘推荐算法:基于Spark GraphX,弃GBDT和LR用FM
  4. DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能
  5. gj6 深入python的set和dict
  6. spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入...
  7. Uncaught TypeError: Cannot read property ‘clientWidth‘ of null报错
  8. plpgsql语句的兼容性
  9. 【c语言复习笔记】初始c源程序及其数据类型
  10. python xml 解析_python解析xml文件方式(解析、更新、写入)
  11. API接口文档范文-API接口文档示例
  12. 页面中文乱码,tomcat服务器,jsp乱码
  13. 第四章 ARMA模型的特性
  14. 2.2基本共射放大电路的工作原理
  15. 华为云服务器价格表(CPU内存/磁盘/带宽收费标准)
  16. 基于Qt的在线抢答系统
  17. 为什么我们创业失败了和选择创业公司的思考
  18. 淘宝关键字搜索商品-v1
  19. iOS使用GCDSocketManager实现长连接
  20. Python3+Flickrapi爬取图片

热门文章

  1. TensorFlow的新生!
  2. python ipaddress_Python3标准库:ipaddress Internet地址
  3. 机器学习基础-多元线性回归-02
  4. python运行excel高级筛选怎么用_懂点EXCEL就行!教你利用Python做数据筛选(上)...
  5. java解密方法,java加密,解密方法
  6. java——什么是浅表副本
  7. [Lintcode]115. Unique Paths II/[Leetcode]63. Unique Paths II
  8. css调用方式的方法
  9. 第十三节、SURF特征提取算法
  10. Java多线程系列--“基础篇”09之 interrupt()和线程终止方式