百科问答小站 logo
百科问答小站 font logo



Unity、Unreal、CryEngine这三个引擎各有什么特点?哪一种最适合用来开发大型3D网游? 第1页

  

user avatar   fjz13 网友的相关建议: 
      

本来不想回答这种引战的题目,但奈何有些人的回答看的我真是想笑。

先摆出来,利益相关:EpicGames UE4 社区经理,写过玩具引擎,研究过CE源码,学过Unity没福气看到Unity源码,之后几年一直是UE4程序员,现以研究UE4源码为生。

咱们做技术的,说话客观点行吗?这3个引擎都各有各的优点和缺点,你说话有的放矢,有理有据,我们知耻而后勇努力改进就是了。但一些常识性的偏见错误,真的建议要有空杯心态,面对一个庞然大物的成功引擎,背后几百人高级工程师,技术水平显然比自己高,第一反应应该是他们的决策应该是有哪些我没考虑到的点,而不是他们傻逼。

先说CE,已经死了。这么说显然很过分,但我个人感觉有点奄奄一息,被微软收了后不知道后续有什么行动再续上命。以前肯定很多人都有听说过CE的效果如何显卡危机,CB也在影视领域发光发热。后来咋就慢慢不行了呢?背后的原因可能是复杂的,我个人感觉一大原因是缺乏用户。你渲染效果再牛逼,编辑器工作流烂成屎(用QT做的编辑器,非自渲),那你就自己玩吧。

然后Unity,我个人虽然不爱,但其实很敬重Unity,给引擎市场带了一些好的变化。它有它的优点,人家也花了大量人力物力在优化手游,所以它能做到体积很小,开发便利。它最近也确实在高速更新(追赶UE4?),所以出现一些Bug也很正常,咱们做开发的都理解。两家U引擎互相追赶带来引擎行业的积极变化,挺好的。C#语言也是我写过最舒服的语言,微软确实NB。

然后来讲讲缺点:

1,不开源,原谅我个人作为一个木讷程序员的执念。能看到源码和改源码,对我来说很重要。我研究Unity,我只是研究怎么好它我研究UE4,我在用完后,我还可以学习研究它是怎么实现的,引擎架构如何,我抄些代码来改改看。能看到世界上前沿引擎的实现原理,这让我感觉很幸福。还有一点,做项目的时候万一遇到引擎bug,至少我还有机会自己上手定位一下改改源码立马就修复了,这多给我了一点微微的安全感。另外,据我所知,Unity对于一些大公司也是有源码授权的。所以说其实做Unity也是需要改引擎的时候?深度定制?那买不起源码的咋办?所以真的承认吧,对于游戏大作,真的有时候就是得去修改引擎来定制开发。Unity的技术人员很厉害,但也不可能是神,满足你所有需求。

2,C#,成也C#败也C#。从性能上,Unity官方做了大量的优化在C#编译器上,我也觉得他们干的还很不错。但对于一些3A项目需要极限优化的场景,C#还能否胜过C++,我这个传统程序员要打个问号。希望有这一天,那是我们程序员的福音。从学习上,C#对程序员来说其实已经挺好学的了,但是对于非程序员呢?程序员中有一派人我感觉有点像原生教旨主义,觉得手敲文本代码最纯粹牛逼,看不起其他拖拉节点的。这背后原因有很多,但我觉得这其实是一种狭隘和傲气,看不见自身外部世界之外的人。我常常讲一点,对于一个程序零基础的人来说,你觉得让他去学C#手敲代码容易还是学拖拉蓝图节点容易?蓝图有它的很多缺点,但图形化相对文本化的一大优点就是更易于理解。一个程序零基础的人,或者本就不是专业写代码的人员,能用用蓝图拖拉出功能效果来,这难道不是一件好事吗?我们程序员应该去包容接纳引导他们,而不是看不起他们。因为这一点,Unity会更多的限于程序员这个圈子,而UE4会去接纳更多行业的人,这是我个人的理解。UE4的蓝图虽然总被吐槽一些缺点,但它同时又因为易学吸纳了多少用户,有用户引擎就有生命力,所以不要觉得UE4的引擎部门傻逼设计出蓝图,人家比我们想的清楚。


