找回密码
 立即注册
楼主: sasasa0604

unreal engine4 中c++与blueprint如何取舍,两者是什么样的关系?

[复制链接]
发表于 2020-11-25 13:04 | 显示全部楼层
从实践经验讲,我更建议用c++。
理由如下:
1,从适用性来讲,蓝图只适用于简单原型的快速搭建,所以称之为设计师脚本,对于实际应用项目(一般而言公司商业化的项目都不是简单的原型),根本无法胜任,蓝图无法做到软件工程中的很多成熟的设计模式,比如mvc,所以它写出的代码会耦合性非常大,维护拓展都非常困难,表现是经常看到一张张庞大的密密麻麻的连线图,一看就晕,而且根本无法快速定位到具体函数,给调试阅读等带来极大困难;
2,从实际开发效率讲,其实比c++开发低很多。从代码编写上讲,c++一般有非常成熟的ide比如windows上的vs,加上强大的代码提示插件va,再结合编程者本身良好的素养,比如面向对象思维,模块分离,函数功能单一,实际写出来的代码即快又复用扩展性好,而蓝图可能初始连线会比较快,功能一复杂,缺少设计模式指导,后面就成了一团乱麻;从调试上讲,c++有非常成熟的调试器及方便的ide,函数断点,数据断点,变量查看……,蓝图调试基本只能看变量及简单输出,实践中调试解决问题的时间基本占一半,蓝图此时根本无法胜任。
3,从执行效率讲,这个就不用说了。
4,从对引擎熟悉或者学习来讲,c++直接让使用者可以了解底层,比如gameplay框架,各种object component继承体系等等,我们知道掌握原理掌握规律才能掌握一切。
所以综上所述,我极力推荐用c++,对你的前途,对你的公司项目都负责。这里推荐一个课程,在腾讯课堂上《多人在线射击游戏c++开发实战》,完全c++来实现,大家可以了解一下。
发表于 2020-11-25 13:04 | 显示全部楼层
虚幻4的蓝图是个看似美好的陷阱。
Epic在表达给人一种“蓝图是美术人员都能实用的东西”、“人人都能做游戏”的错觉。
然而实用蓝图,你依旧需要编程思维。

我是艺术生,我在给室友讲解蓝图怎么用的时候,是开着Unity拿C#做对照举例子的。

真要说取舍的话,蓝图肯定得会,C++能学的话最好学点,两个都会了,你自然会选择适当的东西去开发适当的功能。蓝图和C++是可以混合互补的,不对立,不矛盾。

当然我现在主要是用蓝图,实际上对于会写程序的人来说,用蓝图反而会和我一样很憋屈吧。
发表于 2020-11-25 13:05 | 显示全部楼层
分两种角度:
对项目来说要平衡美术策划和程序三者之间的生产效率,UE是一套工具集,它定义了在它之上的工作流。而蓝图就是这套工作流的核心,像一个建筑的图纸。虽然这个工作流不是强制的,但只要你想平衡并促进团队的生产效率,它就不能缺少。比如材质系统是为了美术设计的,还有角色相关的状态机,UI相关的UMG等。

对程序员来说就是平衡两个效率:机器的执行效率和人的生产效率。
c++擅长的当然是跟机器打交道,而蓝图在正确使用的前提下能够提升生产效率。关键点在于正确使用蓝图:不要用蓝图写复杂逻辑,更不要用它写性能逻辑。还有一点是蓝图的维护性差(?)不方便版本管理。所以在会用c++的情况下,蓝图的使用情况局限于弱性能弱维护性内容,典型的比如周期性替换的非游戏逻辑UI。

