前几天的发布会上,腾讯在新增的技术探索环节,放出了《天涯明月刀》(下称天刀)的技术Demo演示。在这个短短56秒的视频被上传到B站后,许多弹幕的反应都相当一致——这是真的吗?不是画大饼?
https://v.qq.com/x/page/t3247mv0s9l.html
这种疑问不难理解,毕竟视频中展现出的视觉效果,在国内产品中几乎是不存在的。这种实体扫描的高精度已经很考验性能了,再加上基于光追的动态全局光照——注意,是动态——每一秒要渲染的计算量,放到电影制作中几乎都能耗费一整天时间。换句话说,这简直是要让引擎吃草挤血。
想把这种画面大规模适配到游戏中,和做一段CG要花的力气可是天差地别。其背后的投入之巨大、过程之艰难,可能比拍摄顶级大片还不遑多让。
如今,腾讯显然已经把技术研究放到了游戏业务的第一位。在种种选择下,天刀是怎么做的,又经历过什么?最近,葡萄君和腾讯游戏北极光工作室群客户端技术总监安柏霖聊了聊。在采访中,他解释了Demo中的核心难点,以及天刀项目组技术迭代的历程、技术选型与思路的改变。
以下是经过整理的采访内容(与群访内容有所整合):
水面上的影视化「招式」,与支撑它们的「内功」
葡萄君:这次的技术Demo用到了哪些技术?你们想通过它展示什么?
安柏霖:这次的Demo,是为云上之城这张地图准备的。天刀基于我们自研的游戏引擎QuickSilverX开发,在这次技术更新之后,游戏品质进一步影视化。
我们可以把这个视频想象成一座冰山——分为水面以上和水面以下。水面以上有三种技术,从画面中就能看出来:基于光线追踪的动态全局光照、影视级光照模型、实体物件扫描。
葡萄君:这些技术,都是为了让画面看起来更真实吗?
安柏霖:是的,我们相当于在把电影做成游戏。但在这方面,当前游戏行业制作方式体系性普遍还不强。而影视方面已经沉淀得非常好了,我们就是按电影制作的方式来思考这个问题的:因此这些技术不是独立的几项,而是一整套——从研发技术到制作体系,再到思考问题的方式,我们全都换成了影视制作的思路。
葡萄君:这个影视制作标准怎么理解,难度大吗?
安柏霖:还可以。比如之前制作一个物件,就是在引擎里某个场景看看是不是够好,这是一个普通的、不够标准化的流程。什么叫标准化?比如我要做一个石灯台,原画要先列出材质、破损度等描述,并且找到一个参照,再交给美术制作。
做完之后,美术还要截出三种标准光照环境下的图片——晴天、阴天和室内,再附上参考图交由leader审核。这个过程的学名叫LookDev。有些少数特别牛的人可能不需要这个流程也能做好,但如果想让一支美术团队快速稳定地做好这件事,就需要有这样的流程。
LookDev开发过程
这个过程有点像做化学实验。比如我们会在室外放一个水泥质感的灰球、一个镜面质感的镉球,用相机捕捉不同材质物体的光照来对比,还挺有意思的。
葡萄君:为什么非要用电影的方式做?游戏制作的技术,应该也能做到这种写实效果吧?
安柏霖:注意,写实与真实是两回事。写实是一种风格,真实是让玩家和观众感觉到,这个东西虽然是夸张的、艺术化处理的,但不违和。比如卡梅隆拍的《战斗天使阿丽塔》,角色一看就是艺术化风格,但感觉和现实不违和,融合得很好。人眼是敏感的,稍微有点不对劲就会感觉失真。怎么做到真实?这里电影已经做到炉火纯青,我们游戏就也要确保,每个环节都和拍电影一模一样。
《战斗天使阿丽塔》剧照
葡萄君:怎么个一样法?
安柏霖:可以用影视级光照模型举个例子。在目前能玩到的产品中,可能只有《使命召唤》的模型比较接近影视级,其他基本都是游戏光照模型。
从流程来讲,比如我们的美术在制作物件时,会和参照反复对比。这里有一个概念:Turntable——一个旋转的桌子。比如说威尔史密斯演的《双子杀手》,里面有些摩托车的特技镜头就是渲染出来的。怎么做呢?把摩托车360°旋转,对比建模和真实物体的一致程度,抠得非常非常细,这就是电影做法。
《双子杀手》剧照
我们的美术也这样做,但都做不到我们满意的效果,我们做了很多研究、刷了大量论文之后,发现是底层光照模型的问题,用它做不出影视级的真实感。最后我们发现arnold渲染器是比较好的(它曾经被用于《冰与火之歌》的CG制作),使用了类似arnold渲染器的光照模型,才得到比较好的效果。
那时典型的范例是这样的:
图中三排分别是照片、离线渲染器和QuickSilverX引擎的实时渲染结果
葡萄君:这些技术难实现吗?
安柏霖:这三项技术在市场上的游戏中不多见,但并不是因为技术本身难以实现,它们在影视行业里已经存在很多年了。
电影级的渲染技术成熟到什么程度?举个例子,在20年前有一部电影叫《珍珠港》,里面有大量的飞机镜头,后来我看了论文才知道,那些都是用CG渲染的。所以真假难辨这一点,在技术上早就不是问题了。
《珍珠港》剧照
葡萄君:那技术升级的核心难点在哪?
安柏霖:我们内部有一句话:游戏画面技术的核心问题就是性能问题。游戏画面属于实时图形学领域——电影渲染一帧画面,可能会用几个小时甚至一天;但在游戏里,要在一秒钟以内渲染60帧画面。所以真正的难点就是,怎么把耗费如此之高的技术撑起来。
这就是水面下支撑着冰山的部分。换句话讲,前面那些技术都是招式,但打出来靠的是内功。
葡萄君:优化性能这件事,花了你们多大功夫?
安柏霖:我说一个天刀手游的开发资源分布,来让大家更好地体会:天刀手游所有的画面特效,都是我们团队里90后的小朋友做的。那些技术力高N倍的老司机,他们全都在围绕性能做架构调整、算法优化,最后才能让这么多高精度资源、图形特性在画面里显示出来。
其实QuickSilverX引擎本身的名字也在说明这个问题——它指的是《X-man》里的快银。之所以起这个名字,就是基于我们对于实时图形学核心问题的认知。
快银具有高速思考、高速移动的能力
葡萄君:抛开名字,引擎本身的特性应该才是重点?
安柏霖:是的。各种优化的本质,用一句话讲,就是引擎要有一个核心的擅长点,我们内部讲叫垂类专业引擎。
比如《刺客信条》主打攀爬。你在手柄上傻按,角色就在主城里上下翻飞、跟人猿泰山似的,给玩家一种如此流畅的感觉。为什么能做到?因为它的引擎围绕攀爬这块做了系统级的工作。
再比如《彩虹六号》主打破坏。它做破坏这件事,是不是有个破坏系统?不是,是深入到系统的每一块。打个比方,如果我是参加百米赛跑的运动员,那我身上每一块肌肉都要为短跑做准备,不能练多余的肌肉,也不能有任何赘肉。
而QuickSilverX主打的就是性能。我们在每一个模块都要做出最大的优化,以此获得极大的性能优势,然后才能把省下来的计算量,投入到画面表现中来。
葡萄君:这会让它和一般的商业引擎有多大差别?
安柏霖:在天刀里,你就能看到非常明显的差别:我们能做到在超大地图里,让几百个高精度的角色同屏团战。
地图大小、角色精度、同屏数量,这三点是互相矛盾的。就好比给你一百块钱要你做一顿晚餐,不仅肉要好、菜要好,连餐具都要好——那你得把一百块用成两百块:这就是引擎的性能核心要做的事情。有这样的性能打基础,我们才能承受住影视级的画面表现。
葡萄君:这样看来,引擎在高品质研发中的地位相当关键。
安柏霖:是的,是非常关键的一点。未来我们会有一种趋势:头部团队在垂直领域持续深耕,从而涌现出更多垂直领域的专业引擎。
我之前在育碧工作,亲身经历了国外的发展过程。全行业熟悉通用的商业引擎之后,头部厂商想做出优势,就要在垂直领域纵深挖掘、长期积累。像《战神》《美国末日》都有大量系统,是历经10年级别时长演化出来的,而商业引擎的面向大盘的通用化设计思路,以及换代后会冲掉团队积累的特点,决定了它最终无法做到专业引擎的高度。
所以我们看到《GTA》《使命召唤》《对马岛之魂》等高品质大作,都出自各个头部厂商的自研专业引擎。EA、Activision、育碧等头部厂商,也无一例外使用自研专业引擎。自研专业引擎,可以说是游戏开发商技术实力的关键体现。
「最快的进步方式,就是和真正的高手过招」
葡萄君:性能优化这件事,对你们来说过程会痛苦吗?
安柏霖:说起来会带点鸡汤味儿,但我们觉得做性能优化是一件挺high的事儿。有时会有压力,但你问我们愿不愿意再做一遍,我们还是愿意。
葡萄君:但也很容易遇到瓶颈吧?就像摩尔定律有上限一样,算法也会有优化的极限。
安柏霖:至少目前没遇到,因为这个行业在过去十年发展很快,比如图形APl directX11、12上线,都带来许多底层变化;近年来以光追技术为代表,又有一大波技术升级。而我们在这种技术浪潮中,是要不停调整、拥抱新技术变化的,上限可能永远都摸不到。
葡萄君:你们会热衷于追逐技术浪潮吗?
安柏霖:不能简单地说“是”还是“不是”,因为游戏行业里就有很多舍本逐末的反例,追新技术导致产品研发和品质出现问题,这是我们坚决反对的。
新技术我们当然喜欢——我们团队作为发烧友会第一时间研究,基本一两个小时内,群里就开始转发、讨论。比如最近刚出的《地铁逃离》加强版,有当前行业里最好的光线追踪实现,这个出来之后,团队很快就分析得八九不离十了。
但赶潮流其实是我们团队的第二属性,务实才是第一属性——我们不会赶对产品品质缺乏帮助的潮流。
葡萄君:那你们赶过什么潮流?
安柏霖:DX12、光追技术、基于深度学习的超采样技术(DLSS)等等。
像之前DX12上线,在引擎中整个旋转体都要换一种想法去做。渲染模块底层重写倒不至于,但至少50-60%的模块都做了巨大规模的调整。到了这里,就要拼你对新一套技术的理解有多深刻、对原有引擎的驾驭能力有多强,以及编程功底有多扎实。
当时NVIDIA告诉我们,我们就第一时间去升级,让天刀在几个月内,成为了国内市场上第一个上线DX12的游戏。而且是从DX9直接跳到DX12,这个幅度和速度,连NVIDIA都非常吃惊。
葡萄君:当时行业里普遍用的是什么版本?
安柏霖:DX11居多。所以我们当时面临2个选择:要么跟大部分游戏一样,升级到DX11;要么挑战一下更艰难的,直接升级到DX12。最后我们选择面向未来。
葡萄君:既然艰难,为什么还要这么决定?
安柏霖:这就要说到《无限法则》的经历了。谈《无限法则》开发和谈天刀开发是一样的,因为我们都是一帮人,引擎也是同一个。
《无限法则》的Steam页面,评测数超过9.5万
当时《无限法则》在Steam平台上线,本来我们的期望可能没那么高,不至于和一些大作比谁更牛。但上线之后,国外玩家的要求一点不低,他上来就拿你跟《使命召唤》《战地》比,然后打差评、说手感不对。
葡萄君:手感怎么不对?
安柏霖:我们问了组里一些策划和网上的主播,他们都没反应出来。测来测去才发现,是从鼠标按下去到开枪之间的响应,差了3毫秒。
葡萄君:这届玩家真的很严格。
安柏霖:是的,这就好比我从二三线城市到上海开一个小馆子,也没想着做那么高端,但来的人却是每天吃高端日料的那种。但是有反馈肯定就要想办法弥补,让他们把差评转成好评。怎么办呢?我们就要快速进化,必须做到和《使命召唤》《战地》一样好。
葡萄君:那你们是怎么复盘这个经历的?
安柏霖:这是一个至关重要的学习机会,也给我们团队带来了一次质变。我们内部总结,包括Ethan(腾讯游戏北极光工作室群总裁于海鹏)在战略大会上也有过这样的总结:什么是最快的进步方式?就是和真正的高手过招。
就像看职业篮球赛一样,在场下看觉得也还行吧,但当你上场跟选手对线,就会发现差距是真的大。而就是在这种过程中,我们从根本上改变了团队意识、重新定义了目标。后来我们再谈到水平,根本不会说做出来在国内是什么段位,直接就拉到全世界的高度。
在这样的大环境下,想和世界级头部选手拼,就得有多大劲儿使多大劲儿,总是follow是跟不上的。所以以前天刀2015年刚上线的时候,我们的整体思路是在技术选型上避免有短板。比如运行效率、低配支持更好,以此获得更多用户。但最近一两年,我们开始强调长板理论——即使十个方面有六七个都不如《战地》,你总得跟玩家表达出来:我还有一两个比他好呢。
葡萄君:这种改变,对天刀的影响是不是很大?
安柏霖:有一种潜移默化的影响。之前大家总会顾虑这样那样的问题,但之后团队对一些事能不能做、该不该做,阈值提升了一大截。我们说的话变成了:“这个东西能不能「炸出来」呀?”也就是能不能炸裂。不炸裂、不给力,那就不行。
我们还会让不了解技术细节的美术来提意见,因为技术人员知道一件事的边界,容易被限制住。但美术不知道,就会说“这跟原来没啥不一样啊?要有明显区别才行!”有时他们提出了理论上可行,但很难完成的挑战,我们也尽量想各种办法完成,技术上做不到就用别的方法弥补。
葡萄君:让美术给技术提需求,还挺少见的。
安柏霖:美术也会想很多办法,比如技术Demo里房檐上滴水的镜头,我们用光照的纯技术手段做出第一版后,水珠会莫名其妙地往下滴,美术看到后就说,水哪来的?这样的视觉效果不符合逻辑。最后他费了老大劲,做了一个贴着房檐往下流水的效果。
葡萄君:我看你在知乎上提到过,天刀曾经在六个月内有非常大的变化。除了技术移植之外,可能也是因为有这样的影响,更敢放开手脚了吧?
安柏霖:是的,而且在这个过程中也建立了自信。一开始我们跟高端产品对线,有种别人在研发高铁,我们在研发内燃机车的感觉。但后来我们开始升级DX12、动态GI,NVIDIA会经常和我们进行技术交流,我们的技术成果也得到了他们较高的评价。
这种事情接二连三发生之后,我们发现自己实力真的也不差——对比市面上的大作,我们有些技术水平至少是不输的。
向着「震撼」前行
葡萄君:你觉得对技术人员来说,除了提升实力,还有什么点比较重要?
安柏霖:做开发人员,创作冲动是极其重要的。之前我随队去澳大利亚旅游,那里的气候和风景让人心旷神怡,也给我一种冲动,想在游戏里把这些东西做出来。包括这次云上之城的地图,我们也有一个愿景:把张家界搬到游戏里。
葡萄君:这一点挺有趣的,我还以为技术人员不会太关注创作。
安柏霖:我提到过一本书:《程序员的思维修炼》,里面有一个观点是这样的:程序员可以大致分为初级、中级、高级、大师级。到了大师级,他的行为和思考方式会变得像艺术一样。
当记忆熟练到一定程度,思维就会固化到大脑里,从左脑推理变成右脑思考,速度特别快。因为左脑是CPU,右脑是GPU。这时你的行为模式会很像艺术,当然,做的事情还是写代码,但会跟美术高度相通。
葡萄君:你现在是什么样的状态?
安柏霖:可以这样描述:思考算法和架构,对我来讲是一件非常惬意的事情。我始终在大量写程序,这对我来讲,就像吃饭说话一样非常自然,也经常能进入一种“无我”的状态。甚至在看现实世界时也会有不同,比如看到人们坐在会议室里,我的脑中就会反映出,他们的头发如何反射光照、光照在皮肤里如何传播……有一种和技术进一步融合的感觉。
这也让我在玩游戏时,会比一般玩家多一层快乐,因为我能欣赏到额外的美。像是一个厨师品菜,除了味道还能品出手法的精妙。我们团队的状态也比较相似——我们在研发的过程中,不是那种敲锣打鼓、猛刚猛干的风格,更多是沉浸地思考与开发。
葡萄君:我看你们团队状态也挺不错的,你在知乎上还发了团建照片,都是非常朝气的年轻人。
安柏霖:仔细看看你会发现,我文章里最多的关键词是「Hardcore」。若干年前,我们团队里的肥宅是比较多的,但以Hardcore的态度来说,任何事都要做到用专业角度看待。
在知乎主页上,安柏霖自称为HardcoreDeveloper
我们内部有一个观点:要看清一件事的导数。导数的定义不知道你还记不记得,就是函数曲线在某一点的变化率。不同因素会有不同的变化和影响,比如好的项目比好的技术更重要,因为好项目能带来好技术,是更高维度的一种资源。
当维度不断往上推,就会体现在人的智商层面。我们觉得最高维度的资源有三个:智商、文化、体魄——也就是健康。文化决定你做一件事是high还是不high,决定你觉得一件事是奖励还是惩罚。
有一段时间我们就在讨论体魄的问题,研究来研究去,我们觉得锻炼这件事也得专业啊!后来团队里体能好、身材好的人就多起来了。我们内部有一个机器人,下午三点半和晚上的时候,如果你在公司,它就会提醒你去锻炼。
葡萄君:你希望团队有什么样的目标和气质?
安柏霖:我在知乎上发过招聘贴,我们团队有一个非常清晰的愿景:要把那种极强的震撼带给玩家。我们团队里老中青三代,现在00后都开始实习了,我收集过一个信息:什么作品震撼过你?
小一点的同学,他们觉得《指环王》《阿凡达》特别牛逼。我们80后这代人,普遍得分比较高的是《终结者2》。那个在当年给我震得……那时候我就十岁,有一天看了《终结者2》,让我感觉这个世界很神奇,有一种被启发、被Inspire的震撼。
我们选出来这些作品,就是想把这种感受带给玩家。一定程度上,我们想做的其实超越了画面本身,因为那是大家容易get到的点。在动画、物理等等方面,我们都希望能带来这种震撼。
所以包括这次技术升级,我们也不是奔着影视去,而是奔着震撼去的。
葡萄君:有种传承的感觉,有人被好作品震撼到,就自然会想用自己的作品震撼别人。
安柏霖:是的,而且震撼的背后往往伴随着极强的技术背景。我们80后受《Doom启示录》的影响比较深,后面的人可能不太知道。我们组内比较流行的一本书叫《创新者》,讲的是在计算机还只有雏形的年代,有一群理想主义的人,他们一边狂热地研究着计算机,一边还写出了《弗兰肯斯坦》那种科幻小说,一路发展到现在这么发达的互联网行业。
这些人通过技术,完完全全改变了世界。包括《Doom启示录》的作者卡马克也深受《黑客》影响。做技术对我们来讲,本质上不是一种负担,如果项目不是很紧,其实是一种享受。
我们可以想象一下,未来我们可能生活在虚拟世界里面,这个世界从哪来?可能就是一代代游戏人,抱着这种想创造震撼的心,你震一下我震一下,震了20年,世界就被改变了。
北极光工作室群各大岗位持续招聘中,点击此处(https://zhuanlan.zhihu.com/p/109943808)查看招聘信息。