The world at your fingertips — 天涯明月刀幕后5(远征)

2017-09-11

https://zhuanlan.zhihu.com/p/29202838

上回聊到技能开发,谈到Demo选方向,谈到临场应变和老于的口才。这次讲讲一个引擎的诞生。

终于立项了。

花开两朵,各表一枝。在技术、策划努力打磨Demo的同时,引擎程序和美术组又在做什么呢?我们把时间倒回第一次Demo之后,看看引擎程序员的挣扎和呐喊。

情愫

第一次评审过后,我从深圳出差回来,Tough哥拉我去角落。

【此处删去86个字】

他开口说:有个事我要和你说哦,你千万不要告诉老于...

我说:哦,没问题。我就觉得你的状态很奇怪,难道…?

他说:是啊是啊,你看出来了?

我说:【此处删去15个字】

Tough哥【此处删去4个字】:不…不是这样的,它…画质不够好…

【此处删去49个字】

我说:【此处删去28个字】

【此处删去26个字】

他又说:还有还有,它特别慢。

【此处删去61个字】

【此处删去22个字】

Tough哥见我理解他,长出一口气,又说:没说过。它很好,真的很好,但…我不喜欢它。

【此处删去111个字】

【此处删去43个字】

Tough哥说:好啊好啊。

一分钟后,Tough哥传过来一张纸条,歪歪扭扭似愁肠百转,力透纸背表坚定决心,写着:【此处删去6个字】,咱们重写渲染模块吧,我已经在家搞了一阵子了。

是的,引擎各方面都很好,但只有一个缺点:我们不喜欢它,每一条备胎都懂这种感受,别管是米其林还是韩泰或锦湖,备胎就是备胎。在阡陌纵横的少年时,有娉娉袅袅的姑娘说:你很好,真的很好,但我不喜欢你。姑娘的率真,刺痛了少年,就像tough哥伤害了那个引擎。

为什么Tough哥如此反感现有的引擎呢?

哀怨

从理性的角度来看,很多对其他产品的吐槽观点是不全面和理性的。在早年开发中,用过各种各样的引擎,01年我们开始玩Unreal引擎,一片铺天盖地的骂声,表示怎么设计的,性能这么差;后来用了Scaleform,表示性能太捉急了,而且flash控件奇缺,对flash支持也不完整。这还算好的,商业软件和引擎,相对易用性还可以。如果用上了公司内部引擎和组件,更是一通狂喷。同行的产品,自然相轻,若是同司的产品,定要相残,方见优越感。

大型软件和引擎,有各种考虑和折衷,很难在方方面面做到完美。我们不能过于以偏概全,就像不能因为老于口才好,就忽视他凶残的本性,但也不能因为老于对团队压榨,忽视他在工作之余带着大家到处吃喝,老于是一个矛盾的人,就如引擎是一个复杂的整体。

喷归喷,喷完以后还是该怎么用怎么用,时间够的项目就做点底层引擎和组件的优化,时间不够的也就只能忍下这个气。

客观来说,当时所用的引擎,也不是没有优点的。而且我一直是一个单纯善良且不怎么会吐槽的人,含蓄内敛是我的优点。所以我仔细想了一下它的优点:

· 命名特别规范,体现了开发者良好的职业素养。复杂的前缀,严谨的层次结果,极大增加了编程的击键数,为键盘老化、机械键盘普及立下功劳。

· 源码文件排版特别整齐,体现了开发者良好的审美能力。

· 层层封装,特别严谨,层数多且深,将学术光辉普照进幽深阴暗的角落。就像商品包装,别管有用没用,先包个十层八层,送人自然体面过人。

· 架构系出名门,古老传承,不为潮流所动,不被产业界浊流污染,不向世俗的CPU/GPU架构低头,横眉笑对批评,体现了开发团队良好的心理素质。

