欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

騰訊光子客戶端開發(fā)實(shí)習(xí)崗一面面經(jīng)

騰訊會(huì)議 90分鐘+

前情提要:投天美技術(shù)群面掛了,光子秒撈(感謝!!)

1.簡(jiǎn)單減少下自己吧

對(duì)著簡(jiǎn)歷巴拉巴拉

2.有看到你在游戲開發(fā)時(shí)使用了很多技術(shù),可以講講有哪些技術(shù)嗎?

腦子抽了:(

說根據(jù)需求開發(fā)功能,并使用與之對(duì)應(yīng)的技術(shù)或組件;動(dòng)畫、碰撞檢測(cè)系統(tǒng)、腳本邏輯算嗎,對(duì)象池之類的(面試官問有沒有具體的,回答完之后笑了笑)

3.剛剛你提到了很多技術(shù),有哪些是比較熟悉的,能具體講講嗎?

說根據(jù)需要使用,沒有說哪種特別熟悉;

4.那就說說對(duì)象池吧,看你用到了對(duì)象池,具體原理和優(yōu)劣?

將暫時(shí)不使用的物件(prefab)禁用并扔到對(duì)象池保存起來而不是銷毀,在需要時(shí)再從對(duì)象池get出來激活并初始化,能夠降低性能損耗

5.具體是如何降低性能損耗的呢?

尬住了,沒有考慮過這個(gè)問題;

先說了下可能降低內(nèi)存損耗吧,看面試官的神情語氣應(yīng)該不對(duì),仔細(xì)想了想,覺得是在new(創(chuàng)建)和delete(銷毀)的時(shí)候會(huì)調(diào)用類的構(gòu)造和析構(gòu)函數(shù),那么CPU就要分配部分計(jì)算資源去執(zhí)行這些函數(shù),而如果采用對(duì)象池,不需要這些步驟,需要的時(shí)候從內(nèi)存調(diào)過來就行,節(jié)省了CPU計(jì)算資源。

6.那具體是用什么數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的對(duì)象池?

在我最近做的這款肉鴿游戲中有用到,主要是通過字典+鏈表的方式,字典的key存預(yù)制件名,鏈表則插入一個(gè)個(gè)預(yù)制件實(shí)例,當(dāng)需要生成物體時(shí),先去字典中訪問是否有,若有則直接從池子調(diào)用,若沒有則new一個(gè)新的,銷毀時(shí)將物體放到池子對(duì)應(yīng)的鏈表中;(說了下缺陷)因?yàn)槭潜荣?,時(shí)間比較趕,就沒做優(yōu)化,后來想想其實(shí)有問題,當(dāng)某一時(shí)間段大量訪問對(duì)象池時(shí),池子沒對(duì)象就會(huì)new很多個(gè)對(duì)象,而后續(xù)如果不再使用,那么對(duì)象就會(huì)留在池子了占內(nèi)存

7.剛剛你說了這些缺陷,那有沒有什么辦法解決?

想了想,可以通過動(dòng)態(tài)更新的方法,使用空間局部性原則,當(dāng)一段時(shí)間池子中某一對(duì)象使用頻率較少時(shí),預(yù)估后續(xù)使用頻率也較少,可適當(dāng)減少池中對(duì)應(yīng)鏈表中的元素個(gè)數(shù)(漸進(jìn)式減少)

8.你有提到資源卸載,說說他的原理吧

可以用到Resources.load做資源的動(dòng)態(tài)加載,不必在編譯時(shí)知道需要加載什么資源,卸載的話同樣用到Resources

9.那比如我有很多子彈飆血特效,我該如何對(duì)卸載這個(gè)資源特效?什么時(shí)候卸載呢?

有點(diǎn)說不清楚,還是舉個(gè)栗子吧!

