24届游戏客户端暑期实习面经汇总

分享一下我这三个月来游戏客户端开发方向一些印象深刻的面经,因为我没录屏几乎全部靠记忆,会漏很多请多包涵了。

1.快手游戏

一面:

1.new与malloc区别,详细讲下分配失败情况以及malloc底层(八股,后面的话讲下linux下系统调用和windows下内存池)

2.new / delete的有无括号的情况与原理

3.c11智能指针相关,重点讲下相互转换的方法与底层原理

4.模板元编程了解多少,怎么用模板实现无符号十进制数值转换为等价二进制(数值计算,特化)

5.模板编译期间生成什么(我说展开成具体的函数,他说不对,这里我挺确定的可能面试官cpp用的不多)

7.向量点乘叉乘,在图形学里和游戏Gameplay里的运用

8.讲讲PBR的理解

9.Unity性能优化有哪些思路(主要是减少渲染次数,讲讲批处理,对象池,视锥体剔除,还有脚本层面和GC等等,可以讲的很多被打住了)

10.项目相关,因为我说我主要写网络相关的就挖了网络,这里不展开了大概问了半小时

11.算法,最大频率栈,哈希表+栈,撕了道hard我是没想到的

二面:

1.设计模式了解哪些,手撕状态模式和策略模式

2.热更新了解多少,讲讲xLua,怎么在Lua里调用C#(自我介绍提到了)

3.讲讲MVVM

4.问项目,怎么实现子弹碰撞检测和武器管理的,网络部分怎么实现可靠UDP的

5.算法,给一个字符串表示整数,寻找最近回文数

总体来说是我面过里很有水平的一家,很会深挖,面试官对我评价也比较好。

2.字节朝夕光年

一面:

1.最近在玩游戏(hifi/wolong/霍格沃兹)

2.最近在看什么书(Unix网络编程)

3.C与Cpp的编译过程,静态链接和动态链接(把Csapp链接那一章大概讲一遍)

4.字节对齐,指针类型和float类型长度

5.讲讲静态多态和动态多态

6.哪些函数不能是虚函数(构造,内联,静态,友元,类外普通)

7.智能指针,引用计数原理,什么时候释放引用计数那块的内存

8.讲讲哈希表

9.Unity了解哪一部分?讲讲你对网络同步的理解

10.渲染管线流程

11.TopK问题,多线程情况

12.算法,合并数组

二面:

1.挖项目(主要挖了我看了Photon库官方文档哪些部分)

2.讲讲MonoBehavior生命周期

3.C#装箱拆箱

4.讲讲线程同步有哪些方法

5.向量点乘叉乘

6.Const和Static(我说到Static隐藏到本文件面试官居然否定。。不过后来给我道歉了)

7.链接重复定义问题(还是Csapp)

8.有关IO多路复用的场景题

9.算法,忘记具体是什么了,大概是Mid,主要关注书写规范

10.设计排行榜(一致性哈希)

三面:

1.手撕单例,懒汉饿汉,为什么要双重加锁,双重加锁后一定线程安全吗,再加上volitate一定线程安全吗

2.问了一个场景题,关于一个网络协议怎么设计的(我感觉像KCP的设计思路)

3.手撕多线程Socket

4.挖项目(怎么实现帧同步,怎么用贝塞尔曲线优化延迟的,怎么实现Rpc框架的)

感觉面试官的应该不像写Cpp的,很多基础的东西不知道我在说什么,项目挖的挺深的,还有就是算法要求比较高。

3.腾讯天美

一面:

1.讲讲虚函数原理(八股,展开说了下内存模型)

2.讲讲快排,最坏复杂度是什么时候,怎么优化(用std::sort的底层回答就行)

3.渲染管线流程

4.场景题,Moba里的抛物线怎么实现(没太听懂想问啥)

5.问项目,蒙特卡洛树搜索怎么实现

6.智力题,两个玻璃球经典题

7.导数,极限一些数学相关的概念

二面:

1.问项目

2.了解过UE5源码哪些部分,讲一讲碰撞检测的实现(SAT)

3.智能指针

4.STL内存分配(两级适配器,内存池)

5.vector和list的遍历速度比较(主要考虑cache)

6.vector怎么实现O1中间插入(我说预留空间,他给的方法是先尾插再swap,我寻思这不是乱序了,感觉很牵强)

7.讲讲Cpp的内存模型

8.讲讲红黑树的理解(讲的比较多,我说可以直接撕个给他/笑)

9.讲讲右值引用的底层实现(特性萃取)

10.你对物理引擎有哪些了解,玩过什么游戏(面试官说他是赛车项目组的我就说地平线和iracing)

11.你对赛车的物理模拟效果有哪些理解(联系了网络部分分析了一下)

12.对赛车游戏有兴趣吗,愿意做物理引擎相关的工作吗

