所在位置:首页 > 手游攻略 > 虚幻4的源代码和编译好的环境稍微尝试了下

虚幻4的源代码和编译好的环境稍微尝试了下

发布时间:2022-11-21 17:09:09来源:网络整理浏览:29

这两天下载了 4的源码和编译环境,稍微试了一下。没有深入研究,只是跑了几个,看了一下编辑器环境,连c++代码都没看。因此,我没有资格评论世界上最先进的游戏引擎。不过,由于不打算继续深入研究,所以想表达一下自己的感受。

虽然已经很熟悉Unity了,但是真正接触 4还是觉得力不从心。单独使用Unity的时候,感觉坑很多,各种不爽,但是转用UE4之后,感觉Unity很干净并在编辑器界面和代码框架设计方面进行了精简。从某种程度上说,Unity上手容易,上手快,并不是噱头而已。

4中有很多编辑器功能选项虚幻4引擎,菜单中有各种看得懂和看不懂的功能。有点像用3DMax,熟悉又陌生,真正上手可能需要一两个月的时间。当然,如果你之前接触过UDK或者有虚幻引擎开发经验或者是真正的高手,上手会更快。不过个人感觉,反正比Unity难。

打算利用业余时间开发一款ARPG(短期内不会花太多时间),目标是手游版火炬之光。所以选择引擎的标准是3D、爽、手游、易开发。试用了UE4之后,感觉UE4不花点功夫是拿不下来的,而且在已经很容易上手的情况下,除非是个人兴趣,没必要花更多的力气去搞定UE4。

以下是我的一些个人想法:

1、 4开放了所有源代码,每月只需19美元即可随时获取最新代码。也可以在网上下载最新的代码和编译环境。开源代码,这对技术程序员来说应该是很有吸引力的。因为每个人都会有这样的想法,代码是开放的,我有问题可以自己修改bug,可以随意扩展功能。但是使用Unity之后的感觉是,如果设计的非常漂亮,即使不开放源代码也可以自由扩展引擎功能。虽然也有不能扩展修改的部分(就是一些很不舒服的敌人),但这不是你可以随意改变的,因为很多东西都会牵一发而动全身,能修改的部分还是有的插件性质的内容。而这些事情 Unity 是在没有开放代码的情况下完成的。不知道为什么有些人认为不打开代码就会遇到无法解决的问题,但是打开代码之后,一切都可以解决。感觉UE4的开放代码更像是一个噱头,或者是对自身设计缺陷的补救。

2、

这东西很强大,简单来说,一行代码都可以做一个游戏。Unity中有很多类似的插件,最著名的是。虽然我很欣赏这些工具可以让有计划或者不太擅长编程的人做出漂亮的游戏。但是我个人不习惯用这些,就像我不习惯国内的状态机编辑器一样,感觉用代码和配置来维护状态更方便,而且往往更智能。当项目变得复杂时,使用这些可视化工具很容易陷入困境。当然,能正确使用他们的话,对项目还是很有帮助的。比如在关卡设计时开放一些功能进行规划配置,

3.工作流程

引擎最重要的功能是定义工作流。代码可以自己摸索,功能可以自己实践,但是正确的工作流程一定要在团队里学习。因为Unity比较简单,大家还是可以自己去摸索,但是UE4的工作流程是怎样的,怎么做才能发挥出这个最先进引擎的真正威力,这些都需要去研究和摸索。如果只是像OGRE一样使用,会显得很别扭。再先进的发动机,如果不能真正发挥出它的威力虚幻4引擎,也是一种浪费。

4.次世代的渲染效果

ce3引擎 虚幻4引擎_虚幻4引擎_寒霜引擎和虚幻引擎

下一代一直在进化。比如UE4使用GPU粒子,可以渲染数百万个粒子(正常情况下同屏数千个粒子会拖慢速度)。使用曲面和物理光照可以实现更逼真的渲染效果。但我的要求是手游ARPG,想表达的是爽快的感觉,真实与否不在我的考虑范围之内。GPU颗粒就更不用说了,估计过几年手机显卡都不支持了。所以很多高级的功能给了我们也用不了,我们也不敢用。我对里面的全局照明持怀疑态度。不知道是不是真的不需要了,也不知道在手机上的性能和兼容性怎么样。所以,单就渲染技术而言,UE4并没有真正的优势。U3做的很多游戏都很炫,但是那也需要很强的美工。

5.C++代码

UE4开发基本上就是c++代码和Blue Print的结合。虽然嵌入lua之类的脚本语言很方便,但估计不会有什么特别的好处。虽然写习惯了C++,但并不觉得有很多坑。但是和c#相比,还是有点麻烦。Unity使用c#是一个非常明智的选择。一方面解决了开发者用c#的问题,另一方面用Mono实现了跨平台,同时保证了效率。至于游戏的运行效率,如果c#代码能成为性能瓶颈,那我感觉c++也好不了多少。这时候应该优化客户端代码,而不是抱怨语言效率。

6.代码热加载,即写即编译

借助llvm可以实现实时编译,Unity可以实现动态库的运行时热加载,从而实现边修改边看运行结果的效果。

7.很多实用功能不知道怎么解决

比如使用Unity,我已经知道如何添加碰撞盒,如何设置物理,如何处理动画,如何设计技能系统,如何做UI,如何编辑光效。而这些都得在UE4中重新学习和掌握,而UE4的文档和教程也不多,很多情况下根本找不到具体的功能实现方法。等UE4发展起来可能会好一些,但是UDK发展了这么多年,一直没有进步。我担心UE4会改变。Unity能够得到游戏公司和独立开发者的高度推崇。在过去的一两年里,Unity出品的那么多精品大作一定是有原因的。而这种优势当然不是开放源代码就能弥补的。整个生态链的建设不是一两年就能完成的。除非能放下身段去学Unity,但那就不是了。

8、没有找到嵌入式性能分析​​工具

Unity 的内置功能强大且易于使用。这并不是说英特尔 GPA 可以被取代。与 Unity 不同的是,您可以在运行时直接查看当前的性能参数。我不知道如何评价游戏的性能。这其实很重要。同时由于UE4成功的游戏几乎没有(UE3也不多),所以运行性能、发热、兼容性都得不到保障。

其实不光是性能分析工具,像GUI编辑器之类的东西好像也得自己搞定。且不说插件商店等周边设施,就连作为编辑器和引擎核心功能的UE4,也还有很长的路要走。

总结就是:兴趣玩UE4没问题,但除非你是专业的引擎开发者,或者有真正的项目需要,否则你不能把它用于项目,继续学习什么也学不到。