游戏客户端面经 网易雷火(一面、二面、HR面、OC)
目录/时间线
- (返回汇总帖)
- 10171400 一面
- 交叉面A
- 交叉面B
- 10301000 二面
- 11031430 HR面
- 11071610 OC & 正式Offer
10171400 一面
交叉面A
总共51min。
自我介绍。
项目
- 有可以展示的内容吗(不能展示,因为涉密
- 描述下项目做的是什么
- 用什么引擎开发的
- 前端渲染是怎么做的
- 为什么选择用Qt而非其他
- 当时多少人一起开发的,分工是怎样的
- 开发项目过程中遇到过什么问题吗
- 现在回过头来考虑项目,会觉得采用其他的框架和库更好吗
- 既然用到了ECS,那说下对ECS的理解
- 有发现ECS的哪些不足吗
- 对MVC、MVVM了解吗
- MVVM和ECS各自适应什么样的场景
- 项目运行时的数据规模是怎样的
实习
- 实习之后有拿到转正Offer吗
- 实习过程中主要做什么
- 实习所开发的功能都是从头开始写的吗
- 是怎么处理界面层级关系的
- 对Unity的使用经验怎么样(很少
- 对Lua的使用经验怎么样(比较扎实
Lua
- Lua中的闭包是指什么
- 闭包的数据储存是怎样的
- Lua中的值类型、引用类型有哪些
- 看代码区分值拷贝和引用拷贝
table
属于哪种userdata
属于哪种string
属于哪种
- 怎么做
table
的深拷贝 - Lua中的元表是怎样的
- 元表中的
__index
和__newindex
有什么差别 - 如何用元表实现类似于C++中的继承
- 怎么做成员函数的重写、重载呢
- 假如在派生类重写的函数中要调用基类的版本,该怎么做
- Lua热更新的原理是怎样的
- 假设Lua中某个类已经实例化出了一堆对象,怎样用热更新影响所有这些对象
基础
- 图形学有学过吗(GAMES101的水平
- (以下都是选择/填空题的形式)
- 一道简单的古典概率数学题
- 给定表面法向和入射光方向,求反射向量
- 判断sizeof的结果
- 大小端字节序分析题
- 从树的前序中序遍历推出后序遍历
- 一道计算机基础多选题
反问
- 目前是统招、还没分项目组:的确
- 客户端的技术栈
- 研发流程中会有Code Review吗:每个人的提交都会经过他的Review,且新人、老人代码的Review侧重会不同
反反问
- 目前有投哪些公司,进展如何
- 对腾讯和雷火是怎么考虑的
交叉面B
总共55min。
自我介绍。
实习
- 主要干了什么
- 觉得哪些任务是比较有挑战性的
Lua
- 讲一下Lua反射热更的细节
- 结合具体实例追问热更新细节
- 如何判断传入的
table
是不是数组 - 对Lua的元表有了解吗,它是怎样工作的
- 关于
__index
的用法
- 关于
- 对项目中采用的ToLua有了解吗
- 假如在Unity中有一个对象,传到Lua中会得到什么
- 在Lua中如何访问C#对象的成员
- 在C#侧ToLua框架可以怎样访问到对象的特定字段的呢
C++
- 写一个单例
- 移动构造函数和拷贝构造函数有怎样的区别
- 左值和右值有怎样的区别
- 左值能转换为右值吗
- 对于一个含有指针成员的类,写出它的拷贝构造函数
- 写出它的移动构造函数
- 对于刚写出来的这个类的完整代码,存在内存泄漏吗
- 再写一个移动赋值运算符
- 知道
malloc
和new
的区别吗- 它们申请的内存怎么释放
- 了解
malloc
的底层实现吗 - 知道
malloc
是调用哪个系统调用申请内存的吗
图形学
- 那个课程学完了吗,总共有多少节课
- 给定表面法向和入射光方向,求反射向量
- 如何判断点是否在三角形内
- 如何判断射线与AABB是否相交
- 如何判断射线与轴对齐长方形的相交
- 用代码实现出来
反问
- 是否存在对正式员工的培训:常规回答
- 不同项目组之间怎样做技术交流的:内部分享平台、讲座
- Code Review:有的
10301000 二面
总共54min。
自我介绍。
实习
- 转正了吗
- 做了什么
- 遇到了什么问题
- 了解Lua热更新吗
- 一般在写热更新时需要注意哪些
- 项目有多少人在做
项目
- 为什么备注里说它约等于引擎+游戏
- 完成了哪些模块
- 是怎么做前端渲染的
- 讲讲ECS是什么
- ECS相比面向对象的主要优势
- 知道哪些序列化方案
- 其中可能涉及到的大小端问题是什么
- protobuf怎么做数据压缩的
- 讲一下varint
C++
- 在什么情况下会用到
delete this
- 虚函数存在哪里
- 在
nullptr
上调用成员函数,判断输出- 如果是调用虚函数呢
- 进程的内存空间分为哪些区
- 堆和栈的内存地址增长是朝什么方向的
- 为什么一个从低往高,一个从高往低
malloc
内部是怎样实现的- 链表是显式还是隐式
- 讲一下页面置换具体是怎么做的
- 有哪些算法
- 对多线程了解吗
- 用过哪些锁
- 什么情况下用自旋锁,什么情况下用mutex
- mutex有什么缺点
- 如果用普通的
int
实现引用计数,这线程安全吗
图形学
- 对游戏渲染了解吗
- 光栅化有哪些算法
- 也就是问,怎么做三角形的光栅化
- 怎么做线段的光栅化
- 了解深度测试吗
- 对引擎内特效表现制作了解吗
常规面试题
- 有其他Offer吗
反问
- 还没决定分配到哪个项目组吗:发Offer时才会给出
- 更有可能被分配到什么样的项目:新项目、老项目都有可能
- 校招生加入一个上线很久的项目中后,能够做什么:比如技术迭代和升级,其实从技术角度来看新项目和老项目都差不多
11031430 HR面
(录音失败)
#2023秋招##游戏客户端开发工程师##面经##网易雷火#