游戏快报

我们和米哈游技术总监弋振中聊了聊《原神》在PS5上的技术追求

我们和米哈游技术总监弋振中聊了聊《原神》在PS5上的技术追求

上线不到9个月的《原神》,没有放慢奔跑的脚步。 

前不久,米哈游推出了《原神》的PS5版本,这款产品也成了国内第一批登录PS5的游戏。根据官方公开的信息,《原神》主机团队基于Unity引擎针对PS5的机能开发了游戏的图形库、定制了文件加载系统等,使得游戏能够在稳定性、画面精度、表现力等方面再次拔高水准。

1.jpg

值得注意的是,去年11月米哈游技术总监弋振中曾分享,在游戏上线一年半之前, 主机平台的开发仅有弋振中一人从零开始攻坚,但最终《原神》实现了PC、主机、移动多端同时上线的目标。而按照上线后开始筹备算起(事实上可能更早),PS4到PS5版本的跨越仅经历了8个月左右的时间。 

近期的一次采访中,弋振中告诉葡萄君,能够实现这个速度,一方面得益于整个项目的技术积累、团队配合还有Unity官方技术团队的大力支持,另一方面也需要针对开放世界跨平台的命题,建立合理的制作思路和流程。

目前市场上,多端正在成为更多国内厂商的讨论话题,甚至有不少大体量产品已经在制定类似原神的跨平台策略。与此同时,如Unity的商业引擎也在不断跟进跨平台开发和次世代主机的技术趋势,包括针对Xbox Series X和PS5平台的开发。

据了解Unity最新版本已经支持如SSD、DualSense控制器、高级视频模式等次世代主机新功能。此外,Unity也在与索尼积极合作,计划将更多PS5新功能添加到下一个Unity版本,比如光线追踪、虚拟纹理,共享二进制包等。而且得益于游戏引擎跟次世代主机平台的同步开发,如米哈游等厂商,也能更顺利地在第一时间发布次世代主机的游戏。 

当然除了满足用户和项目的追求,弋振中还透露,支持次世代主机对米哈游还有另一层意义:与最新的技术发展趋势接轨。如今,跨过这一门槛的《原神》,已经进入开发的奔跑期。

开放世界拼的是「技术全面性」

葡萄君:你是怎么进入游戏行业的? 

弋振中:我大学时比较喜欢玩游戏,大三的时候大家都在准备考研,而我看了一本叫做《Doom启示录》的书,讲的是关于John Carmack(id Software联合创始人、编程大神)的故事,这让我觉得做游戏很酷,于是开始学习游戏编程。

研究生毕业之后,我到了育碧上海,当时加入了《End War》(末日战争,Xbox 360/PS3/PC)的项目,算是正式进入游戏行业。后来辗转加州的Zindagi Games、纽约的Avalanche Studios,以及西雅图的微软Xbox,2019年才回到国内。

葡萄君:回国以后为什么选择了米哈游?

弋振中:之前的工作都是在积累技术,在微软那段工作时间的后半段,因为职业规划微软给我进行了研发负责人的培训,培训之后就是带项目,不过在微软节奏慢一些,所以还没带过团队。不过技术、经验方面的积累已经够了。

那时候觉得,如果有自己的团队,或许能让自己的能力放大,对项目的贡献更高。然后在跟国内朋友的交流里,我感到国内游戏行业在不断地变大,而且在国外也能时不时听到国内公司的声音。所以基于个人事业上面的考虑就决定回国发展。

不过在这之前我都没关注过米哈游,是朋友介绍才认识的。但接触之后发现,一方面技术同事很踏实,而且很有激情,另一方面创始人蔡浩宇的个人魅力很强,有眼光、有魄力,所以聊完以后,我对米哈游的印象立刻变得很好。 

葡萄君:聊过几次以后决定加入米哈游的?

弋振中:两三次,基本一拍即合。我也特别感谢公司的信任,毕竟把这么大项目的主机开发交给我这种没有带团队经验的人。

葡萄君:你加入米哈游到《原神》上线只间隔一年半,要从头把主机版做出来,这个挑战有多大?

弋振中时间确实紧,而且我们对质量的要求也比较高。但我们也有一个清晰的认识「不可能一步登天」,所以必须在力所能及的范围之内追求更好,总体上压力确实大。

