腾讯IEG游戏客户端一面二面面经

一面

处女面,很慌,但面试官很好,问的偏基础,不过面试官没开摄像头。

问题

  1. 数组和链表的区别
  2. 新增一个元素,数组和链表的区别
  3. 快速排序的原理,时间复杂度
  4. 二叉树的遍历,三种遍历顺序
  5. bfs和dfs的区别,用到的数据结构
  6. dfs压栈
  7. 进程与线程的区别,进程间通信的方式
  8. 死锁,如何避免
  9. 指针和引用区别
  10. 多态原理
  11. new和malloc区别
  12. 装箱和拆箱
  13. tcp和udp的区别
  14. 帧同步和状态同步
  15. unity脚本的生命周期
  16. update,lateupdate和fixedupdate
  17. unity协程
  18. unity协程和C#多线程使用上的区别,C#异步
  19. 渲染管线
  20. 工厂模式
  21. 可靠UDP的实现,如何减少UDP丢包
  22. protobuf VS json(protobuf:variant,zigzag)
  23. 定点数的实现
  24. 怎么判断子弹与人物的碰撞
  25. 对象池
  26. 喜欢玩什么游戏
  27. 有考研打算吗?

反问

  1. 什么引擎多:UE,Unity 55开,手游unity多,端游ue或自研引擎
  2. 实习生有培训吗:一般会发一些学习资料
  3. 工作时间:早9晚6,实习一般3个月及以上

做题

(怎么是最后做题)

  1. 最大子数组和
  2. 判断括号字符串是否有效,有三种括号{},[],()()里面有[],{}也是非法的,[]里面有{}也非法。

二面

面试官开摄像头了,感觉很有资历,面试的时候一会我没听清面试官说话,一会面试官没听清我说话,有点尴尬。。。