最后说说UE4,我尽量保持客观,不尬吹不遮丑。有一位答主对UE4的理解基本90%都是错的。。。然后还不少人点赞,看得我很尴尬。我就不一一贴出来反驳了,说几个关键性错误。

同样先说优点,虚幻的牌子在世界上历史上也是响当当的,从当年卡马克那个时代一起过来的,3A大作不知道做过几款(为免尬吹,我就不贴清单了)。百年公司不好做,二三十年的引擎做过来到现在风生水起又岂是容易的。

工具流:所以如果说到3A大作,游戏行业顶尖的那一批,除了一些自家自研引擎外,基本就是UE4了。引擎这么多年,游戏这么多年,Epic自己同时还做游戏!导致的一个结果就是UE收到了多年来多家客户和自己多年的游戏制作经验和引擎使用经验,它的工具流是最牛逼的。Unity的ShaderGraph也是2018年才加上(如果我没记错的话),之前都是手写shader。但你要知道10年前的UE3就有材质编辑器了!引擎的本体是编辑器,编辑器不好用,吸引不到普通用户,不是已死就是在去死的路上。所以有些人看到美工也能顺溜的使用UE4引擎,就觉得UE4引擎是更适合美工,我只想说哈?因为工具做的太好所以反而不适合程序了?然后你又嫌C++太难……

蓝图:图形化的东西在灵活性上来说肯定不如文本化,但易于学习理解这一点就盖过去了。否则你现在应该在用linux命令行而不是windows。一句话,蓝图提供了足够低的台阶,C++提供了足够高的天花板。性能上来说,你觉得C#能优化的足够快,那蓝图理论上也可以,不考虑Native化的话,大家都是跑在虚拟机上,无非是投入人力物力去优化而已。蓝图的话题还可以说很久很多点,我只说最后一句话,请低下头去看看那些刚出入门径的初学者,因为那是将来的我们。

效果:其实这点也本不该讲。大家都是PBR,就算是光追算法也都是公开的,何况UE4源码还开放出来给你参考。一些开源引擎如KlayGE也常常能够做出某些更炫丽的效果。所以我其实不太赞同拿两个相近的引擎去比效果,花人去堆素材调效果最后都能挺炫。要比其实就比两点:一是用户达成某个效果的成本代价,二是用户实现自定义效果的扩展空间有多大。所以别拿官方自己做出来的东西来比效果,有些东西官方能搞定,不代表普通用户也行,你就看看就行了,别太当真。民间会有风气说UE4效果好,不是无中生有,是因为有大量的民间项目验证了的,按咱们普通人的能力能调到挺好效果,试过了才说好的。

行业:企业建筑影视动漫我就不说了,再说一些我不能说的,你知道政府军工中字头企业都有大量在用UE4吗?刨除效果不说,光开源有源码这一点就足够成为理由了。所以别因为自己是做游戏的,就觉得天底下只有游戏行业。有这么多行业用户,自然需要大量的UE4人才用户,然后你说UE4明显败象?哈?

必须得说缺点了:

功能太多:有个人说UE4功能迭代困难,我还真想说,你是站在门外看风景说话不腰疼啊。每次UE4功能更新迭代那么多,功能教学视频噗噗噗的出,我都来不及看啊。而且你敢说UE4新功能不激进吗?自己做个Chaos新破碎系统,搞Niagara替代之前的传统粒子,搞Seqencer替代之前的Martinee,人家功能迭代没出问题啊。所以缺点是UE4搞大游戏多了后,里面的功能其实太全了,搞得学习的人心理压力很大。新人都有一种韦小宝刚看见武功目录的感觉……天啊,游戏行业要学习的东西好多,我能学的来吗?常常就容易放弃了。实际上就算是从业十年UE4的人,也很难掌握一个游戏引擎的所有部分。更悲惨的是,Epic美国总部引擎团队上百号人不停的更新引擎功能,你学习研究的进度还不如人家代码写的快。实际上,我已经佛性了,已经不奢望去研究透UE4了。作为开发人员的时候,更多想的是自己的游戏项目需要用到啥才去研究啥,UE4提供啥我们能用的上就用,真正少的功能我才想办法自己去扩展。我会安慰自己说这才是对待游戏引擎更正确的态度,把引擎当做为我们提供便利的工具,而不是研究的玩具。毕竟我们开发者的真正目标是开发游戏内容,而不是去研究内在原理。所以你用UE4越多,你才会渐渐的领悟,游戏引擎真正应该的样子是什么,要方便高效工作流,又要开源扩展定制。人跟人之间最难的是思想的同步,所以我现在在这这么说,刚接触UE4的人依然会有一大批一大批,觉得UE4就是很难。我只是想,不要一开始就很贪心想掌握所有,用到哪学到哪就行。