在我做的肉鴿項(xiàng)目里,也有很多子彈特效(粒子特效),每個(gè)粒子特效都會(huì)有生命周期,當(dāng)生命周期結(jié)束時(shí),再把粒子特效丟進(jìn)對(duì)象池子里,等待下一次獲取,而當(dāng)場(chǎng)景切換時(shí),再統(tǒng)一卸載對(duì)象池中的資源。(這方面感覺還需加強(qiáng))

10.看了下你簡(jiǎn)歷中提到的序列幀動(dòng)畫和碰撞檢測(cè),具體是怎么實(shí)現(xiàn)的?

得到允許后打開了ppt,播放了一下彼界賜福的實(shí)機(jī)演示,說碰撞檢測(cè)主要通過unity中的box collider組件,通過onCollisionEnter獲取到所碰撞的Boss對(duì)象,再執(zhí)行對(duì)應(yīng)的操作。

11.都是用的box碰撞器嗎?unity還有哪些碰撞器(追問)?

還會(huì)用到capsule collider,還有像剛提到的box,sphere,line,mesh等(忘記3D物體的碰撞器了,暈)

12.剛剛看到你的這個(gè)boss,他具體的動(dòng)畫切換是怎么完成的?

將ppt翻到有限狀態(tài)機(jī)那一頁,實(shí)際上是通過Animator controller完成的,controller中有很多個(gè)動(dòng)畫狀態(tài),當(dāng)滿足狀態(tài)轉(zhuǎn)移條件時(shí)便會(huì)切換狀態(tài),但實(shí)際上我寫的時(shí)候自己搭建了一套boss的有限狀態(tài)機(jī),當(dāng)程序執(zhí)行切換操作時(shí),會(huì)給Animator對(duì)應(yīng)的消息變量(bool,trigger等),使得Boss的動(dòng)畫能夠相應(yīng)的切換。

13.項(xiàng)目中有用到什么尋路算法嗎,有了解過什么AI尋路算法嗎?

這個(gè)項(xiàng)目中因?yàn)槭菣M版2D嘛,怪物移動(dòng)只在x軸上進(jìn)行,所以不太涉及什么復(fù)雜的算法,如果是涉及二維或三維的尋路,可能要用到DFS,BFS或是A*算法;

14.能聊聊A*算法嗎?

A*算法是一種尋路算法,也是求最短路徑,在每次選擇下一個(gè)路徑節(jié)點(diǎn)時(shí),不僅僅要考慮當(dāng)前節(jié)點(diǎn)去往該節(jié)點(diǎn)的代價(jià),還需要加權(quán)該節(jié)點(diǎn)到終點(diǎn)的啟發(fā)式代價(jià),通常的啟發(fā)式函數(shù)會(huì)用到曼哈頓距離或者歐式距離。

15.好,那接下來問你一些有關(guān)計(jì)算機(jī)網(wǎng)絡(luò)的知識(shí),你知道TCP和UDP嗎?區(qū)別?

T傳輸C可靠P協(xié)議,傳輸可靠協(xié)議,所以他是可靠的建立連接的面向字節(jié)流的,而U用戶D數(shù)據(jù)包P協(xié)議,用戶數(shù)據(jù)包協(xié)議,是不可靠非連接面向數(shù)據(jù)包的

16.那么在咱們開發(fā)游戲的時(shí)候,用哪個(gè)比較好?

TCP吧,畢竟是面向連接可靠的,誰也不想傳輸?shù)臅r(shí)候丟一兩個(gè)包導(dǎo)致卡頓延遲

17.那比如說當(dāng)前一幀我要發(fā)送大量的數(shù)據(jù),用TCP會(huì)有什么問題?或者說TCP相較于UDP的不足之處是什么?

當(dāng)時(shí)有點(diǎn)不知道這是問什么,就答說TCP因?yàn)橛腥挝帐炙拇螕]手以及流量控制擁塞控制,可能相比UDP開銷會(huì)更大一點(diǎn)。(可能是想說TCP有流量限制不能一次性傳太多幀,所以需要多個(gè)TCP連接?)

18.進(jìn)程和線程的區(qū)別在哪里?