面试官感觉我技术栈和他们挺match的,交流的很愉快,面试官水平很高反馈也很及时

4.西山居seed

一面:

1.智能指针的理解

2.头文件保护怎么做(预处理指令)

3.讲讲光栅化流程,Zbuffer用在哪

4.讲讲AB包的实现,打包哪些资源(主要讲加载)

5.为什么用Lua,Lua怎么实现面向对象

6.项目有哪些Gameplay实现,从OOP和ECS两种思路设计你的模块,各自优缺点

7.RPC和时钟同步(详细讲序列化)

8.TCP和UDP区别

9.项目怎么减少丢包的

10.项目里粒子群算法的优势和原理

11.讲讲背包UI设计思路

12.Unity和UE怎么选择和学习路线

13.C#了解程度,编译过程

14.项目用的同步策略,为什么用帧同步,如果用状态同步怎么实现

居然只有一面,个人一直以来想去的厂,其他都拒了

个人背景和技术栈:211本科科班,游戏方向零基础自学三个月左右,项目方面只有一个简单的基于Unity的多人FPSdemo。技术栈包括Cpp/OS/图形学/网络编程,Unity相关主要学了UGUI/Lua热更新/网络架构。

其他游戏方向:网易雷火(笔试挂),米哈游(笔试挂),4399(笔试挂),莉莉丝(简历挂),完美世界(笔试挂),趣加(简历挂),柠檬微趣(二面挂),叠纸(一面挂),吉比特(OC)

非游戏方向:美团(OC),阿里(一次二面挂,一次hr面挂),恒生(OC),b站(简历挂),小红书(笔试挂),蚂蚁(笔试挂),百度(二面挂),携程(一面挂)

#面经##c++##游戏客户端开发#
全部评论
游戏方面零基础自学三个月就问到unity性能优化,渲染管线光栅化这些东西?你找暑期实习还是3年经验社招啊,合理吗
3 回复 分享
发布于 2023-05-12 16:19 广东
能分享下unity和ue的学习路线吗
2 回复 分享
发布于 2023-05-14 17:04 浙江
太强了,膜拜大佬
2 回复 分享
发布于 2023-05-13 14:41 江苏
太牛了
点赞 回复 分享
发布于 04-13 00:43 江苏
5.模板编译期间生成什么(我说展开成具体的函数,他说不对,这里我挺确定的可能面试官cpp用的不多) 这个应该是生成具体的代码实例吧 不一定是函数啊 比如类 结构体什么的
点赞 回复 分享
发布于 2024-03-07 23:54 广东
老哥,你的经验真是特别丰富啊,速速和我线下面基
点赞 回复 分享
发布于 2023-08-05 00:50 湖北
大佬啊懂这么多,请问unity学习什么才能到大佬你的程度呢
点赞 回复 分享
发布于 2023-06-06 16:28 广东
有天美为啥还来居啊?
点赞 回复 分享
发布于 2023-06-05 23:59 广东
😂佬
点赞 回复 分享
发布于 2023-05-20 11:02 浙江
给跪,好牛
点赞 回复 分享
发布于 2023-05-18 13:34 湖南
什么神
点赞 回复 分享
发布于 2023-05-17 23:32 四川
请问如果面的是 unity 相关的职位,也需要对C++有这种程度的理解吗
点赞 回复 分享
发布于 2023-05-15 15:16 山东
这几个面经是oc了么?
点赞 回复 分享
发布于 2023-05-13 18:01 四川
大佬非游戏方向做的项目是啥呀,方便说一下吗
点赞 回复 分享
发布于 2023-05-12 20:40 陕西
最后去了那家啊
点赞 回复 分享
发布于 2023-05-12 12:51 江西

相关推荐

