【求职经历】网易游戏实习生面试体验

做者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明。若是你喜欢这篇文章,请点【推荐】。谢谢!html

网易游戏面试准备

若是你大学里有想过从事游戏开发的话,你对网易游戏确定不会陌生,网易开发出过梦幻西游,倩女幽魂这种端游大做,惋惜在页游和手游方面如今依旧毫无建树,网易游戏的特色有如下几个:git

  • 工做环境很是好,或者极端点说,多是国内全部公司里工做环境最好的,具体能够参考知乎里的这个问题里的国内有哪些工做环境很赞的互联网公司?第一个回答
  • 工资待遇很是高,实习生的工资具体数额通常是其余互联网公司的两到三倍左右,各位能够本身算算,应届毕业生的薪资水平也多是国内IT行业最高的(最低每一年在250k以上,280K比较多 ,360K也有),固然你要非拿阿里星来比我也没有办法。
  • 基本上只招C9的学生加上北邮,华南和华科这几个学校的硕士及以上学历,若是你是其余学校的学生或者是C9的本科生却没有好的经历的话在HR筛选简历时会把你直接刷掉。
  • 培训体系很是完善,毕竟是当年云风他们一手搭建的培训机制。若是你是实习生的话,你会和其余实习生(包括策划,开发和美术)组队作一个MiniGame,而后在两个月的实习期结束以后,分组作ppt演示,而后评分,通常刷掉50%的人,留下剩下50%的人。不是像其余公司同样实习生跟版本打杂,这个机制挺有意思,可是具体好坏也很差评判。
  • 加班较少
  • 实习生不须要租房子,网易提供单身宿舍和餐厅,就是说食宿基本不花钱。可是你非要下馆子我也没办法。。。

关于学历的事情强调下,下面是各个学校的录取比例:github

netease

哎。。。我怎么说了好多网易游戏的特色好像都是在夸网易游戏啊,那再说下网易游戏不太好的地方吧。面试

  • 手游包括端游砍项目或者回炉重作的现象比较频繁,手游的话通常十个项目砍掉八九个?感受面试的时候面试官在项目上的压力还蛮大,一直说手游的竞争很激烈,但我感受网易游戏的内部竞争更激烈,被砍的依据大多不是市场表现,而是部门老大的评价和判断。
  • 网易游戏仍是偏保守,网易基本上已经错过了页游的巨大市场,如今看也基本上错过了手游,不过网易是个好学校,很是适合应届生去。

还有更多的观点能够参考知乎上的这个问题:你为何从网易离职?我就不一一列举了。算法

前面说了网易游戏基本不招本科生,那我为何去面试了呢?由于网易游戏最近移动游戏这边看来是比较缺人,因此在招聘要求上特地标明了能够招收本科生,我又对移动游戏很感兴趣,学习了不少相关的知识,对Cocos2d-x,Lua等游戏相关的技术也算用的比较熟了。最终HR就给了我电话面试的机会。数据库

网易游戏电话面试

第一轮的电话面试是在周一上午十点,但是我一直等到10点40才接到面试官的电话,第一面的面试官是南京大学的学长,人很是nice,没有问什么很难的问题,基本上一开始就是从我作过的战棋游戏的项目入手,由于我负责的主要是GamePlay,因此问的问题也都集中在这一块,好比游戏中的状态机的设计,动画曲线的设计,相机的移动,游戏中如何使用MVC之类的(能够参考个人这篇文章)等等。而后就是我一我的在扯一些Cocos2d-x的事情了,由于我本人对Cocos2d-x还算有点研究,就把Cocos2d-x的一些重要的特性说了下,可是学长好像是作Unity3D的,感受有点对不上路。算法方面的问题却是一个也没问,面试结束后,我问了下学长对个人印象如何,学长说各方面都还不错,我就以为这一轮差很少了。编程

总之第一轮的电话面试,还算简单,只要你有几个拿得出手的项目就好了,最好是移动游戏,实在不行的话,作过移动App也行吧。固然,熟悉Unity3D或者OpenGL之类的有加分,要是获悉一些后端的东西,好比网易的Pomelo就更好了。后端

网易游戏二面

过了一周以后,网易发来了通知,叫我去杭州参加第二次面试,知道这个消息仍是蛮兴奋的,由于网易的本科生录取率还不到5%吧。。。又过了一周,果断买票赶往杭州!服务器

网易的第二次面试其实是三次面试,就是三个工程师会轮流对你进行面试,而后综合评价以后,再判断是否给你下一轮的机会。对于此次面试我仍是作了很多准备的,我不但专门为此次游戏作了一个游戏Demo,用MVC架构作了一个Cocos2d-x的游戏,源码在这,并且专门准备了一份自我介绍和一些想问面试官的问题。数据结构

去进行面试的一共有6我的,五个是应聘实习生的,一个是春季补招的,也就是说,网易对实习生的招聘和正式员工的校招要求的水平基本一致,这点各位注意一下。通常过了第一面以后,在杭州这一次是6个里面淘汰5个,这6我的基本都拿到BAT或者同级别的的offer了,除了我和个人一个同窗(我两以前一块儿作了那个战棋游戏。。。)是本科生外,其余人基本都是研究生,可见网易的选拔仍是比较严格的。

