一年一度的虚幻引擎技术开放日昨天在上海拉开帷幕。此次除了来自虚幻引擎官方的技术人员外,Epic Games还邀请了很多合作伙伴和优秀的独立游戏团队分享他们在使用UE4的经验。

开放日的第一天,来自西山居常务副总裁刘希向众多开发者分享了他们在使用UE4的过程中遇到的困难,以及将这些困难一个个解决的心路历程。

刘希表示,其实北京西山居开始对UE4的使用可以说是一无所知,但是因为UE4震撼的画面表现力让刘希和他的团队下定决心使用这款看上去很难上手的引擎。而在招不到有UE4经验人员的情况下,他们从头开始培养自己的人才,最终在Epic Games的帮助下,成功解决了一个个困难。

以下是演讲全文(有删减):

我是一个一线的研发人员,所以跟大家还是比较亲近的。今天的大咖实在太多了,上有老板下有技术大拿,我作为板砖工还是跟大家轻松的聊一聊。相信我讲的内容可能对于很多游戏研发的同仁会有一些启发,先讲一讲西山居怎么选择虚幻的。

为什么选择UE4

我代表的北京西山居,2013年刚成立不久的北京西山居想做一款作品,用什么引擎呢?当时虚幻引擎还是是虚幻3。到2014年GDC就有了虚幻4,当时我们就决定如果有新的项目我们就用虚幻4做。

当时3D引擎unity还是很好的选择,便宜、高效,插件比较多,适配性不错,而且他们老板也经常拉我们,但是我们看了一下他们很多国内的产品,发现画面的同质化程度太高,像是同一个流水线出来的产品。而如果要去进行很大的突破,改动的成本非常高,引擎本身提供的空间也不算太大,所以我们当时就想做出一个让玩家能够第一眼就产生惊艳的画面感的产品。最终决定选择虚幻主要看中的就是优质的画面跟可定制性,这就意味着代码授权,才能给整个的程序团队跟美术团队更多的空间,也能给制作团队更多的想象。

实际上当时Unity并不太推荐,也不主张用这个想法。对虚幻引擎来讲也是很好的机会,这两个都是双刃剑,极致的画面意味着你的硬件性能要求会更高,同时定制化你的这些想法,最后游戏的稳定就会变得很差,这个也是我接下来要讲到我们在使用虚幻上面和我们过去曾经遇到过的一些困难。

2015年我们用虚幻引擎做了一款展示,当时做出来的效果令人惊艳,并且在2016GDC上获得了Epic Games官方推荐。2016年,我们团队决定跟迪士尼合作,用《加勒比海盗》这个IP做一款真正的大作,我们给迪士尼亚洲欧总负责人做了一个提案,除了PPT,我们认为最好有一个展示,于是我们就去虚幻引擎社区商店就买了一些资源,完成了这个展示内容。

我们用了两个星期的时间就成了这个展示,做出来整个海盗舰船炮击战,肉搏战,包括整个AR的玩法,迪士尼老板非常满意我们的演示,于是顺利拿到了IP。这是北京西山居第一次由研发主导拿下国际大IP,我感觉非常棒。时至今日,《加勒比海盗》仍然是迪士尼所有授权手游产品里画面表现最牛的一个产品,也是他们美国总部非常重点关注的一款产品。

UE4没有传说中的那么恐怖

经历这整个过程,最终使我们北京西山居两款重点MMO手游项目——《剑侠情缘2》跟《加勒比海盗》都用虚幻4引擎做。这个过程中我们两度拜访了Epic Games美国总部,并且跟他们技术人员进行了深入的交流,建立了很好的友谊,我在讲这段过程花了大概6分钟,主要是给各位讲一下实际上我们也是一穷二白从零开始选择虚幻引擎,没有那么难,没有传说中的那么恐怖,反正我们也干出来了。

吴总让我来演讲,那我作为一个研发跟大家聊聊天算了。我认为做虚幻引擎游戏最重要的团队就是引擎程序跟美术团队,其实引擎团队跟美术团队最后它会决定你这个产品最终出来的效果和高度,对于我们程序团队来讲,我们当时甚至是现在用虚幻引擎来做产品的团队并不多,而且基本招不到人,2016年的时候基本上没人。我们当时想去业内挖一点以前做过虚幻引擎的人来做,但是真的没人,极少在上海、深圳,腾讯只有一点,北京没有。我一想这也不行成本太高,关键浪费了很多时间很可惜。

怎么办呢?最后我们决定自己弄,我们去业内招了很多有过自研引擎经验的一些程序员,来帮我们熟悉虚幻4,直接进项目,没有所谓的引擎中心。边干边学,幸运的是这个方法非常有效,很快这些有过自研引擎经验的人就能上手,不断对UE4有了更深入的了解,并且可以针对引擎做定制化的改进和优化。这点极大的提高了我们团队对引擎的熟悉程度,也提高我们的开发效率,为我们后面解决引擎各类问题奠定了很好的基础。这个方法值得在座的各位借鉴。

