1. 程式人生 > >遊戲開發校招面試全記錄(大三篇)

遊戲開發校招面試全記錄(大三篇)

上課聽著職業老師在說,你們要寫求職信哦呵呵。。現在工作很難找哦呵呵。。用上世紀90年代講現在的招聘是肯定不行的,我就分享一下自己寫過的兩個面經吧,也算是我的春招和麵經吧。寫的不對的地方你們也就呵呵一下過去吧,啊哈哈。
春招我算是比較早就開始準備了,從網易雷火出來
先簡單自我介紹一下,樓主北方人,長沙普通一本上學,18畢業,在一家初創公司從事unity3d開發半年有餘,也會點3DMAX和ps,工作上主要做開發和以及程式和美術溝通協調的事情,至於怎麼找的,因為我在他沒有招我的情況下默默把老闆的需求提前完成,他突然有一天問我有什麼想法,我就截圖給他就直接過去了
春招身為一直想做Unity開發的我忍不住摩拳擦掌

至於本身,簡歷四個專案
春招開始,完美簡歷沒過,騰訊最後一輪被微笑著GG,網易遊戲網易,拉勾實習僧申請未果,筆試未過,4399不明所以的了無音訊,西山居沒信兒

社招簡歷沒人看,校招unity無人要。

以現在自己大學畢業的立場來看,才知道,只從unity開始作為程式的入門是肯定不夠的。

慶幸於自己的堅持,源於自己的熱愛,至今還在從事遊戲行業,做客戶端開發。

相比於很多人而言來說,我並不是最優秀的,也沒有進入到騰訊網易以及很多人第一反應出來的大廠。

但是能做到的只有就是一直努力下去。

身為一個平凡人的分享。

一直告訴自己要努力,一年半基本沒有一點點休息時間,近四個月抄完資料結構默記各種理論演算法淘遍內推碼面經,基本是起床到睡覺的無間斷學習,能怎麼樣,又怎麼樣,無果,無名。

但還是想記錄一下自己的努力過程已經面經
從雷火筆試之後,自己就意識到資料結構的重要性,先用一個月用c#寫完了資料結構這本書,後是把其中的概念裡裡外外過了兩遍,一兩天刷一道Leetcode,精讀劍指offer和3d數學和圖形學,淺讀shader入門到精通,之前關於unity的書以及碰到bug被氣cry一個人自學堅持的苦略去一萬萬萬字
對了,樓主是個蠢蠢蠢蠢妹子
言歸正傳,因為校招根本就沒有unity選擇了社招,也有兩個小公司過了面試,問題大致是這樣的
1,DrawCall多少為好,怎麼樣減少?(150以下..減小就是答遊戲優化的種種)
2,Animator裡面的狀態機(animatorstateInfo)
3,unity裡面的函式呼叫順序(awake。。。。。直到lateUpdate)