接下来讲一说二面都问了些什么问题吧,我一一列举以下,各位能够参考一下(网易的人别打我,我这不算泄露机密吧):

  • 如何对手机游戏进行优化,个人回答基本上是如下这样的
    • 通常分为内存优化帧数优化,内存优化和运存优化。
    • 帧数优化能够考虑对一个message loop中的逻辑运算进行优化,好比能够考虑A*的剪枝。或者进行time slice,具体能够参考个人这篇文章 
    • 体积和运行内存优化有如下几点
      • 使用工具对资源进行打包,使用TexturePacker等工具把多张资源合成一张图片。
      • 采用png压缩工具,在打包图片以前对每张图片进行压缩,下降图片质量。
      • 针对不一样的平台使用特定的压缩格式的图片
    • 若是项目中帧序列占的比较多,那么能够采用降帧的方式来优化。
    • 缩放图片,将原来图片缩小为原来的70% ~ %80,再对图像进行放大
    • 采用编辑器,将大图转化为拼接,那么就能够利用地图编辑器、动做编辑器等从而减小体积,下降内存的使 用。
  • 如何在对游戏的“手感”进行改进:
    • 游戏手感通常指的是打击感,那么我就在打击到一个游戏对象时,游戏对象要产生击退的效果,产生该对象被打击的感受。
    • 时间控制要恰当,要让某个对象(好比火球,拳头)打击到另外一个游戏对象的时候,才产生击退效果,这就须要进行使用消息机制和回调来解决。
  • 如何在数据库中存储一我的的全部装备
    • 创建一我的物ID和装备ID的关系表。
    • 将人物的全部装备的id序列化为一个JSON字符串存储为人物的一个字段。
    • 这两个最大的区别是在修改装备时,第一个只会影响一条记录,当时第二个会影响全部装备,一旦出现bug还让玩家损失全部装备。二者各有利弊,根据使用场景本身权衡。
  • C++11的新特性?
  • 如何对一个快排进行优化使得它的最坏的时间复杂度达到O(LogN)?
  • Lua和Unity中的协程是怎么使用的,都有什么区别?
  • 个人游戏Demo中AI的设计思路是怎样的。
  • 若是让你设计一个暗黑破坏神的简化版手机游戏,你会从哪里开始设计。

只记录了一些我认为比较有价值的问题,有些问题没有记录,其实除了这些问题以外,我和面试官的许多交流都围绕在我作的游戏Demo上了,讨论了许多关于这个游戏AI,架构和Cocos2d-x相关的问题,我还把本身的游戏代码给面试官看了,不少问题都是边看代码边聊的,仍是和第一次同样基本没问算法,大部分时间是在聊项目。因此各位同窗们,有个拿得出手的项目仍是很重要的。

总而言之,和这几个面试官的聊天过程,仍是比较开心的,大部分问题都能答得不错,几个面试官对个人评价也不错,顺利进入下午的三面。

要注意的是二面的时间比较长,每一面的时间都有30分钟以上,还要连着跟三个面试官聊天,前一天必定要休息好,要否则可能撑不住。

网易游戏三面

三面是总监面,到了三面的时候,6我的又被淘汰了几个,而后我第一个被叫过去总监面,三个总监貌似是主策,主美和主程。这一面的压力仍是蛮大的,问的问题明显要比二面的时候难了很多,我整理了一下三面中一些比较难的问题,供你们参考一下:

  • C++11有那些特性?
  • C++11模板中的特化和偏特化分别指什么?都在那些状况下应用?
  • C++11模版的高级使用有那些?请举出例子。
  • Java Runtime和Lua Runtime有什么区别和相同点?
  • 游戏中状态机如何实现REDO,UNDO和MERGE?(用stack便可实现)
  • 极大极小算法的原理和在AI中的应用?
  • 3D游戏中相机是有那三个元素构成的(Translate,Target和Up Vector),分别起什么做用,如何使用四元数进行相机的变换?

因为本人计算机图形学比较菜,不少相关的问题无法打上来,在第三次面试中真实蛮失败的,最终很惋惜,没拿到offer,只好下次再战。。。

网易游戏到底招什么样的应届生?

网易游戏的面试流程总体走下来,感受仍是蛮规范的,网易确实在认真的招人和面试,个人感受是网易但愿招聘的应届生除了有一个拿得出手的项目以外(最好是游戏相关的),还要在如下这两个方面至少熟悉同样

  • 计算机图形学
  • 游戏服务器编程

而后再说一下网易的基本要求,固然了,什么数据结构,操做系统,数据库,编译原理这些的基本原理和应用就不细说了,都是本科生基础必会的东西,说些和游戏相关的要求:

  • 对C++的模版的高级用法要了解的比较深刻。
  • 对C++的内存管理的各类解决方案要很是熟悉并亲手实验过。
  • 对AI的各类算法要有了解:好比博弈论中的极大极小算法,A*算法的优化等等 
  • 对C++的装载连接过程和Lua的虚拟机的一些底层实现要有了解
  • 对VS或者Xcode这两种IDE须要能够熟练的应用
  • 须要的项目经历:本身开发过 一个简单的游戏引擎或者是作过比较复杂的 游戏Demo(大概是Kingdom Rush这个级别就能够了吧)
  • 对Unity3D或者Cocos2d-x有着丰富的使用经验 (能够没有,有的话加分)
  • 对OpenGL或者是DirectX要有了解,作过一些Shader和Renderer (能够没有,有的话加分)
  • 了解过网易的后端框架Pomelo(能够没有,有的话加分)

再说一下,网易手游这边目前的一些相关信息,

  • 游戏引擎:主要是Unity,有部分Cocos2d-x
  • IDE:主要是Xcode
  • 后端:主要是Pomelo
  • 项目前景:大部分是被砍

好了,这篇文章就写到这里,有什么其余不明白的问题,能够到微博上私信我,QQ不想加人了。。。好友太多。

相关文章
相关标签/搜索