如果想用unity做一个项目作为面试作品,至少该达到什么样的标准?
如果想用unity做一个项目作为面试作品,至少该达到什么样的标准? 关于用于展示的作品应具备的内容,可以移步至我在另一个类似问题中的回答:皮皮关:自学Unity怎么找到实习呢?
项目本身不用太过于纠结,任何类型的游戏,都能通过精雕细琢使其成为一个有技术难点、能足以展示自己能力的作品,跟着自己的兴趣走就好。 描述很明显不是为了问问题而提问的,我就只针对题目回答了,答题的目标也是真想做游戏的开发者而不是答主。
这段时间在Discord上参加一些职位的交流活动,和一些招人的大佬交流了一下。他们招人的一般都是面向商业引擎招(UE,CE,Unity)这些,对具体引擎要求一般不多,可能考虑到会一个其他也容易会,或者面向自己做研发造轮子的学术流大佬招人,不过我这里着重总结一下如果一个Unity客户端程序要参加面试,提交的作品/开源大概要有哪些特色,以及可能面试的内容。
一位来自CDPR(对就是那个波兰蠢驴)的客户端工程师,提出了一个概念,就是“高级编程中只有内存管理”这个概念,当然我可能翻译的不对,翻译的显得有些偏激,但是可以看出这个说法的核心思想,高级开发中内存管理的策略是非常重要的。论低层开发(Low-Level Development)要讨论用什么技巧去精确的管理内存,最终做到高稳定性,低Cache miss,少产生垃圾,在高层开发上(High-Level Design)如何制定逻辑框架,渲染框架,控制好各种事件的生命周期,减少不可预测的行为,这都是作为客户端程序考察的一个重点,而实际上在这个角度去问会很容易判断工程师的开发经验和开发能力。
游戏客户端和其他领域不太一样的一点在于,对沟通能力和“一专多能”提出比较高的要求,故而这些大厂可能会针对一个客户端程序在策划设计和图形渲染上进行提问,比如问到设计问题时,可能会针对项目中某一个玩法做提问,而且在问的过程中还会对需求进行深究和修改,问到“如果这样,你会怎么做”。譬如面试官问“你的这个FPS游戏中的射击系统,如何在逻辑上实现换枪切枪的操作”“实现后要给子弹加弹道计算,如何协调服务端客户端”“弹道计算完后我还要XXX”等等,诸如此类的需求类型,面试官会着重于考察其对于需求的应对和反应能力,如果是图形方面可能会问一些常见的问题,这里就不详细展开了。
图形引擎方面,有看过并重现过Siggraph,GDC上的分享是很重要的,毕竟都是游戏界比较权威的分享平台,如果在这方面没什么学习经验,在一些面试官那里很可能减分,感觉哪怕是分享一下一个比较简单的皮肤渲染和毛发渲染的实现也是远远胜过没有的。要走这方面的话可以有针对性的准备一下。
先说这么多,有想到再加。 首先我们以一个可见的计分标准来量化你被录取的概率:
百分制80分录取
下面开始建立(女程序员)的录取模型。
:
首先基础数据结构(堆栈树图),3D数学基础(点,叉,法,矩阵),算法基础(排序查找字符处理之类的最基础的)
这些占大概四十分
UnityAPI(控制参数,场景流程,资源管理),运行机制(线程,协程,性能优化)等等
这些占大概20分
更进阶的:
会根据一定的需求编写出合适的Shader实现效果例如高斯模糊,描边,自发光等等,熟悉IOS Andriod版本优化 。熟悉网络编程等等。
附加分占大概四十分
最后你的谈吐,颜值,身材加权平均分 (高斯分布 极值60)建立评估系数权值由面试官是否单身而决定
1以上为正系数代表你以上三点平均水平 在平均水平之上
比如你技术得分是60分 不够被录取
但是你的评估系数结果是1.5也就是说
if(你比90%以上的姑娘(会说话||长得好看||身材好))
your result= tech*1.5 =90分
Bingo你被录取了~
当然以上都是我瞎编的~(只要你真的牛逼谁管你热不热爱游戏~)
(括弧笑 因为喜欢用C#,又因为C#正好是Unity的主要【脚本语言】(你没看错,就是当做脚本语言来用的)之一,再因为相比其他行业,游戏行业入门要求低,收入高,所以要做一个Unity游戏来让游戏公司接纳你。
我看也不必费心了,就这些原因,能做出游戏的团队是不会要你的,因为你压根不喜欢游戏,甚至不知道自己要做什么,能做啥样的demo都没人感兴趣,这天下不缺比你有经验的码农,缺的是热爱游戏的编程者。
当然乐观地看,游戏行业还有90%即将毙命的团队,他们觉得你能写一个Demo,只要你的能力没有威胁到面试的人在公司的地位,那就能要你,这时候你做个什么都没关系,只要能跑起来,看起来流畅,怎么实现的,不重要,100W行if else写个俄罗斯方块都行。 没有赴死的决心,还是做点别的吧,游戏不适合。 我个人的建议,最好是有一个上架项目,即使不是独立完成的,也需要有明确的(自己在其中具体做了哪些工作,功能或模块之类的)..如果还有一点小成绩就最好不过了..这是其次,我比较在意的是,一个程序员的产品思维或者项目思维,不提商业特性,而是如何将你所擅长的某些技术顺利发挥,展示进你的演示项目中...放大你的优势让东家看到..扬长避短,解决问题..
这个解决问题的能力不止是解决技术层面的问题,还有解决技术之外的问题..比如当前这个面试项目合格标准的问题,这本身也是一个重要性不低于技术层面的问题.
再放大一点,发现并解决问题的思路这种特质也是会影响你职业生涯的深度.不止是初期求职..
说得有点乱,不知道能不能看懂.. 面一个带unity demo的网游rpg类操作场景。移动,碰撞,基础UI界面,背包,看起来像这么回事了。
问:你这个角色移动有前进,后退,左转,右转。左右平移怎么实现?
卒 公司有不少客户端的女程序,还有主程级别的。所以妹子不合适不存在。做游戏根据你的情况还是学习Unity合适。因为Unity上手简单而且市场需求大。学UE或者其他的不好找工作而且对能力要求也会比较高。可以先按照Unity官方教程自己做几个小Demo熟悉下,熟练之后再自己做一个比较完整的Demo(有关卡编辑,存档等基础功能)。Demo的话,建议模仿喜欢的独立游戏做个简化版的,在这个过程中能亲自解决很多问题。按照书上的教程,虽然也能做出来但是缺少自己解决问题的过程。而且一看就觉得眼熟,再细问解决了什么问题或某些细节根本就答不上来。这是我在学生时期自己做的demo,为了解决预测直线运动物体与圆周运动的星球相遇的位置,花费了2天时间去设计算法。因为带宽问题所以当时没有上传GitHub 哈哈。delta_/VirusWar - 码云 Gitee.com
除了以上说的实践的操作外,还需要补充游戏相关的理论知识。
游戏相关理论知识:
游戏相关的数学推荐《3d数学基础 图形与游戏开发 》图形学基础《计算机图形学》、《Real-Time Rendering》
除此之外还有计算机专业的基础知识(数据结构、网络通信之类的),这些知乎上有很多相关回答了。 炉石传说
页:
[1]
2