策略上讲,一开始的时候,我们的目标集中在几个方面:第一,先把环境搭起来;第二,让游戏跑起来,除了要验证自己的游戏新加的功能,另外还要准备后面的ChinaJoy、TGS等等会展的内容;第三,组建团队,因为不可能只靠我一个人来做这件事。

定好思路以后,就需要对项目各个方面了解清楚,快速制定一个规划,再往后就是按部就班根据现有的资源制定优先级,一步步去完成每个版块的目标。 

葡萄君:当时你对主机版的预期有多高?

弋振中:从纯技术角度,不考虑市场和其他因素来说,我们的目标是达到平均水平以上的质量。说实话,《原神》的美术和各方面的表现都挺不错,所以不希望主机版做出来以后在主机平台上的表现拖后腿,所以更多想把一些好的东西融入进来,从而拔高游戏品质。

2.jpg

葡萄君:刚开始搭建底层环境的时候,只有你一个人。

弋振中:是的。

葡萄君:你更倾向于招什么画像的人才?

弋振中:对一个技术人员,第一看重的是基本功。我们并不强求招多少年经验的人,更多看你的工作经验和你表现出来的能力是不是能够匹配,以及你表现出来的能力,是不是能够和我们的团队契合,满足我们的日常开发,当然有经验更好啦。

另外,对于游戏技术的热情和对游戏的热情也很重要,我们非常欢迎来自全球的开发人员,我们团队氛围非常棒,大家都热爱游戏开发,愿意互相学习,希望有更多的新鲜血液能加入我们。 

葡萄君:不断有人加进来以后,大家在不同阶段怎么配合? 

弋振中:团队搭建是个持续化的过程,人越多,想做的越多,就会永远处于「发现有更多事情要去做」的状态,所以一个人也要跑、十个人也得有十个人的做法。具体方式每个公司都会有自己的风格,从我们内部来说,就是一个优先级和配合的问题。 

经过考察以后,我制定了路线图,会把游戏阶段性的目标、我们现有的资源和时间,以及能实现的功能和内容列出来,排好优先级,由高到低去做。这时候人员、资源、任务都会不断加进来,那么就把没有资源的任务,排到相对靠后的节点去做。

葡萄君:属于偏传统3A游戏的模式? 

弋振中:严格来说算是米哈游独有的风格吧。

葡萄君:现在团队扩大以后,你自己的工作范畴有哪些变化?

弋振中:这涉及角色转换的问题,我不再是一个单纯的开发人员,尤其团队规模大了之后,一个人要扮演多个角色。 

首先,还是要写代码;其次,我也会和美术团队做沟通,来提升和监控美术的品质;再次,我还会和其他的团队做沟通,因为我要负责监控整个主机平台各方面的综合品质;最后还会兼顾一些别的角色,比如像现在这种采访,这也是一个新的角色。 

虽然事情会变多,但扮演不同角色会获得不同的视野,从不同的角度看待这个项目,对我个人来说也是一种提升。

葡萄君:技术团队和其他团队之间怎么保证配合流畅?

弋振中:首先,感谢一下项目的各个团队,大家都非常配合我们。本来像《原神》这种多平台的项目,游戏规模比较大,开发压力也很大,而针对主机平台的开发,相当于额外增加了很多工作量。 

而且我这个人要求比较多,不停去建议能不能改这个,能不能改那个,但他们都很配合。所以换句话说,「凡是能够提升游戏品质的东西,大家都很愿意配合」的意识,是团队之间高效配合的一个关键点。

3.jpg

其次,我们很多沟通都是通过一个标准化、流程化的方式来进行的,这样能够大幅度减少沟通上的成本。《原神》的团队规模很大,要做的东西很多,所以不可能每一件事情都当成特例来跟大家讨论,那么这些部分的问题,就尽量做到标准化、流程化。 

比如不管是美术还是技术,要实现一个想法,都需要提出一个需求,然后经过审核、评估、技术验证、实现,最后验收。这套流程也会随着游戏规模越来越大、团队越来越复杂,而不断地进化。

最后,PM团队,他们是非常厉害的一帮人,他们在这中间会起到团队管理,帮助大家改善团队交流的角色。

「多平台思维」将越来越重要

葡萄君:跨平台开发会遇到哪些典型的困难?

弋振中:对于一个跨平台项目,你在做很多东西的时候,都要有一个跨平台的思想。

首先,看待项目开发的出发点,都要以跨平台的角度去考虑。比如加一个功能,不是单纯加一个东西、加一个feature进去,因为一旦涉及多平台之后,开发的复杂度会成倍数地增加。

