【求職經歷】網易遊戲實習生面試體驗

做者:王選易,出處: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不想加人了。。。好友太多。

相關文章
相關標籤/搜索