问题

  1. 做这个项目之前用过unity吗?用过unreal吗?
  2. 你读研吗?
  3. 对地域的要求,老家在哪。
  4. 怎么了解到帧同步的
  5. 状态同步与帧同步的技术差异、优缺点
  6. 有深入了解过2D/3D物理引擎的框架吗?(没有。。。)碰撞怎么检测,直接遍历吗?(四叉树、BVH、KD-Tree)问的很细,BVH的划分原则,等等
  7. 项目中使用BVH了吗?(没有。。。
  8. 为什么光线检测要用BVH?(没答对,面试官告诉我是方便在GPU上并行优化)
  9. Kcp(一个开源的可靠通信库)的好处?
  10. Kcp有什么问题需要优化?(没答好,面试官教我。。。)
  11. 让你自己写可靠UDP怎么做好一点?(答得很平常,面试官没反应)
  12. 看过protobuf源码吗?(没有,看了一些原理性的文章)
  13. 定点数怎么做的?
  14. 用定点数实现了哪些数学函数?
  15. 求三角函数值该怎么做?(泰勒展开)
  16. 你们反外挂怎么做的?(怎么突然变成我问面试官了?)面试官先问我的想法,然后再讲他们项目的做法:服务端跑验证程序,敏感数据随机加密。
  17. 你们断线重连怎么做的?(又是我问面试官)我只想到追帧,面试官说还可以用内存快照。
  18. 给你看看我们的游戏PV,你觉得做这样的游戏需要什么技术栈?(回到面试官问我)
  19. 面试官给我介绍他们项目的寻路解决方案,好像是NavMesh
  20. 除了C#还用过什么?(C++)
  21. C#与C++的异同、优缺点
  22. 了解过C#的中间语言吗?(只知道有这个东西。。。)
  23. C#的字符串是什么类型?
  24. C#两个字符串相同,指向同一个地方吗?
  25. C#装箱、拆箱。
  26. 用Cpp做过什么项目吗?(没有,做题目用得多)
  27. 讲一下移动语义。
  28. 讲一下RTTI(没听说过,面试官提示我四种类型转换),讲一下dynamic_cast原理(不会,瞎猜了一个跟虚函数表有关)。

反问

  1. 招实习生更重基础还是实践。回答:偏基础,不会要求太多实践经验,还要看个人对游戏行业的认识、热爱程度。
  2. 对客户端开发的计算机图形学要求。回答:组内客户端也分图形、非图形,非图形又分局内和局外。
  3. 实习的时候想快速上手应该再学些什么?(问了我想做什么方向,我回答局内)回答:动画、物理引擎了解一下。

做题

又是最后做题,草,面试问问题的时候还没那么紧张,开始做题了腿控制不住的抖,抖了20多分钟。

  1. 牛顿迭代法开方
  2. 判断多边形是否是凸包
#腾讯##面经##游戏客户端开发工程师#
全部评论
好难
2 回复 分享
发布于 2024-04-10 01:46 广东
好深
点赞 回复 分享
发布于 2024-04-06 21:01 广东
佬现在复试是链接状态吗?还是HR了
点赞 回复 分享
发布于 2024-04-02 00:01 上海
同游戏客户端,一面过了,二面直接电话面,就面了15分钟,kpi面,然后挂了
点赞 回复 分享
发布于 2024-04-01 20:04 辽宁
感谢分享
点赞 回复 分享
发布于 2024-03-31 11:09 陕西
局内局外是指什么?
点赞 回复 分享
发布于 2024-03-31 08:26 浙江
楼主是光子吗?
点赞 回复 分享
发布于 2024-03-31 07:05 浙江
问得好深啊,是哪个工作室呀
点赞 回复 分享
发布于 2024-03-30 13:49 广东

相关推荐

06-02 12:37
已编辑
吉林大学 C++
过去的一年一直在为找游戏客户端开发实习做准备,但直到现在也就只接到过一个小公司的offer。思考了一下打算转前端了,目前大三下转战也还有机会。我其实内心也还在纠结,感觉这样做属于是,遇到瓶颈困难就半途而废,东一榔头西一棒,最后一事无成,但又担心万一自己的分析是对的,转战是合理利用自己优势,死磕游戏开发是执迷不悟。下面我会讲述原因,希望有懂行的前辈或是同学锐评一下我的观点,如果能给出建议,真的不胜感激,我现在真的有些迷茫。放弃游戏客户端开发最大的原因:我感觉,我了解到的游戏客户端开发的学习路线不够规范化,缺少学习框架的机会,学起来总感觉只会纸上谈兵,脱离实际生产(面试考察)需要。我觉得学习一项计算机技能大概分三个层次:第一层基础:学习算法,线性代数,OS,计网,数据库这些计算机学科基础,熟练掌握对应领域常用编程语言,常用api;第二层框架:有了第一层可能可以开发一个看起来能运行的一个小项目,但毫无章法,这时候就要学习框架,用行业内更规范化的结构组织你的项目(我正是缺了这一部分,所以这会儿也说不出具体的),第三层专精:向底层更深度的理解,就比如说你可能会用unity的shader,会用c++的openglAPI,但为了达到第三层你最好要会计算机图形学,最好能自己手搓软渲染器,游戏引擎。根据个人面试经历、招聘要求我总结,游戏客户端开发有以下面试考点:1、c++面向对象,操作系统,问你八股要答得上来2、算法,说实话我个人感觉挺难的尤其是雷火精英实习笔试,面试时也经常会有那种看起来简单,但是加上时间复杂度限制就变成hard难度的题。3、计算机图形学、渲染管线、lua热更新网络编程、游戏引擎实操、这一部分正式我迷茫的地方所以可以看见我只是列出了关键词。前两点不是问题都算是第一层基础,无非就是多刷题多背,学习路线知识体系也很明了,你也大概知道面试官会问些什么。如果是因为前两点失利我是不会萌生换赛道的想法的,重点就在第三点。考点3混合了第二三两层,框架与进阶,游戏开发确实很卷,面试经常会遇到问第三层的知识,但其问第三层也无所谓了,我觉得第三层知识的考查就只是为了筛人,而且也不是所有公司都一定要求会第三层,所以卷也不是我想转战最主要的原因。最主要的问题是游戏开发在应试时缺乏一个公认的框架,我不知道要学什么,面试时面试官问的问题也是涉及广泛,有的时候我也分不清一些知识到底属于第三层还是第二层,我可以去学计算机图形学,了解管线渲染过程,学习lua热更新网络编程,学习OpenGL、学习unity等等,但这些都各自独立我不知道怎么把他们组织起来,不知道我要做一个什么东西,说出一些什么理论,在面试官看来是有意义的。所以又卷又学习框架不清晰,我的技术实力也不高,本身就是把计算机学习当作是学一门高级一点手艺,混口饭吃,当初选择游戏开发,是觉得反正以后都是软件开发,游戏开发,开发出来的产品是自己感兴趣的,可能会更有动力一些,而且游戏开发好像以后的技术壁垒会更高一些(现在看来也确实如此),就选择了游戏开发,我当时以为的难是知识难,现在才发现难点是你不知道要学什么。而我所了解到的前端就没有这个问题,虽然我还没开始具体的学习,但就根据我搜索到的面经,B站上学习路线指导视频,你可以看到面试官还有这些指导视频所关注的点是一致的,而且框架层的知识体系是明了的。当然前端开发也有他的问题比如竞争人数更多(但岗位至少比游戏开发多),技术壁垒低,目前职业发展有被淘汰的风险,很多人都在考虑转后端或是全栈。大概就是这样吧,游戏开发我真不知道我要做什么,不只这里我会四处去请教,再思考两三天,是要做个决断了。
牛客414065333号:好像游戏客户端知识又多又难,我感觉使劲刷算法和基础八股就行了,那些高级的像什么引擎底层应该也不指望应届生会吧
投递哔哩哔哩等公司8个岗位
点赞 评论 收藏
分享
评论
12
143
分享

创作者周榜

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