腾讯IEG 客户端开发 社招(一面)
面试之前
本人在广州,小游戏公司客户端开发,经历了几次项目的失败,试着跳出当前的环境,到大厂去试一试。
由于还在职,时间不是很宽裕,跟HR约的电面。面试前也准备了很多东西,例如数据结构、算法、计算机网络、操作系统、设计模式等。但是这些知识在一面当中几乎没有问到。也许是因为游戏开发岗首要还是要考察游戏引擎(Unity、UE4)的熟练程度。但是以上这些知识也是重中之重,作为一个程序员的基础也是必须掌握的。
面试
在职这几年,项目团队规模比较小,每个人分工比较明确,业务繁忙的时候一个程序要对接一到三个策划,所以工作上的内容基本都是以业务为主,有深度的工作内容比较少,需要自己额外花时间去钻研。在简历上比较吃亏,在个人简短介绍后没有太多出彩的地方,所以直接来到问题环节。
Unity
1、使用UGUI有哪些可以优化的地方?
2、Unity图片压缩格式的选择?
3、UGUI中如果控件的Z轴坐标为负数,会进行合批操作吗?
4、UGUI中Image控件的透明度为0会合批吗?scale为0时会合批吗?
5、粒子怎么显示在两个UI控件之间?
6、UGUI怎么合并drawcall?
7、UGUI中mask控件怎么使用?它的实现原理是什么?
8、UGUI中的元素是怎么重建的?
9、做过换装系统吗?是怎么实现的?
10、点乘和叉乘的含义?
11、assetbundle该怎么使用?作用原理?
12、讲讲对lod的理解。
13、什么是批处理?静态批处理和动态批处理有什么区别?静态批处理有什么缺点?
14、简述hotfix的流程。怎么检验文件?何时校验文件?
15、unity是如果做到跨平台的?mono和il2cpp有什么区别?
C# and Lua
1、简述c#和Lua的垃圾回收机制。
2、C#的协程是什么?是每帧都在执行吗?
3、C#中有两个字符串A="Hello"、B="Hello",这两个字符串相等吗?同理,在Lua中这两个字符串相等吗?
4、简述堆和栈的区别。
总结
1、之前使用引擎很多,但是知其然而不知所以然。很多原理没有弄清楚,首要任务还是要加深对引擎的理解,静下心来,提高自己的水平。
2、学得多不如学得精。不要妄想面面俱到,而是要有所擅长。同样也要想清楚自己在这条路上所走向的方向,不要迷失自我。
3、走出舒适区。适逢疫情,全国经济状况不景气,要提高自己的竞争力才有希望在以后的机会中脱颖而出。