资源大湿 发表于 2020-11-23 20:23

为什么国内那么多开发者喜欢用虚幻或者Unity?

是因为虚幻和Unity免费么。。而且很奇怪,用这两个引擎还不用最新的。。

saswind 发表于 2020-11-23 20:23

这两个引擎为什么市场占有率较高,首先有一个共同点就是起步免费。
Unity分为个人版,加强版和专业版三个版本。个人版是完全免费的,就算使用个人版发布商业项目也是不收费的。但当你年收入或者启动资金超过了10万美金,则需要去购买加强版或者专业版。(引擎购买费用相较于收入限制也算比较便宜了)
虚幻4也是一开始完全免费,当发布的项目收入超过3000美金则收取5%的版权费用。
试想你是一个刚入门的游戏开发者或者一个小团队,相较于什么都还没做出来就要花一比不小的开支去购买引擎的使用权,相信大部分人还是倾向使用免费的。
其次是引擎的功能是否强大。
Unity的自定义功能很强大,而且上手门槛不高,不少人都可以自己发布自己的插件。关于画面上有个误区:Unity的画面不如UE4,其实只是由于Unity关照移动平台比较多,默认的画面表现力较弱,真要做大型游戏还真不能一概而论。(Unity也能做出表现力极佳的游戏,比如"逃离塔科夫")
Unity依靠易用性实现了弯道超车,哪怕一个编程都没学过的新手鼓捣一段时间也能搞出点东西来,加之国内游戏开发者做手游这种较小的项目的人比较多,手机上游戏的表现力就不像电脑上要求的那么高,因此用的人也比较多。
相比之下虚幻4的使用门槛就比较高,虽然也有蓝图系统这样的可视化编程工具,但终究还是更庞大一些,学习成本也高一些。
但是虚幻4也有它的优点,它是开源的,自定义性极强。而且在画面表现力方面,虚幻4使用自带的工具就能实现3A级游戏的效果。


如果不用它们,用什么引擎呢?
常见的有MonoGame、Love2D等等,很多有名的独立游戏是用MonoGame做的。
说实话,这些“引擎”相比Unity或者UE4功能实在太弱了,所有模块基本都需要自己学习、封装后使用,对学习编程来说很有用;但是真做游戏的话,周期较长,很容易变成“从入门到放弃”。
总的来说引擎的选择其实就是游戏市场选择的结果,现在国内开发小项目Unity基本同级横扫,开发大型项目虚幻4又有比较大的优势,所以这两个引擎用的人多也不奇怪了。

shangcunbao 发表于 2020-11-23 20:24

因为unity实在是太万恶了
只要你懂一点点美术和游戏(甚至美术都可以忽略用别人的),稍微学习一下unity的教程(满地是的教程),做游戏的过程中要实现什么扩展功能上Unity Store找插件就能轻而易举地集成进你的游戏中(什么IAP啊什么社交分享模块啊什么NGUI啊)
你就可以很容易地用unity撸一个游戏出来(当然好不好玩好不好看另算)

这么万恶的东西怎么能不吸引人呢?

Null 发表于 2020-11-23 20:25