美术团队一定需要有游戏制作经验的美术团队,我们当时从上海挖了几个人过去。因为这个引擎很复杂,如果没有这方面的经验的话,最后的效果根本得不到保障。在这里面我们认为技美是最重要的,这个培养跟招聘要花大功夫,很不幸我们也没招到,也是自己培养的。他要定义整个美术的制作流程,场景的规范方法,我们必须要非常严格的去遵守。因为这些东西如果最后打破了,游戏最后的坑会非常恐怖,可能面临的是大量的美术返工,甚至是重作,压力是相当大的,这点也是提醒我们同仁们一定要注意。

说实话,困难真的非常多。比如《剑侠情缘2》项目用腾讯TDR标准,这个是所有的项目必须遵守的,有适配、崩溃、性能这些方面的内存很多的标准,非常可怕的是他这套标准是针对Unity针对的,对于虚幻引擎来讲实在是太过苛刻。我们第一次技术测试的时候,崩溃率高达37%,就是100个用户有37个人只要崩过一次就算一个数,而腾讯的标准是3%。我们拿到这个崩溃的分析报告心很凉,赶紧抓着Epic Games这边的人帮我们一起做优化,经过一轮一轮的梳理,我们一起找问题找bug,提交到官方引擎,然后更新。最后一次测试实现了崩溃率在2%以内,而我们上次监测已经没有引擎跟游戏的崩溃了,绝大部分崩溃都是来自于用户手机设备驱动问题,这个我们没有办法,这个的困难我们算是基本搞定了。

性能方面也是非常困难,最开始测的时候我们基本上用小米最好的手机,后来发现腾讯导进来的用户太low了,这些手机平均的帧率在10帧左右,我们现在基本上基本上优化到了满帧,做法非常简单,就是针对不同的手机做定制化的优化配置。

我们现在基本上已经用完了所有的虚幻引擎官方提供的一些优化方法,然后我们再去分析这些方法的效果、利弊使用环境,各种对他进行单独的配置,到现在我们基本上已经把性能问题的槛迈过去了。这里我要向大家建议,不要怕麻烦,包括我们在游戏中,完美、优秀、流畅、极简这几种画面配置,单一的画面配置在不同的机型上都是不一样的,不同的游戏环境。新手区我们尽量做到所有用户进去都是完美效果,一进城问题就曝出来了,但是至少保证在前期的时候效果是足够好的。

讲一下内存问题,不得不说引擎在安卓设备上的冗余内存实在太恐怖了,我们费了九牛二虎之力减掉了300兆,最终使得完美画质损耗控制在600兆以内,我们用内存分析工具一兆一兆的减,减到现在跟Epic Games聊发现我们基本上没有什么地方内存可以再优化的了,这块我们工作做了太长的时间,现在通过我们双方的努力,我们的两款重点MMO项目已经把这些困难都踩过去了,我相信大家未来也会遇到。

这里面还有SDK,无论产品在哪里发行,就要接很多SDK。腾讯那里就极其恐怖,我们有一个团队专门在干这个事,因为实在太多了。但有意思的是,这些SDK在去年的时候全部不支持UE4,所以我们必须一个一个弄,非常痛苦。然而幸运的是腾讯去年要激活《吃鸡》,所以一夜之间全部搞定,幸福来得如此之突然。甚至包括PC的模拟器,当时也是不支持UE4,伟大的《吃鸡》真的帮了我们很大的忙,我们也要给他们发一个奖杯。

对UE4开发者的建议

如果大家要考虑开发UE4引擎的游戏,要怎么去考虑问题呢?

前面讲的都是小事例,我们首先需要确定产品的定位,你的产品需求是什么,你的美术画面需求是什么,风格是什么,与引擎匹不匹配,最关键的制作人是什么喜好。如果制作人说我是卡牌忠实粉那你用UE4意义不大。

其次就是我们有没有足够的技术积累来解决,引擎程序团队有没有足够的信心能解决未来遇到的引擎方面的各种问题,有没有AAA产品开发经验的团队或者部分人员,技美能不能制作出一套合理的制作流程,策划有没有使用UE4的适应能力,我觉得这是很重要的。

第三个不得不提的就是成本,项目的预算成本是不是足够支撑一支小有规模的团队来使用引擎。第四是项目的时间,领导给的时间能不能支持项目对于游戏的公关和完善。这些都是我们要考虑的。

最后,我们作为一个游戏研发人员需要良好的心态,有没有足够的抗压能力,持之以恒的耐心,有没有一颗一定要做一款一流游戏的决心。

在这里也再次感谢Epic Games,感谢吴灏对我们长期以来的支持。我相信西山居跟Epic Games合作一定能做出更好的游戏,能够一起把引擎做的更好,也邀请大家一起加入UE4的大家庭,让中国的游戏研发人能够利用世界最先进的科技,做出有中国设计,中国创造的世界一流游戏。