進(jìn)程是操作系統(tǒng)分配資源的基本單位,線程是操作系統(tǒng)進(jìn)行資源調(diào)度的基本單位,一個(gè)程序可能有多個(gè)進(jìn)程,一個(gè)進(jìn)程可能有多個(gè)線程。

19.有了解過游戲開發(fā)中的多線程嗎?

還真沒了解過,只用過協(xié)程做過開發(fā)。

20.那你想想看,多線程的應(yīng)用場(chǎng)景會(huì)有哪些?

真有點(diǎn)蒙蒙的;

比如說進(jìn)行工作分工?一個(gè)線程管數(shù)據(jù),一個(gè)線程管交互邏輯,一個(gè)線程管顯示(答道MVC那邊去了),場(chǎng)景的話A發(fā)射子彈擊中B,C看見的飆血的過程之類的?(總之是真沒怎么用過,mark一下回去好好學(xué)學(xué))

面試官:多線程其實(shí)在游戲開發(fā)中非常常見,剛剛資源卸載就用到了,可能是因?yàn)橐鎺湍惴庋b好了操作,所以你不太了解)

我:滑軌...

21.問問數(shù)據(jù)結(jié)構(gòu)和算法吧,你知道空間條件樹嗎?(應(yīng)該是這個(gè)名字)

沒有太用過和了解過,是用于碰撞檢測(cè)判定的嗎?將空間分割成多個(gè)子空間,然后只檢測(cè)單個(gè)子空間中的碰撞物體。

22.那不能兩兩進(jìn)行碰撞檢測(cè)嗎?(追問)

不行吶感覺時(shí)間復(fù)雜度有點(diǎn)高(看我不太了解這塊就沒問的太深)

23.遍歷n個(gè)元素的數(shù)組和鏈表,哪個(gè)比較快?

秒答數(shù)組,遍歷時(shí)Cache緩存命中率比較高,空間局部性原則

24.既然你提到Cache,那是什么?

高速緩存(應(yīng)該是這個(gè)名吧),主要是解決內(nèi)存和CPU之間讀取速度不匹配的問題

25.Cache具體是怎么工作的,怎么和內(nèi)存合作?

當(dāng)CPU打算訪問某個(gè)數(shù)據(jù)時(shí),會(huì)先去多級(jí)Cache中嘗試尋找數(shù)據(jù)是否存在,l1 l2 l3,若找不到,再從內(nèi)存中找(忘記說會(huì)進(jìn)行Cache塊替換了,緩存一致性了)

26.既然提到了內(nèi)存,你知道虛擬內(nèi)存嗎?

每個(gè)進(jìn)程都會(huì)有獨(dú)立的虛擬內(nèi)存地址,對(duì)數(shù)據(jù)的讀寫操作都是基于該虛擬內(nèi)存地址,操作系統(tǒng)則負(fù)責(zé)將虛擬內(nèi)存地址映射到物理地址當(dāng)中,本質(zhì)是將部分虛擬內(nèi)存放在磁盤上,進(jìn)而能使用比物理內(nèi)存更多的存儲(chǔ)空間。

27.提到了磁盤,內(nèi)存和磁盤是怎么合作的?若內(nèi)存中沒找到數(shù)據(jù)會(huì)怎么樣?

若沒有找到數(shù)據(jù),會(huì)引發(fā)缺頁中斷阻塞當(dāng)前進(jìn)程,并從磁盤調(diào)頁。(沒有問有什么替換算法)

28.問問語言類的吧,你是主用Csharp的吧,還會(huì)什么語言?

寫游戲的時(shí)候會(huì)用到Csharp,平時(shí)做實(shí)驗(yàn)的時(shí)候會(huì)用python和C++

29.那C++和Csharp有什么不同嗎?

絕大部分情況Csharp不支持指針,而C++支持;編譯速度來看C++更快;C++會(huì)將代碼編譯成匯編語言,再轉(zhuǎn)換成機(jī)器語言,Csharp則先編譯成中間語言IL,鏈接CLR(公共語言運(yùn)行庫),再編譯成機(jī)器語言;C++是不僅僅是面向?qū)ο蟮模鳦sharp是是面向?qū)ο蟮?;UE主要用C++,Unity主要用Csharp(笑) 23. 談到指針,指針是什么?可以用來干什么?