首先,使用哪一款游戏引擎去制作一款游戏,并不是根据使用者的喜好来制定的。开发者们的喜好千奇百怪,但最终能在技术选型中影响到结果的,往往是技术积累以及引擎本身的特性。
目前,虽然Epic的虚幻因为Unreal5的预览发布,声势滔天,说他惊艳了全球的游戏产业,绝不为过。其Nanite虚拟微多边形几何技术和Lumen动态全局光照技术,几乎可以算得上是一次渲染界的产业革命了。
这种新的渲染技术有多牛逼呢?一定要打比方的话,就相当于模拟信号到数字信号的转变,说它是一次对业界的降维打击,我想反对的人不会太多。这两种技术都采用了新的思路来解决美术方面的问题,一个干掉了场景多边形数量上限的帽子保证了美术在导入模型的时候不会因为多边形数量过多而头秃,后者则宣称不需要DXR的硬件支持就可以达到Runtime RTX的效果。
Lumen
Nanite
两个大饼看上去简直无比香甜,不由令人想到,2009 年,Tim Sweeny 在 CGDC 做过的一个分享。分享叫做 《下一个次世代——万亿次浮点运算时代的游戏开发》,说的好像就是这个十年后的引擎。如果Unreal真正做到了他宣传的水平,那么无疑它很有可能征服市场。
但是,我要说但是了,一款新的游戏引擎从预览发布到完全能用,可能是一场长征。不知道有多少人记得当年Unreal的实时光照鸽了多久……
就如同开头所说,决定用哪一款引擎去做游戏,不是根据喜好来的。就一套生产力工具而言,很多时候美好的未来并不见得能带来多大的市场,好用,简单,稳定,量足管饱才是刚需。
可用性和鲁棒性反而是计算机系统评估中权重很高的项目。所以,哪怕是Epic的大股东,腾讯,它自家新发布的四十款游戏中,目前选择Unity的比例依旧高达80%以上。
由此可见,Unreal虽然看上去非常强大美好,喜欢的人很多,但是并不那么接地气,有点空中楼阁的意思。在国内游戏引擎市场占有率上,还是可用性和鲁棒性相对更高的Unity占据了压倒性优势的。
Unreal的强大和不足

市场是诚实的,虽然Unreal非常优秀,但好像大家都不怎么买账,这到底是为什么?
第一,它选择了c++作为主要开发语言。很好,很强大。
作为一门Native语言,c++最典型的描述就是瑞士军刀。灵活,强大,锋利。
选择它,就不会有难以控制和预测的垃圾回收的烦恼。
选择它,就不需要考虑胶水语言、托管语言、脚本语言的低效。
选择它,程序员可以用最直接的方式实现最优秀的解决方案。
但是,选择它就意味着要自己管理内存,要自己去管理第三方库的编译、链接、兼容问题,要自己去实现具体方案的每一个步骤。对于经验老到的程序员来说,这三个问题每个问题都和地狱一样。他们当然可以用苦练很多年的独门绝学淌平这些问题,但游戏不是一个人开发出来的……
别人怎么办?别人连在面试里提自己掌握和精通c++这门语言都不敢。
面对很有可能漏得到到处都是pAActor或者pUStruct,
面对老板们拍着桌子要求他们快糙猛干,
老码农们愉快地打出了GG。
第二,它的视觉效果极其优秀,非常适合3A级别的游戏。
作为一款游戏引擎,可以说它能满足大多数脑洞不太大的游戏艺术家们对于画面的追求。
或者说,大多数时候,一款Unreal游戏的画面不够好评时,瓶颈绝对不是出在引擎上。
是的,别想太多,用虚幻还做不出好画面,唯一的可能就是使用者太菜了。
然而,如此强大的游戏引擎,又犯了忌讳。
它的确非常适合高水平的团队制作大体量的3A游戏,可是国内的游戏市场里……
不,甚至国际游戏市场里,现在也是小体量的游戏占据了绝对的主流。
记得暴雪的老头子前两年开发布会的时候提过一个经典的问题:“难道你们都没有手机吗?”
他问的方式不对。
正确的问法是:难道你们没有2080ti吗?
而标准的回答是:是的,我们没有,我们只有骁龙865。
于是,面对一个空项目都能打出200m包体的引擎,制作人们选择了放弃。
这块肉很香,但咬不动啊。
第三,Unreal是开源的。非常有Hacker精神,也非常值得赞赏。
很久以前我还在用cocos做游戏的时候,跟到过一个引擎自身的漏洞。
这个漏洞会导致引擎在满足一定的条件时,会误判字符串长度,从而显示乱码。
它非常折磨人,当时我的想法是,如果cocos不是开源的,可能我就要一直头疼下去了。
那一次,开源救了我的命!开源消灭了我变秃头的可能!
是的,毫无疑问,同样一个引擎,开源总比不开源更好。
但是,纵观我那么多年的经验,其实使用第三方库过程中,开源救命的也就那一次。
这意味着,开源和闭源在技术选型中的权重往往不高。
因为大多数实践中,work around更具有性价比。
就好像用户使用Linux而不用Windows的原因有很多,
但只有极少数人仅仅是因为linux开源而windows闭源从而选择linux是一个道理。
Unreal的开源的确是巨大的优势,但很遗憾在用户群体中这个优势的权重还不够高。


总结一下
总之,Unreal是非常强大的引擎,但他的渲染太重了,对于大多数游戏来说,过于强大。
在Unreal5中,它甚至能做到千亿级别的多边形和动态光照,看上去强到开创了新世纪。
它的几何数据虚拟化的想法和技术,的的确确是划时代的进步。
这项技术将复杂场景的几何全局参数化到统一的虚拟地址空间里,
同时通过算法把这种映射带来的畸变和噪音降低到最低,
以上的处理过程,都是需要大量深奥的微分几何理论来保证的。
这种划时代的进步,简直是数学是上帝的语言最好的佐证之一。
但正如那些问题,有多少人擅长使用上帝的语言呢?
或者说,当今的游戏产业里,有多少场景需要使用到这种数量级的多边形和动态光照呢?
影视业可能会用到,但很显然梦工厂是看不上UE的,然后呢?然后就没了。
有人要问了,你刚才不是吹了很久3A级别的渲染效果吗?
没毛病啊,我是吹了很久Unreal,但我有说过3A游戏都用它吗?
《全战》系列是自研引擎。
《刺客信条》用的是自研引擎。
《黑魂》用的是自研引擎。
《美国末日》,《神秘海域》用的还是自研引擎。
《GTA》是自研引擎,《老头滚动条》还是自研引擎。
什么叫惊喜,这就叫惊喜。
那么到底谁在用Unreal?
枪、车、球、家装、VR……


以前有一个游戏技术选型的时候。
我问制作人,我们用Unreal好不好啊?
他说好啊,做个次世代手机游戏出来啊,赞。
我问策划,我们用Unreal好不好啊?
他说好啊,蓝图功能多好啊,我自己能改系统了,赞。
我问开发组长,我们用Unreal好不好啊?
他抄起键盘就砸了过来,“他妈的做到一半程序员掀桌子的话,烂摊子谁来收?”
Unreal最大的问题不是不好用,而是它自带的Demo太优秀了,
优秀到大多数人做出来的东西连它自带的Demo都不如。


然后,我们反观Unity。