4,TCP和UDP區別(一個安全,用於遊戲中聊天,一個便捷,常用於一些賽車遊戲)
5,有用過什麼外掛(nature pack ,easy road ,ngui 。。。。太多了)
6,unityGI(5.0自帶的光照系統,一個LIGHTING Probe+refection Probe事實全域性光,注意只是支援靜態物體)
7,面板裡面的內容和edit下面的Projuct Setting的內容
8,9,10...非技術問題巴拉阿巴拉
另外一家公司是安靜的聽著我對於c#和unity的理解繼而一一指出問題,比如說委託除了Func,Action,還有Pred..(忘了怎麼拼,返回bool)..
還有問你怎麼樣理解策劃為什麼不做美工。
當然這些都被樓主拐彎兒抹角兒的說回到程式了
春招有一段時間是心態爆炸的,要麼被拒要麼沒訊息了。。。
比如說我4399,也算是從小玩到大了,好不容易出來個unity我就趕緊投了
收到簡歷的當天晚上就收到了第二天面試的通知
第二天12點半果然接到了HR的電話(那天緊張到拉肚子=-=)就問方不方便去廣州面試和學習過程,程式碼量和成績之類的
我原本還以為之後一週才會過去面試,結果在我實習的時候突然就來了面試電話
1,HashMap和List區別(這倆怎麼能扯到一塊去,不過我還是說了下HashMap和HashTable的區別以及ArrayList和List的區別)
2,Tcp怎麼樣防止資料流失(自己定義協議包)
3,渲染的過程(應用階段->幾何階段->光柵化)
4,unity可以合併哪些紋理
5,喜歡做什麼,愛好
6,學習成績
7,怎麼去自習,有看過什麼書
8,程序和執行緒(協程就是unity一種多執行緒的機制,用yield return返回)
看到騰訊的筆試竟然過了。。我特麼想想,我筆試都強制關機了(實在是做不下去啊親),那一段感覺自己都快被全中國拒絕了,有一種天不亡我的feel
立馬訂了去武漢的車票,5點就起來趕啊趕火車
一面是個胖乎乎的大叔,自稱是多款遊戲的主程,還好,大多數情況,他是讓我說,記錄問題如下
1,程序執行緒協程的區別
2,為什麼ngui在VR裡不能使用
3,談談對於資料結構的認識(因為樓主都快把資料結構背下來了,洋洋灑灑說了半個小時)
4,b樹b+樹b*樹的區別(b+樹對於葉子結點有一個雙向連結串列,b*樹+非葉子結點)
5,動態規劃(最短路徑演算法)
6,談談排序和堆排序的應用
7,AVL樹和紅黑樹區別(一個通過旋轉實現完全平衡,一個通過定義根結點的顏色)
8,NGUI Altas原理
9,用c#實現一個商城的業務邏輯(因為剛做過,還有印象)
扯了好久才出,也算是信心滿滿,結果當晚就得知一面過,本來已經疲憊不已的小神經再次興奮起來,又是12點睡5點起
二面應該是個比較隨性的大叔,笑呵呵接待我(我現在還是不知道怎麼就被他掛了)

1,有玩過什麼型別的遊戲,勞資特麼覺得自己就掛在這上了,玩過遊戲港真真不多(我時間都去學程式設計去了...委屈臉)
2,渲染次序,為什麼要有CPU和GPU(GPU並行運算)
3,學習的歷程
4,複合型人才和專業型人才你怎麼看(因為本身我會美工也會程式,但是我說要先成為一個出色的專業人才,再做複合型人才)
他全程都在強調說你也不是本專業的....巴拉巴拉,我就一直在強調,我在通過我的努力把專業補上來..巴拉巴拉
中午1點半出來,武漢還是蠻熱的,當時心裡想著還能過,想著回去樂哈的等著HR面,可是2點半重新整理微信就看到,我已經掛了,睜著眼睛,眼淚就掉下來了,那時意識到,春招結束了,哭著把簡歷又交給HR,不過也沒有音訊,就那樣哭了一天
無奈踏上了昨晚回長沙的火車。。。
暑假可能依舊會去一家小公司做做unity開發積累下自己,春招對於我自己而言,已經是盡力了
有人說,面試看運氣和緣分,運氣不那麼好,緣分還沒有到..把
用一句話告慰一下自己吧,一個人可以被毀滅,但不能被打敗

至於自己一個人從武漢哭著回去

那都後話

和大家交流的多了,遊戲開發,你繞不去 C++ 這個大坑啊。。。

就算 unity 是基於 c# 的二次開發,背完 c# 的資料結構和演算法。筆面試只會問你

STL 知道麼?

反轉連結串列知道麼?

誰讓大廠基本都是用自己的引擎呢?誰讓 unity 的底層是 c++ 呢?

因為之前在公司裡面做的是 PC 端的產品,專業又和程式設計沒多大的關係

資料庫 -> 白痴

c++-> 零入門

學校實驗室 -> 建模

輾轉反側,多少次想放棄吧,但是想想,放棄了,那麼多功夫不是白費了。

既然遊戲開發 c++ 這個大坑是必須要入。

春招的話應該來不太急, unity3D 是 c# ,那我為什麼不試試 .net 。(那時候是真得找不到覺得從事不了遊戲行業)

在閨蜜的“不宜妄自菲薄”的建議下,我社招走 Unity3D 吧,同時,也在加強 c# 的基礎,校招準備 .net

這裡是我過得一些公司,以及面經,答案依據自己的理解簡單去寫。

一 . 南京某遊戲開發公司— unity3d 遊戲開發—(拉勾)

