2017网易游戏暑期实习面经

到了找实习的时期,听说网易游戏福利不错所以就投了个简历,最后一路下来也是顺利拿到了实习Offer, 这里分享一下经历。

岗位是游戏研发岗。

投递简历

一般来说到那时候随便上网搜搜就有,我是因为比较喜欢玩游戏,所以就顺手投了个网易游戏。网易游戏分网易互娱与雷火&盘古。互娱做手游,雷火&盘古做端游。

简历中英文都备一份,把大一到现在好看的东西往上填就行了…具体的简历写法网上一大堆我也是随便找了个模板改了改就上传了。

笔试

网易游戏的面试题是在牛客网上在线做的,可以用本地IDE, 只能使用Java or C++, 其他语言不能用。一共3道题,2个半小时,第一第二题都不是很难,第三题我当时没做。 这里提醒一下,Java不知道牛客网那平台怎么实现的,匿名类用不了,我当时第一题是个非常简单的文本处理,用的Java, 1.7的JDE不能用lambda表达式,而且不支持匿名类, 用匿名类会报编译错误,所以请采用保守的方式编程,C++的话感觉要好很多, 我最后第一题就是因为这烂平台死活过不了。不过过了一道第二题就有面试机会了,也是挺意外的。

面试前

收到面试通知后会发个链接,确认网上面试时间。我个人没怎么准备,之前面过其他的已经准备过面经之类的了,所以基本上就是裸上的。

面试

网易游戏只有一面,面完就有结果,这一点我还是面完才知道的… 面试的时候牛客网的平台我听不到面试官的声音,最后采用电话面试,但是打字面试官还是可以看到的, 也方便发一些链接什么的,所以和网面差不多了。

自我介绍

面试官先让自我介绍,以及传一份更新的简历等等。我由于研究生是系统方向,面试官好像不是很感兴趣,一直很关注我本科的项目经历。

项目经历

听完自我介绍后面试官就开始问我各种简历上的项目经历,首先是研究生期间做的虚拟化部分,我做了简单介绍。之后是大四的软件测试和嵌入式开发,大三的LeapMotion和Android App开发, 之前接触过的Kinect开发等等。了解完后就开始问我熟悉的编程语言(我说的Java & Pure C)。

了解到LeapMotion是做的有关一个游戏的内容后就开始问我详细内容,由于里面用到了交互设备和图形学的简单知识,问我了不了解OpenGL。(我说的不了解,但是说了一些概念)。 之后聊到 游戏开发引擎,我只说了我听说过Unity和Unreal.. 然后说的是我不了解,专业是系统方向。

游戏经历

这个我其实挺意外的,面试官问了我好久的游戏经历,基本上先是从国内著名手游开始介绍,面试官问我端游,开始介绍网易代理的暴雪游戏、腾讯、盛大、空中网、久游代理过的游戏等等, 中间面试官问过我是不是只玩日系,我赶紧补充的韩国冒险岛、DNF、跑跑卡丁车,俄罗斯的战舰世界等等.. 还补充过页游弹弹堂。然后大吹自己游戏经历(小学三年级开始玩泡泡堂,一直吹到现在).. 面试官又问我是不是只玩网络游戏,又赶紧吹主机游戏Gravity, 仙境传说奥赛德(这两个是PSV上的游戏,当时舍友买的我玩过), 刚好当时Nier Automation刚出赶紧也是介绍一番。基本上都是说到 xx国xx开发商xx代理商xx平台的什么游戏,自己玩到什么程度等等,可能这个还挺加分的?

语言知识

之后面试官开始问C++问题,由于用的是Pure C, 所以其实这个答的非常糟,一度让我以为自己要被刷。我把纯虚函数和虚函数弄混了,vtable答了上来,普通的继承多态啥的根本不问, 导致我Java的知识根本用不上…问我有没有用过 C++和C交叉编译(没用过)、STL库(我没用过), 图形学的一些知识(不会)我当时真是尴尬万分…不过我说我用Lambda表达式,Java是1.8 的特性,C++里面是C++11的特性,面试官就问我Lambda的用法和好处,然后问我其他C++11的新特性有没有用过(没…)

算法&数据结构

算法题问了一道一串数只出现一次,给定一个输入,让返回所有数对,数对中的两个数之和等于输入。我考虑了1min回答两种思路,第一种快排后两边向中间遍历,大了右边-1,小了左边+1, O(nlogn)的复杂度,然后就是说不排序就和冒泡一样遍历,O(n2)的复杂度。

又问了游戏排行榜的数据结构应该怎么设计,我先说只取前几名的话堆排序,如果不是前几名的话要看查询多还是改动多,然后说目前只能想到BST。然后又聊会说可以先分组,再排序,就和Query 的select一样,最后join就可以了。后来上网上看了下,网上答案是桶排序和红黑树,虽然自己回答的不精确,不过看来思路还是差不多的。

之后要求我写快排,基本上就是说下思路就可以了,没什么难度。

操作系统

可能面试官了解到我是系统方向,所以让我解释一个Hello World程序从C到最终运行起来的过程。 基本上就是先编译,得到Symbol, 链接器Resolve Symbol, Printf属于动态链接库里面的内容 所以涉及到GOT和PLT表,然后操作系统开新的进程,Load二进制文件,将控制流跳到程序入口Main函数执行等等。面试官听到动态链接库,又问了我一些动态链接库的内容和进程的地址空间和 内存的映射(基本上就是回答新进程的地址空间只是映射了Kernel代码,不用创建新的,动态链接库也是映射过来可以执行balabala)

Misc.

其中还问过我一些图形学的知识,不过我不是很了解,所以只是介绍了一下景深、3D里面摄像头balabala,把当时大三LeapMotion项目的内容说了一点点…

提问

最后就是我问问题,我也就问了下网易研发和策划之间的协作和不同,研发是有自己的考核机制,也有与策划的反馈机制,所以可以影响游戏的设计,不过影响不大云云。

第二个问题就是问我这种方向差异比较大的要怎么跟进,面试官也是介绍了那边的培训制度,不用担心云云…

结果

最后也是顺利拿到了实习的offer. 网易游戏的实习待遇还是挺不错的,除去薪资和补贴,有饭补、来回路费和员工宿舍。所以外地的小伙伴还是不用怎么折腾的。