网上总是流传各种Unity的负面新闻。
但其实,不正是因为用的人多,才会不停成为热点的吗?
为什么大家喜欢用Unity呢?
第一,它选择了C#作为主要开发语言。
C#是一种托管语言,和c++比,不够Native,不够高效,和脚本语言比,又不够灵活。
但它胜在全面。
强类型,跨平台,语法糖,应有尽有。
比简单的脚本语言强大,比c++更简单易用。
值得吐槽的是托管语言必须要面对的一个垃圾回收、和源管理问题。
往常,开发者们只能通过Unity自身的Profile功能来大幅度优化来解决不可预测的卡顿和崩溃。
但随着2019LTS版本中增量GC的功能推出,这个问题已经可以被引擎本身缓解一部分。
增量GC是指,引擎通过在多个框架上分配工作负载,来把一次性的大型的中断替换成多次小型更频繁的中断。通过这种粉碎式的替换,在游戏引擎运行过程中实现一种近似于load balance的效果,从而消灭突如其来的巨大卡顿,降低开发者的优化压力。
第二,Unity的渲染系统虽然不够突出,但是也足够好用。
传说中的Unity做不了高端游戏,绝对是一个误会。
我们往往不这么做,仅仅是因为市场更看好手机平台的游戏,要知道在我国PC的渗透率只有可怜的30%左右。主机市场更惨,但是介于某些敏感的原因我就不解释了,我相信只要是个老玩家都懂,任何合格的我朝游戏从业人员都不会把做主机游戏当做一个目前可行的方案。
是的,我们不用Unity去做高尖端游戏,不代表它做不了次时代画面的游戏。
奥日2
帕斯卡契约
Unity画面不行已经是老黄历了。
譬如《奥日2》,《帕斯卡契约》,最近两款画面广受好评的游戏,就都是Unity开发的。
还有最近发布的PS5游戏《Oddworld Soulstorm》预览,这款游戏也是Unity做的。
视频如下:
【2020索尼PS5发布会】《Oddworld SoulStorm (奇异世界:灵魂风暴)》宣传片由于背负着沉重的老黄历包袱,近年来Unity在渲染上花的功夫还是比较足的,虽然真要实现超高水平的渲染还是会很耗,但一般的大制作问题不大。
譬如Unity2018就已经推出,在Unity2019LTS中开箱即用的High Definition Render Pipeline。这款新的渲染管线是专门为了高性能显卡设计的,支持许多诸如Shader Model5.0之类的次世代特性。
可惜的是,它必须在支持cpu shader的平台上才能使用,因此,业界使用到它的机会也不多。不过这不是引擎的问题,将来手机硬件升级以后,该强大的渲染管线支持高端手机将不会是问题。届时,Unity开发的次世代手机游戏将会更普遍。
Unity同样没有遗忘它的基本盘,在不够高端的平台上,Unity推出了偏重灵活性,可配置性,可编程性,易用性的URP。URP全称Universal Render Pipeline,它就是为了轻量级渲染而生的。
简单,好用,开源,可编程,偶尔技美一定要搞点大动作,也可以挪一点HDRP的小组件,改巴改巴整过来提高游戏的逼格也是可以的。
第三,费用问题。
我已经看到过无数的人吹Unreal的收费便宜了,但这吹法不对。
尤其是腾讯用脚投票的姿势那么明显……
Unity是按照坐席订阅收费的。
你开发一款月入一个亿的游戏,和一款月入一百万的游戏,订阅Unity的价格是不变的。
一套正版一年1800刀。
但如果你用的是Unreal,它们不是这样算的。
当你的收入超过门槛以后,它是按照5%抽成的。
不要小看5%。
《王者荣耀》这种规模的游戏,一个月的5%就可以有100万刀,而这笔钱可以够600套Unity用一年。
这笔账非常好算,好算到腾讯至今新出的游戏里面,Unity依旧有80%以上的占比。
所以,对于国内的游戏市场来说,Unity更便宜是没问题的。
第四,也是对于个人来说最重要的一条。
所有其他的理由,都是帮助游戏公司用更低的成本,更简单的方法,更高的成功率去做出一款符合市场预期的游戏。
只有这一条,它牵涉到的是开发人员自身。
那就是Unity成熟的社区和市场,本身就是一个巨大的诱惑力。
当你一旦考虑到哪种游戏引擎学了更容易找到工作;
或者你一但考虑到哪种游戏引擎学了以后对公司的依赖度会下降,更容易跳槽;
或者你一但考虑到哪种游戏引擎学起来比较容易成功,网上资源更多;
只要你考虑到诸如此类的问题的时候,我可以负责的说,Unity目前是标准答案。
是的,如果仅仅考虑玩一玩的话,选哪个都行,它们各有特色,玩起来体验也不一样。
但如果有人想要通过某一种引擎去真正投入到游戏开发的工作当中去,寻找更好的机会的话,必然是Unity,不信看数据,145:954。
某网站搜索Unreal,145职位记录
某网站搜索Unity,954职位记录
也许你能看到腾讯等场子里有引擎组的大佬搞Unreal很捞钱,一边捞钱一边跟你吹Unreal。
但你要相信我啊,他们捞钱是因为他们是大佬,不是因为他们搞Unreal。


最后

我想说,工程这种东西,最重要的应该是,哪怕是一个菜鸟把工作接过去,也能做得像模像样。
Unreal的设计理念,无论是顶尖的效果,最硬核的开发语言,还是蓝图这种为了非程序员准备的开发工具,走的全是高端大气上档次的路线。它牺牲了接地气的气质。
而搞工程,我以为接地气非常重要。这就是为啥你会在知乎或者社区里看到很多人玩Unreal玩得很带劲,但一旦到了公司到了项目中,还是用Unity的根本原因。

n669ap 发表于 2020-11-23 20:26

