首先你要正视一个现实,目前两个引擎不是谁强谁弱的问题,是在unity占据绝大多数份额的前提下,ue能不能抢夺一席之地的问题。让你举ue的例子,说来说去就是堡垒之夜,epic自家的。如果连这个最基本的事实都无法正视,那你就是感性多于理性了。
其次,言ue必谈3a,然而3a有几个用的ue?事实上3a游戏不单单是游戏,更多的是游戏大厂秀肌肉的一种方式,游戏公司开发3a会尽量用自家的引擎,否则就等于示弱。这也是unity 3a游戏少的原因。而游戏就只有3a吗?如果你回答是,那你就不是游戏玩家而是“看家”。
最后再来对比下引擎。非常认同虚幻官方在本题下说的:说引擎技术难,只要它没有致命的短板,这就不是关键原因。对于unity,其他答主也说了一些缺点,比如工具链不完善之类。但是这不是致命短板,就不是弃用unity的关键原因。
那么两个引擎有各自的致命短板吗?当然有。
unity的短板在于,它不是一家游戏公司,基本只靠引擎赚钱,所以基本不可能开源。这就导致如果你有特殊定制需求,基本上只能去买代码,签各种协议,花钱去充当unity测试员。不过闭源也有一定好处,就是unity会尽可能让引擎和逻辑隔离,让用户实现功能不必过多关注引擎内部。某些比较底层的东西,比如渲染管道,也能用脚本化的方式实现,也就是srp,这玩意刚出来时候质疑比较多,现在也有了不错的效果。
另外,卖引擎的找中国代理,很容易出现和国际版服务不同的情况,比如一天一登录,把自己玩死。
而ue的短板,就是c++。为了让编辑器支持反射,ue把c++魔改成了u++,实际运行的代码不是你写的代码,而二者之间是什么关系,能搞清楚的恐怕至少年薪百万,而且每个公司必须要有一个坐镇,否则出了问题就干瞪眼。从这点来看ue开不开源也就那么回事。而魔改之后的u++在编译速度上更加恶劣,不知道联合编译小公司是否用得起。而c++本身的缺点也会被完全体现,比如语法复杂,比如一帧崩溃会导致整个游戏崩溃乃至编辑器崩溃,比如各种奇怪的内存问题。c++语法功能存在不足,要实现三秒后关闭对话框,基本只能写timer加回调,而不能用协程。
ue的引擎、编辑器和游戏逻辑代码全揉在一起,恐怕和c++不无关系,开源也是不得已而为之,不开源不看源码不改源码,许多特殊需求也很难实现。而程序员使用开源引擎时会考虑直接改引擎代码,这种习惯更加拖慢了引擎的模块化进程,而显然ue官方并没有这个进程,ue5的引擎代码仍旧是一大坨。
两者相较之下,我认为ue的问题是不可解决的,是真正的致命问题。未来游戏需求越来越多,恐怕ue会越来越庞大臃肿。而unity虽然在某些方面上不足,但这是可以弥补的。
所以说,unity是未来的方向,是毫无疑问的。