找回密码
 立即注册
查看: 1124|回复: 20

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

[复制链接]
发表于 2020-11-25 14:53 | 显示全部楼层 |阅读模式
Unity、Unreal、CryEngine这三个引擎各有什么特点?哪一种最适合用来开发大型3D网游?
发表于 2020-11-25 14:53 | 显示全部楼层
本来不想回答这种引战的题目,但奈何有些人的回答看的我真是想笑。
先摆出来,利益相关: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不能顺应变化的话),不过那时候的事那时候再说吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2020-11-25 14:53 | 显示全部楼层
正好这三个我都用过,能拿来聊聊。不过请注意我是做汽车产业的,所以对于网游开发而言,请酌情参考。下面开始正题:


Cryengine——真的让你哭的引擎
那会儿还是2012年,孤岛危机2的时代,我看了Cinebox的宣传视频,觉得以后拿这个做片子不是太叼了,连渲染时间都省了!
呐,就是这玩意儿:
CryENGINE Cinebox_Debut Trailer_2012_HD于是我就去下了个cryengine3(时间久远,大概记得是3),那会儿叫sandbox,进去一顿骚操作。然后.......
然后我就再也不想碰Cry了。怎么说呢,实在是太不方便了,为了导入一个模型或者一张贴图,你都需要给你的DCC装专门的插件。没错,你以为你做了一张PNG就能放到引擎里用了?拿衣服,你得给PS装个专门的Cry插件,导出一个Cry专用的Tiff才能进引擎......
在Cry的生态里,整个生产流程都是如此古怪,官方对于用户培养似乎也不怎么在乎,此外授权费用也高的吓人。所以我一点都不诧异他们后来黄了/裁员了/被收购了.....不过Crysis依然震撼


Unity——插件大团结
Cry之后没两年Unity又火了(大约2013/14年,Unity4),当时到处都是拿Unity做手游的,我又跟风掺了一脚。
第一印象是,哇哦,不用搞那些虚头八脑的插件了,可以直接导png耶,还可以直接导fbx耶,好方便耶!
但是快乐是短暂的,当时Cry的美术效果仍然让我记忆犹新,同时我的主业仍然是离线渲染(Vray),所以我尽了各种努力去用Unity达到Vray的效果。
结果很令人失望,我们用了当时据说效果最好的插件Skyshop(我也不知道是不是真的效果最好,但是网上都这么说),我在里面花了很大的力气去展UV,烘焙,微调效果等等等......最后实现的效果虽然当时在业界来说已经是领先的了,然而仍然和我想要达到的标准差了一大截。
此外,对于汽车工业领域,当时的Unity4有硬伤。
第一是,一个物体不能超过一定的面数,否则会被系统自动拆分为多个物体。而汽车模型动不动就是几百万上千万面的,一辆车导入以后会被拆的七零八落,根本无法管理,除非手动重新拓扑建模,这工作量就吓人了。
第二是,Unity的最终美术效果严重依赖于烘焙,否则光影极为难看。而汽车工业模型不是polygon模型,即使在今天的技术条件下要展平UV也是极为困难的,所以烘焙的成本很高。此外,烘焙的光影是静态的,所以在runtime把车门打开以后,光影关系极为错误。
题外话1:什么是我想达到的最低标准?即汽车专业软件VRED所能达到的普通美术标准。VRED和任何游戏引擎所使用的光栅化技术是相同的,但是因为它是专业软件,所以一个普通设计师经过简单的培训,就能生产出一张对于另一个普通人来说跟照片一样真实的图像。虽然这张图像对于专业CG设计师来说仍然不够“真实”,但是足够蒙过去大多数人了。无论是Cry还是Unity,当时离这个标准都很远,更不要说取代Vray渲染器了。
题外话2:听说现在Unity已经加入了实时光追,我看了那个BMW的demo,非常棒,我又蠢蠢欲动了,打算回头试试。