1、与其他的游戏引擎相比,正版Unity的价格已经是十分的低廉了,对个人的经济承载能力要求不高。
2、为什么不用最新版?就我所知,程序员对于软件的追求一般是“求稳不求新”。按照我的老师所说,除非小版本号为3以上否则不要考虑。
举个例子吧,Unity的版本号为a.b.c,a为大版本如4.x,b为中版本如4.6.x,c为小版本如4.6.8。现在大多数公司用的有两个版本,4.6.8跟5.1.2,5.1.3目前出没出我不清楚所以不乱说。大版本一般是重写API,革命性技术更新。中版本一般是发布一些新的拓展。小版本一般是修正bug。
3、虚幻作为商业引擎,突然推出了有条件的免费使用模式,以此吸引大批程序员开发,这难道不是一件好事吗?不明白题主到底是想要个什么结果
(以下是跑题时间)
嗯,题主肯定是看不惯这两款引擎(逃)

dabing 发表于 2020-11-23 20:26

因为大部分人用起来就是个高级的地图编辑器,那些教学性的引擎源代码(ogre 鬼火之类的)都没看过几行的能写游戏么

HackerEva 发表于 2020-11-23 20:27

首先不说别的……噱头是第一位的。
次时代虚幻引擎,高端大气上档次。
首先说到虚幻引擎,群众以为是这样的:

(DMC鬼泣)
或者是这样的:

(子弹风暴)
也许是这样的:

(细胞分裂5:断罪)
要求低一点,这样也行:

(风暴战区)
或者这样的:

(油腻的师姐)
但是最后一玩起来是这样的:

(闪瞎狗眼的逆战)
或者是这样的:


都说nz画面差,这游戏要是不说,我都看不出来是虚幻3……

除了噱头,就是这个引擎确实好用。
http://player.polyv.net/videos/c376da5e2ae736c22a9ea24c0ad4f7e2_c.swf
比如这个《幻》看起来哇!好屌好屌,结果仔细一琢磨,这特么什么鬼……
如何看待现在制作中的国产独立游戏《幻》? - 网络游戏


最后才是引擎廉价,毕竟cryengine也便宜,但是会用的人没虚幻的多啊……

xyxdasnjss 发表于 2020-11-23 20:28

要不题主提供一个更好的引擎给我们用用?
简陋的cocos?复杂的directX?凉了的openGL?别闹。
免费功能又强大,最重要的是社区和生态做的好,你遇到什么问题都能在它俩的生态链上用别人的智慧解决,还有什么不满的。
另外,Unity的烘培引擎是真的辣鸡,慢的要死、效果还比UE4差的要死。

bbs0123l 发表于 2020-11-23 20:28

第三方引擎中现在社区最火的应该就算Unity了。

因为。。。。真的很方便。。

我根本没有任何游戏开发经验。就是C#还玩的比较好。
有天我下了Unity,找了点资料。
居然就能做出一个像模像样的游戏来了。

你说这样的引擎。
哪个开发者不喜欢?
(这点UE从语言上就输了。当然UE的画面是真心好看啊,烂作的画面也好看,真不真实另说,总之在我显示器上看起来好。)

还有不止是国内。
现在App Store里下的游戏一打开前面闪一个Unity Logo的还叫少?

95721969 发表于 2020-11-23 20:29

游戏引擎,之所以叫游戏引擎,是因为里面集成了大量的特别强大,方便的工具。
例如光照渲染,例如物理系统,例如ai 行为树,例如动画编辑器,例如shader编辑器,例如地形编辑器,例如音效引擎,性能查看器,例如调试工具等等等等。
另外引擎里面也封装好了大量的api,避免游戏开发者重复造轮子。
其中大部分人能够接触到并且容易获得授权的有:虚幻4,unity ,Cocos 。而游戏工业发展到3D游戏阶段最优秀的则是前两个。
虚幻4:开源,功能强大,更新频,工具丰富,渲染做得好。但是臃肿。
unity :轻量,基本满足游戏开发需求。但是不开源。
页: [1] 2 3
查看完整版本: 为什么国内那么多开发者喜欢用虚幻或者Unity?