游戏客户端面经 剑心互娱(一面、二面、三面)

目录/时间线

  • (返回汇总帖)
  • 09151600 一面
  • 09191400 二面
  • 09271630 三面
  • 0930 邀约线下四面时主动终止流程

09151600 一面

总共30min。

自我介绍。

常规面试题

  • 为什么要应聘游戏开发
  • 玩的比较久的是哪一款游戏
  • 最喜欢哪一款游戏
  • 入行游戏开发需要哪些能力或品质
  • 实习之后是怎么安排的,有留用吗

C++

  • 讲一下虚函数
    • 虚函数底层实现
  • 在构造函数中调用虚函数会怎样
  • static修饰全局函数有什么作用
  • 遍历数组和遍历列表哪种更快
    • 根据局部性原理,可以实现怎样的优化,举例说明
  • 宏和内联有什么区别
  • STL里面的mapunordered_map有什么区别
  • 哈希表有什么问题吗
    • 除了无序,还有什么问题
    • 除了空间占用高,还有什么问题(假设是手写的,而非STL版本)
    • (还有负载过高时性能下降的问题)

图形学

  • 讲一下整个渲染管线
  • alpha测试、模板测试、深度测试的顺序
  • 讲一下蒙皮的原理
  • 了解PC和移动端的GPU架构上的区别吗

反问

  • 项目组分配了吗:先统招招进来实习三个月,然后看情况决定项目组的分配
  • 用哪个引擎:Unity、UE都有,看个人偏好决定哪种项目
  • 基于UE的项目的客户端技术栈:C++、Lua
  • Code Review:似乎只有入职后的前期有mentor来review,后面上道后就没啥review了

09191400 二面

总共59min。

自我介绍。

C++

  • 看代码找错和判断输出(想要动态绑定但漏了virtual)
    • 派生类的函数需要加virtual吗
    • 派生类的函数需要加override吗
  • 为实现重写,编译器做了什么工作
    • 编译器怎么通过虚表查到要调用的函数的
  • 看代码判断相关变量的内存使用情况
    • 静态局部变量什么时候初始化
    • 静态局部变量什么时候分配内存
    • 是否存在内存泄漏
    • 有没有办法在程序退出之前将函数体内申请的内存释放掉
      • 除了利用函数外的内存管理器,还有别的方法吗
    • 怎样释放堆上的数组
      • delete []是怎么知道要释放的内存的大小的
    • 判断含虚函数和不含虚函数的空类的sizeof
  • 看代码找错(该传引用但传了值、内存泄漏、多次释放)
    • 对同一指针多次delete必会崩溃吗
    • 更正代码,要求给出多种修改方式

算法编程题

  • 有打过算法竞赛对吧
    • 为什么后来没继续打了
  • 最小生成树

游戏

  • 玩过哪些游戏
  • 最喜欢哪一款
    • 觉得逆转裁判有哪些技术难点
  • 最近有在学习游戏开发的技术吗
    • 为什么决定要学UE

实习

  • 具体实习的内容是怎样的
  • 觉得实习过程中学到的最大的技能和经验是什么
  • 开发过程中和后端同事是怎样协作的
  • 实习过后有转正吗
  • 这次秋招投了哪些公司,进度最快的是哪个

没有反问环节。

09271630 三面

总共65min。

自我介绍。

C++

  • 看代码找错
    • (无符号整数导致for死循环)
    • (该传引用但传了值)
    • (传出指向局部变量的指针)
    • (访问权限)
    • 除了这些,该函数在效率上有没有问题
  • vector扩容时会使用memcpy还是逐元素拷贝
  • 函数返回vector对象时会产生拷贝吗

编程题

  • (模拟题)给定仅含取值0~9结点的二叉树,要构造出一个镜像二叉树,并保持结点集合(数量和各结点取值)不变。
  • (堆、贪心)LC253原题转述版。

场景应用题

  • 在二维平面上,划定10000x10000大小的方形区域,再给一大堆的点,要求能够快速查询任意10x10大小的区块内包含的所有的点
    • 怎么划分栅格,划分粒度是怎么决定的

游戏

  • 简历附件上的游戏经历是从什么时候开始算的
    • 现在平常会花多少时间玩游戏
    • 平时只玩单机吗
  • 对于项目游戏类型有什么要求和偏好吗
  • 剑网三主要玩哪个方向
  • 最近在玩啥
  • 什么时候开始有做游戏开发的打算的

其他

  • 觉得自己图形学学得怎么样
    • 图元裁切发生在坐标变换前还是之后
      • 为什么不能在变换前做呢
  • 觉得实习期间的工作内容符合自己的预期吗

反问

  • 和西山居在技术团队上有关联吗:基本上彼此独立,没什么技术交流,只有内部平台上公共资源是共享的(如公开课)
  • 对于正式员工有什么样的培训:会有mentor带着在参与项目的过程中学习(看来minigame和入职培训可能比较欠缺,因为回答中没提及)
  • 假如获得了Offer,可以提前来参观公司吗:下一轮综合面试就是线下的