· 和Intel/Nvidia形成了典范的合作,推进硬件行业发展,上回也提过,小小场景的demo用到i7和GTX260也不顺畅。孔子曰:Andy & Jen-Hsun gives, engine takes away.(注:原文应为Andy gives, Bill takes away,形容wintel联盟中,Intel老板不停制造出更快的CPU,但微软老板用新的操作系统用尽性能,此处形容Intel和Nvidia老板提供计算能力,这个引擎浪费性能)

· 环保节能,在多核时代,不用足CPU潜力,单核渲染。但考虑到程序员出去交流,如果说做了个单线程的游戏,会没面子,就假装放一个多线程task框架。但随即考虑到多线程,耗电过高,会对地球可持续发展有影响,又在Lock free库中暗藏bug(见第三回),让开发者经常遇到随机crash,阻止开发者使用多线程架构,可谓良苦用心。

· 渲染技术经典,古老,源远流长,不支持现代特性,最大程度为程序员减负,不用学新东西,将就用用吧。

· 支持体系官僚。友好、热情、积极、体面,但不解决问题。

· 重定义了引擎的概念,原来没有完善工具链,也可以称自己为引擎。

你看,这么多显著优点,难怪Tough哥大怒。

引擎工作量巨大,从头写一个引擎也让人觉得无从下手。要如何开始呢?

启动

和老于沟通是启动整个工作的关键,虽然Tough哥很犹豫,但老于的地盘,老于做主。

要强调的是,其实我们团队一开始并没有下决心把引擎全部重写,项目顺利进展才是王道。所以和老于的沟通毫不费力,我们提到Tough哥有点想法,打算重构渲染模块,原有引擎渲染效果和性能都不行。老于将信将疑,却又给出明确说法:性能的确要增强,但不要花太多精力在渲染上,咱们只要和隔壁某竞品差不多就好了,还是专注在玩法上面吧,反正画面只能在前面20分钟吸引玩家,后面还是要靠玩法的。

这个说法本身是没有什么错,争辩无益,不是不能接受,只是不愿服输,外加争辩不过老于。我们尽力在手头资源情况下,做好渲染和底层一些框架的重构,务实推动起变化,比说什么豪言壮语都强。

这是一个不期而遇的远征,在每个人都没有准备好之前,我们就被拖入了引擎开发的泥沼,越陷越深,投入了海量的资源。高峰时期引擎开发组核心人员有8-9名资深开发者,人数虽不多但个个精锐,估计加起来一百年的开发经验总是有的。

引擎开发贯穿了天刀研发始终,下一回我适当打乱一下时间线,把引擎开发的一些原则和概览提一下,也看看我们做对了什么,做错了什么。

假装是正文内容的小广告

过去两年,断断续续写了好多系列文章,聊过远程合作项目不好做,谈到AAA项目容易垮,讲过个人技术发展怎么走,也回忆了一阵子天刀幕后是怎么做的,感谢大家一直的支持。

从主机游戏,到网游,到手游,到独立游戏,游戏类型的变迁令人目不暇接。在浮躁的年代,做一个让自己满意的游戏,却越来越难。

想不想和非典型程序员一起工作,和段子手一起搞垮项目,尝试surprising-driven development,在浮躁的商业化游戏市场做点情怀向的AAA游戏?我们也许没把握能做出最好的游戏,但我们勇于尝试,外面的世界很大很精彩,我们一起去看看?

寻找志同道合的Senior Creative Director,希望那个你,能有数年主机游戏开发经验,有良好的技术理解力,参与过大型AAA项目开发,有想法,有技术,能力多样全面,视野广阔无边。有能力,不自傲,谦虚好学。

寻找稀缺珍贵的Senior Technical Artist,我们懂得你的价值,你不是程序,不是美术,却能架起双方沟通的桥梁。希望那个你,会用高端引擎,做过几年主机开发,技术理解出色,参与过大型AAA项目。有能力,不自傲,擅长沟通和协作。

这不是北极光在招聘,不是天刀在招聘,但同样来自腾讯另一支高端端游开发团队,多年CryEngine开发经验。但这次我们想挑战UE4开发。

有意者请私信,我们在魔都等你。

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多