总的来说蓝图不是给程序员用的,但也并没有阻止,这时候蓝图就是作为c++之前的一个台阶,满足一些非游戏或弱游戏项目。
发表于 2020-11-25 13:06 | 显示全部楼层
取舍太一刀切了。入门肯定先学蓝图,然后学C++。蓝图和编程是可以一起使用的。就像不会mel,一样可以使用maya,要是想实现自己的奇思妙想肯定是需要自制脚本。两个方面都有大致的概念后,就可以专攻一个。编程太复杂,需要记忆的零碎太多,当然学起来耗时,还没有人指点。最好不要想着完全精通,只精通某一两个方面就可以了。毕竟我也不相信你精通了maya或max所有模块,量力而行。单从制作不复杂游戏方面考虑,蓝图更容易,但了解程序对深刻认识引擎还是很有帮助的。
发表于 2020-11-25 13:06 | 显示全部楼层
我觉得这是关系到架构设计的问题,不建议全用c++,偏游戏逻辑最好还是用蓝图或者lua解决。有两个原因:
1.如果是手游还涉及到热更新的问题,在ios端全c++上线后出了bug只有哭了。
2.把偏流程的部分,比如技能释放,ui效果这些部分用bp或者lua写,可以保持灵活性,可以让策划可以自己去写逻辑,另外如果要让玩家开发mod,这部分用动态语言是必须的了。
发表于 2020-11-25 13:07 | 显示全部楼层
取舍?双,,,那个,,,什么,,,就不行么,,,,真是的,,,反正我,,,一起那个,,,可爽了好么,,,
以前很多人来喷我说用蓝图的废物(真的有),因为出视频不太想写代码,,,所以一般就给你们看蓝图好了,,,
言归正传,,,
首先,两者是,蝙蝠侠和钢铁侠的关系,
c++是蝙蝠侠,蓝图是钢铁侠,
蝙蝠侠可以在黑暗中一剑封喉,从天而降,专治各种不服,也可以召唤各种队友比如超人(cv),召唤各种后宫,比如WW(gl),甚至各种粉丝,比如丑爷(as)等等,,,
那另一边,钢铁侠可以轻易组建反浩克装甲,反队长装甲,反雷神装甲,反鹰眼装甲,反基妹装甲,反黑寡妇装甲,反小辣椒装甲等等,,,现场组装,,,省事省力,,,效率一流,,,效果显著,,,老板开心,,,客户放心,,,前提是被用太多耗电的功能(tick.etc)就行,,,
现在你有机会同时,,,那个,,,什么,,,,两个,,,
你还不满足?
你还要取舍???
你可有点不厚道了啊,,,
再说了,,,英佩其实,,,非常关注钢铁侠的成长,,,
还有啊,,,我试过分两个来写AI,,,钢铁侠效率并不比蝙蝠侠差,,,可能我打的怪还不高级吧,,,
记得,,,试一下,,,双,,,那个什么,,,,啊,,,
不说了我去,,,双那个什么去了,,,
附图我最心目中的蝙蝠侠和钢铁侠,,,
出见水,图侵删




(太社情了 d(ω`*))

本帖子中包含更多资源

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

×
发表于 2020-11-25 13:07 | 显示全部楼层
我个人不是程序科班出身的,属于美工转交互,目前为止用蓝图实现功能基本想要的都可以达到,当然也在自学程序弥补不足,个人觉得这两个并不矛盾,蓝图比c++更容易上手些,但程序是基础,毕竟蓝图只能用ue,而c++可以应用到更多的方面,学好程序也更容易理解蓝图的应用。
发表于 2020-11-25 13:08 | 显示全部楼层
cpp的问题在于你必须会写cpp代码,bp基本大家有点逻辑能做点基础的东西来。但是一段复杂的逻辑,程序员用代码写完可以日后很快的明白逻辑,bp的话就类似cpp模版一样过久了你也不知道怎么连的了。推荐bp做胶水,也就是把一些接口层面的东西组合起来形成小逻辑段。cpp去做dirty work。另外做原型时候用bp也不错,速度快不用动辄编译项目,编一下好久.
发表于 2020-11-25 13:08 | 显示全部楼层
4.16版本的虚幻4加入了将蓝图编译为原生代码的功能。。。瑟瑟发抖
发表于 2020-11-25 13:09 | 显示全部楼层
为啥邀请我呀…我只是美工一枚,并不会程序
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-19 11:47 , Processed in 0.067051 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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