其次,除了做决策要考虑更多以外,后期也不能单纯依靠人力来验收。自动化配套的验收机制也要跟上,这方面我们也是出于不停学习、成长的过程中。

葡萄君:大家都觉得做开放世界很难,从技术角度来说,具体难在哪儿?

弋振中:开放世界对技术全面性的要求更高,取巧的点更少。因为在玩法上,游戏没办法限制玩家如何去玩这个游戏,它不像一些传统游戏,可以用取巧的模式去做,比如知道玩家到不了某些区域,那么资源上就可以节省,但开放世界就没法这么限制。

葡萄君:每个地方都要雕琢,所以才叫做技术的全面性。

弋振中:对,他的自由度会导致你必须考虑到更多的情况,然后因为不能取巧,所以开放世界需要的技术点,其实都摆的很明显。那么要做开放世界,首先就必须把该解决的问题全部解决;其次对我们来说,因为要走长线运营的模式,所以必须持续不断地给游戏做提升,给技术做迭代。

4.jpg

葡萄君:举个例子来说,当你面对一个技术点的时候怎么思考它的全面性?

弋振中:比如说我们对游戏光影的改造,就像我之前分享的时候说,我们在主机上面相当于把整套光影重新写了一遍。光影的改造一方面是技术的改造,一方面也是需要资源配合,这就涉及到多平台的东西。 

手机端也是需要有改造的,不过采取的技术路线和主机不一样,但是制作资源的时候我们会尽量让多平台使用同一套资源,这些资源应该怎么样能够通过我们各种各样的配置、策略,来满足不同平台、不同技术对他的需求。这就是我们要思考的方向。 

葡萄君:所有内容的制作都需要优先考虑多平台的问题吗?

弋振中:应该说技术实现层面、游戏资源制作层面要更多的去考虑多平台的差异性,在玩法上我们要保持一致性。比如要做一个玩法,那么玩法不太需要考虑多平台的问题,但要制作一些其他的素材,可能就得考虑,尤其是单纯的画面表现相关的资源。而重要的是在开发初期就要统一大家的多平台思维,避免后期因为意见差异导致制作出问题。

葡萄君:这是主机版技术团队和其他所有开发成员都要具备的思维?

弋振中:对,所有的人都需要具备多平台的思维。而且今后跨的平台会越来越多,多平台思维的重要性也会越来越高。

葡萄君:多平台思维会影响你们在立项时对引擎的选择吗?

弋振中:会,Unity的跨平台做得挺好,因为它对平台的支持很全面。Unity也是一个很灵活的引擎,不管是应用层面的灵活性还是底层的架构方面的清晰简洁,都是能够极大提升我们开发效率。这些方面都是我们在评估一个引擎的时候会去重点考虑的。同时,Unity团队对我们的支持也非常积极。

葡萄君:这次《原神》推出PS5版本对整个团队来说有多重要?

弋振中:从开发的角度讲,增加一个新的平台,首先是增大了工作量,但除此之外,对开发者来说,借助这件事我们能更好地跟进游戏技术的发展趋势。因为,大量的海外游戏开发人才主要的工作平台还是主机,很多技术的迭代、发展、演化也出现在主机平台上。《原神》跟次世代主机平台接轨,对于我们今后更新技术、发展技术都有很大帮助。

5.jpg

葡萄君:PS5版大概筹备了多久? 

弋振中:在《原神》上线以后,我们第一时间是修复了暴露出来的一些比较紧急的问题,版本稳定后我们就开始进行PS5的开发了。不过内部很早就决定要上PS5,整体也是一个逐渐规划的过程。

葡萄君:相比PS4版本的开发,做PS5版本思路和挑战有什么不同?

弋振中:PS4到PS5的普遍挑战是,如何更好地理解硬件,把它的特别性发挥出来,这也是我们长期规划上的命题。

对《原神》自身来讲,内容制作上没有特别大的不同,但是从开发的角度来说,由于完全由我们自己来实现跨平台,所以稳定性和完成度测试会更严谨,工作量也会更大,毕竟要确保它在面对玩家时是可玩的、不会因为各种Bug影响体验。

葡萄君:简单讲讲《原神》从PS4到PS5的开发过程吧。

弋振中:PS5的硬件为体验《原神》提供了一个理想的平台,这也是为什么我们想要尽快将PS5版本带给玩家。PS4版本稳定以后,一部分同时会继续跟进现有的版本做迭代、开发、优化,提升稳定性,另外几个同事跟我一起转到PS5版本的开发。