指針就是指向數(shù)據(jù)的地址,比如在函數(shù)中我想修改輸入變量值,可以傳遞指針,通過指針修改。

30.那Csharp中的函數(shù)沒有指針,是怎么修改輸入值的?

簡(jiǎn)直是給自己挖坑,壓根沒想過這個(gè)問題:(

答道,平時(shí)寫的時(shí)候,都是可以直接在函數(shù)中修改輸入變量的值的,猜測(cè)輸入的應(yīng)該是該變量的引用,所以可以直接修改。

31.了解堆棧嗎?C++和Csharp分別是怎么使用堆的?有什么區(qū)別?

卡主,真是好好想了想;

C++通過new創(chuàng)建新對(duì)象實(shí)例并調(diào)用其構(gòu)造函數(shù),Csharp也是通過new;銷毀時(shí)C++會(huì)要通過手動(dòng)delete釋放內(nèi)存,Csharp的話寫游戲腳本的時(shí)候就沒釋放過內(nèi)存,推測(cè)應(yīng)該是Csharp的GC垃圾回收機(jī)制自動(dòng)幫我釋放了內(nèi)存。

32.了解C++的虛函數(shù)嗎?具體是怎么實(shí)現(xiàn)的?

了解,虛函數(shù)是C++實(shí)現(xiàn)多態(tài)的重要機(jī)制,主要是通過構(gòu)造類的虛函數(shù)表實(shí)現(xiàn)的。

33.那構(gòu)造函數(shù)和析構(gòu)函數(shù)可以是虛函數(shù)嗎?

構(gòu)造函數(shù)應(yīng)該不能為虛函數(shù),因?yàn)樘摵瘮?shù)本質(zhì)是為了實(shí)現(xiàn)多態(tài)機(jī)制,而執(zhí)行構(gòu)造函數(shù)時(shí)會(huì)先執(zhí)行父類構(gòu)造再執(zhí)行子類構(gòu)造,此時(shí)子類尚未更新虛函數(shù)表(或是未定義),那么虛函數(shù)便不能達(dá)到預(yù)期的多態(tài),沒有意義。(感覺這里還是有點(diǎn)混淆,得加強(qiáng))

析構(gòu)函數(shù)一般是虛函數(shù),假設(shè)現(xiàn)有一父類指針指向派生類對(duì)象,delete該對(duì)象,如果父類析構(gòu)函數(shù)不為虛函數(shù),則會(huì)調(diào)用父類析構(gòu)而非派生類析構(gòu),導(dǎo)致一些錯(cuò)誤麻煩(這里卡主了,沒想出來麻煩是什么)

34.時(shí)間也不早了,考你一道編程題吧!m個(gè)技能點(diǎn)數(shù),n個(gè)技能,每個(gè)技能有對(duì)應(yīng)的學(xué)習(xí)點(diǎn)數(shù)要求以及技能傷害,問最大傷害值是多少?

走到這已經(jīng)是頭昏昏沉沉,又有點(diǎn)緊張,因?yàn)槊嬖嚬僬f時(shí)間有點(diǎn)晚了,就只給10-15分鐘做題時(shí)間,沒想出什么特別好的辦法,就想著排序貪心的思想,不出意料的沒寫完。

然后

面試官:你就說說自己的想法吧

我:按性價(jià)比排序,貪心策略

面試官:那你看看用例3,用你的辦法做是不是有些問題

我:!還真是,寄?。?/p>

面試官:好好想想,如果不能用排序貪心,還有沒其他辦法

我:(靈光一閃)dp吧

面試官:哦?那你說說怎么dp

我:嘰里咕嚕%&#@...(沒說出個(gè)所以然來),說不出來,能不能給我點(diǎn)時(shí)間把他寫完

