请教大厂的大佬们ue4游戏开发,蓝图重要一些 还是c++ ...
正好写了篇文章来讲讲这个问题,贴过来:怎么让UE4工程师们打起来?去群里吼一声,BP大法好!随着UE4的发展,继而BP的广泛使用,UE4工程师们找工作的时候,经常会有这么一些疑惑:
游戏开发是蓝图多一些还是C++?
招聘的话考C++多还是蓝图多?
不会C++/只会C++能否做UE4游戏开发?
作为一个曾经的游戏开发主程,现在从事UE4培训教学的负责人。我去应聘过,也面试过别人,现在我也常常被我的学生们问到这个问题。在挺早之前我就开始留心搜集了学生们出去公司笔试面试的题目,也回访了挺多家公司进行反馈,平常也经常和UE4圈内的同行们闲聊交流过这个问题。
UE4国内发展现状:
UE4目前在国内还不是那么火,开发人员也大大少于隔壁Unity。之前用UE4的一大帮都是VR样板间和游戏,得益于吃鸡的火爆,最近才开始慢慢扩散到端游手游。因为VR本身的还不成熟,商业回报还不够大热,所以目前做VR的公司大部分都是小公司。
据我观察,目前业内用UE4的大多数都还是小公司,加上一部分大厂开新项目。大厂里有腾讯这样直接入股Epic的开始大搞特搞的,也有苏宁国美这种探索应用的。虽然UE4增长迅猛,我也相当看好,但从公司和开发者数量上来看,UE4现状还远远比不上Unity搞手游的。直观的体验就是,讨论UE4的QQ群,人员有相当大的重合度。经常有人加我的群进来,然后发现,咦,你怎么也在。UE4圈子目前还真挺小的,大家基本都差不多认识。
技术实力上,目前国内的UE4从业人员水平还不够成熟!国内从UE3过来的老人跟熊猫似的珍稀,相当一部分UE4开发者是从Unity转来的刚用的;得益于蓝图的易用,还有越来越多是转行过来直接上手UE4连蓝图的(程序基础比较薄弱)。当然也有的原因是UE4的人员积累,游戏项目积累,教程积累都还不够。
UE4面试现状:
UE4发展现状导致的情况就是,一个人去面试的时候,遇见的面试官主程,有大概率他也是不怎么懂UE的!甚至有相当的概率,整个公司都没啥人对UE4熟悉!然后招你去开疆辟土……
[*]不熟悉UE4的主程怎么面UE4开发人员呢?问C++(UE4也可用C++开发),游戏开发的知识,多线程,网络,算法这些“游戏开发通识教育”知识。
[*]因为UE4开发人员短缺(缺的是熟练掌握UE4的,初级其实未入门的倒是有挺多),所以在招人的时候往往也只能矮个里面挑高个。面对刚学习编程用UE4的新人来说,UE4深一点的知识他是不懂的,你能问他什么?你所能在乎的,不过也就是希望他勤奋好学有灵性,说白了就是有培养的潜力。既然要看潜力的话,自然常常就会考核C++了。连C++这么“难学”的语言如果都能学得还差不多的话,那大概率上来说他至少是能够胜任当个程序员的。
[*]有相当一部分小VR公司,招UE4初级工程师,甚至是只要你态度好就可以让你进去试一试的。当然,你得学过UE4,并且在实际开发中胜任基本工作。
[*]当然也有问到蓝图的。分为两类,一部分是非常基础的蓝图语法问题,另一些是基本的UE4的GamePlay框架的问题。其实都很简单,没办法啊,考难点就没多少人会了……大概是类似这些问题:
[*]BP里函数、事件、宏的区别?
[*]BP里对象通信的几种方式?
[*]BP里EventDispatcher的用法
[*]GameMode和LevelBlueprint的区别
[*]PlayerController和Pawn之间的关系
[*]PlayerState和GameState各是什么
[*]少量有问UE4实现机制的。一般都是大厂做偏大的项目和游戏,技术比较强,他懂一些UE4,所以能问得出来,也能大概分辨你回答得怎么样。
还有一些是让直接拿UE4实现某些功能的,这些小功能基本99%只用BP都能开发出来,考核的其实只是程序思想和解决问题思路而已。
总结观察到的笔试面试情况就是:问C++的居多,蓝图的偏少。
UE4工程师进阶之路:
面试这种现状合理吗?不合理!你要招聘的毕竟是个UE4工程师啊,而不是纯C++程序员!只问C++而忽略了BP,甚至忽略了UE4的直接相关知识,那这场面试其实就是不合格的。
[*]实际的开发工作中,还是蓝图用的多。 Epic不是闲得慌才开发出蓝图脚本系统的。蓝图它就是比C++开发效率高,易学直观,连官方的《RoboRecall》70~80%都是蓝图开发的。而且一些只用BP就能直接很快做出来的功能,你何苦要折腾C++呢。身为游戏开发从业人员,游戏引擎为何常常还需要个脚本系统,这点基本的知识还是得有的。那些一味贬低BP的人是得放下偏执了。官方也是推荐只把C++用在游戏的核心系统上。一个理智的程序员应该能做到各取所长。
[*]C++是进阶的必须品。初级UE4工程师只要熟练掌握好蓝图,再比较熟悉一下UE4里的几个常用类和功能,往往就能胜任大多数的日常开发。但掌握UE4C++BP协作开发是UE4程序员从初级向中级迈进的标志。原因是核心。一是只有C++才能对UE4进行改造拓展优化,二是太多的其他游戏开发功能需要C++做支撑。不会C++,程序之路走不长远。但反过来,只会C++不会BP,也是会有很多瓶颈。明明连两下子就能出来的功能,你哼哧哼哧得搞半天,而且只有你看得懂。所以一个优秀的UE4工程师应该是C++BP两手都要抓,两手都要硬!
[*]熟悉UE4各个功能模块的内部实现机制原理是中级向高级进化的标志。例如Epic官方的那些技术支持们,还有引擎开发人员,还有一些民间的资深开发者。只有懂UE4是怎么做的,你才会改,甚至比它做的更好。举个例子,如果目前要用UE4做MMORPG,因为UE4目前的GamePlay框架、World机制和网络同步方案的限制,就势必要对引擎进行一番改造不可。对于这个团队,就必须要有至少一个高级UE4工程师进行整体架构和团队引导。
[*]会C++不等于会UE4 C++!我想每个被UE4 C++深深伤害过的人都会语重心长的告诫你这句话。曾经我们在游戏行业浸淫多年,对C++实力是那么的自信,直到遇见了UE4。UE4里对C++有着大量的魔改,在C++里经常手撸的内存管理到UE4里变成了对象系统,你得去适应C++和BP协作时那些奇怪宏含义,也得去适应纯C++和UObject系统之间的引用管理,UE4源码里的各个模块也有那么多的API,很多时候写的也不总是那么优雅。引擎代码量又大,想弄清楚一个模块,又发现它在跟别的模块暗通款曲。UE4源码里面又隐含着很多的优化和设计考量,注释不详不知道演化历史的话,理解起来也是很蒙圈。最后就不提游戏引擎的业务知识了,渲染管线材质系统啥。所以会C++,真的只是个开始。
[*]用C++并不比用BP牛逼!技术工作者总是试图强调自身技能的门槛壁垒和复杂度,从而侧面体现自身的价值来换取更多的回报。但常常忘了技术的初心是用来解决问题的,一个技术也并不是完美的,都有其适应发挥的领域和其蹩手蹩脚的地方。我常常听说和见过,一个程序员信心满满用UE4C++开发款游戏,然后往往游戏Demo还没做好,就因为各种原因挂了,自己把自己折腾死了。BP和C++都是你的工具啊,都有其优劣点。你没有理由去嫌弃一个工具,也没有理由去进而贬低用这个工具的人。做技术的,追求技术选型的最优解的话,应该是博采众家之长才是。但落到现实,一个团队的技术选型却往往并不绝对取决于技术本身的优劣,还和团队本身所处环境有关,是个混合了经验和客观、传统和革新,政治和心理的复杂问题。
[*]有些有经验的大厂,技术实力雄厚,本身已经有一大批成熟的C++程序员,所以有一开始就直接上C++的。也有可能是因为对项目的未来发展心理有数,知道哪里该用C++,哪里该暴露出蓝图接口给团队别人用。总之尽量想清楚了再写。
[*]有些其实只是单纯的因为团队技术氛围,老人们崇尚C++并引以为傲,连带着团队里用BP做功能的新人好像就低人一级。程序和美术策划都一样用蓝图,怎么显出程序的水平?
[*]有些只是因为习惯了,写了那么长时间C++,突然让人日常开发的一大半时间转换为BP,自然会有些不适应,担心自己的C++水平没有体现,久了也生疏。
[*]有些人只是看到BP的一些缺点,比C++慢、难重构合并,不如手写代码那样神圣,就看不起BP了。人往往只看到自己愿意看见的,只相信自己愿意相信的,选择性的忽略了BP的那些优点,开发效率高,易读直观。有些功能真的有必要上C++吗?正如一个程序的性能瓶颈往往只落在20%代码上一样,一个游戏的开发工作也往往80%用不上C++。
[*]说白了,大家都是打工仔,都是靠卖苦力换点钱求生存,有什么可互相鄙视的。赶紧把游戏做上线了赚钱才是王道。
怎么面一个UE4工程师?
面试其实就是一个探求确定应聘者上下限的过程。一般的套路都是从易到难,增大压力,从广度和深度上都对应聘者有个了解。所以我的建议是:
[*]先问蓝图作为铺垫。应聘者风尘仆仆赶过来也不容易,咱们的待客之道自然也是得先礼后兵。寒暄自我介绍之后,先整上几道简单的BP凉菜,打消应聘者的紧张情绪。
[*]再问些UE4 GamePlay框架的用法。如果前面的蓝图基本语法知识答的不错,那至少说明应聘者还是有一定BP开发经验的。接着就看他对UE4 GamePlay熟不熟悉了。一个UE4开发人员如果连GameMode是干嘛的都说不清的话,那就说不过去了。另外,UE4的GamePlay框架其实也是经过仔细考究设计的(不懂的去看我的InsideUE4专栏里面的GamePlay十篇。),所以通过他的讲述,你也能知道他对程序架构设计的理解有多少。这一步如果能回答得好,那其实已经说明技术实力尚可了。就可以开始下一步的继续深入了解了。
[*]具体UE4功能模块的知识。比如你问UE4的网络框架是怎么同步的、RPC事件的用法和优化、AI行为树的用法、动画蓝图的组织、UMG的使用和优化等等具体的日常开发遇见的问题。这一步可以考察他对该模块的掌握程度,也看他是不是真参与了项目开发,遇见了哪些问题并解决。一种方式是直接看他的项目介绍里用到了哪些模块就可以结合着深入问下去;还有一种我常用的套路是直接问你最擅长哪个模块,咱们来聊聊,然后问涉及到该模块的一些功能该怎么去实现和一步步改进。到这里也能回答得好的,已经可以收进去当初级工程师了。因为常见的功能开发已经能够扑腾着去做了,实际遇到问题再去解决嘛。而且到这里表现还不错的人,至少程序基础水平和经验是过关的,有这种灵性,后面让他再去学习C++,逐步用上UE4C++,也是能够切实达成的目标。
[*]你会C++吗?敢说精通的,直接Pass!对初级人员来说,会的加分。中级的,就是必须要求了。该环节也有两部分,一是C++语言本身的掌握,就是那些常见的C++面试题问一问;二是问些UE4里C++和BP协作的相关知识,暴露类属性函数,绑定个事件,插件开发啊啥的。这些功能能用好并说清楚,我觉得就算是个UE4中级工程师了。
[*]UE4的实现机制原理。,能够到这里,基本已经差不多满意了。英雄惺惺相惜,UE4都公开源码了,有志者差不多也都去研究过了。所以最后可以讨论下UE4的一些内部原理。比如内存管理是怎么做的啊、GC的实现,资源动态加载、UE4里的反射机制,BP虚拟机的机制和渲染管线流程等等。
[*]扯淡。到这水平,个个能力都很优秀了。这份工作是否适合,就看薪资、价值观和兴趣这些了。大家都在一个圈子里混,跳来跳去的,没准哪天你就变成应聘者他当面试官了,所以交个朋友再同步下业内动态也是极好的。
祝大家新年都能找到好工作! 正好写了篇文章来讲讲这个问题,贴过来:
大钊:如何招聘一个靠谱的UE4工程师?
怎么让UE4工程师们打起来?去群里吼一声,BP大法好!随着UE4的发展,继而BP的广泛使用,UE4工程师们找工作的时候,经常会有这么一些疑惑:
游戏开发是蓝图多一些还是C++?
招聘的话考C++多还是蓝图多?
不会C++/只会C++能否做UE4游戏开发?
作为一个曾经的游戏开发主程,现在从事UE4培训教学的负责人。我去应聘过,也面试过别人,现在我也常常被我的学生们问到这个问题。在挺早之前我就开始留心搜集了学生们出去公司笔试面试的题目,也回访了挺多家公司进行反馈,平常也经常和UE4圈内的同行们闲聊交流过这个问题。
UE4国内发展现状:
UE4目前在国内还不是那么火,开发人员也大大少于隔壁Unity。之前用UE4的一大帮都是VR样板间和游戏,得益于吃鸡的火爆,最近才开始慢慢扩散到端游手游。因为VR本身的还不成熟,商业回报还不够大热,所以目前做VR的公司大部分都是小公司。
据我观察,目前业内用UE4的大多数都还是小公司,加上一部分大厂开新项目。大厂里有腾讯这样直接入股Epic的开始大搞特搞的,也有苏宁国美这种探索应用的。虽然UE4增长迅猛,我也相当看好,但从公司和开发者数量上来看,UE4现状还远远比不上Unity搞手游的。直观的体验就是,讨论UE4的QQ群,人员有相当大的重合度。经常有人加我的群进来,然后发现,咦,你怎么也在。UE4圈子目前还真挺小的,大家基本都差不多认识。
技术实力上,目前国内的UE4从业人员水平还不够成熟!国内从UE3过来的老人跟熊猫似的珍稀,相当一部分UE4开发者是从Unity转来的刚用的;得益于蓝图的易用,还有越来越多是转行过来直接上手UE4连蓝图的(程序基础比较薄弱)。当然也有的原因是UE4的人员积累,游戏项目积累,教程积累都还不够。
UE4面试现状:
UE4发展现状导致的情况就是,一个人去面试的时候,遇见的面试官主程,有大概率他也是不怎么懂UE的!甚至有相当的概率,整个公司都没啥人对UE4熟悉!然后招你去开疆辟土……
[*]不熟悉UE4的主程怎么面UE4开发人员呢?问C++(UE4也可用C++开发),游戏开发的知识,多线程,网络,算法这些“游戏开发通识教育”知识。
[*]因为UE4开发人员短缺(缺的是熟练掌握UE4的,初级其实未入门的倒是有挺多),所以在招人的时候往往也只能矮个里面挑高个。面对刚学习编程用UE4的新人来说,UE4深一点的知识他是不懂的,你能问他什么?你所能在乎的,不过也就是希望他勤奋好学有灵性,说白了就是有培养的潜力。既然要看潜力的话,自然常常就会考核C++了。连C++这么“难学”的语言如果都能学得还差不多的话,那大概率上来说他至少是能够胜任当个程序员的。
[*]有相当一部分小VR公司,招UE4初级工程师,甚至是只要你态度好就可以让你进去试一试的。当然,你得学过UE4,并且在实际开发中胜任基本工作。
[*]当然也有问到蓝图的。分为两类,一部分是非常基础的蓝图语法问题,另一些是基本的UE4的GamePlay框架的问题。其实都很简单,没办法啊,考难点就没多少人会了……大概是类似这些问题:
[*]BP里函数、事件、宏的区别?
[*]BP里对象通信的几种方式?
[*]BP里EventDispatcher的用法
[*]GameMode和LevelBlueprint的区别
[*]PlayerController和Pawn之间的关系
[*]PlayerState和GameState各是什么
[*]少量有问UE4实现机制的。一般都是大厂做偏大的项目和游戏,技术比较强,他懂一些UE4,所以能问得出来,也能大概分辨你回答得怎么样。
还有一些是让直接拿UE4实现某些功能的,这些小功能基本99%只用BP都能开发出来,考核的其实只是程序思想和解决问题思路而已。
总结观察到的笔试面试情况就是:问C++的居多,蓝图的偏少。
UE4工程师进阶之路:
面试这种现状合理吗?不合理!你要招聘的毕竟是个UE4工程师啊,而不是纯C++程序员!只问C++而忽略了BP,甚至忽略了UE4的直接相关知识,那这场面试其实就是不合格的。
[*]实际的开发工作中,还是蓝图用的多。 Epic不是闲得慌才开发出蓝图脚本系统的。蓝图它就是比C++开发效率高,易学直观,连官方的《RoboRecall》70~80%都是蓝图开发的。而且一些只用BP就能直接很快做出来的功能,你何苦要折腾C++呢。身为游戏开发从业人员,游戏引擎为何常常还需要个脚本系统,这点基本的知识还是得有的。那些一味贬低BP的人是得放下偏执了。官方也是推荐只把C++用在游戏的核心系统上。一个理智的程序员应该能做到各取所长。
[*]C++是进阶的必须品。初级UE4工程师只要熟练掌握好蓝图,再比较熟悉一下UE4里的几个常用类和功能,往往就能胜任大多数的日常开发。但掌握UE4C++BP协作开发是UE4程序员从初级向中级迈进的标志。原因是核心。一是只有C++才能对UE4进行改造拓展优化,二是太多的其他游戏开发功能需要C++做支撑。不会C++,程序之路走不长远。但反过来,只会C++不会BP,也是会有很多瓶颈。明明连两下子就能出来的功能,你哼哧哼哧得搞半天,而且只有你看得懂。所以一个优秀的UE4工程师应该是C++BP两手都要抓,两手都要硬!
[*]熟悉UE4各个功能模块的内部实现机制原理是中级向高级进化的标志。例如Epic官方的那些技术支持们,还有引擎开发人员,还有一些民间的资深开发者。只有懂UE4是怎么做的,你才会改,甚至比它做的更好。举个例子,如果目前要用UE4做MMORPG,因为UE4目前的GamePlay框架、World机制和网络同步方案的限制,就势必要对引擎进行一番改造不可。对于这个团队,就必须要有至少一个高级UE4工程师进行整体架构和团队引导。
[*]会C++不等于会UE4 C++!我想每个被UE4 C++深深伤害过的人都会语重心长的告诫你这句话。曾经我们在游戏行业浸淫多年,对C++实力是那么的自信,直到遇见了UE4。UE4里对C++有着大量的魔改,在C++里经常手撸的内存管理到UE4里变成了对象系统,你得去适应C++和BP协作时那些奇怪宏含义,也得去适应纯C++和UObject系统之间的引用管理,UE4源码里的各个模块也有那么多的API,很多时候写的也不总是那么优雅。引擎代码量又大,想弄清楚一个模块,又发现它在跟别的模块暗通款曲。UE4源码里面又隐含着很多的优化和设计考量,注释不详不知道演化历史的话,理解起来也是很蒙圈。最后就不提游戏引擎的业务知识了,渲染管线材质系统啥。所以会C++,真的只是个开始。
[*]用C++并不比用BP牛逼!技术工作者总是试图强调自身技能的门槛壁垒和复杂度,从而侧面体现自身的价值来换取更多的回报。但常常忘了技术的初心是用来解决问题的,一个技术也并不是完美的,都有其适应发挥的领域和其蹩手蹩脚的地方。我常常听说和见过,一个程序员信心满满用UE4C++开发款游戏,然后往往游戏Demo还没做好,就因为各种原因挂了,自己把自己折腾死了。BP和C++都是你的工具啊,都有其优劣点。你没有理由去嫌弃一个工具,也没有理由去进而贬低用这个工具的人。做技术的,追求技术选型的最优解的话,应该是博采众家之长才是。但落到现实,一个团队的技术选型却往往并不绝对取决于技术本身的优劣,还和团队本身所处环境有关,是个混合了经验和客观、传统和革新,政治和心理的复杂问题。
[*]有些有经验的大厂,技术实力雄厚,本身已经有一大批成熟的C++程序员,所以有一开始就直接上C++的。也有可能是因为对项目的未来发展心理有数,知道哪里该用C++,哪里该暴露出蓝图接口给团队别人用。总之尽量想清楚了再写。
[*]有些其实只是单纯的因为团队技术氛围,老人们崇尚C++并引以为傲,连带着团队里用BP做功能的新人好像就低人一级。程序和美术策划都一样用蓝图,怎么显出程序的水平?
[*]有些只是因为习惯了,写了那么长时间C++,突然让人日常开发的一大半时间转换为BP,自然会有些不适应,担心自己的C++水平没有体现,久了也生疏。
[*]有些人只是看到BP的一些缺点,比C++慢、难重构合并,不如手写代码那样神圣,就看不起BP了。人往往只看到自己愿意看见的,只相信自己愿意相信的,选择性的忽略了BP的那些优点,开发效率高,易读直观。有些功能真的有必要上C++吗?正如一个程序的性能瓶颈往往只落在20%代码上一样,一个游戏的开发工作也往往80%用不上C++。
[*]说白了,大家都是打工仔,都是靠卖苦力换点钱求生存,有什么可互相鄙视的。赶紧把游戏做上线了赚钱才是王道。
怎么面一个UE4工程师?
面试其实就是一个探求确定应聘者上下限的过程。一般的套路都是从易到难,增大压力,从广度和深度上都对应聘者有个了解。所以我的建议是:
[*]先问蓝图作为铺垫。应聘者风尘仆仆赶过来也不容易,咱们的待客之道自然也是得先礼后兵。寒暄自我介绍之后,先整上几道简单的BP凉菜,打消应聘者的紧张情绪。
[*]再问些UE4 GamePlay框架的用法。如果前面的蓝图基本语法知识答的不错,那至少说明应聘者还是有一定BP开发经验的。接着就看他对UE4 GamePlay熟不熟悉了。一个UE4开发人员如果连GameMode是干嘛的都说不清的话,那就说不过去了。另外,UE4的GamePlay框架其实也是经过仔细考究设计的(不懂的去看我的InsideUE4专栏里面的GamePlay十篇。),所以通过他的讲述,你也能知道他对程序架构设计的理解有多少。这一步如果能回答得好,那其实已经说明技术实力尚可了。就可以开始下一步的继续深入了解了。
[*]具体UE4功能模块的知识。比如你问UE4的网络框架是怎么同步的、RPC事件的用法和优化、AI行为树的用法、动画蓝图的组织、UMG的使用和优化等等具体的日常开发遇见的问题。这一步可以考察他对该模块的掌握程度,也看他是不是真参与了项目开发,遇见了哪些问题并解决。一种方式是直接看他的项目介绍里用到了哪些模块就可以结合着深入问下去;还有一种我常用的套路是直接问你最擅长哪个模块,咱们来聊聊,然后问涉及到该模块的一些功能该怎么去实现和一步步改进。到这里也能回答得好的,已经可以收进去当初级工程师了。因为常见的功能开发已经能够扑腾着去做了,实际遇到问题再去解决嘛。而且到这里表现还不错的人,至少程序基础水平和经验是过关的,有这种灵性,后面让他再去学习C++,逐步用上UE4C++,也是能够切实达成的目标。
[*]你会C++吗?敢说精通的,直接Pass!对初级人员来说,会的加分。中级的,就是必须要求了。该环节也有两部分,一是C++语言本身的掌握,就是那些常见的C++面试题问一问;二是问些UE4里C++和BP协作的相关知识,暴露类属性函数,绑定个事件,插件开发啊啥的。这些功能能用好并说清楚,我觉得就算是个UE4中级工程师了。
[*]UE4的实现机制原理。,能够到这里,基本已经差不多满意了。英雄惺惺相惜,UE4都公开源码了,有志者差不多也都去研究过了。所以最后可以讨论下UE4的一些内部原理。比如内存管理是怎么做的啊、GC的实现,资源动态加载、UE4里的反射机制,BP虚拟机的机制和渲染管线流程等等。
[*]扯淡。到这水平,个个能力都很优秀了。这份工作是否适合,就看薪资、价值观和兴趣这些了。大家都在一个圈子里混,跳来跳去的,没准哪天你就变成应聘者他当面试官了,所以交个朋友再同步下业内动态也是极好的。
祝大家新年都能找到好工作! 小厂,看项目需求,但大部分逻辑都用蓝图,公司招人倾向逻辑程序员,做功能的。然后,c++也必须要会,我们一般用c++整合第三方库,比如xml,查表,接入各种平台SDK等。再封装成蓝图接口,方便写逻辑。废话不多说,我们项目:《海洋传说》https://hz.gamewan.com 如果是转行过来的话,建议直接上手蓝图,蓝图学习周期短,效果好,再入C++事半功倍。
招聘看要招聘哪个级别,有初中高三个级别,目前的ue4招聘来看,光会蓝图,找初级ue4工作,还是蛮难的。前两年还行,如果不介意薪资在4k左右,相对来说容易些。 用unity的,准备学一下ue了。本身就不喜欢连线。对于蓝图和c++的问题,稍微查了一下。 YouTube上有人做了一个简单的性能测试。做loop,c++ 快了几百倍。原视频地址 希望能有所借鉴吧 C++简直就是编程语言中的混沌邪恶空间,你如果在这里来去自如,你还能在蓝图这么个小水坑里翻船?
如果一个企业,因为不会蓝图只会C++就没招你,我看这企业也没什么前途了。
相对于C++,你对现代游戏引擎架构和gpu基本功能的知识和3D实时渲染优化经验才是问题。因为这个被企业拒绝的可能性很高很高。 用C++,在我们组,程序的话基本不用蓝图,美术跟策划用蓝图。可以理解为蓝图是开放给美术策划的一些受限制的逻辑借口,为的是使整个工作流更加顺畅,让大家都专心于自己的岗位工作。
当然有的时候程序需要给蓝图添加一些功能,比如加蓝图节点以扩展蓝图的功能,为的也是把这部分工作以后交给美术或者策划。
我这个程序猿的蓝图水平估计不如我们组的美术策划,看他们各种连线行云流水,有时候我自己做测试的时候还得问他们。但是蓝图不就是C++么,懂就完事了。 TA也就是技术美术,是现代化游戏制作中出现的一个新岗位,我们一般对技术美术的认知是什么呢,薪资丰厚,专业技术要求高,学习难度和成本高。可是技术美术到底是什么,我们私自给它贴上的这些标签,是否是正确的呢,今天有幸邀请到b站的一位优秀的TA,霜狼_may来分享自己的个人感悟。
埋:无论是知乎还是其他回答平台,每当有人问技术美术到底是做什么的时候,最普遍的回答技术美术就是沟通美术和技术方面的桥梁,但是具体TA需要掌握什么样的技能,作为一个技术美术的日常工作是什么?完全没有一个完善的解答,这时候不免让人满腹疑团,霜狼_may老师能通过结合自己的工作经历来解答一下吗?
may:有人常说TA是沟通桥梁这其实只是一个很片面的认识,而且是有点不负责任的解释。相信很多人都发现既然是沟通桥梁,那应该怎么解释出现的很多相对独立环节方向的TA,比如自动会的HOUDINI方向、SD方向等。很多人就会产生疑惑,因为这个回答并不能解释为什么会有这些更加细分方向的TA。
所以我这里说一下我对这个岗位的个人理解,TA是一个解决项目生产过程中出现问题的岗位。那么解决什么问题呢?就比如之后的项目大多会以大规模、精品化为整体研发趋势,也就是俗称的3A大作,在无法通过快速换皮而大赚一笔的前提下,精品化是必定无法规避的路线。这其中就涉及到一个很重要的环节,也就是我们的资源产量如何能保证更得上项目上线以后的更新速度,又或者说是我们如何解决大规模资源生产的成本以及效率问题。由此引出了自动化pcg相关的方案,从而产生了对houdini、sd这类方向TA的需求。所以说,TA是个解决项目问题的岗位。
因此在前面的基础上,我们也就大概能想象到TA的日常工作会是什么样的。往往可以归结成这么几个方向,首先就是技术验证,在项目前期做一些技术demo预研等等,把一些难度比较高的技术进行优化与落地;然后就是风险规避,通过制定各类规则规范,为项目中后期可能发生的问题准备预案,提供解决思路,促进流程落地;再然后就是我最常当的消防员,经常到处发生火灾了就去救火,我在网易的那两年里我基本就是各个项目跑着去灭火,这里面就包含太多事情了,展开都说不完。
埋:图形程序员要求的基本技能是c++,扎实的图形学知识,对至少一个图形api的熟悉,以及对硬件一定程度的了解,非自研岗还需要至少一款开源引擎的熟知。但是大部分人接触到TA或者说是知道TA都是通过工作中认识,既没有程序语言的储备,也没有完全的美术知识,那么作为一位成熟的TA,霜狼_may老师能否根据自己的经历,给这类刚刚接触到TA这个概念的同学解释一下,应该如何踏出第一步。
may:这里我依旧要一惯的先泼一盆冷水,技术美术是一条不归路,如果你想走上这条不归路就先要下定决心,自己需要时刻接受并且学习新事物。如果没有想清楚贸然走上这条路,那这一路上绝对少不了坎坷。不慎重一点可能还会走上另一个极端,由于受到太多打击而让自己变成一个非常负面的一个人。
对于如何转TA,这得分两种情况,第一种情况就是我们最常见的在校生如何毕业就当TA。这种情况的同学,最好的选择就是进有自己TA培养体系的大厂比如网易、腾讯。
目前抛开自己背后的立场,就客观角度来说。我见过的最好的培训体系依然在猪场(游戏界的黄埔军校一点也不是盖的),然后就是鹅厂,鹅厂对新人TA的培养体系是最近这两年才开始构建的。主要是之前我们自傲的以为我们可以从别的地方挖到足够的人才,所以不需要自己培训。但是这个观点现在被证实是错误的,是的鹅厂目前是拥有全国接近一半的TA数目,但是依然处于一个需大于供的状况,我们发现我们招不到人了,因为有一半的人已经都在我们公司了;那么怎么办呢?只能自己培养了,我发起技术美术百人计划的一个自私的目的其实也是为了给自己提供足够质量的人才。
因为外部的TA培训班大部分都只浮于颜表,培训出来的学生基础底子薄弱,满足不了我们的基本要求。更重要的是,这些不负责任的培训班那种填鸭式教育,出来的学生将失去作为技术美术最重要的一项能力,那就是我们赖以为生的自学能力。如果在校生想要学习技术美术的相关内容,可以依照百人计划目录的顺序进行学习。
TA这个岗位的内容有一直在横向扩充和发展,内容之庞大是我们无法在一两年内完全覆盖的。所以我们希望通过这个计划在保证基础的前提下教会大家一种自学的手段。
总的来说踏出第一步就是做好自己的心理建设,做好吃苦的准备,夸张点就是再考一年高考的那种感觉。
埋:做为一个应届生,如果我们想要去应聘入职TA,那么需要需要制作出一个什么样程度的作品才能入职呢,一般大厂都会以一个什么样的标准去评判一个制作出这个作品的面试人员是否符合他们的要求。
may:作为应届生,其实我们更加看重的是基础,以及之后的发展潜力。至于怎么去判断这两方面呢?由于我本身就在负责招聘和面试,所以这里我只聊聊我个人的粗浅看法以及两个比较重要的概括点。
作为应届生需要我们在作品中体现什么?第一个就是你的思路,能够给人讲清楚你要表达的想法,你对与这个技术点的深入理解以及个人扩展,这点特别重要。
然后就是你目前学习到的技术栈如何能归纳整理到你的作品中进行体现,这点其实也和上面一点有一些相似。
最后要记住的就是注重日常的积累远比临时抱佛脚的简历重要。
再说每个公司的要求都不同,其实并没有所谓的通用标准。作品是用来承载你当前所积累的技术以及理念的表象,更重要的是充分表现出自己的各项能力水准,还有就是记住扬长避短。
埋:通常我们都有一个普遍的认识就是技术美术都是程序转TA的比较普遍也相对容易,也比较方便,那么如果我们受众更广的美术项的从业人员应该如何才能转到TA岗位呢,老师有遇到过或者成功的案例吗。
may:我认识很多美术转TA的朋友,举一个我关系很好的朋友我们就叫他A胖吧。A胖原来是个主美,前几年不知道哪根筋出现问题了,放着主美不当,自己看了一堆技术的书(就我们经常会推荐的那几本),然后就转去当TA了。刚开始一两年还很兴奋经常和我们聊各种技术,但是这两年画风就变了。嘴上挂的最多的就是要找个地方当回美术去,做TA太累了。不过现在也不可能如他意了,TA到处这么缺,投一个公司的美术就让他按照TA面,进去之后就依然是TA,2333333333。他成功的从管理岗玩到了和我们一样的普通打工人。
然后要说的就是我们在业人员的转岗,这里需要先确定一个事情就是,你已经干好你的本职工作了,并且对这个岗位有了自己的一套理论基础和理解。觉得想扩展一下自身视野的广度,从而转的TA岗这个大前提。而不是带着觉得TA这个岗位热度高,可以快速搞钱而来的。在这个基础上,就需要看你想从事什么方向的TA岗了,不同方向要求的技能点不一样。举几个例子,比如最常见的渲染向,免不了要会敲任意一门shader语言,以及一款脚本语言。然后动作像,也是免不了要会max或者maya的工作开发语言,或者引擎中的脚本语言。然后现在比较常说的流程向,这里并不是单指美术流程,作为TA,你需要做的是府看整个项目,你所负责的这个环节涉及到的制作,验收,再到进入引擎的应用与修改都应该在你的掌控中,这样的才叫流程向;而不是单纯的只负责资源生产流程。这里面要会的技能就让人头皮发麻。其它方向我就不举例了。对于在业人员转岗,如果是渲染方向,可以参考一下百人计划的学习路径。但是如果是其它方向,就把重点放在美术部分吧。作为TA美术整体生产流程都是要掌握的。
埋:我们知道TA对于解决问题和自我学习的要求是非常高的,但是在很多时候我们去细究一些知识,会不会对知识面的要求太广了,在TA的实际工作中会不会对一些知识有一个度的把控,举个例子就是像pbr流程一样,有一个更加直观的方向。
may:我们可以大致的把学习过程分为几个大阶段,第一个阶段,先了解是什么为什么,怎么用。第二个阶段去考虑对应知识与其相关知识点的联系,互相之间的影响。到了第三阶段,我们再去深入研究相关知识点背后的前世今生,深入到极为底层的部分去思考其这样做的原因。个人认为,这也可以大致的拆分为TA的三大成长阶段。
术,代表着我们当下所应该掌握的基本技术基础,小到shader效果、引擎工具,大至算法理论、框架方案。术的水平决定了一个人的基础下限,这是目前我们大部分人以及公司用于评判一个人能力水平的表层标准。对于术的追求是所有人必经的一个过程,也是一个持续终身精进的过程。
道,与术相反,它所体现的更多的是一个人本身的方法论,他对于这个岗位的理解,对于团队与项目的整体把握。术所能表达的是你的下限,而道能体现的则是你的上限。道,源自于对术的思考与业的升华。但就目前而言我们仅仅只能通过对于一个人所掌握的术来考核其所理解的道。
明白了什么是术,什么是道,我们再来论两者的关系。
学而不思则罔,思而不学则殆。这一句话可以完美的形容对于术与道两个极端方向的两类人。前者,花费大量的时间学习各种技术以及方法,但是很少思考其背后对与我们的项目及团队中的因果影响。咋看之下你让他做什么都可以顺利完成,但是他工作起来却经常碰壁,做的东西也经常无法落地,时常感到十分的迷茫。而后者,往往涉猎广泛,但是浅尝辄止。专业名词滔滔不绝,谈论各种关系更是口若悬河。对各种东西总能说出自己的观点和看法,在外行眼里的形象总是十分高大威武。但是因为缺少扎实的技术基础,往往无法有效产生实际输出。我们业界有个专属名词称呼这类人——talk artist。
术与道相辅相成,如两条腿缺一不可。这里我们姑且把TA发展的过程分为3个阶段。
第一阶段:对术的摸索。
这里特指职业发展初期,对于各类技术理论的崇拜,沉迷各类技术实现。全心全意关注与技术本身,精进自身各类技术水平。
第二阶段:对道的探索
当一个人已经有足够扎实的技术基础,并且到达一定台阶(通常3-5年,对技术已经有了足够自信),此时便会发觉进入瓶颈期,有所焦躁。开始更加全面的思考问题,视野逐渐宽广。思考所占据的时间逐步增加,开始探求自身所悟之道,真正理解方法论的重要性。
第三阶段:道与术的结合
目前的业界大佬多为此阶段的牛人,他们在掌握一项技术的同时更会思考这项技术背后所带来更深层次的意义,再通过想要达到的目标来提升技术。如此反复。
深夜学院-中国专业的CG在线教育平台|CG教程|CG网课|CG资源|CG线下www.shenyecg.com/Home/FreeCourseDetail?courseId=254
深夜学院-中国专业的CG在线教育平台|CG教程|CG网课|CG资源|CG线下 你会了C++之后
蓝图是很容易就能搞定的
网上教程也很多,蓝图特别容易上手
建议精通C++,蓝图懂一些就行了
剩下的自己慢慢钻研 工控行业告诉你,工控行业早就有类似蓝图的东西了,就是cfc,然后我告诉你,cfc和代码配合相当舒服,代码用来开发底层块,或者整合复杂的逻辑,然后用块去连接逻辑,比如有一大堆and or的判断,你总不见得拖块拖一大堆,需要用代码整理,比如一些算法公式,总不见得一个公式用蓝图拖一大堆,也就是说蓝图要用的好需要一定的程序功底,每一个块就是一个做好的单元,你需要单元化做得好,开发出好用的块,再连接逻辑
页:
[1]