网易雷火 游戏研发工程师 面经
timeline:
- 07-15 投递
- 08-09 笔试
- 08-19 一面
- 08-20 二面
- 09-19 三面
- 09-22 测评
- 09-25 hr面
- 10-23 oc
一面
40m
- 自我介绍
- 1-9 的数字,随机抽取三个不重复的数,和是奇数的组合有多少种
- 移动构造可以是 T(const T&&); 吗
- 左值可以绑定到右值引用吗
- 右值引用可以绑定到 const 左值引用吗
- 一个绳子分成三部分,求组成三角形的概率
- 给一个中缀表达式,求后缀表达式
- 点到直线的距离公式
- 源文件到可执行文件的过程
- C++ 多态
- 堆和栈的区别
- map 和 unordered_map 的区别
- 冒泡排序是稳定的吗,时间复杂度多少
- 归并排序是稳定的吗,时间复杂度多少
- 死锁是什么,有哪些必要条件
- TCP 和 UDP 的区别
- 手撕:逆序对数量
- 实习拷打
- 反问
二面
40m
- 自我介绍
- 实习有转正吗
- union + 大小端
- 堆排序的建堆过程
- 入射光线 L,镜面法线 N,求反射光线 R,L 和 N 已经归一化
- 渲染管线、MVP 矩阵、齐次坐标
- 排序算法的稳定性是什么意思
- 说几个稳定的排序算法
- Lua 元表是什么
- __index 和 __newindex 有什么用
- Lua GC 实现原理
- 怎么理解 Lua 字节码是基于寄存器的
- Lua 虚拟机是基于寄存器的虚拟机
- 这里的寄存器实际上是 lua_State 中预分配的数组,并非物理寄存器
- 实习拷打
- 为什么投游戏客户端
- 有做过游戏插件吗
- 反问
- 技术栈:Unity 和 UE 都有,端游那边有一些自研引擎
- 图形学:可以提高职业上限,对校招来说是加分项
三面
40m,双机位
- 自我介绍
- 实习拷打
- 项目拷打
- 分析代码
class base{
public:
int a = 1;
virtual void print(int n = 3) {cout << a+n;}
};
class derive : public base{
public:
int b = 2;
virtual void print(int m = 5) {cout << b+m;}
};
int main(){
base* b = new derive[10];
b[7].print();
}
- 平时玩什么游戏
- 职业规划
- 了解哪些游戏开发技术
- 反问