網易遊戲

1.C++對象的內存分佈?
2.STL的底層機制?
3.OS的原理坑定會問的,以及物理內存和虛擬內存?
4.數據結構確定會問的?經過題目穿插的方式?
5.經常使用的算法也會問道?
6網絡方面,udp與TCP的區別,三次握手畫圖,阻塞窗口?html

 

面試過程:git

電話面試主要問專業基礎知識,包括C++,STL,網絡,數據結構,算法題目之類的。

github

面試官問的問題:面試

C++讓寫類的get和set函數,STL問了vector,網絡問了三次握手,數據結構問了二叉查找樹和hash表,算法問了走臺階(每次走一步或兩步,n步的臺階有多少種走法,斐波拉契數列),算法問了深度優先遍歷,洗牌程序。算法

 

2018網易遊戲暑期實習面經

May 2nd, 2017 9:27 pm | Comments數據庫

到了找實習的時期,據說網易遊戲福利不錯因此就投了個簡歷,最後一路下來也是順利拿到了實習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. 網易遊戲的實習待遇仍是挺不錯的,除去薪資和補貼,有飯補、來回路費和員工宿舍。因此外地的小夥伴仍是不用怎麼折騰的。

 

做者:王選易
連接:https://www.zhihu.com/question/21851929/answer/27052723
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

網易遊戲電話面試

第一輪的電話面試是在週一上午十點,但是我一直等到10點40才接到面試官的電話,第一面的面試官是南京大學的學長,人很是nice,沒有問什麼很難的問題,基本上一開始就是從我作過的戰棋遊戲的項目入手,由於我負責的主要是GamePlay,因此問的問題也都集中在這一塊,好比遊戲中的狀態機的設計,動畫曲線的設計,相機的移動,遊戲中如何使用MVC之類的(能夠參考個人這篇文章)等等。而後就是我一我的在扯一些Cocos2d-x的事情了,由於我本人對Cocos2d-x還算有點研究,就把Cocos2d-x的一些重要的特性說了下,可是學長好像是作Unity3D的,感受有點對不上路。算法方面的問題卻是一個也沒問,面試結束後,我問了下學長對個人印象如何,學長說各方面都還不錯,我就以爲這一輪差很少了。

總之第一輪的電話面試,還算簡單,只要你有幾個拿得出手的項目就好了,最好是移動遊戲,實在不行的話,作過移動App也行吧。固然,熟悉Unity3D或者OpenGL之類的有加分,要是獲悉一些後端的東西,好比網易的Pomelo就更好了。

網易遊戲二面

過了一週以後,網易發來了通知,叫我去杭州參加第二次面試,知道這個消息仍是蠻興奮的,由於網易的本科生錄取率還不到5%吧。。。又過了一週,果斷買票趕往杭州!

網易的第二次面試其實是三次面試,就是三個工程師會輪流對你進行面試,而後綜合評價以後,再判斷是否給你下一輪的機會。對於此次面試我仍是作了很多準備的,我不但專門爲此次遊戲作了一個遊戲Demo,用MVC架構作了一個Cocos2d-x的遊戲,源碼在這,另外還有一個用Unity3D作的應用,MrNerverDie/MiniWeChat-Client · GitHub,並且專門準備了一份自我介紹和一些想問面試官的問題。

去進行面試的一共有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,只好下次再戰。。。

相關文章
相關標籤/搜索