聊聊游戏引擎的“屌丝”与“高富帅”
游戏引擎现在有很多,不过大规模公开授权的引擎只有两个,Unity和Unreal。
Unity因为便宜易上手跨平台,在手游里应用最多,翻开各类求职平台,就能看到很多Unity3D程序的职位,所以Unity被戏称为“手游引擎”,成了很多玩家心中的“屌丝配置”。至于虚幻,从Unreal2里就不断涌现各类大作——《分裂细胞》,《战争机器》,《蝙蝠侠》等等,自然受到了玩家们的推崇,是他们心目中典型的高富帅。
很多玩家心中的Unity
很多国内玩家心中的虚幻
最让玩家感受到性能差距的,大约就是的《仙剑奇侠传六》。仙剑六原定使用虚幻引擎3,因为种种原因改成了Unity。虽然没用虚幻让人失望,但考虑到之前用Unity做的《轩辕剑六》,画面效果还能接受,而且仙剑六还特意增加了2D动画过场,也算颇有诚意。但是一等游戏上市,当时最强显卡“四路泰坦”也只能勉强保证3~40帧。
后来有大神剖析了卡的原因,说来说去都可以归纳成这几个字:“没有按标准流程做事”,例如材质只有普通的颜色贴图效果,体现光亮的高光贴图和体现深浅的法线贴图均不明显;场景内布满了动态光源,不像常规做法用静态光源烘焙光照贴图等等。
国产游戏的优化一直是老大难,经常用二流配置跑三流画面,跟着玩家硬件水涨船高
经此一役,现在的北软终于下定决心不惜工本使用虚幻4引擎了,而unity似乎也彻底戴上了“矮挫丑”的帽子。现在的国产单机,号称要向国际大作接轨的,都是一水的虚幻4,凡是谦虚地说我们家小业小求大家包涵的,标配Unity——楚河汉界,泾渭分明。
屌丝的归屌丝,高富帅的归高富帅,但是硬是有老外不信这个邪,硬是用Unity做出了3A大作的感觉,例如下面这几个。
《死亡扳机2》(2013年,移动/网页)
《失落的记忆》(2015,移动)
《共和国》(2014年移动、2015年 PC)
毕竟老外浸淫3A已久,哪怕是Unity也能充分发挥功效。就拿做上面截图里的《死亡扳机2》的Mad Finger来说,这家公司的许多人出自制作《黑手党》系列的2K捷克。而《共和国》制作公司的老板Ryan Payton既做过小岛秀夫的助理制作人,也担任过《光环4》的创意总监。
在懂行的人手里,引擎效果当然不一样,捷克佬大幅改进了Unity的渲染效果,Unity原本没有游戏开发部门,所以给了他们不少特权,许多新特性都用他们的游戏做展示;《共和国》在故事上利用监控摄像头进行游戏,游戏大多是固定视角,能够大幅优化场景;《失落的记忆》则学足了寂静岭:室内小场景,一黑遮百丑。
我们觉得Unity穷酸,他们觉得杀鸡何必用牛刀。项目采用什么引擎,除了画面效果,还要考虑项目周期,人员配置,是否多平台以及分包更新等各种技术问题。
Unity和Unreal的差别,有些像摩拜单车和滴滴叫车,前者快捷方便,但不会用来走远路;后者限制多,但载重远行离不了它。Unity轻小灵便,容易上手,草坪小道都能上去,代价则是这个引擎运行效率比较低——“所谓条条大路通罗马”,你当然可以下车走到目的地,只不过速度就比较慢了。
侧视角的Ori和场景较小的Furi,Unity画面优秀的作品大多属于对容易优化的类型
到了虚幻引擎这边,为了跑出最大速度,需要把自己整合成一辆严密的超级跑车,只能在高速公路跑,还限制了最低速度,其代价就是没有一定时间的培训,你往往难以驾驭。许多公司Unity新手程序要求并不高;但是对虚幻往往要求有一定工作年限的老手,像育碧这样的大公司就算招聘新手,要的也是211大学的优秀生。
出于不同的设计目的,两个引擎的架构不一样。Unity专注于本身引擎的基本功能,并且提供了大量API接口让使用者用较易学习的C#和Java编写游戏逻辑。在美术方面,Unity材质功能与场景的渲染等追求简洁易用,都只提供了快捷的基础功能。如果要追求细腻的画面效果,制作组可以用外部工具制作好,再导入到引擎中。
而Unreal从一开始就是要做一个封闭完整流水线的重型引擎,渲染能力极强,材质编辑更能和Maya与3D Max相比。举个例子,哪怕在早期的虚幻3中,导入一张苍蝇的2D图片,一个有经验的美术就可以将它做成一个苍蝇满天飞的材质。
半开放架构和封闭完整流水线比,当然封闭完整流水线的优化余地更高,两个引擎在小型项目中没什么差别,但是越往上,二者差距越大。虚幻虽强,但这条重型流水线冗余功能太多,不仅美术学起来时间长,对程序员来说虽然能直接看它的底层代码,也没有那么容易上手。
《核心重铸》让Unity力扛沙盘地图,导致运行效率低下,饱受批评
所以在二者的项目中,我们很容易就能发现Unity画面出彩的大多数是场景较小,风格取巧,或是视角限制较大的游戏;而虚幻适应性强很多,沙盘,大型FPS等样样扛得下来。
All Wall Must Fall,一个用虚幻4制作的2D策略游戏
3D平台游戏Skylar and Plux,对低成本作品,虚幻也不会有什么画面优势,纯属制作组觉得虚幻容易上手
有趣的是,这两个引擎也在相互学习,相互影响。Unity不断在完善工具优化效率,虚幻也在不断朝Unity学习。Unity引擎当年不仅便宜易用,它还发明了Asset Store这种插件商店,用户除了贩卖美术资源,还可以制作各种程序插件弥足引擎原有功能的不足。
Unity可以用插件实现类似于虚幻那样的材质编辑器
与之相比,当时的虚幻引擎3能力虽强,但是学习起来费时费力,Unity引擎可以通过大量现成的外部工具解决问题,虚幻3却可能需要一两年让自己成为熟练工。耗费的人力加上需要精细的美术素材来体现性能,让虚幻3显得“一分强一分贵”。在那个3A衰落,独立游戏与手游崛起的年代,当然是Unity显得十分亲民。
虚幻4为了显示自己好用的官方Demo:Flappy Bird
虚幻4也在支持更多的外部渲染,如图它刚支持的,主要用于影视和效果图的渲染器Vray,以往仅Unity支持
到了虚幻4,Epic除了打造自己的Asset Store,还尽量降低自己的门槛。在一般的游戏逻辑上Epic通过图形编程大大降低入门门槛,底层流程上的包装和运行效率也大大加强,尽量减小那些不懂优化和代码的美术策划们的压力。
我们现在在网上看到“厉害!国内17岁妹子主导制作虚幻4引擎独立游戏”之类的新闻,都要感谢Epic程序员们花费巨量时间的优化。换到前些年,一个游戏若要做成沙盘,必然要是大公司,至少几十人的团队,耗时数年才能完成。但现在依靠虚幻4,《方舟:生存进化》和《绝地求生》之类多人沙盘游戏都能在短时间内上市。因为时间紧,这些游戏各有各的缺点,特别是那些没有修改底层的独立游戏,难免手感笨拙画面粗糙运行效率较低,但至少游戏能作为商品正常运行了。
不涉及底层修改的话,Unreal4只要图形编程即可
Unity仿虚幻图形编程的插件Uscript,因为是插件,可能会导致bug和运行效率问题
就独立游戏爱好者来说,Unity适合略懂代码的人,他们甚至可以只靠Asset Store的插件拼出一个游戏。而Unreal适合那些追求电影化与没有代码基础的美术和策划们。
虽然不太稳定,但《绝地求生》毕竟只用一年就开发出来了
《方舟进化》小组规模不大,借助虚幻4让游戏迅速成型。但是游戏优化较差,特别是游戏机版分辨率缩水严重
在玩家最感兴趣的画面上,虚幻引擎在运行效率上碾压Unity,也给了程序和美术更大的发挥空间。虚幻3刚推出时,所有作品都是一副“油腻的师姐”模样,光影反射不自然,到处反射金属光泽。
虚幻3画面给人的最早印象就是脏和油
但是经过几年发展,虚幻引擎3早就不复当年的窘态,除了各种高大上的写实游戏,卖了几千万份的《无主之地》玩起了卡通渲染,而《罪恶装备 Xrd》将3D部分与日本传统的帧动作游戏毫无破绽的结合到一起。如何既能保持精美的手绘精度,又能做出平滑流畅的镜头,是困扰ACG界的一大难题。《罪恶装备》借助虚幻3晚期版本,将3D角色完美渲染成2D手绘的效果。他们为了还原传统格斗游戏的手感,在每个动作间加了停顿,看上去和传统2D游戏毫无区别。但是在必杀特写中,由3D技术制成动画行云如水如丝般顺滑,立刻征服了所有玩家。当然Arc System没有止步于此,他们现在正在制作由虚幻引擎4开发的《龙珠战士Z》,被誉为最接近动画表现效果的游戏。
Epic自家开发,走卡通风格的《堡垒之夜》
你要跟我说这是个纯3D游戏,我第一反应也是不信的
不管怎么说,引擎怎么用,关键还是取决于用它的人。金箍棒放在海龙王的宫殿里只能做定海神针,被孙悟空拿起来才能成为无往不利的武器。只要用的巧,哪怕是玩家看不起的Unity,一样能实现惊人的效果,如米哈游近期推出的《染上你的颜色》Demo也表现惊艳,只是它离成品游戏还有一段距离。现在虚幻和Unity都已免费化,它们的游戏产品也必然鱼龙混杂参差不齐,但优秀的制作团队必然能使用最适合的引擎,为我们拿出最好的游戏作品。