第一步是把游戏在PS5上的框架搭建起来,我们完整实现了游戏对PS5平台的支持,包括重做图形库、定制文件加载系统。

第二步,更多开发成员会加入进来,针对PS5做大量的工作,包括大家看到的4K画质、加载时间、细节表现、LOD和贴图,以及一些特效的实现和针对PSN新功能的适配等等。

6.jpg

葡萄君:重做图形库的工作量具体有多大?

弋振中:开发的工作量确实不小。PS5的图形库和大家比较熟知的DX12、Vulkan相比更加底层,技术上除了要支持引擎、支持游戏的各种图形特性之外,还要做很多类似PC驱动层的事情。

比如PC的驱动层会进行数据保护,状态跟踪等工作,通过更保守的方式提高GPU的运行稳定性。而在PS5上和硬件的对话更加直接,这些东西全部要自己来做。要处理某项功能,就要收集各种各样的状态、数据,然后自己把这些数据组织好以后,再通过对PS5提供的底层API调用直接扔给PS5的硬件。

这样的方式当然更加高效,但是也几乎没有保护。一旦数据不对,PS5就当场崩给你看。传给硬件的这些数据的内存管理,资源回收,CPU/GPU同步也都需要自己完成。而且PS5才刚推出,配套的开发环境也并不成熟,需要自己琢磨的地方很多。

葡萄君:这么夸张。

弋振中:对,所以PS5图形库的开发,需要对硬件的了解达到一定程度。当时我花了差不多两个月的时间写了第一版,再让同事跟我一起debug和进一步完善。如果没有图形库,游戏画面出不来,其他模块做好之后也没办法验证,所以它的优先级是最高的。由于图形库开发量确实比其他模块更大一些,那段时间我们压力也比较大,容易掉头发。 

葡萄君:定制文件加载系统的考量又是?

弋振中:《原神》的开放世界,相比其他特定品类,加载上会吃亏一些,因为它不是线性的加载逻辑。所以缩短加载时间能有效提高玩家体验,免去等待的过程。SSD本身的硬件特性就很强了,读取非常快,我们再定制一个加载系统,就能够更进一步放大它的特性。

难点在于我们游戏运行时需要读取的文件往往分散而且比较小,所以就涉及「如何把读取的命令有效地组织起来」的问题,让硬件能够更有效去发挥SSD的功能,加载得更快。与此同时,文件快速加载进来时,CPU如何小心地处理这些文件转换成游戏运行需要的数据,也是影响性能的一个因素。我们需要结合PS5提供的一套API来设计和实现我们的文件加载系统。 

因为开发量比较大,时间也紧,所以我们把文件加载系统也放在了比较高的优先级。而由于这个功能完全靠我们自己写,在比较细节的地方,实现起来的自由度也更大,代码把控性也更高。

葡萄君:记得有玩家对比过,PS5版的平均加载时间是不到3秒,比PS4版快很多。

弋振中:可以做个对比,在PS5上用兼容模式跑PS4版的《原神》,这个模式就会比PS4版自己跑快很多,而这更多是利用SSD硬件特性实现的。

如果再用兼容模式和PS5原生版做对比,你会发现PS5版还能再快几秒钟,这几秒换算成百分比,性能提升就非常惊人了。这也是我们觉得值得花精力定制文件加载系统的关键。

其实最近1.5版本之后,我们又更新了一个1.51的补丁,会大幅度提升游戏在PS4和PS5上的帧数、缩短加载时间、减少延迟响应,这些细节后续都会不断优化。

7.jpg

永远走在「追求品质的路上」

葡萄君:在之前的技术分享里,你提到主机版的开发涉及大量技术上的取舍,做PS5版的时候呢? 

弋振中:取舍的核心,就是我们在有限的资源下面,如何更好地去提升游戏的品质,毕竟当时时间人力限制都大,不过即便时间和人力充足了,你始终会追求更高的品质,想做更好的东西。所以实际开发还是需要取舍。

一个比较新的例子是,PS5的光线追踪和SSD特性是大家比较关注的地方。做PS5版时,我们希望玩家尽快玩到原生PS5版《原神》,这个前提下,我们认为光线追踪如果要做,确实能对光影产生改变,但对于《原神》这个风格的游戏,一定要让技术融合到美术风格里。

