2024U3D游戏客户端,社招面经(一)

前言:记录下自己面试的经验,因为自己从其他同学的面经中受益良多,现在也想记录一下

已经面试完了。最终选择了网易,想想这一个月的社招还是很艰辛。

挂了或者拒绝了:完美世界手游。盛趣。MetaApp。吉比特。途游。友塔(二面什么都没问,然后评估了一个星期,给挂了,服)。网易外包(因为职业规划不合面试官心意,服)。大梦龙途。完美世界诛仙1。飞鱼科技。冰川网络。小牛互联。域起网络。微派手游。凉屋游戏(让做一个Gamefeel的游戏demo,实在没时间做了)。

最终offer:网易

面试问题:(不敢标注具体公司,狗头保命)

一:

  1. C#和C++的类的区别
  2. C# List添加100个Obj和100 int内存是怎么变化的(一个一个添加),我答错了,可能觉得我不太熟悉C#开始问C++,(刚刚查了下原来C#的List居然是个数组。。虽然也不奇怪C#没有指针)
  3. 重载和重写的区别,重载是怎么实现的
  4. 重写是怎么实现的?(当时没听懂面试官说的是什么问题,然后我就往我懂的方向去引导了。我答的是子类继承父类虚函数的实现过程虚函数表和指针的实现,)
  5. 虚函数表是类的还是对象的
  6. 用过哪些C++的STL
  7. Vector底层是怎么实现的
  8. Vector添加一百次数据内存是怎么变化(一个个添加)
  9. Map的底层,红黑树的查询和插入的时间复杂程度,Unordermap的底层实现是什么
  10. List的底层是怎么实现的(发现自己对List完全不了解下来一定好好看看),队列是怎么实现的(我只记得用两个栈可以实现)
  11. 给了游戏场景,场景里面有6个玩家扮演贪吃蛇进行3v3,场景里面有水果吃了可以边长,蛇碰到队友没有问题,碰到自己的尾巴也没有问题,碰到对手的尾巴的时候会死掉。问怎么把游戏抽象用代码实现(感觉自己答的贼好不知道为什么答的都很对,可能以前做过MMO的全栈开发思想比较符合)
  12. 我简历上面说我平常做了游戏UI的优化,问我怎么优化的UI
  13. 为什么要用图集,规定图集的大小,超出了图集大小怎么办
  14. 了解drawcall吗,什么情况下drawcall会被打断
  15. 了解渲染吗
  16. 你在上个RPGMMO项目里面的服务器代码是怎么实现的,你们服务器有多少个进程和线程,进程之间是怎么通信的(我说我不知道,是我我只会用tcp/udp连接通信)
  17. tcp/udp在哪一层,socket呢
  18. C++和lua是怎么通信的
  19. C++和C#的异同(我没总结过,我凭感觉答的,我说最大是GC,C#不用操作和管理指针)
  20. 了解九宫格吗,原理是怎么样的呢,怎么让一张很小的图变大
  21. 说下面对对象设计
  22. 你在项目里面做了哪些UI系统,讲一下
  23. 你们UI的消息是怎么交互的,讲下你们项目的UI框架
  24. 了解过资源的更新吗,如果一个很大的图集更新,但是里面只更新了一小张图,更好的更新方式是什么,难道是直接更新一个图集吗,(最后引导下来是先更新一个小图过去维护功能,不打进图集,下个版本的时候再重新打图集)
  25. 你了解python的GC吗,不了解只了解过Lua的,然后说了一下lua的。
  26. C#中Ref和out的区别
  27. 手写快排
  28. 怎么优化的UI,图集过大怎么办,怎么优化的spine和特效和animition
  29. 有没有接触过渲染
  30. 讲下Tcp的过程几次挥手几次握手

二:

1,3D的模型怎么显示到2DUI上面

2,C#的ArryList和List的区别

3,接口和抽象类的区别,你一般什么时候用接口

4,UGUI怎么渲染的UI,UGUI的层级管理(怎么不打断合批),合批流程

5,平常用到了设计模式,观察者模式是什么

6,上个项目的UI框架,怎么管理的UI的切换,和场景的切换

7,Unity和android怎么交互的

8,Unity编辑器的扩展学过吗,学过哪些,新增一个窗口是继承哪个类

9,Lua的类型有哪些,pair和ipair的区别,lua怎么实现的面对对象,__newindex是什么,一般用来干嘛,

10,对象池用过吗,好处和坏处

11,Uinty携程用过吗,和线程的区别,之前项目组哪些地方用携程

12,Unity里面判断两个物体的碰撞条件(我回答的需要挂在哪些组件),碰撞器和触发器的区别