Mobile中端支持还不够:虽然官方自己做出了牛逼闪闪的《堡垒之夜》,全平台互联(PC,手机,Xbox,PS,Switch),但这其实只是说明了这个引擎有能力做到如此,但不代表以民间的技术力也能轻易的做到。在这一点上,UE4毕竟是带着3A的基因和包袱,一下子不太能立马的轻量化。所以在手机游戏中端的支持上,确实还不如Unity做的接地气和当前市场占用率。所幸官方其实已经意识到了这点,美国和中国团队都在招聘专攻移动端的人来做开发和优化,各位且看后续发展吧。这里我的用词中端,意思是对于手机上高端的大型MMO游戏,其实基本都用UE4了(比如祖龙龙族幻想等,不继续举例了)。腾讯系的游戏更是都是UE4了。而对于低端小品级的游戏,其实用UE4也比较适合了,因为不需要很强的技术力去做优化,可以用比较小的代价做出超出平均水平效果挺好的游戏。但我个人觉得最致命的一点是:因为中国的国情因素,国内的游戏市场基本上大部分就是手游市场。而手游市场中中端游戏其实又是最多的,这一部分因为过往历史目前很多都是Unity。这样造成的国内印象好像手游只有Unity,导致一些手游开发人员看不到自身以外的世界,导致了对UE4的一个刻板印象,认为市场上UE4不多。抛去中端手游,你觉得市场上用那个3D引擎最多?

社区风气太谦逊:也许是因为UE4本身历史以来给人一种高高在上的感觉,UE4社区里的高手大牛也常常给人一种大神的感觉,动不动就谈改造引擎,定制渲染管线。导致大家在分享的时候,都遮遮掩掩,生怕自己的东西太Low被周围的大神鄙视。这种风气导致的一个坏结果就是社区内的教程资料不够多,这也是被初学者诟病最多的一点。社区的建设,教程的丰富,其实靠的就是互相的热心分享精神。高端的引擎剖析文章固然珍贵,但初级的蓝图学习教程也同样非常有价值。希望这个慢慢来互动改进吧。


说完特点,最后点题说到MMO,说的不对请指正,我了解的情况也许过时了。

分两种情况:

如果是MMO PC端游,搜了一张图:

个人意见是如果是奔着效果去的,用Unreal会更贴近3A的工作流程和品质。

如果是MMO 手游:

这个就目前各自都有了。但有一个趋势是随着手机性能的迭代提升,市场竞争的品质需要,基本绝大多数的厂商都转向UE4开发了,这个在厂里的各位开发者自己都能感受到这种技术趋势,我就不多说了。不信的话,你自己慢慢去数之后上线的MMO游戏,有多少是UE4的。因为题目是大型3D网游,所以这里不讨论卡牌SLG等手游类型哈。特别是最近一股吃鸡热之后,也可能是因为开房间类型的游戏一场对战比较短,适合现在的生活节奏。所以现在市场上好像开房间对战的游戏也越来越多,在这一点上,UE4本来有完善的房间对战GamePlay框架,导致实现该类型的网游特别的便捷,谁叫Epic自家做了太多的FPS游戏……