找实习期间看了不少大佬们分享的面经,收获不少,牛客上好像没什么银之心的面经,所以简单分享下自己的经验。bg:985本,211硕,简历包含一段小厂的unity实习,一个UE的基于GAS的ARPG玩具demo,4月底开始投简历。----------------------------------------------------------------------------------------------Time Line:5.23 -- 笔试5.29 -- 1面5.30 -- 2面6.3 -- 3面6.6 -- hr面6.16 -- oc---------------------------------------------------------------------------------------------笔试:4道算法题1.给定一个排列,求出所有子区间的中位数之和2.给定两个字符串a,b,将b插入a使得字符串为回文串,求有多少种插入方法3.给定两个长为n的整数数列A,B,每次可以从A的左或者右端取一个数字,B按顺序取,假设第i次取走的数为ai,则第i次取走的价值为bi*ai,求最大价值和4.给定两个长度相同的字符串s,t,每次可以将任何位置的任何字符移动到字符串末端,求至少需要多少次操作可以市s变成t?---------------------------------------------------------------------------------------------面试体验很好,几个面试官相当专业,反问环节回答得很认真,不敷衍,收获良多;hr小姐姐推进流程和回复问题也很及时。------------------------------------------------------------------------------------------------一面(55min)1、自我介绍2、常规的C++八股拷打,这里推荐知乎 不羁的游侠 的 《计算机基础篇》 ,我自己面试过程中遇到的大部分c++八股都可以在里面找到。-----没答上来或者答得不好的几个问题:(1)一个子类继承了两个父类,两个父类中有同名的虚函数,子类中重写此虚函数,重写的是哪个父类的虚函数?(2)类模板的声明和实现可以分别放到头文件和cpp中吗,为什么?(3)执行exe,main函数是最先执行的吗?如果不是,举几个在main函数前执行的例子。3、问:你的项目里有用行为树实现的敌人AI,有看过源码吗?答:没有,不过知道AI寻路的一些过程和原理,(然后balabala开始讲NavMesh生成网格体的过程和A*算法)4、问:了解过动画系统中动画动起来的原理吗?答:动画的载体是骨骼,动画序列由时间轴上的一系列关键帧组成,每个关键帧存储了每根骨骼的变换信息,非关键帧的骨骼变换信息通过插值等方式可以计算出。问:介绍一下UE的动画状态机、混合动画、叠加动画?    答:知乎 TurBo强  的《UE 动画系统框架介绍及使用》;问:知道蒙皮动画吗?   答:没了解过问:看过动画系统源码吗?   答: 没有5、手撕算法题:(1)字符串加法,常规题(2)追加要求:两个数可以是负数询问面试官:能否拆分为两个正数的减法和加法的函数,计算前先单独处理运算的两个数的符号位,并调用相应的函数。面试官回答可以,写了5min没写完,面试官表示时间差不多了,直接进入反问环节。----------------------------------------------------------------------------------------------------二面(45min)1、自我介绍2、问:玩过什么游戏?答:最近在玩 最后纪元 ,一个暗黑风格的ARPG游戏3、问:这种ARPG游戏里,怎么对敌人造成伤害?答:比如玩家发射一个火球,需要为火球添加碰撞体,敌人身上也必须具备碰撞体,同时实现接受伤害的接口,当火球与敌人碰撞时,触发hit或者Overlap事件,传递碰撞信息,其中包括敌人对象,拿到敌人对象后,调用接受伤害的接口。4、问:怎么进行碰撞检测?答:粗略检测的话,可以用包围盒等包围需要检测碰撞的对象,然后检测两个包围盒是否有相交即可。过程中可以通过四叉树、八叉树或网格加速结构,快速排除远距对象。不同划分区域保证不会碰撞的情况下,就能快速过滤与本物体不同区域的其他潜在物体碰撞。问:包围盒和包围球间的范围检测哪种比较简单答:包围盒和包围盒吧,只需要把各个顶点投影到坐标轴上。(好像不对,应该是球和球?)问:球和球的范围检测怎么计算?球和盒的范围检测怎么计算?答:(几何知识,大概画个图就知道了)5、问:如果是近战攻击,怎么对敌人造成伤害?答:和远程差不多,不过是需要在近战武器上添加碰撞盒,创建两个场景组件放置在武器的两端,作为box trace的起点、终点,挥舞武器的时候,在两点之间执行box trace。问:怎么让box trace跟着武器动的?答:近战攻击用一个动画蒙太奇实现,武器绑在角色手上的slot里,碰撞盒和起点、终点是武器的子组件,动画动,武器跟着动,子组件也跟着动。6、问:项目里有实现自动寻路吗?有了解过吗?答:(一面的时候也问道了)NavMesh生成网格体的过程+A*算法。问:如果场景中有移动的障碍,怎么处理?答:不太清楚 ,不过我猜可以先划分区域,只更新移动物体影响的区域,更新寻路网格体时,把移动障碍和其移动覆盖的区域整体标记为障碍物。问:需要重新烘焙吗?答:需要。7、问:还做过其他什么东西吗?答:还做了一个简单的多人游戏项目,不过做得不是很好问:网络游戏用什么协议答:UDP,不过通常会将在其往TCP的方向改,即可靠的UDP,(序列号与确认,丢包重传、超时重传、滑动窗口、拥塞控制)8、无手撕环节---------------------------------------------------------------------------------------------------三面(30min)三面大部分时间聊聊天了,问了一些简历上提到的东西,比如MVC的难点,ui的MVC和工程上的MVC的关系等,有三分之一的时间是面试官在给我讲解反问环节问的问题,醍醐灌顶,可惜忘记录音了...-------------------------------------------------------------------------------------------------
duadua666:同银之心oc,但是怎么感觉我这问的这么简单😧
查看25道真题和解析
点赞 评论 收藏
分享
评论
74
435
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务