13,用过什么算法,A*怎么实现,最重要的是哪些数据结构,A*是宽还是深搜索,搜索路径是最短还是最优

14,你们项目的动画都是用什么做的,你参与过开发吗

15,用过什么lua交互,xlua

16,问了很多上个项目的内容不具体说明了。

三:

  1. 你们项目设置系统是怎么做的
  2. 讲下你做了哪些UI系统
  3. (我讲了一个我做的UI系统用了很多携程)你用携程做UI系统的时候不会出现同步不及时的问题吗(肯定有,不过没关系,策划能接受)
  4. 用的UGUI吗?讲下你们的UI框架
  5. 有对UGUI的源码改动吗,你了解哪些改动。
  6. 滑动窗口定向滑到一个位置你们是怎么做的
  7. 你们ui上面会用粒子特效吗(没有)
  8. 你们的窗口会有窗口动效吗。是怎么做的呢(animition)
  9. 你们UGUI是怎么优化的吗(开始背书)
  10. 你们UI这块除了图集本身的材质还会用到其他的材质吗(没有,有我也不知道,我没写过shader)
  11. UGUI的Mask的原理,为什么Mask会打断合批,怎么实现个不打断合批的Mask
  12. Lua的metatable你们项目哪些地方用到了
  13. Lua面向对象继承有遇到过问题吗,是怎么实现的
  14. Lua里面的全局变量用的多吗,有什么常量会定义到全局的东西里面吗
  15. 你们C#和lua是怎么交互的
  16. Lua的内存优化有了解过吗(我说的UI框架会控制GC时机,我只了解对象池和Lua的GC流程)
  17. 你用UnityProfile检查出过什么问题
  18. 你们游戏有哪些公共组件
  19. 讲下你接触到的战斗相关的
  20. 战斗对技能模型,动效之类的有更深入的了解吗
  21. 接入过哪些SDK,打包是怎么打的
  22. 职业规划

四:狠狠吐槽某些外包面试官,上来问我技术的职业规划方向,然后说我的方向没用。讲了一小时道理,转手给你挂了。浪费时间

五:

  1. C++,释放内存的时候 关键字delete和free有什么区别
  2. 堆和栈内存有什么区别
  3. 指针跟引用的区别
  4. C++多态是怎么是实现的
  5. 怎么创建一个不能继承的类
  6. Socket实现的过程是怎么样的
  7. UDP和TCP的区别是什么
  8. 多线程怎么通信,竞争资源怎么办,怎么避免产生死锁
  9. Lua跟C++的绑定知道怎么写吗
  10. 计算机的图像学
  11. 有些过什么开发工具之类的吗

六:

  1. 数据持久化是怎么实现的
  2. 对象池是怎么实现的
  3. 图片的淡出怎么实现
  4. 图片某些情况显示灰色是怎么实现,写shader怎么写
  5. 说一个你遇到的技术上的问题
  6. 接入过哪些SDK
  7. 了解协程吗,看过源码吗,知道延时器怎么写吗

七:

  1. 问了很多项目组的东西
  2. C++基础,stl用过哪些,list,vector,map,unodermap
  3. Map,unodermap的区别
  4. 删除map的一个元素用什么方法,erase返回的迭代器是指向哪
  5. Vector扩容的过程
  6. Map,和unordermap 对有序性没有要求,插入和删除频率很高一般选哪个
  7. 跟着上面。如果是插入会引起容器大小的剧烈变化一般用哪个

八:

  1. Lua怎么实现的面对对象
  2. _newIndex是干嘛的
  3. 方法调用的点和冒号有什么区别
  4. Lua的异常捕获是用的什么,堆栈信息是怎么打印
  5. 闭包的概念,举个例子
  6. C#中ArryList和List的区别,dictionary是怎么实现的,栈和队列的特点
  7. 数据结构中链表和数组的插入和删除和访问的复杂度
  8. 二叉树,平衡二叉树的概念
  9. Dijstla和A*算法
  10. 常用的排序算法说下,快排和堆排
  11. 用过协程和线程吗,(task,thread没用过线程,后来了解到项目要用ECS,下来学下下这方面)
  12. 你们项目组是怎么管理的资源包,和加载的资源包
  13. TCP三次握手和四次挥手过程
  14. TCP的拆包和粘包的问题是什么,怎么解决(听都没听过..)
  15. 什么是drawcall,什么是合批
  16. 3d模型勾选的静态合批太多了会有什么问题
  17. Xlua和C#交互的原理
  18. C#代码在unity里面编译跑起来的流程
  19. Mono内存有什么特点因为没听懂,换成问C#创建一个对象是问谁要内存(我回答的堆内存),堆内存是谁管理的(我说是mono虚拟机)。释放一个对象的内存mono会还给操作系统吗(我说不会应该会做压缩操作吧),mono是解释性运行C#的中间代码吗(我猜的是,因为可以做C#热更新)。乱答的不知道对不对
  20. Unity的GC流程

