AILab游戏客户端(Unity)

写一下AILab游戏客户端的面经吧,也分享一下我第一次面试的经历。时间线,4.14投递,4.22被捞,4.24一面,4.29二面,5.9HR面+云证,5.20offer。

一面(1h)

  • 自我介绍

算法

  • LRU,在本地ide上写的,写完让写几个用例测试一下。我算法中用了unordered_map<int, list<pair<int, int>>::iterator>,说一下这里使用iterator的好处
  • 如果cache里存的不是int,而是任意类型的数据类型,该怎么写(这块其实挺难,当时只知道用泛型编程,但是报错没写出来)

项目

  • 说一下项目中的抗锯齿算法怎么做的
  • 看你简历上写了把框架给的路径追踪的算法速度加快了40倍,具体说一下怎么加速的,看看效果
  • 说一下你Unity项目中怎么实现的数据保存和加载
  • 你的Unity项目可以在重启游戏后加载到上一次游戏的进度吗(不可以,没做游戏数据序列化相关内容)

反问

  • 问了一下那边的业务,然后说了一下我目前的技术栈,问了一下对我之后学习路线的建议
  • 照着开源项目做了个游戏demo,有再去独立做个demo意义大吗(如果是想做游戏,还是很有用的)
  • 第一次面试挺紧张的,发挥怎么样(挺好)

总结

虽然和同学模拟过很多次面试了,但在实际的面试前一度紧张到喘不过气。而且由于过于担心拷打项目和八股,算法好几天没写了,手非常生,好在面试官人非常好,没给压力,出的也是常规算法题,所以没出什么问题。除了括号里补充的内容,问得基本都打出来了,整体体验上上乘。

二面(30min)

PS:小插曲,我腾讯会议昵称不是真名,进去面试官问我是谁,我说忘改名字了,然后说看一下学生证之类的证明一下身份,我给他看了身份证,面试官盯着看了半天然后提醒我下次加会议记得改昵称

  • 自我介绍

八股吟唱

  • 说一下Unity中的前向渲染流程(面试官说也行,但是不全,然后补充了下)
  • 说一下光栅化过程
  • 说一下深度测试
  • 说一下Z-fighting是什么,形成的原因以及应对方法
  • 你觉得对Unity最熟悉的是哪一块(我说的事件系统,因为项目里这块用的最多)
  • 那说一下你对事件系统的理解
  • 说一下Scriptable Object的序列化
  • 讲一下对Animator的理解
  • 知道混合树吗,看看你项目中使用混合树的部分,用混合树优点在哪
  • 跑一下你的Unity项目吧,看看效果,顺便结合项目说一下你的动画部分
  • 对C#了解的怎么样(我是准备了点cpp的,C#学得其实比较浅,如实说了)
  • 那知道闭包吗(了解概念,说了点边吧,但其实说的不好)

其他

  • 假如项目推进需要的素材美工那边还没递交给你,你会怎么处理(不太擅长这种题,我答得比较中庸)

反问

  • 对Unity学习仅限于写项目的时候,没有系统学过,问题大吗(还好,熟悉使用基本就可以,剩下可以补,但是渲染相关的知识比较重要,建议我可以学深点,去接触一点shader)
  • 比较吃惊,没想到面试这么快(PS:有点耿直了),而且也没让写算法题(算法固然重要,但我们这边更看重Unity和图形学基础)
  • base深圳吗,如果顺利的话可不可以七月入职(PS:当时比较希望七月考完期末入职)(不好说,还没确定要招哪些人,不过入职时间或许将会被作为指标来排序)

总结

二面时间非常短,快到我没反应过来。面试官没让写算法直接问八股,开始挺不适应,说着说着就越来越得心应手了。整体问得不深,而且运气很好都是我平时准备过的,答题过程中面试官经常会说很好,不错之类的,正反馈很强。

结语

29号上午二面,下午回家过五一了,我们学校5月7号是有双选会的,会有一些企业来提供岗位的便捷通道,但是我没回学校参加,因为我们双选会上没有Unity岗,我当时比较倾向于等之后再找机会,也不是很想去干其他岗。5.8号晚做快手游戏的笔试,做到一半来HR面通知了,很开心,HR面就没啥说的了,都大差不差。然后就是云证+漫长的等待,终于,520那天offer来了,开心!

总的来说,虽然流程很长,但是面试体验极佳,结果也是意外的顺利,纪念一下,也祝大家求职顺利,加油!

全部评论
许愿offer
点赞 回复 分享
发布于 05-24 20:13 江苏
许愿
点赞 回复 分享
发布于 10-29 23:27 上海

相关推荐