面試官:不必啦,解釋下什么時(shí)候用dp比較好

我:當(dāng)前狀態(tài)能夠通過狀態(tài)轉(zhuǎn)移,從前一狀態(tài)得到,并需要記錄中間值時(shí)可以用到

面試官:這道題還能用DFS和BFS,與之相比dp的優(yōu)勢(shì)是什么?

我:思考ing,時(shí)間復(fù)雜度都是O(n^2),空間復(fù)雜度dp只用一維數(shù)組存,會(huì)低一點(diǎn)吧

面試官:你要不再好好想想

我:努力思考ing,真想不到了(好吧原來是dp會(huì)少遍歷一些不必要情況,時(shí)間復(fù)雜度更低,最近沒復(fù)習(xí)算法題的惡果)

35.聊點(diǎn)輕松愉悅的吧,有玩過什么游戲嗎?

直接打開電腦上的steam庫,如數(shù)家珍,還提到玩過一點(diǎn)fps,感覺面試官眼睛亮了

36.有玩過什么fps游戲嗎,具體說說?

CF,CS,OW,PUBG,APEX,瓦...,不過由于我動(dòng)態(tài)視力不行,像大逃殺之類的游戲體驗(yàn)感很差,就沒怎么玩 31. 最近有玩過瓦嗎

沒了,只看瓦的比賽,EDG(看樣子面試官很喜歡瓦,又或者我面的這個(gè)項(xiàng)目組準(zhǔn)備開發(fā)瓦手游?)

37. 玩游戲給你帶來了什么?你最看重游戲的哪些點(diǎn)?

說了下一個(gè)是在游戲中付出是真的能有回報(bào),游戲不會(huì)虧待每一位玩家;一個(gè)是比較看重劇情,享受每個(gè)故事帶給我們的悸動(dòng);還比較喜歡玩一些獨(dú)立游戲,學(xué)習(xí)借鑒一下獨(dú)有創(chuàng)作者的逆天腦洞。

38.為什么選Unity?為什么想成為游戲開發(fā)者?怎么踏入這個(gè)行業(yè)的?

當(dāng)時(shí)本科有一幫很喜歡玩游戲,有很多奇思妙想的小伙伴,一拍腦袋說做個(gè)游戲吧,又因?yàn)閳F(tuán)隊(duì)里沒什么人有開發(fā)經(jīng)驗(yàn),自己有點(diǎn)編程基礎(chǔ),就擔(dān)任了團(tuán)隊(duì)開發(fā)的職位;當(dāng)時(shí)也是有小伙伴說Unity好上手,不怎么吃設(shè)備,就學(xué)習(xí)了這款引擎;后來也是打比賽做了第一款自己的游戲《模擬劇場(chǎng)》,這游戲腦洞清奇有點(diǎn)幽默,而每天和左邊的室友兼策劃Battle,實(shí)現(xiàn)一些奇思妙想的功能真的很有趣,后面也上線了嘛,也得到了很多正反饋,就感覺將一些天馬行空的想法落地實(shí)現(xiàn),并收獲大家反饋的過程很有成就感和滿足感,很棒,我想這也是我堅(jiān)持下去的動(dòng)力吧。

39. 有什么職業(yè)規(guī)劃嗎?

因?yàn)殚_發(fā)的游戲規(guī)模都比較小,很多技術(shù)(多線程,lua熱更新,shader等)都理解的非常淺薄,所以想在實(shí)習(xí)期間能夠多接觸學(xué)習(xí)這些技術(shù),同時(shí)也了解整個(gè)游戲產(chǎn)品是如何從立項(xiàng)、策劃、開發(fā)、上線、運(yùn)營(yíng)的,后續(xù)的話想通過一到兩年的時(shí)間做gameplay,鍛煉代碼技術(shù),再往引擎或是渲染管線計(jì)算機(jī)圖形學(xué)這方面發(fā)展吧

40. 我們游戲開發(fā)這邊在深圳,可以接受嗎?

