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 回复 分享
发布于 2024-03-27 10:11 广东
那么难?面了9轮?
点赞 回复 分享
发布于 2024-06-04 19:46 广东
这些我倒是都能答出来,但我投的简历完全没人看😢
点赞 回复 分享
发布于 2024-05-17 00:14 四川
佬是几年经验,面的高级资深吗
点赞 回复 分享
发布于 2024-03-22 21:07 浙江
大佬这社招也太难了😨
点赞 回复 分享
发布于 2024-03-22 17:12 湖南

相关推荐

04-10 03:42
研发工程师
本人是英国约克大学计算机工程本科毕业生。在今年一月份正式拿到毕业证,回国求职三个月了,这段时间经历了很多,也越来越迷茫。今天下定决心写下这篇长文,希望能记录自己的经历,同时也期待能得到一些来自各位大神的的建议和指点。💡【背景介绍】我其实是2020年9月入学的,理论上我们专业是3年制,但因为大一赶上疫情+没参加考试,大一全挂重修了一年,等于在英国读了四年,延迟到2025年1月9日才正式毕业(其实所有课程早在2024年5月初就已经完成,只因毕业设计延期提交导致毕业证发放延后)。在英国这四年,说实话,我并不算一个“刻苦”的学生。虽然学过很多课程,比如Python、Java、Haskell、数据库、...
想吃卤蛋的打工人在春招:不是你的问题,主要是授课制的问题,我211本海硕,现在发现授课制最主要的问题就是技术栈又杂又浅。
除非自己有特别明确的职业发展技术规划,否则两年硕士就和国内本科plus版的感觉一样,这个项目做一下,那个项目做一下,每个技术只是“用过”,谈不上熟练使用。 相比之下感觉国内硕士首先时间长一点,其次一般实验室导师总有研究方向,所以技术方面就会“专精”一点,哪怕自己摆烂被导师推着也多少能学点。
不过我觉得海硕的优势就是自由度高,想科研自己找教授,想实习自己找,甚至很多学制也比较灵活,读个两三年都行,不存在找到实习导师不放的情况,属于是上限高下限低了
投递谷歌等公司10个岗位 >
点赞 评论 收藏
分享
04-11 11:35
已编辑
门头沟学院 Unity3D客户端
本人背景:双非本科,泛cs专业,2022校招有幸加入某沪老牌游戏厂,校招的时候有UE4的TPS客户端项目经历,入职的是后端部门,但因为个人热爱客户端,后续工作内容围绕全栈进行,后误打误撞打开了战斗大门,从此一发不可收拾,太喜欢这战斗了,莫名其妙上头😲😀,因为是全栈,很容易就能接触前后端战斗代码,花了半年时间深入掌握投递情况:前期瞄准了三四家3-5年的岗位试水,大多以年限不足简历挂,后续投递网易某部门,岗位为2年玩法战斗,一发入魂,顺利oc,时间线大约为四个工作日三面,offer七天内到账,因为jd很符合我的口味😍就没在推进其他公司流程了,来此还愿望面试情况:主要以简历拷打,个人主要项目经历是gameplay设计,编辑器实现,以及战斗功能的维护和优化,主要技术栈是unity+C#+Lua一面:1. ECS和DOTS的区别?相比传统的代码设计又有什么优势体现?遇到过什么问题?2. 帧同步和状态同步,如果你项目中的状态同步改为帧同步你会怎么实现?(以及一个相关细节业务的提问,这里为了防老东家定位就不便透露哈哈哈3. 寻路算法的优化?从基础A*到JPS到RVO到KD-tree讲了个大概思路和一些具体的细节实现4. 代码题:类似战旗,场景是矩阵地图,各个矩阵是有高度到,你只能高度相差1的移动,问两点是否能到达5. 项目中屏蔽字校验工具的优化,询问了什么是贝叶斯,怎么做到的复杂度优化6. lua战斗优化,主要涉及debug函数库中的sethook函数,根据业务环境编写,后端就分析各个战斗模块中函数的调用和性能分析,用算法和常见的lua优化进行修改,前端除了这部分,还有资源部分,进行一些内存性能到定位,unity自带的profile和lua的内存分析工具,这些网上都有框架提供7. 询问其他优化,如ui中的一些视野剔除,相机剔除和组件对象池复用等部分8. 公会战AOI视野优化的实现9. 空间里有好几个圆,中心和半径,怎么判断两个点会不会被这些圆障碍阻挡到视野?也就是能不能相互看到10. 玩家手机屏幕分辨率修改会对相机产生什么影响(唯一一个不知道的问题。。。11. 玩家拿着武器,穿墙了怎么办12. 玩家播放某个动作,需要某个身体部位对应到某个坐标上,怎么实现?13. 业务题:我有多个武器,涉及品质和等级,玩家可以升级,对于玩家而言,评分最高的是品质优先然后同品质高等级优先,等级不得大于玩家等级,求一个排序方式,可以在玩家升级武器情况下,排序复杂度尽可能的低二面:1. 代码题:二维坐标里有好多个矩形,如何检测碰撞,如果这些矩形不和xy平行,又要怎么检测2. 代码题:write do undo的实现3. 遇到过的战斗不一致问题,怎么解决,战斗中随机数怎么实现?会有什么问题吗4. 物理情况下子弹的实现,会遇到什么问题?5. 场景里很多npc开着碰撞或范围检测,怎么优化?kd-tree的xy分范围6. kd-tree的边界抖动问题,物体频繁来回穿越边界怎么办7. 空间内射线检测的原理8. 简历拷打,网络波动怎么办,行为预测,行为回滚9. 简历拷打,KCP协议优化10.简历拷打,AOI视野优化11.简历拷打,循环列表实现三面HR面,意向拷问,呜呜呜,战斗岗位,太想去了😭卑微求职整体下来,面试挺有深度的,一二面的面试官都很好,下面有个老早时候入门学习时候的收藏,还是挺全面的,后续深入还是要自己去瞎看,系统学习https://www.nowcoder.com/share/jump/27404740710207523058最后感谢这三年内的众多同事,简直不能太棒了😘#社招# #游戏# #游戏开发面经# #网易# #unity客户端#
旭旭旭xu:已收藏,,大佬好厉害,一年UI仔路过,一半以上都答不上来
查看24道真题和解析
点赞 评论 收藏
分享
评论
28
215
分享

创作者周榜

更多
牛客网
牛客企业服务