已投,谢谢前辈
点赞 评论

相关推荐

昨天 19:55
已编辑
本人中下流211本硕,技术栈很浅,基本只会Unity和C#,C++基本不会,算法题更是从来不刷,但是项目经历相对丰富,已经实习了大半年,在此之前也做了若干个人小项目。很意外一面和二面都没问到算法题,都是大段地照着简历让我描述项目,八股问的也不多,最后同时获得了一面二面面试官和HR的肯定(尤其是一面面试官),我感到很庆幸也很荣幸一面:80min1. 上来简单寒暄以后看到了我简历中着重写的Unity Gameframework框架,面试官说他也没用过,让我大致介绍,我先总体介绍,再分模块介绍,讲到了UI、本地化、事件、对象池、流程、以及我的一些自定义模块,如读表模块的内部大致实现,以及我对其源代码上进行的扩展。其中面试官具体问了本地化的配表读表方式,介绍是配表后通过我的自定义读表模块在预加载流程时读表并加入到本地化模块的字典中,也顺便介绍了UI本地化、配表数据本地化、字体与资源本地化的方式。另外我提到了事件模块中事件类使用对象池进行管理后,面试官询问使用过程中会不会有什么问题?我一时间没反应过来,但是马上意识到我漏说了一点,就是事件类在被对象池回收前需要执行一个Clear方法用于清空事件类内部数据,方便再次复用,面试官给了肯定的回复。这部分说了共计半小时。2. 面试官大致问了些Unity中动画组件的内容,我介绍了帧动画系统和状态机系统,以及Spine和自带的2D Animation;面试官接着让我大致介绍骨骼动画的原理,以及如何实现,回答说父物体带动子物体变换位置,借用Unity的本地坐标与世界坐标系统即可实现,或是根骨骼移动时让所有子骨骼都进行同样的变换。面试完了我才想起来忘记说IK和Avatar有关的3D动画项目,明明自己做过。3. 面试官询问C和C++在内存管理上有何区别?C++的准备了C的我一点都不清楚,于是回答说我只知道C++与C#或Java这些有托管的语言内存管理有何区别。面试官同意后,我把栈、堆、托管堆非托管堆、new和delete、引用和值、析构和IDisposable一股脑全部倒了出去,我没说完但觉得说的有点多了,于是问面试官要不要把GC和装箱拆箱也描述一下,面试官说当然可以,只要是你会的都可以展示出来,于是又巴拉巴拉说了一大通。到这里我已经很进入状态了,面试官也一直频频点头。后来面试官说虽然他们不用C#,但是问C++是他们的标准流程,所以依然得问。4. 面试官接着问八股,先问了遍历二维数组怎么更快,回答说和CPU缓存命中有关,解释后面试官又问我知不知道内存对齐,回答了内存对齐的方式和作用。5. 面试官问了个很宽泛的数据结构问题,当我需要存储一些数据,选择数据结构时会有什么样的考虑?我先分为了线性表和非线性表回答,线性表里逻辑结构和物理结构都能分成若干,非线性表分为树和图,每种树大致介绍,最后补了下如果是在语言中每种构造好的类型的特性。到这里已经基本一个小时过去了,后面的感觉是面试官额外的一些拓展,我基本都没回答上来,但是面试官表示没什么太大关系。6. 面试官看到我本科并非计算机,大致询问了我为什么研究生转计算机,以及研究生工作情况。接着连续问了我K近邻算法和傅立叶变换,分别对应我研究生AI相关的内容和本科信息相关的内容,给我问懵了,因为我全忘了,最后勉强答出了这两个算法的用处,面试官安慰说他只是随便一问,回答不上来也无所谓。7. 面试官询问我会不会图形学,回答说不会,101看了一半,对于图形学的了解仅限于自己摆弄游戏画面设置。然后面试官随口问了我了不了解DLSS,我详细对DLSS的原理进行了介绍,DLSS3和4也相应提了下,但是毕竟还是很表层,感觉面试官只是拿这个和我聊聊天。他接着问了我知不知道MVP矩阵变换,我回答说不知道。8. 闲聊:看到我很喜欢玩游戏,写游戏评测,问我玩什么类型的游戏;问我有没有玩过三角洲行动(我回答说感觉不如2042,后来有点后怕,还好面试官应该不是三角洲项目组的);接着问我以后更想待在哪个城市,以后留在深圳可不可以。9. 反问:表现如何,面试官回答说挺好的,做了很多东西,但是大多比较浅,对于图形学等就没什么了解,和我说实习面试和正式工面试一样的流程,得要有一二面+HR面,愿意接下来帮我推荐。二面:40min1. 自我介绍2. 面试官一样对Unity Gameframework好奇,切入的角度是如果让我设计一个游戏框架,你认为哪些功能是重要的,回答了UGF中一些很好的设计。3. 面试官询问我在单位最近的工作,将一面中提到的本地化模块的构建与使用原封不动复述了一遍,面试官进行了比较详细的追问。4. 上一环节中提到了事件模块中的工厂模式,面试官询问我还用过什么设计模式,回答说单例、观察者、策略、命令,大致介绍了每种优缺点和应用场合。5. 面试官询问了我简历上写了掌握的Unity导航系统,追问我知不知道一些寻路算法,我详细描述了一下A*算法。以上内容占了面试的大部分时间。6. 面试官问我一般使用什么语言,回答说使用C#,C++方面几乎不写,但是知道理论上的一些内容(八股),面试官就没有接着问,从最后面试官对我的评价来看他可能默认我不会了,这也是个教训,面试官大体问某个内容时不能太谦虚,以为你不会可能就压根不问了,哪怕你稍微会一点。7. 面试官让我描述线程同步,回答说不会,没学过操作系统和组成原理,但是在数据库中学过锁有关内容,面试官说他了解了,没有继续追问。8. 面试官让我描述快速排序,我询问是详细描述每步过程还是思路,回答说大体思路就可以,很顺利地回答完了。9. 面试官让我简要描述TCP和UDP,后追问在射击游戏中用TCP还是UDP好?触及到我知识盲区了,我凭臆断回答TCP更好,因为玩家宁愿接受多一点延迟,也忍受不了丢包,又补充说在异步联机如艾尔登法环的留言系统使用UDP更好。面试完搜了一下才发现完全答错,后来我说给我同事听,他觉得能在非客户端负责的部分说出自己思考并进行补充,哪怕答错了也没太大关系。10. 闲聊:同样是问了喜欢玩什么游戏,关于我的评测和B站直播内容,问了关于我组校队去打网易风暴英雄比赛的事情,感觉一面二面的面试官都对简历上这些非专业的内容挺感兴趣的,没白写;同样问了关于城市的问题,以后能不能留在深圳。11. 反问:我也一样问了表现如何,面试官回答说我在游戏开发实践方面准备非常充足,但是由于我本科不是计算机,所以编程语言和专业知识方面稍微有所欠缺(实际上编程语言方面他没问,我个人其实不太觉得我有所欠缺),说会和初试面试官再商量一下,让我等待结果。中午十一点多面试完,下午一两点就发现已经通过,我猜测是一面面试官对我印象比较好,由于是直接领导,所以比较想要我,二面的技术总监面更像是走个流程。所以说一面非常重要,很多时候二面挂了是一面面试官拿不定主意,而不是单纯因为二面表现不佳。HR面:二面通过第二天下午就收到了HR面的邀请,主要就是聊天了;令我印象比较深刻的是我提到最近在玩双影奇境后,HR问我隐藏关打了没有,结果我刚打到倒数第二章开头,压根还没到隐藏关的触发位置玩游戏这方面我一个大学生居然被大厂员工比下去了我觉得我面试能顺利通过除了运气比较好外,主要靠的就是扎实的项目经验和实践基础,积累了充足的经验以后,哪怕八股算法等锦上添花的内容不太好,也依然有不小的机会。看了那么久面经,第一次自己写,算是回馈互联网了,写的有点啰嗦也请大家包涵,祝大家都能找到想要的工作
投递腾讯等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客企业服务