腾讯光子游戏客户端 面经

bg: 两段实习, 暑期是在天美一个Unity项目做的性能优化工具相关的内容, 做了Shader变体优化, 加载相关内容, 改了一些引擎源码

前四次面试内容挺重复的, 第五面是制作人面, 制作人也是技术出身, 问的问题挺有意思的; 我挑一些典型的, 问了很多次的出来

常规内容, 游戏引擎

  1. 实习做的内容
  2. demo转为联网如何去做
  3. 骨骼动画的原理
  4. 蒙皮的原理
  5. 动画重定向
  6. mesh存的哪些东西
  7. 渲染一个物体的过程
  8. 模板测试和alpha测试
  9. VS和FS是干嘛的
  10. 不透明物体和透明物体渲染顺序
  11. 阴影怎么实现
  12. 贴图大小计算
  13. 世界坐标到屏幕坐标
  14. MipMap
  15. 过大贴图放到小分辨率上面会发生什么
  16. Drawcall是什么, 合批, 图集
  17. 静态合批和动态合批
  18. mesh合批规则
  19. 判断点在平面内

--------------------

  1. Unity粒子系统流程
  2. 如何找一个资源占用的内存
  3. UE Gameplay概念 (看InsideUE系列即可)
  4. ECS概念
  5. UE GAS (自己项目用Unity里面做了个仿照GAS的, 参考了GitHub的一个开源项目)
  6. 技能释放流程, 如何配置Ability, Effect
  7. buff过滤, 阻挡怎么做
  8. 实习项目是沿用王者的东西, 所以问了技能框架怎么做的, 帧同步怎么做的
  9. UI框架, UI操作流程
  10. Unity Shader Trunk知道吗 (还真不知道, 项目里面用的是2022的一个新feature)
  11. Shader变体优化思路
  12. Shader加载流程
  13. Memory profiler相关, 引擎侧如何计算内存
  14. UE PSO概念
  15. Unity生命周期, 物理, 渲染在何时执行
  16. 行为树节点
  17. 寻路算法, A*
  18. NavMesh怎么做的

网络

  1. TCP三次握手
  2. 网络同步, 帧同步 状态同步
  3. 如何解决回滚拉扯
  4. DS了解过吗, UE几种C/S模式的不同
  5. 如何在Unity中实现一套代码的DS
  6. RPC调用过程
  7. 复制发生了什么, 哪些需要复制

C++/C#/OS

  1. 虚函数, 虚表, 虚表放在哪里, 可以修改虚表吗
  2. 虚函数inline
  3. 构造函数有哪些
  4. move, 移动构造, 左值右值
  5. 完美转发, 萃取, 特化, 偏特化
  6. 构造, 析构原理
  7. 智能指针
  8. 迭代器失效, const引用
  9. 装箱与拆箱
  10. c++有哪些常用锁, 线程安全怎么做
  11. 什么是原子操作, 原理是什么
  12. C#反射怎么做的
  13. 协程与线程的区别
  14. foreach原理
  15. 大端小端

然后是一些有意思的问题, 这些都只能答个大概, 答得不算好

  1. 究极手和物理系统如何配合
  2. 攀爬碰撞体性能问题
  3. World Streaming

还有些个人问题, 典中典环节

  1. 为什么不读研
  2. 为什么不转正
  3. 为什么一直用Unity (沟槽的Unity, 确实得学UE)
  4. 能提前实习吗

#牛客创作赏金赛##腾讯##游戏客户端开发#
全部评论
佬,oc了吗
1 回复 分享
发布于 2024-09-20 22:09 江苏
tql,这么多知识面
1 回复 分享
发布于 2024-09-16 22:50 山东
佬经验好多啊
1 回复 分享
发布于 2024-09-14 10:42 湖北
tql佬,想问下是tiki的在研partygame组吗,看面经感觉你面的是我暑期在的项目组
点赞 回复 分享
发布于 2024-10-03 19:39 江苏
佬这也太强了吧
点赞 回复 分享
发布于 2024-10-02 18:14 瑞士
哥复刻了个gas?这是实习生的水平吗
点赞 回复 分享
发布于 2024-09-30 08:49 广东
感觉问的好难啊,明天就要面天美实习了
点赞 回复 分享
发布于 2024-09-25 00:28 湖南

相关推荐

一面1h33min(没录音只记得50%的问题)上来三道手撕1e1m1h(45min)商业引擎用过吗?(没有)为什么选择引擎方向?c++学习路线c++八股子类构造函数中能否调用虚函数、vector插入过程、从底层上看vector为什么比deque更快、const和static存储空间、new了用free有什么问题等操作系统八股线程切换、线程通信、进程调度等图形学 阴影、early-z、手机端early-z、边界出现问题时的调试方法等其他:内存对齐、设计模式反问:第二次面试,对我有什么建议            哪个组/////////////////////////////////////////////////二面46min闲聊为什么想做渲染?本科的时候为什么没有做?项目做了多久?图形学学习路线图形学(主要问项目里的内容)法线贴图切线空间的计算、和法线的关系讲讲BVH对于动态物体怎么调整BVHPBRPBR和传统模型的区别行业为什么向物理方向演进(标准化)TAA闲聊想从实习里得到什么经验?想要实习和图形学的关联度有多大?会看siggraph等论文吗?会担心图形工作被AI取代吗平时会使用AI辅助学习吗?介绍组里的工作游戏经历反问有什么需要改进的(动手能力和基础不错,但是对于为什么要这样做问的太少)还有技术面吗/////////////////////////////////////////////////hr面18min问一些性格、对于加班的看法、对游戏行业的看法等,很常规。藤子是我第二次面试,上来给我三道手撕吓得我音都忘了录了,最搞笑的是mid和hard虽然撕出来了但是那个easy反而边界值调了十来分钟调的面试官都笑了。不得不说藤子面试官水平确实高,项目细节方面能跟你聊,大方向上对引擎和图形学的前景也能跟你聊,而且你回答完都会有反馈,应该是我面过的体验数一数二的了。hr面后第二天发云证进录用评估(希望别把我排序挂了😵)更新:已发offer
点赞 评论 收藏
分享
找实习期间看了不少大佬们分享的面经,收获不少,牛客上好像没什么银之心的面经,所以简单分享下自己的经验。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的关系等,有三分之一的时间是面试官在给我讲解反问环节问的问题,醍醐灌顶,可惜忘记录音了...-------------------------------------------------------------------------------------------------
查看25道真题和解析
点赞 评论 收藏
分享
评论
26
176
分享

创作者周榜

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