九:

  1. 游戏设计个排行榜,100W个玩家,想知道排行榜前一百的玩家是谁。怎么设计我说的用数组加堆排
  2. 建堆的算法复杂度
  3. 玩家发生变更怎么办(我说拿出来 然后二分查找到合适的位置)
  4. 二分查找的算法复杂度
  5. C#的DIctionary是怎么实现的
  6. Hash表查询和插入的时间复杂度
  7. 解决的hash冲突有哪些方法
  8. 用开放定址法的线性探测法删除一个元素的过程是怎么样的(我说找到之后直接删除,问我直接删除元素至于不会有什么问题吗,一番争执之下我发现自己错了,直接打脸),时间复杂度是怎么样的。
  9. 图集有尝试做工具检查多引用吗
  10. Unity怎么会产生GC(我回答的是创建引用过多和协程会产生),创建对象少一点会有GC吗(也会,不过GC频率会少一点吧),创建协程会有GC吗,具体在哪一步,怎么避免(瞎猜的)
  11. 设计模式了解的多吗(我说我会单例,工厂,代理,观察者,其他也看过,他直接问其他的是哪些说一下,我直接回答不上来,6)
  12. UGUI看过哪些源码,对UGUI的布局组件看过吗(layout),用的多吗,layoutelement这个组件知道吗

太长了接:https://www.nowcoder.com/share/jump/1711364601771

总结和建议:希望各位同学能呆满三年最好呆满三年。多学一些核心技术,不然面试没有优势,社招面试的时候大家其实差不多,经验和优势点(会一些别人不会的技能会成为竞争的强有力优势)。基础很重要,对以前项目的自己设计的框架或者系统建议画图讲解不然真的很乱,加油!

全部评论
佬 你这社招强度这么大啊 我要校招没工作那不是半g不g了
1 回复 分享
发布于 03-27 10:11 广东
大佬这社招也太难了😨
点赞 回复 分享
发布于 03-22 17:12 湖南
佬是几年经验,面的高级资深吗
点赞 回复 分享
发布于 03-22 21:07 浙江
这些我倒是都能答出来,但我投的简历完全没人看😢
点赞 回复 分享
发布于 05-17 00:14 四川
那么难?面了9轮?
点赞 回复 分享
发布于 06-04 19:46 广东

相关推荐

