24届游戏客户端暑期实习面经汇总 |
您所在的位置:网站首页 › 智能指针实现原理 › 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++##游戏客户端开发# |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |