介绍下自己,双非二本,大二暑期有过一个月实习经历,做过联网项目,做过剧情类项目
去腾讯面试最初就是看看自己够不够格去实习

  • 5.07 云证
  • 5.11 oc

以下是时间线

魔方

魔术师工作室

3.19 一面(120mins)

c++

  • struct和union区别?
  • 指针和引用的区别?
  • 左值和右值?
  • 字节对齐的作用?
  • 什么情况下需要自定义new?
  • malloc和new的区别?
  • 析构函数声明为虚函数有什么好处?虚函数放在内存中的哪个地方?(后面哪次面试也问到这个问题)
  • 抽象类和接口类的区别?
  • 多态的实现?
  • 内联函数?
  • 动态链接和静态链接区别?
  • 野指针?悬空指针?

Unity

  • 知道AssetBuddle吗?AB是如何工作的?
  • 知道Lua吗?Lua的基本类型?(问的时候没详细用过Lua,于是答知道一点Lua热更的基本原理,然后简单说了一下,面试官点了点头)
  • 有美术资源优化的经验吗?
  • 图集使用过吗?Unity是怎么打包图集的?打包的格式了解吗?(Master图集没实际用过,处于口嗨阶段)
  • 动态合批的规则?Unity怎么动态合批?(答得不是很好,后来了解到是Texture ID和Material ID以及渲染顺序那一块影响渲染队列,然后影响合批顺序)
  • UI合批的最小单元和理解?
  • 怎么理解Editor编辑器?
  • 序列化和反序列化?
  • .Net和Unity的区别?(硬扯皮Unity的编译过程C#和MonoBehviour编译成IL那一部分,感觉面试官对我的回答还行?)
  • Resources文件夹的作用?
  • meta文件?meta丢失怎么做?

操作系统

  • 进程和线程?区别?
  • 物理内存和虚拟内存?虚拟内存如何实现的?分页?

计算机网络

  • TCP和UDP区别?
  • TCP拥塞控制?

计算机图形学

  • 光栅化?
  • 说下可编程渲染管线?
  • 说下固定渲染管线?之间的区别?

项目

  • 遇到了什么问题?如何解决的?
  • 项目中联网部分逻辑交互是怎么做的?
  • 用过哪些设计模式?如何用的?

代码部分

  • 说下快排原理并且手撕(15mins)

其他

  • 什么时候能实习?喜欢玩游戏吗?

  • 考研吗?为什么不考研?
    反问

  • 工作室的氛围?

  • 我喜欢什么类型的游戏?比如?这里聊到了面试官也喜欢黑魂游戏?问我鬼泣5和黑魂的区别在什么地方?

  • 工作室是喜欢做赚钱的游戏还是喜欢做喜欢的游戏?(面试官说你这个问题有点刁钻(心中:怎么提个憨批问题,我一定不能讲实话))
    面试体验最好的一场,虽然有时我说话有点不利索,但基本都是面试官仔细听我的回答并且给予我肯定

3.24 二面(110mins)

C++

  • 左值和右值?左值引用和右值引用?
  • 虚函数是怎么实现多态的?虚函数表存放的形式和位置?

Unity

  • 如何在UI上显示3D模型?
  • 如何在UI上显示粒子效果?(答了用新Camera单独照3D模型然后摄像机画面混在一起)假如UI会同时显示10个,并且彼此独立怎么做?Unity的层序顺序讲一下?
  • PBR了解吗,说一下?(硬扯高光和Blinn Phong一些概念)用过URP吗?

线性代数

  • 点乘和叉乘?
  • 矩阵如何求逆?被面试官怼这是数学的做法

计算机图形学

  • 怎么判断空间内三角形和射线是否有交点?(后续才知道Möller-Trumbore算法
  • 说下渲染管线?介绍下每个步骤?

代码部分(60mins)

  • 个人觉得是七面中考的最多的算法面试题了,直接三道动态规划算法题
  • 如何选取4个砝码的重量能够在天平上称起1~40克的物体?(口述)一开始不理解题目,面试官讲了几分钟,后面才提醒要用动态规划的思想...
  • 手撕无序n个元素取k个最大值(n很大,k很小),不改变顺序删这些元素(建堆)
  • 手撕Leetcode最大连续子元素和(力扣难度简单)
  • 手撕Leetcode.332 零钱兑换变种题(力扣难度中等,刚好之前做过说了下简单思路然后上手)

反问

  • 工作室是做什么的?怎么学好图形学?
3.26 三面(60mins)

C++

  • 字节对齐的作用?(一面也问到了)
  • dynamic_cast作用和使用场景?

C#和Unity

  • 说下GC?垃圾回收原理是什么?怎么减少内存泄漏?怎么优化gc?如果第一次gc后内存还是不够呢,会怎么做?以为不是问分代回收策略,直接乱说了,面试官直接说我不理解gc(脑阔疼)
  • UI适配?适配不同的手机?刘海屏和曲面屏?因为没做过手游,所以面试官说我方法不行,我怀疑你在为难我胖虎
  • 知道哪些Unity的优化方式?
  • NGUI和UGUI区别和使用?

计算机图形学

  • 空间中已知入射光线和法线求反射光线?
  • 做过哪些图形学项目?被质疑:你这是课程作业么?

代码部分

  • 手撕字符计数压缩和合并有序链表(对应Leetcode简单难度,六七分钟两道题就做出来了)
  • 手撕rand(1,7)实现rand(10),要求等概率均匀分布。只知道rand(a,b)怎么用rand(0,1)实现,所以直接说不会

反问

  • 我这是三面么,这是最后一面么?面试官突然诧异,原来我在面三面,对的是最后一面,当晚直接流程灰了
    体验最差的一场,面试官那边网络不好并且有同事说脏话的声音传过来,而且我写的是熟悉C++结果一直问C#(那时还没补起来)

魔镜工作室(前台开发)

没错,又是魔方 换个工作室捞起来再面

3.31 一面(40mins)
  • 自我介绍

  • 问了学校问题

  • 项目介绍和在项目中担任的角色工作是什么?遇到哪些问题,如何解决的?

  • 听我吹水建模比赛

  • 说一下A*算法的原理?启发函数怎么算?

反问

  • 为什么不问我C++?(因为问题实在是太水了,我怕面试要求低,把我拉过去干苦力)面试官说前面的面试官问过我C++了,说我C++和数学还可以,才知道有面试评价这个东西...
  • 项目用什么引擎?在UE4做大世界项目
4.02 二面(30mins)

实习经历

  • 之前实习做了啥?项目用的UDP还是TCP?理由?

期间二面结果等了四到五天灰了...

接着就是正式批阶段了

光子

4.21 一面(40mins)

C++

  • 如何学习c++?是系统学过吗?
  • c++11之后有了解么?
  • 左值和右值?左值引用和右值引用?
  • 移动拷贝作用和使用场景?Vector3类需不需要有移动拷贝函数?什么情况下需要
  • 栈和堆的区别?为什么栈比堆高效?
  • 虚函数原理和机制?虚函数表存放位置?

项目

  • 项目中遇到的问题和做法?

代码部分

  • 给了个带虚函数的类进行代码分析
  • 手撕洗牌算法,并且验证等概率随机

反问

  • 如何学好图形学?面试官说,英文好的话 直接看Real Time Render,不够好的话,就看LearnOpengl或games101(顺嘴提了一句,这些广度够了,但深度不够,alright面试官是个大佬无疑了)
4.30 二面(40mins)

数据结构

  • 判断链表有环?你讲到哈希表,说说原理和使用场景?哈希冲突的两种解决方法和优缺?

线性代数

  • 点乘和叉乘的数学意义和区别?

Unity

  • FixedUpdate?Unity生命周期?
  • material和sharedmaterial的区别?

计算机图形学

  • 法线贴图原理?在哪个着色器做?
  • shadowmapping原理?

项目

  • 项目中为什么用UDP?乱序问题怎么解决?(突然想起用的是TCP...)

其他

  • 你觉得你是什么性格的人?为什么大二选择实习?

  • 喜欢玩游戏吗?玩什么游戏?

5.06 hr面(30mins)
  • 你最喜欢的3A游戏是什么?(因为自我介绍说我想做3A游戏所以被反问)

实习

  • 实习做了哪些事?有什么收获?

项目

  • 遇到什么技术的问题?如何发现问题并解决的?
  • 项目之间你感受的差异是什么?

意愿

  • 为什么想来腾讯?来腾讯能学到什么?(想实现梦想,做3A游戏!)

其他

  • 说说你对笔试的感受?(很惭愧说,笔试发挥的不是很好,有些题目意思理解不清楚)
  • 现阶段是想考研还是找工作?

题外话

网易雷火(引擎开发)

5.09 一面(60mins)

不得不说网易效率不如腾讯高,4.22号的笔试处理完后,过了快两周多才约面

  • 上来第一个问题,有没有做过渲染方面的东西(本来想走的就是客户端,可能手误投了引擎,直接说没做过)

C++

  • move函数和用处?移动拷贝?拷贝构造的小例子判断是拷贝构造还是赋值运算?
  • 给个例子判断占用字节?
  • 一个C++的代码例子说说结果是什么?
  • const的定值和定向问题?
  • static的作用?
  • 内联函数的作用?

操作系统

  • 说下大小端模式?(直接把如何判定和用处说了下)
  • 字节对齐作用?
  • 数组for a for b data[a][b]和for a for b data[b][a]哪个高效?(说了一维数组元素地址连续访问缓存命中问题)

数学

  • 点乘与叉乘的数学意义和区别?
  • 在xy坐标系上的点坐标如何转成uv坐标系?
  • 4乘4矩阵变换的作用?如果不让平移矩阵方便表示怎么做,怎么转换?
  • exp ln 实现 power(x, y) (不会,甚至看不懂符号,后面才发现是一些shader方面的符号)

计算机图形学

  • 顶点着色器和片元着色器是否一一对应?
  • 裁剪空间的作用?怎么变换的?

渲染

  • alpha test和alpha blend说一下(all right 不会...)
  • mipmap了解吗?(说了减少CPU渲染压力,增大内存占用,被面试官问 除了这个还知道什么吗(可能是想问具体算法怎么实现的?))

反问

  • 主要用什么语言(C++、C#)
  • 面试过程因为设备不好,并且腾讯那边已经云证,所以没有什么太大的兴趣继续提问了

总结

  • 自从去年9月后,发誓要进游戏行业,不停的看C++、计网、Unity、shader、闫老的games101,虽然累,但是有时也会觉得自己学到了东西
  • 给自己总结一下好了,腾讯面试会很深挖基础知识,图形学的面试题有些都是偏实际的(之前没有了解过,所以吃了个大亏- -),边面边看面经边做Unity手游项目,一遍感叹自己如此之菜,幸得一些面试官对我的肯定,也算给自己一个比较好的慰藉
05-14 13:37