11-06 12:10
已编辑
中南大学 Unity3D客户端
图形开发时间线TimeLine:9.21投-10.17笔试-10.24一面-11.1二面-11.5hr面已经是还在流程的几家里唯一的大厂了,球球收了孩子叭,牛客许愿会灵吗,会的吧?总之,先发个一面面经涨涨人品,后续秋招结束会发总结篇,里面有鼠鼠为数不多的十来场面试的面经,以及一堆的笔经(总之就是非常惨)(83min)-&nbsp;自我介绍-&nbsp;平时怎么学习图形学?看过Unity,UE源码没有?-&nbsp;说说C++的共享指针?-&nbsp;weak_ptr是怎么工作的?-&nbsp;shared_ptr是线程安全的吗?-&nbsp;构造函数可以是虚函数吗?-&nbsp;虚函数机制?-&nbsp;虚函数表什么时候构建的?存在哪?-&nbsp;虚函数表怎么构建的?内存空间连续吗?-&nbsp;虚函数表除了虚函数地址还存了别的其他什么东西吗?-&nbsp;如果一个基类函数不标明为virtual,子类重写了这个函数,那指向子类对象的基类指针调用该函数会发生什么?-&nbsp;只有纯虚函数的类有虚函数表吗?-&nbsp;子类不实现纯虚函数会怎么样?在什么时候会报错?会报什么错?-&nbsp;说说vector的扩容机制?-&nbsp;说说list的实现?-&nbsp;如何高效的查找有序的list里的元素?-&nbsp;list二分查找的复杂度是多少?(O(n),我当时没想出来)-&nbsp;如果考虑空间换时间,时间复杂度可以是多少?(这里脑子抽了,我说分别存储每一次list二分之后的结果,存储在vector里,然后二分的时候只需要比较尾节点,然后转移到对应的list里进行下一步查询,&nbsp;事后感觉应该是想引导我说,把list用vector存一遍,然后在vector上做二分)-&nbsp;说说优先队列的实现?-&nbsp;堆是怎么实现的?插入数据的时间复杂度是多少?-&nbsp;插入的逻辑是怎样的?-&nbsp;你的渲染引擎是怎么考虑跨平台的?-&nbsp;你写的shader是怎样在目标平台运作的?-&nbsp;shader里你是怎样采样贴图的?讲讲API的使用?-&nbsp;textureLod怎么用?-&nbsp;如果不提供level,GPU怎么知道要采样哪一层的Mipmap呢?(通过贴图uv在屏幕上的变化率决定)-&nbsp;你刚刚说的u对x,v对y的偏导里的x和y是什么坐标?-&nbsp;除了这个坐标空间还有哪些坐标空间?-&nbsp;三线性插值是怎么做的?-&nbsp;讲讲OpenGL的一个渲染管线?-&nbsp;顶点的裁剪坐标空间坐标怎么得到的?-&nbsp;后续会被怎样处理?-&nbsp;NDC标准空间的xyz取值是多少?-&nbsp;锯齿是怎么形成的?在哪个阶段生成的?-&nbsp;有哪些抗锯齿手段?-&nbsp;MSAA和FXAA有什么区别?-&nbsp;MSAA的硬件实现是怎么做的?-&nbsp;FXAA怎么做的?-&nbsp;实时阴影你怎么做的?-&nbsp;点光源的阴影要怎么实现?-&nbsp;只能是生成CubeMap吗?不能生成Texture2D吗?(傻了,忘记CubeMap可以展开在一个Texture2D上或者干脆用柱状投影图了,我说你非要搞那就整一个Texture2DArray)-&nbsp;你实现BVH的目的是什么?-&nbsp;视锥剔除有必要吗?不是裁剪阶段也会做剔除?-&nbsp;平时渲染方面怎么Debug?-&nbsp;如何优化shader的效率?-&nbsp;为什么尽量不要写if/else语句?那什么时候能用呢?-&nbsp;减少采样操作?怎么减少?哪些采样操作可以移到CPU做?-&nbsp;如果必须要采样呢?怎样做优化?以PCSS为例?-&nbsp;为什么尽量少做那些复杂的数学运算?反三角函数,矩阵的逆什么的?-&nbsp;线程和协程的区别?(太久没看真忘了,支支吾吾嗯是说不出啊,早知道直接说不知道了)-&nbsp;那线程和进程的区别呢?-&nbsp;反问?&nbsp;&nbsp;-&nbsp;图形开发工程师隶属于什么部门?引擎部?中台?(统一校招,进去之后再细分,可能进项目组可能进中台)&nbsp;&nbsp;-&nbsp;这个职位入职的培训和游戏开发那边的培训有什么区别?(差不多也是miniGame,内容上可能区别比较大)&nbsp;&nbsp;-&nbsp;可以知道具体的工作室吗?(进去之后双选)&nbsp;&nbsp;-&nbsp;如果我想胜任图形开发工程师这个岗位,需要再巩固加强哪些方面?(被说计算机基础不牢固了,奶奶滴,我就那个协程没说好嘛!(ㄒoㄒ)) #网易# #网易互娱# #游戏开发# #许愿# #时间线# #一面#
查看55道真题和解析
点赞 评论 收藏
分享
8 33 评论
分享
牛客网
牛客企业服务