北京教育中厂的成都分部  11.5时长有28分钟一面二面合并了面试官人挺好的,也不是特别急,答的不是很好的问题面试官直接跳过了顺序不是很统一 只写记得的部分1.问了值类型和引用类型的区别2. 问了ugui的组件有哪些ugui有哪些优化方案答用打图集来减少内存的消耗Unity有哪些优化方案答用对象池以及少用全局变量3.引用类型储存在堆上是怎么储存的 好像是这个记不清了 没答出来 问了两道算法4一个三角形,一个三角形有三个顶点,然后有一个点如何判断另一个点在这个三角形的内部还是外部?自己答出来的是从内部找一个顶点连线,实际上答案是可以用面积来求以及用向量夹角来求。5还有一个快排怎么排的?以及怎么优化快排答:怎么排的想起来了,但是没有说优化方法问了一下,快排怎么实现的?答的凑合6.了解哪些设计模式答:了只了解单例模式,然后说了说单例模式怎么用7.面向对象的三个特征 和五个原则答出来了特征没答出来原则8协程是怎么实现的? 底层原理是什么?答用迭代器9.问了一下字典如何储存值以及字典的存东西的原理没答上来   看了一下,发现好像是直接add remove就行(不知道是不是) 麻了10.最后是一道场景题,问,工作时如果遇见了上边发配的任务已经完成不了了,时间特别紧急,要截止,你该怎么做?答 :先自己憋一会儿,憋1到2个小时,实在想不出来找组长问一问怎么办,11.问是不是自学的游戏? 答说是自己学的12.问了问背包系统的制作需要用到哪些ugui组件没答好,光说了说用图片组件,还有一个能让,图片排列规矩的组件。。。。。这我当时还自己做过,然而实在记不清了都是三四个月之前了反问环节:问了问,公司是做什么项目的?回答 公司是做学龄前儿童的绘本小游戏  呃,问实习生需要干什么  得到回答,实习生需要在绘本中一些益智小游戏的整体的游戏逻辑搭建总结:基础有一些但是还是不太熟练 得仔细看看那个unity面经 当然算法和数据结构也得常常复习 差点快排怎么排没答上来。。。。汗流浃背了当时
跳进黄河洗不清女士:怎么了。是好未来嘛
查看15道真题和解析
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-05 23:10
上海寻梦信息技术有限公司 Java工程师 30.0k*18.0
我要offerOOO:双休很重要啊
点赞 评论 收藏
分享
11-06 12:10
已编辑
中南大学 Unity3D客户端
图形开发时间线TimeLine:9.21投-10.17笔试-10.24一面-11.1二面-11.5hr面已经是还在流程的几家里唯一的大厂了,球球收了孩子叭,牛客许愿会灵吗,会的吧?总之,先发个一面面经涨涨人品,后续秋招结束会发总结篇,里面有鼠鼠为数不多的十来场面试的面经,以及一堆的笔经(总之就是非常惨)(83min)- 自我介绍- 平时怎么学习图形学?看过Unity,UE源码没有?- 说说C++的共享指针?- weak_ptr是怎么工作的?- shared_ptr是线程安全的吗?- 构造函数可以是虚函数吗?- 虚函数机制?- 虚函数表什么时候构建的?存在哪?- 虚函数表怎么构建的?内存空间连续吗?- 虚函数表除了虚函数地址还存了别的其他什么东西吗?- 如果一个基类函数不标明为virtual,子类重写了这个函数,那指向子类对象的基类指针调用该函数会发生什么?- 只有纯虚函数的类有虚函数表吗?- 子类不实现纯虚函数会怎么样?在什么时候会报错?会报什么错?- 说说vector的扩容机制?- 说说list的实现?- 如何高效的查找有序的list里的元素?- list二分查找的复杂度是多少?(O(n),我当时没想出来)- 如果考虑空间换时间,时间复杂度可以是多少?(这里脑子抽了,我说分别存储每一次list二分之后的结果,存储在vector里,然后二分的时候只需要比较尾节点,然后转移到对应的list里进行下一步查询, 事后感觉应该是想引导我说,把list用vector存一遍,然后在vector上做二分)- 说说优先队列的实现?- 堆是怎么实现的?插入数据的时间复杂度是多少?- 插入的逻辑是怎样的?- 你的渲染引擎是怎么考虑跨平台的?- 你写的shader是怎样在目标平台运作的?- shader里你是怎样采样贴图的?讲讲API的使用?- textureLod怎么用?- 如果不提供level,GPU怎么知道要采样哪一层的Mipmap呢?(通过贴图uv在屏幕上的变化率决定)- 你刚刚说的u对x,v对y的偏导里的x和y是什么坐标?- 除了这个坐标空间还有哪些坐标空间?- 三线性插值是怎么做的?- 讲讲OpenGL的一个渲染管线?- 顶点的裁剪坐标空间坐标怎么得到的?- 后续会被怎样处理?- NDC标准空间的xyz取值是多少?- 锯齿是怎么形成的?在哪个阶段生成的?- 有哪些抗锯齿手段?- MSAA和FXAA有什么区别?- MSAA的硬件实现是怎么做的?- FXAA怎么做的?- 实时阴影你怎么做的?- 点光源的阴影要怎么实现?- 只能是生成CubeMap吗?不能生成Texture2D吗?(傻了,忘记CubeMap可以展开在一个Texture2D上或者干脆用柱状投影图了,我说你非要搞那就整一个Texture2DArray)- 你实现BVH的目的是什么?- 视锥剔除有必要吗?不是裁剪阶段也会做剔除?- 平时渲染方面怎么Debug?- 如何优化shader的效率?- 为什么尽量不要写if/else语句?那什么时候能用呢?- 减少采样操作?怎么减少?哪些采样操作可以移到CPU做?- 如果必须要采样呢?怎样做优化?以PCSS为例?- 为什么尽量少做那些复杂的数学运算?反三角函数,矩阵的逆什么的?- 线程和协程的区别?(太久没看真忘了,支支吾吾嗯是说不出啊,早知道直接说不知道了)- 那线程和进程的区别呢?- 反问?  - 图形开发工程师隶属于什么部门?引擎部?中台?(统一校招,进去之后再细分,可能进项目组可能进中台)  - 这个职位入职的培训和游戏开发那边的培训有什么区别?(差不多也是miniGame,内容上可能区别比较大)  - 可以知道具体的工作室吗?(进去之后双选)  - 如果我想胜任图形开发工程师这个岗位,需要再巩固加强哪些方面?(被说计算机基础不牢固了,奶奶滴,我就那个协程没说好嘛!(ㄒoㄒ)) #网易# #网易互娱# #游戏开发# #许愿# #时间线# #一面#
查看55道真题和解析
点赞 评论 收藏
分享
评论
24
178
分享
牛客网
牛客企业服务