UnrealEngine——好的不真实
我用Unreal是被逼的。2017年,我当时供职的公司打算做一个项目,我说这个拿VRED挺容易的。但是无奈VRED授权费太贵了,买不起......
于是,听说Unreal效果很好不是;听说Unreal之前宣布免费了不是;正好Cry和Unity我都用过,不好用不是;正好去年Unreal发了一个迈凯伦的Demo不是......那就整呗
一开始我对Unreal是很怕的,因为别人都说很难。Epic自己也说,我们的学习曲线是很陡峭的。我第一次看到蓝图简直一脸懵逼......TMD什么是PlayerController??????
但是没有退路了,我就心想:算了,干成了就成了,干不成大不了被开,重新找工作呗。。。
结果发现Unreal出奇的好用,它让我在Cry那个年代种下的梦想终于实现了:用游戏引擎替代渲染器!
为什么我觉得它出奇的好用呢?因为它的逻辑就是渲染器的逻辑呀!感谢PBR,在离线渲染和游戏引擎流程中搭起了一座桥。再加上蓝图对于我这种非专业程序员十分友好,之后我就几乎只用UE,不用Vray了。
总之,这些年来,UE是我用下来,唯一一个能硬杠离线渲染器的游戏引擎。
请注意这是我的个人观点,意思是,我用这三个引擎,加一个离线渲染器,UE是唯一一个能打平(甚至超过)我自己用离线渲染器制作品质的。
发一下对比,更直观:
    UE用实时光追做的内饰,近期:
[Unreal] Porsche 911 GT3 RS Rev22. UE用普通模式做的外观,18年春:
[Unreal Engine] PORSCHE 911 GT3 RS: THE REVOLUTIO3. 离线渲染(Vray+VRED真GI模式)做的外观,16年:
CLA_SF_UNDERGROUND|三维|机械/交通|炭烧双鱼 - 原创作品 - 站酷 (ZCOOL)所以后来我跟我老板说,用了UE就再也回不去Vray了;我也跟Vray的人说,你们快点出Vray4Unreal-GPU啊。
发表于 2020-11-25 14:53 | 显示全部楼层
开发速度:
Unity:我有C#
Unreal:我有蓝图
CryEngine:我有实时光追
上手难度:
Unity:我是C#
Unreal:我是蓝图
CryEngine:我有实时光追
发表于 2020-11-25 14:54 | 显示全部楼层
CE,无论是lumberyard还是github版都没有太深地介入。之前CE3用起来有点伤,感觉是一直没有机会统一整理一遍结构,新版不知道是不是解决了这些问题。


对于Unity和UE、甚至Cocos而言,对于目前的产业而言,引擎已经从工具箱进化到流水线工厂。
做一个简单点的比喻,Unity相当于一个占地面积很大,但是没什么设备的厂房。
UE相当于一个本身已经有一系列设备,构成了一套完整工作流的工厂。
如果你的产品比较符合业已存在的工作流,那么显然已经搭好的框架更适合你。
但是如果你的产品需要的工作流跟现有的模板不符合,那么自己购买和组装设备、提供设备间的传输和鲁棒性、以及与既有结构之间的冲突,就是你需要面对的问题。
无论如何,大型3D网游,在UE和Unity官方提供的体系框架里都没有直接的解决方案。好在无论是UE还是Unity,在经历了长期迭代后,都有许多设备提供商和集成商为其提供了大量定制设备(商店插件)或者已经集成好的解决方案(Samples、既有项目某系统的分享、甚至整个项目的分享,当然,也包括一些不太上得了台面的……Copy Paste……)。


所以对于团队而言,在任一引擎上的开发,其核心策略都是一致的:
要么,自己购买设备、制造设备重新做集成
要么,研究和修改别人已经做好的、集成完的解决方案
当然一般来说是混合的,各占一定比率。


所以其实更贴进现实的,未必是在引擎本身的层次上做比较,而是在“业已集成的解决方案”之间进行权衡。
也就是,思考的问题不单纯是哪个引擎好的问题,还得更多点去考虑:
在既有的项目目标、资金和周期的压力下——
自己控制的资源更适合于购买设备、制造设备?(团队对商店插件更多了解,游戏系统本身也有自己既定的设计风格和套路)
还是更适合于修改和集成别人的方案?(项目本身是在某个经典套路上的二次开发,核心框架完全可以参考某经典套路。)




