网易互娱面经 游戏研发工程师
游戏研发一面 8.11(一个半小时)
半小时代码考核(此时是hr)
题目:寻找二叉树中最大的二叉搜索树
需要自己处理输入(类似root = [4, 2, 7, 2, 3, 5, null, 2, null , null, null, null, 1])所以最后我输入都还没处理完,树也要自己建
面试官出现说题目有点问题,没有指定输入,然后让我说了下大致解题思路,这题可以在网上找到,我也不知道说对没有
C++相关
- 右值和右值引用相关
A a1; A a2 = std::move(a1);
问&a1 == &a2
是否为true
- static作用
- static是如何限定作用域在文件范围内的?(?)
- 我提到可能是在编译过程?然后面试官问那一个代码到执行会经过几个阶段
项目相关
- 我没说服务器,我还是说的软挑
- 让手写了一下其中用到的评价函数,然后看了下我贴在gitee上的代码
- 代码中用到的C++特性有哪些
网络编程相关
- socket建立tcp的过程
- udp建立的时候有什么不同
- udp和tcp发包大小限制(?)
- 问了下写rtsp服务器过程中发包大小限制(?)
- 走路和打枪都会发tcp包,一共会发多少次(?)
- 我提到可能和包大小有关,说了粘包拆包
- nagle算法中包是怎么发送的
图形学学过吗(没有)
单链表归并排序,我不会,我写的自顶向下,面试官说下去可以看看怎么自底向上,省去中间随机访问的步骤
反问:
没写过游戏开发可以应聘吗
可以,我们招聘的连没打过游戏的都有,游戏开发是加分项
面试表现,我有什么需要改进的地方
C++可以再深入地去学习,面试官认为C++是永远学不完的,可以一直学得越精也好
岗位分工和任务
主要分服务端和客户端,服务端分工没有很大差别(全球服务还是什么没听太清楚),客户端分为游戏玩法、逻辑、图形学等等。
5-7个工作日hr会通知面试结果
游戏研发二面 8.20 (55分钟)
- 自我介绍
- 服务器项目介绍
- Reactor和Proactor的区别
- Select/Poll/Epoll的区别
- 自由链表和内存池
- 如果内存块不够了会怎样分配
- 再向系统申请也会带来开销怎么处理
- 怎么解决内存泄露问题
- 最近有在玩什么游戏
- 如果要你设计LOL的通信,是用什么协议(说的UDP)
- 如果是UDP怎么完成可靠传输,用什么数据结构和算法(没答上来)
- 实验室项目介绍
- 数据集有多少
- 遇到的什么困难怎么解决
- 进入实际应用了吗
- 我看你学过数字图像处理,学过图形学吗,数字图像处理的知识(我直接回避)
- 相交链表怎么找到相交节点(双指针)
- 智能指针、怎么解决循环引用
- 最近有在看什么书
- 讲了《Linux内核设计与实现》和《STL源码剖析》
- 讲了进程、线程调度和STL中的hashtable
- 用户态和内核态有了解吗、系统调用有哪些(照着自己理解说的)
- 反问:
- 部门间不同岗位的合作:完成一个TASK,策划到程序、美术到测试、QA
- 游戏研发岗所需要的知识(他说看我了解得比较少)
- 客户端:引擎、图形学
- 服务端:数据库、网络编程
- 分配这些岗位要经过offer到入职这段期间的培训(大多是自学,会有导师带)
- 面试结果:3-5个工作日