#2023秋招##游戏客户端开发工程师##面经##剑心互娱#
全部评论
佬,你参加的所有面试,面试官的所有问题大概能回答对百分之多少啊😭
点赞
送花
回复
分享
发布于 2023-11-23 15:30 山东
大佬图元裁切发生在坐标变换前还是之后是什么意思啊
点赞
送花
回复
分享
发布于 2023-11-23 23:19 江西
滴滴
校招火热招聘中
官网直投

相关推荐

OC了,感谢牛友们的面经帮助,散点面经回馈一下3.25投递,3.29下午打电话约了一面一面55min(4.1)计算机基础部分1. 什么是栈内存,什么是堆内存,有什么区别?2. 刚你提到了栈的内存比较小,那你说明一下什么是栈溢出3. 为什么堆的分配比较慢?这个问题有没有什么解决方案?4. 游戏引擎有没有什么对内存的管理操作?5. 堆空间只申请不释放会造成什么?(内存泄漏)如何避免(从编程语言的层面上解释)?(Java/C# 内存管理GC, C++智能指针)6. 你知道哪些智能指针?(unique_ptr, shared_ptr)?还有一个你知道吗?(没说出来,面试官提醒能解决循环引用的weak_ptr)7. 栈的访问效率比堆高,你能解释一下吗?8. 垃圾回收内存管理GC机制,能不能深入说一下底层如何实现?9. 说一下什么是虚拟内存?存在的意义是什么?数据结构部分10. 描述一下数组和链表的区别?各自的优缺点11. 说明一下什么是二叉树手撕部分12. 递归前序遍历二叉树写一个函数,输入是二叉树的根结点,返回它结点的前序遍历13. 用BFS遍历树追问:DFS和BFS这两种遍历策略,一般用来解决什么问题?有没有什么优化方案策略?开放问题15. 树这种数据结构在你项目开发中有什么应用?C++中有没有什么容器是用树实现的?16. 说明什么是面向对象,有什么特点?17. C++中可以实现多态,请你从虚函数表的方面描述一下重载一个虚函数的过程?(往虚函数表,虚函数指针上扯)。虚函数指针占多大空间?(就是普通指针,32位机器4,64位机器8)拷打简历18. 开发MOBA项目中遇到的最大难点是什么?19. FPS项目中,NPC巡逻的逻辑?你这种检测方法会把NPC背后的敌人也检测进来,有没有什么改进方法?20. 简单说一下你了解的unity物理引擎?其他问题21. 你平常玩哪些游戏多一些?STEAM上的单机游戏玩过吗?你CF玩得多,你觉得CF哪些功能做的不错?22. 除了游戏开发,你还有哪些其他方面技术上的兴趣?23. 你打过不少算法比赛,你觉得你的算法水平在你们校队能排到top多少?反问面试官人很温柔,聊起来也挺舒服的,面完二十分钟后官网就显示通过了
点赞 评论 收藏
转发
头像
04-22 13:05
已编辑
门头沟学院 畜牧学
🕒 岗位/笔试时间游戏客户端开发/ 50min🤔 面试感受一般,压力拉满👥 面试题目三面基本上是目前为止压力最大的一场面试(压力面实锤)。对方可能确实毕比较厉害,因此对我做的所有项目以及实习经历都十分看不上 _(:з」∠)_,基本上一直在被diss。问的比较多的是ue相关和C++。1. ue- ue的反射是怎么做的(答: 宏,代码生成,UHT一系列的东西等等),什么场景下会用到反射(答: detail panel,网络传输,gc)。顺便提一下,对方对ue中gc也需要反射信息这件事情表示怀疑,这个见仁见智吧。(ReferenceTokenStream: ?- ue网络架构是啥样的,tcp还是udp,对udp做了哪些改进(rudp那些)。- gas,动画系统相关问了一些,但不是太深入。2. C++因为博主在简历上放了C++项目的GitHub链接,所以对方直接对着我repo里的代码让我解释具体的逻辑,压力拉满(。C++问的最多的主要还是基本的面经和stl。- 智能指针有几种,什么情况下使用。weakptr原理。- 左值/右值的概念,std::move的作用,和std::forward的区别。- std::vector 是什么原理,有什么特点,使用的时候有哪些需要注意的地方。- 其他的想起来了再加上(3. 手撕让我用C++写一个二分,因为到这里已经压力拉满了,所以边界一直没有写对,改了两次才正常运行,QAQ(确实太菜了,手撕苦手)。对方狠狠批判了我的码风,并表示你传参是一个引用,那为什么不加const(答: 忘记了,确实应该加const),对方追问: 加不加const有什么区别(答: 加const能保证函数内部不会修改传入的数组),对方继续追问: 那加了const 是不是传入的数组也得是 const vector 才行(答: 不用,const只是限定函数内部不会修改,参数会自动进行类型转换(其实完全不知道对不对,当时想到的就是这个))。最后写代码确实压力拉满,因为C++细节太多了,对方能针对很多细节展开了进行提问,还是得基础扎实啊   (*꒦ິ⌓꒦ີ)
点赞 评论 收藏
转发
6 31 评论
分享
牛客网
牛客企业服务