問了下是不是深大旁邊十字路口的那座雙子星,說好像不是,在科興路,離深大也近,雙子星好像是toB部門什么的。就說也挺好,以前在深大呆了四年,對(duì)南山也比較熟悉。

41. 有了解過圖形學(xué),渲染關(guān)系管線之類的知識(shí)嗎嗎?

看過一本關(guān)于shader的書,了解整個(gè)渲染管線的流程,也刷過games的部分視頻,寫過shader腳本(簡(jiǎn)單),總的來說還是入門級(jí),以后也想向這方面深造

反問

1.我目前的一些不足吧,有什么提升點(diǎn)嗎?

建議是多了解游戲引擎的底層邏輯,無論是通過百度還是AI什么的,這會(huì)對(duì)你日后的游戲開發(fā)有很大幫助

2.游戲比賽開發(fā)的demo和商業(yè)化游戲產(chǎn)品的區(qū)別主要是什么?

demo更注重的是設(shè)計(jì)的框架,想法,而商業(yè)化游戲使用的技術(shù)往往會(huì)更加成熟

3.作為實(shí)習(xí)生,在實(shí)習(xí)期間最需要學(xué)習(xí)的是什么?

與策劃、美術(shù)溝通,與其他程序佬協(xié)作完成項(xiàng)目的技巧;了解游戲開發(fā)的一些基本常識(shí),性能更優(yōu)的技術(shù),以及了解整個(gè)開發(fā)流程。

謝謝!

總結(jié):

總的來說鵝廠對(duì)基礎(chǔ)真的很重視,八股覆蓋的很全面,而且會(huì)根據(jù)你的回答進(jìn)一步深挖問題,當(dāng)然也會(huì)對(duì)你的項(xiàng)目狠狠進(jìn)行拷打。

面試官人真的不錯(cuò),在你需要思考的時(shí)候會(huì)給予你時(shí)間,在你很是糾結(jié)的時(shí)候會(huì)引導(dǎo)你方向,在你實(shí)在不懂的時(shí)候會(huì)為你答疑解惑,還會(huì)耐心和你一起討論問題,大廠不愧是大廠。

經(jīng)驗(yàn):C++以及408一定一定要過關(guān),要熟悉自己寫過的項(xiàng)目(有條件的話可以用視頻或ppt的形式講解其中的技術(shù)點(diǎn),會(huì)讓面試官很直觀的了解到你的工作);當(dāng)然項(xiàng)目是加分項(xiàng),如果會(huì)點(diǎn)渲染管線相關(guān)的就更好了。

11點(diǎn)面的試,12點(diǎn)半結(jié)束,兩點(diǎn)半就收到二面邀請(qǐng)了,速度好快,大廠不愧是大廠。

發(fā)發(fā)面經(jīng)攢攢人品吧!求求啦讓我上岸吧??!

#實(shí)習(xí)面經(jīng)##實(shí)習(xí)面經(jīng)鵝廠##光子工作室群#

#軟件開發(fā)筆面經(jīng)#
全部評(píng)論
感覺你你這個(gè)面試才是對(duì)的啊 其他人的面試沒一個(gè)看得懂的
4 回復(fù) 分享
發(fā)布于 03-19 11:03 福建
編程題和我遇到的一模一樣哈哈哈哈哈哈
點(diǎn)贊 回復(fù) 分享
發(fā)布于 03-19 21:24 上海
佬,能問問天美技術(shù)群面考什么嗎
點(diǎn)贊 回復(fù) 分享
發(fā)布于 03-19 09:56 浙江
我今天晚上六點(diǎn)面的,問的問題幾乎一模一樣做的題目也一樣剛剛給我掛了
點(diǎn)贊 回復(fù) 分享
發(fā)布于 03-18 22:01 湖北
恭喜恭喜
點(diǎn)贊 回復(fù) 分享
發(fā)布于 03-18 18:48 四川

相關(guān)推薦

評(píng)論
33
129
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
牛客企業(yè)服務(wù)