1. animator -parameter

2.drawcall – 以及如何去優化

drawcall 是渲染的時候, cpu 向 gpu 傳送訊息所產生的,最好不大於 150

優化就是遊戲優化的技術,程式碼方面,模型方面,渲染方面都是可以的。

3. 遊戲中的尋路演算法

有 a* 演算法,我說的是用到的一個外掛, RAIN

最短路徑演算法還可通過迪特斯科拉演算法和貪心演算法去實現的,比如說在一個大片的區域,有障礙物,迪特斯特拉和貪心演算法實現的路徑就不是一樣的。

4. 觸發器, OnTriggerEnter

5. 碰撞體 OnCollsionEnter 如何做碰撞檢測?

vioid OnCllsionEnter ( Collsion  coll )

{

if ( coll.gameobject.name==”xx” )

{

debug.log(“offer”);

// 實在不知道怎麼描述程式碼貼上

}

}



6. 函式執行順序:

Awake——>OnEnable–>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDisabled——>OnDestroy

7. 技術無關的問題:巴拉巴拉

遇到問題怎麼解決的思路很重要

碰到什麼問題,怎麼遇到,怎麼解決。通過什麼方式去解決。能從背後看到什麼問題。

二 .某一家公司 ( .net 開發)

1. 值型別,引用型別

值型別屬於棧,引用型別屬於堆

值型別儲存速度快,引用型別儲存速度慢

值型別記憶體是自動調配的,引用型別是通過 GC 去回收的

2. 堆和棧的區別

和上邊差不多

3. 設計模式看過麼?

六大原則:迪米特,介面隔離,依賴倒轉,里氏替換,開閉,單一職責

4. 設計模式用過什麼?

單例模式

public static Class intance=null;

private Class(){}

public static Class CreateInstance()

{

if(intance==null)

{

return instance;

}

}

依據自己印象寫的

介面卡模式

觀察者模式

命令模式

5. 反射:反映程式集資訊

6. 排序

這個答得好 Happy ,問我氣泡排序,面試官就玩手機去了,我看我寫完了他還想繼續玩的意思,那我就寫吧。

簡單排序:冒泡插入選擇

複雜排序:希爾歸併堆排快排

時間複雜度:簡單排序都是 O ( n 方),複雜排序堆歸併,快速都是 OnLogN

希爾是 OnlogN-O ( n 方)

但是印象的話吧

快排是不穩定的排序,涉及到邊界越出的問題。

7. 可能是他玩手機有些久了,擡頭一看,說,媽呀你寫了這麼多,別考了,填個單子吧。

填單子的時候,一個主程來了。

問問題像低聲炮一樣,再加上當時我在寫表,就答得亂七八糟的,問我資料庫,加鎖,多執行緒,專案裡面的知識。

多虧了我考前背面經大法,還算從容不迫的一本正經胡說八道。

後來他忽的提高聲音說,嘿嘿,我是故意的,看看你的潛意識有沒有這些知識,有些不會的就不要說了,因為我資料庫就知道有關係型資料庫和非關係型資料庫,具體的區別嘛,我就說不太清楚了,加鎖也只知道是 Lock 實現,多執行緒是用 Thread 去加。

(人間總有真情在,終歸逃不過套路,我心裡一句我去你 ***** 。。。)

三 . 北京***—( VR 開發)

呼,終於是鬆了一口氣,這是我的老本行啊,我去。

1.VRTK,Stream VR 是什麼?

vr 用到的外掛, Stream VR 是必須的, vrtk 可以便捷實現多個行為操作(拾起,瞬移 .. )

2. 專案中,優化方法有什麼?

LOD , LightingMap , LightingProbe…… 因為 VR 主要的限制還是場景,燈光,渲染,圍繞著去說就好了。

3. 做過什麼專案,怎麼解決的,添加了什麼類。

在公司裡面身為一個策劃, UI ,效果圖,模型,開發什麼都做的我,這個肯定能嗶嗶啊

一個小時過去了 …

可以了,之後讓 HR 聯絡你吧 …

四 . 北京***- (遊戲開發)

這個還好,主要是問了我一堆

小姑娘,遊戲開發很辛苦的,怕不怕啊