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 广东

相关推荐

23 178 评论
分享
牛客网
牛客企业服务