服务器选择:既然是网游,就不免谈到服务器框架的选择。其实也只有两种,一种是自己搞,自己写网络通信,对接加载地图数据等等麻烦事,自己搞当然最灵活,但也烦人。一种是用引擎自带的,游戏类型要是匹配上,那实现起来就非常的快,顶多优化一下。Unity目前有没有比较火和权威的公开服务器框架(ET?),怎么在服务器上跑地形物理寻路AI这些,是不是也都得自己导出数据到服务器自己写框架,我没用Unity实现过MMO,不够了解,不敢瞎说。但UE4这边,如果是开房间对战的类型,那用纯蓝图就可以部署一个单独服务器,一切功能自带,空白的引擎下载下来,一个晚上就能搞定部署一套。如果是MMO,那可能需要改造一下网络层以针对MMO优化一下,我也知道有厂家是这么做的。可惜Epic自己不做MMO啊,否则我们就又有福了。

选择引擎:再闲扯点引擎选择的闲话。个人观点,可能很不成熟,供大家一笑。我自己是个十年的开发者了,在自己的技术领域感觉自己挺重要的。但也同时慢慢意识到自己在这个行业内只是个微不足道的螺丝钉,只是个干活搬砖的。特别是常常见到几十上百号人的团队,听到哪个游戏月流水又几亿了,这种感觉就越来越强烈。我们这些技术人,天天在嚷嚷争吵哪款游戏引擎怎么样,哪款效果如何,吐槽哪款上手难度高,到最后选择引擎的时候,固然会听取开发人员的意见,但归根到底还是老板们下的决定。现在游戏开发投入动不动就大几千万,摸摸自己的钱包,我们真的只是干活的一小分子。老板立项的时候,看到市面上对标的游戏品质如何,说我们要做到同样甚至更好的品质,这个时候选择引擎大家就只看该引擎天花板有多高!这个时候你能说它教程不多,上手有点高,技术难度大,然后不用?这些是咱们的问题,不是老板的。老板发给我们工资就是让我们来搞定这些技术问题的。

真正决定引擎市场占有率的,是资本间的军备竞赛,不是我们技术人员的个人喜好。所以现在国内大厂都在用UE4做手游,是因为大家必须互相竞争。这个趋势是怎么来的?大家以前都用Unity做手游,流程都挺成熟了。但只要有一家用UE4做了个品质更高的游戏,其他家跟不跟?不跟就落伍,所以大家都只能纷纷开始转向UE4。在这个期间,谁能更好的掌握UE4,谁就占得先机。UE4人才不够,是HR要解决的问题。UE4掌握不够,是我们技术人员要天天学习掉头发解决的问题。

随着版号的管控,游戏市场的竞争就越来越倾向于寡头市场。每年为数不多的版号发放,你猜是大制作的公司更有实力获得还是小团队?大公司之间的竞争靠的难道是独特的游戏玩法?人家靠的是成熟高效的制作流水线,市场什么玩法火,就能很快的生产出画面效果很高的游戏。所以以后国内的游戏市场越来越倾向于比拼画面效果品质,而这一点正好是UE4的3A基因在占优势。有个答主竟然得出了完全相反的结论,我看不过去才打这么多字,理是这个理,需要什么证据我再补充。

说这些是我个人的感悟,供大家做一点形势的参考。趋势的发展需要时间,这段时间也正好让我们有时间学习。我们能做的只是顺应市场变化,这样才能分享一点发展红利。

我以前也是从cocos时代过来的,当时Unity开始火的时候我还年轻没多少对市场的感觉。只不过现在是历史周期再一次转换从Unity到UE4了而已。下一个也许是云游戏+5G革了UE4的命(如果UE不能顺应变化的话),不过那时候的事那时候再说吧。




  

相关话题

  能否通过渲染矢量画面,从根本上解决游戏锯齿问题? 
  网游服务器逻辑和传输如何分层/解耦? 
  游戏程序员的核心竞争力是什么? 
  偶像对游戏行业是不是不可或缺? 
  游戏中有哪些看上去很简单,但实际上需要极高技术力或是极高成本的细节? 
  一个理想中的三国策略游戏是怎么样的? 
  游戏中的动态模糊是什么概念? 
  在顶级游戏开发的过程中需要怎样的编程实力? 
  什么原因让你决定成立工作室全职开发独立游戏? 
  印度、印尼、巴西、巴基斯坦、尼日利亚、墨西哥等人口大国,都有哪些代表性的原创电子游戏? 

前一个讨论
在 Netflix 工作是怎样一番体验?
下一个讨论
tool和equipment和device有什么区别?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利