一般而言,国内Unity解决方案相对多见,易得。
而国外有不少虚幻成功的项目,证明路子是可以走通的。
走通都不存在问题的情况下,需要考虑的变量往往就是,“你能不能得到,能理解到多深”的问题了。
无论如何,个人感觉,如果准备起项目,那么这个问题要看技术负责人如何选型,他手头的资源他自己肯定最了解。而如果是自己就在做选型工作,那就要评估自身能掌握的资源更亲和于哪种解决方案了。
祝好运。
发表于 2020-11-25 14:54 | 显示全部楼层
推荐UE4!
优点:开源,功能强大,可以学到很多黑科技,开发语言建议自己写脚本插件,比如我们都是使用Lua和Python作为开发语言,效率高,与现有项目无缝衔接!我司最近的所有新项目几乎都是UE4。
缺点:复杂庞大,学习曲线陡,资料少,需要很好的基本功、英文阅读能力和自学能力。
发表于 2020-11-25 14:55 | 显示全部楼层
这里只重点说关于大型3D网游的部分。
Unity的网络开发我个人只做过一点,基本就是用C#自带的网络库,和通用的C#网络开发类似。好处就是解决方案非常成熟,网络插件和中间件也有很多,开发难度较低。事实上市面上用Unity做的在线游戏很多,比如王者荣耀。出乎意料的是纯3D网游反而很少,比如《Albion Online》。
Unreal和其他两个的区别在于网络功能被高度整合在引擎中,有一套自成体系的方案,包括服务器本身。好处是对于熟悉Unreal的人来说上手快,坏处就是对熟悉一般网络开发而不熟悉Unreal的人来收很难懂。这一套方案如果是做局域联网的游戏非常简单,比如以前的CS和W3。我最近就就一直在做这方面的开发,包括PC和Switch的局域网对战。不过这套方案不包括数据库,要开发网游就需要额外做这部分。好在C++网络开发也很成熟,重点就在于实现和游戏部分的数据交换。市面上比较有名的Unreal网游有《Ark: Survial Evolved》和《Atlas》。
Cryengine我个人没用过,只用过亚马逊魔改出来的Lumberyard而已。Cryengine的文档和社区都烂的一塌糊涂,没查到太多关于网络开发方面的资料,大概率和Unity类似,需要用C++的网络库去做联网的部分。查了一下,Cryengine做的网游比我想象中的还多,包括《ASTA: The war of tears and winds》,还有国产的《蛮荒搜神记》。不过Cryengine只支持Oculus Rift,Windows,PS4和Xbox One,不支持移动平台。
选哪个做网游主要看实际需求,如果只是做魔兽世界那种画面的话Unity足矣,想要做成Red Dead Online那样的能不能搞到足够的美术都是问题。
发表于 2020-11-25 14:55 | 显示全部楼层
看你说的大型指代多大,MMO,都不行。
吃鸡,UE,没别的原因,已有成功案例。
大型网游,bigworld(坦克世界),hero engine(星战旧共和国),这些才是网游引擎。
你列出来的这三个,当网游客户端还可以。
作为gameplay服务器分房间的那种,作为dedicated Server,UE解决方案完备一点,其他的也都有对应解决方案。
作为MMO服务器,没听过成功案例,不过作为MMO客户端的不少。
做网游,首要的考虑的不是引擎哪一款,代码怎么优雅,而是服务器如何架构,如何分簇管理世界,如何管理玩家数据。
比如有的人觉得服务器的很简单,不就存两个玩家数据吗?放到二十年前,可能差不多。你要做个魔兽世界?你觉得呢?MMO客户端才是不就画个图形吗?
很多大厂,拿UNITY这些引擎,也就做个客户端换皮,服务器框架名字可能都只有内部知道。寻路,AI,碰撞,逻辑,都是自己的,客户端用哪个引擎,都一样,仅仅渲染而已。
服务器也有一些对应的开源引擎,具体名字我也没记,有兴趣的可以Google一下试试。
最后题主问的特点,
unity,灵活,平台广易上手,尤其是对有经验的程序。自己还在频繁迭代中,最终走向不好说,趋势上好。
ue,标准传统3A引擎,大多3A大厂出来的美术策划都能很好上手,对程序上手要求要高于unity。很多3A的inhouse引擎,也就是一个削弱版本的UE4,当然,一般团队拿着UE4,也未必做的出人家3A游戏的效果。引擎,毕竟只是工具。
ce,除了育碧和crytek自己,能用好的不多。然而,CE才是大多数inhouse 引擎的真实写照,比如为什么gameplay模块叫cryaction,因为最早孤岛惊魂是动作游戏,后来也懒得改,震惊不。你要能轻易驾驭这个引擎,团队程序功底就算数一数二了。
另外,如果我记得不错的话,UE,unity用的寻路模块是开源的recast,而这个recast的作者,曾经是crytek的员工。
发表于 2020-11-25 14:56 | 显示全部楼层
先说定义:毫无疑问这是个引战问题。。认真你就输了。
CryEngine:原来接触过一点点,但是也就是摘一些Shader,没有具体用来做过游戏,不过多评价。据楼下大佬说编辑器非常难用。
Unity,先说优点:
可定制性高,渲染,动画,编辑器工具,客户端逻辑等都有非常大的可定制性。这一点随着对该引擎的理解加深,感受也会越来越深。.Net原生环境在PC端做资源管理和网络非常方便,也提供很多好用的库,其他诸如渲染动画编辑器之类的,嗯高水平的自然懂,低水平的对牛弹琴,没有展开说的必要。
性能,这个分代码层和渲染层来讲。近几年Unity推出了一系列针对C#的高级优化,官方承诺在开发C#时使用特殊的技巧,可以“达到甚至超过原生静态语言的性能”,超过这个有待考究,不过本人确实尝试使用纯C语言的编码风格,手动精确管理内存,并使用IL2CPP和Burst做静态编译,在一些性能压力测试和MSVC中进行对比不落下风,也很期待未来Unity的HPC#可以全面普及开来,不仅从技术上能够保证性能下限,也能对人力进行筛选,筛掉那些不合格的代码全是GC的垃圾程序。(逃
渲染方面SRP提供的管线框架非常优越,在多线程计算,内存管理,显存管理方面做得都称得上一流引擎了(当然,好多特性不是很稳定,截止到2019版本还经常崩崩看),本人也拿来做了很多工作。
缺点:成也C#败也C#,语言是个大坑,只支持C#导致很多时候写起来非常别扭,C#的Unsafe写Native代码还是挺蛋疼的其实,而且经常看到一些瓜皮同事写的满是GC的代码也挺难受。。非常希望能全面支持C++。。
轮子很少,缺少案例。这个不多说了,大家都懂,造轮子造的挺累的。。最近正在研究超大地形和开放世界,各种轮子都得自己造,心累……
不开源,这个毛病很大,但是道理浅显易懂,不多说了。
Unreal,先说优点:
开源:可以各种白嫖代码,尤其是Shader,打开Github就开嫖,真爽。(我这口饭就是Epic给的.jpg)
轮子多,有成熟方案(还可以白嫖):对应上边提到的,不再赘述。
缺点:
轮子太多。。更新迭代慢。
魔改语言U++,这个一上来很难接受,各种魔改编译奇妙宏定义,对纯C++程序猿来说视觉冲击比较大,而且不太利于技术通用,因为很多第三方不那么容易直接拿过来用,一定程度桑提高了开发成本,不过这个问题不太大。
蓝图:至今让我完全不想用UE做游戏的罪魁祸首(其他缺点都可以接受),饭里掺屎屎里下毒毒里有蛆的感觉。。
差不多就这样,反正是引战贴,说的也很主观,也没打算多么客观。
发表于 2020-11-25 14:56 | 显示全部楼层
如果你是初创公司 不用看,肯定u3d ,ue4 的人这么贵 你请得起?
开发游戏并不是请两个程序员就能搞定的事情。


当然不管请哪个引擎的人,你得有识人的能力,请到真正比较熟悉的人 也非易事。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 01:33 , Processed in 0.078450 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表