如果仅仅把光追做出来,当成炫技放到游戏里,鉴于《原神》的美术风格以及我们需要投入的资源来看,很难在短期内对游戏品质做到比较大的提升。所以我们会很慎重地对待光影的改造,会反复跟美术磨合来决定如何做。尤其是对场景复杂的部分,这个迭代的时间会更长。因此我们决定不急于实现光线跟踪,而是把有限的资源投入在性价比更高的地方。 

相比之下,在资源有限的情况下,用定制化文件加载系统能更好地发挥SSD性能,能够提供更好的游戏体验,那就值得优先做。

葡萄君:还看到PS5版对LOD、材质精度都拔高了要求。

弋振中:毕竟开放世界需要更多的细节来填充,对我们来说,也希望《原神》的大世界在PS5上有更多的细节呈现。

于是我们增大了LOD,这确实会增加DrawCall,增加三角形的数量,会在CGU和GPU端都给我们带来压力。除了LOD以外,在PS5原生版上面,我们也是提升了场景、角色还有特效的贴图精度,让画面显得更加细腻、更加有质感。这些也会增加GPU的开销,

但同时我们也在不断优化、调整LOD策略,所以目前来看能保持一个平衡的状态,后续也会持续优化,给玩家提供最好的游戏体验。

8.jpg

葡萄君:你们在PS4版本就对渲染管线做了很多改造,PS5版本有新的改造吗?

弋振中:目前我们基本沿用了PS4版本的渲染管线,因为这些放到PS5上也能够满足游戏大部分情况下的画面表现。不过因为PS5有更强的硬件性能,所以我们在后续也会不断对整个渲染管线做提升,尝试做出更好的画面表现。

葡萄君:相当于PS5版本也是搭建好第一步的框架。

弋振中:对,现在就是刚开始的阶段。PS5版本只是一个开始而已,《原神》是长线运营的游戏,所以后续还会推出更多新的特性。

葡萄君:这次PS5版本里,你个人最喜欢的部分是什么? 

弋振中:除了快速加载,庆云顶的体积云特效,我也比较喜欢,如果仔细些,还能看到其他一些地城里也用到了类似的技术。庆云顶的特效经过画质的提升和性能的优化,所以在画面表现足够好的同时,在PS5上开销也比较少。既能提高画面表现,又不用对性能做太大妥协,这就很棒。

葡萄君:庆云顶特效做起来有挑战吗?

弋振中:相对还好,当然它也用到一些比较巧妙的思路,尤其是优化方面,细节上今后再找机会具体分享。

9.jpg

葡萄君:什么情况下你们会挑战技术的上限和新的技术点?

弋振中:《原神》毕竟是一个上线的项目,最高优先级一是提高游戏稳定性和性能表现,另一个是给玩家更多的内容、提高游戏可玩性。所以在考虑问题的时候,这两点都会作为前提,摆在很重要的位置,这个基础上要加什么东西,就看各个团队的需求,如果有就走流程去实现。 

葡萄君:那么你目前比较关心哪些技术发展趋势和新的动态? 

弋振中:PS5版相对而言,因为时间紧张,主要是我们自己在做,长期来看,Unity的新技术我们肯定都愿意学习,包括2020和2021的很多新特性,比如新的地形系统、后处理方面的改进、资产管理的系统性改进等等。 

我之前跟Unity美国团队交流的时候,也对这些部分比较感兴趣,他们对未来游戏技术发展趋势的见解也很受用。

葡萄君:现在各家厂商的技术竞争都在加剧,你对这个趋势的感受是? 

弋振中:竞争带来的技术进步肯定是一件好事情。我们整个团队都非常热衷于去了解新的技术,提升自己,这是一个持续的过程,我们也希望其他的公司团队能够跟我们多做交流。

葡萄君:如今开放世界产品越来越多,你们会有被追赶的压力吗?

弋振中:我们的重心还是在服务团队想法的方向上,更多的压力还是来自于「如何满足大家的需求」。

葡萄君:很多厂商会觉得米哈游的技术壁垒很高,你怎么看技术壁垒?

弋振中:就我们团队而言,大家并没有太关注技术壁垒这件事情,思考更多的是「作为一个技术开发团队如何更好地服务游戏项目」。我们提升技术、了解新技术发展的意义还是在于,让公司这帮很喜欢游戏、喜欢制作游戏的同事,能够更少的受到技术的束缚,更自由地去发挥,做更好玩的游戏。

10.jpg