游戏客户端秋招面经总结
前提回顾
秋招结束后忙着毕设以及去玩了一段时间,想着给这段牛客之旅画个句号。
BG:中游985+两段大厂实习,大二暑假+大三暑假两段,其实可以刷多1-2段,但是感觉2段应该是够用了。
技术项目为UE项目+后端项目(Unity太久没用就没写了)
今年的游戏客户端秋招难度不小,莉莉丝和鹰角的提前批都没过筛,呃呃呃
然后投了米哈游、网易、快手、字节、游卡等,总体投的不多,没有海投,而且基本只投游戏,最后选择在鹅转正了。
timeline在上一篇有
面经
字节
一面
C++:
- 类的存储
- 虚函数表的存储位置和调用
- enum class 的好处/和enum相比较
- 操作系统进程和线程的区别
- 线程的通信方式
- 了解容器嘛
- vector怎么实现的一定都要开辟再拷贝嘛?
- 能不能在原来基础上开辟呢?(好问题)
- map和unordered_map区别 简单说一下红黑树为什么不用AVL树用红黑树
- 介绍下A*算法
- A*算法的缺点,为什么游戏中不使用
- 线程之间的通信方式
- 哈希表中的value存储什么(链地址模式)
UE:
- 反射机制怎么实现的
- 组件有哪些类型
- FName、FTEXT、FString怎么实现的?
- UE的网络架构(不会)
- 屏幕点击了,怎么知道是哪个控件呢?
很多UE的八股吧、、还不够熟悉,这是个很大的问题
代码:
- 平面上N个点求斜率最大的点
二面
- 解释一下inline函数,inline函数可以是虚函数吗
- 析构函数可以是虚函数吗?
- 口述单例模式的实现提到了互斥锁,那C++还有什么锁
- 内存泄漏有什么解决方式智能指针RAII
- 了解C++的智能指针吗?详细说一下unique<ptr>可以作为返回值吗详细说一下shared_ptr是怎么实现的引用计数是线程安全的吗?为什么
- 平常玩啥游戏
- 解释这个游戏的网络协议
- 说一下TCP协议和UDP协议的区别
- 帧同步和状态同步
- UE了解多少?做过什么项目
- 开始问项目了
- 有看过UE源代码或者什么资料嘛
- 大钊老师的Gameplay架构UObject后面就问了源代码
- UObject如果不要垃圾回收怎么实现
- 渲染管线了解吗?Opengl的渲染管线(没看过opengl)
- 解释了RTR4中的渲染管线顶点着色器和像素着色器联系,
- 我提到了MSAA,问了MSAA
- 解释了MSAA还有什么抗锯齿技术
- SSAA、TAA
- 深度缓冲,解释一下透明物体需要记录Z值嘛
代码:
- 队列实现栈
三面
- 问了实习内容
- 单例模式new一个新对象怎么办?这个是怎么处理的构造函数的部分
- A*算法和Dijstra区别
- 游戏中Navigation部分
- 设计一个背包系统(写代码)考虑各种情况,空位置-加物品超上限
这一面比较偏应用,要求速写代码+设计系统
祖龙
一面
八股文:
- C++多态
- 函数重载
- 为什么不能返回值不同
- volatile关键字
- extern C
代码题:
- 最小覆盖子串(时间复杂度和空间复杂度O(N))复杂度太高
- 树的序列化和反序列化(时间复杂度和空间复杂度O(N))忘记了char*的用法了,写不出来
- 实习中遇到最困难的事情
祖龙偏代码,代码部分都是hard上再加点修改,要求最优解
也可能因为我免笔试了、、考验我
游卡
一面
- 介绍一下项目
- 项目中实现了什么功能,战斗系统框架是怎么设计的?
- 动画有几个?有没有做动画的过渡这些
- 介绍一下渲染管线
- 有没有用过Unity的插件
- 有没有了解算法,A*和Dijstra区别
- 实习和自己做demo的感觉
- 未来职业规划
二面
- C++模板
- C++动态内存分配有什么方式
- 职业规划
- ...还有一些忘记了,问的不多
手撕:
- 图片求内存
- 数字逻辑题
- 扑克牌问题
快手
一面
代码(15min):
- 最大频率栈
八股文
- const含义,有什么作用
- 动态多态含义
- vfptr指针存储位置
- 多继承的含虚函数的对象布局
- map、set底层实现解释一下红黑树
- 为什么红黑树插入删除效率高
- 为什么红黑树插入删除后迭代器没有失效
- STL各种容器分析
- 动态规划实际应用
- 进程、线程问题
- 设计模式问题
- OS的计算题,手写
二面
- 实习内容
- 然后随机选题和扩展
代码:
- 最长无重复子串
- 归并排序
这一面比较随机,面试官会扩展,参考性不强
甚至还有多道智力题(可能因为我简历写有数学奖项)
总结
今年投的没有很多,而且是边实习边面的,那段时间需求有点多,这也导致了我复习时间不够,所以还是有点难受的。
如果可以的话还是建议大家忙完答辩之后全力准备这样,然后没有复习思路的多面几家就好了,你就知道大概会问些什么。
总体来看八股还是集中在C++和游戏开发技术上面,算法介于mid-hard之间。
可能后面不咋呆在牛客了,最后感谢牛客上大家的帮助,也希望这篇总结能帮助到大家。
祝愿牛友们都能拿到满意的offer