一、 工作內容上的區別
客戶端開發更偏重於遊戲玩法的實現,也就是常說的gameplay,比如戰鬥系統怎麼實現、任務流程怎麼進行、ui介面如何互動等等,細分來說,其實客戶端也有很多方向,比如3c(character、camera、controller)、ai(怪物、尋路)等。再具體一點,一般新人進去大概率是從ui做起,你可能會接到乙個需求,比如實現乙個簡單的揹包介面,揹包裡面會存放人物身上的物品,點選的時候會顯示物品的具體資訊(屬性、數量、**等),並且可以**、丟棄、購買、整理等。因此客戶端開發,更多的會跟策劃打交道,每當機智的策劃同學想到了乙個什麼新的點子(需求),你就需要把他們精妙的想法實現到遊戲中。
遊戲引擎開發則更偏重於遊戲的畫面和效能,以及遊戲開發
即使是最受關注的渲染方向,也還分為光照、著色、陰影、抗鋸齒、後處理、特效等等,其實細分方向真的很多。
我本人是渲染方向的,具體的工作而言,你可能會去實現某種畫面表現的特性,比如天氣系統,你怎麼實現動態晝夜變化的效果?比如粒子系統,ue的niagara已經非常強大了,你當然不需要自己去實現乙個粒子系統,但是你如何運用它的強大功能去實現一些酷炫的效果?比如像最後的生還者2中的雪粒子附著到人物身上、隨著手電筒的光束照射,蟲粒子群會隨之聚集和擴散等。niagara系統是可以在內建的指令碼中寫邏輯的,因此幾乎你想要的粒子行為和表現效果,都可以通過**(和美術)來實現。
此外,引擎崗之所以是引擎崗,肯定是要寫引擎的**的,不過除了極少數擁有自研引擎的工作室之外,大部分引擎崗的工作就是如何"用好"和"改好"商業引擎,不需要重造輪子。不過如果現在的商業引擎沒有這個功能,但是你的專案又需要用到這個功能,你就需要去實現;如果這個引擎的功能,無法滿足專案的需要或者太爛了(無論是功能還是效能),你就需要進行改進。包括一些引擎工具的開發,一些系統功能的擴充套件和優化(有時候你甚至需要修復引擎自身的bug),這些,都是引擎崗的工作內容。當然,引擎還有很大的一塊是效能優化,這一部分工作一般都是組裡技術實力比較強悍、工作經驗比較豐富的老司機來完成。因此引擎崗的話,平時更多的會和美術打交道,一起去實現更牛逼和酷炫的效果。
不過我想提的重要一點是,其實客戶端開發和遊戲引擎開發,很多時候並不是分得那麼清的。比如我曾經在網易實習的時候,那個專案的程式組只分為客戶端和服務端,所以無論是客戶端開發還是引擎開發,都由客戶端的同學來完成。在這種組裡面,一般會有一部分人做gamplay的工作,還有一部分人,其實會做引擎的工作,比如渲染、效能優化、工具鏈等,而且客戶端組長確實就是做渲染的(他乙個人),但專案主程是服務端。即使在我現在的這個組,分了客戶端和引擎崗,客戶端很多一部分工作,都會與引擎崗交叉重疊,比如他們也會有做動畫的(3c),做工具鏈的(資產檢查工具、各種編輯器等),也會有一些改到引擎**的工作。甚至我們引擎崗的很多任務作,都需要客戶端的同事來做支援。
二、難度區別
一般來說,引擎崗的要求會比客戶端崗稍微高一點,因為引擎更多地涉及到底層,並且很大一塊是圖形學技術,因此需要較強的數學功底。但門檻的區別,不代表引擎崗做的工作一定比客戶端難,客戶端的很多高階方向,比如上面提到的戰鬥、ai、動畫、系統架構等,都是很有技術深度,值得深耕的。
說到難度了,就順便提一提遊戲公司對於兩個崗位的區別。其實我推測,題主問這個問題的目的應該是想知道這兩個崗位到底哪乙個未來的發展會好一點(比如待遇和晉公升),以及引擎崗究竟難不難學,是否能夠入門,這其實也是我當時的困惑所在。但從我的經驗來看,可能不需要太糾結這個問題,因為無論是客戶端還是引擎方向,都可以擁有很好的發展前景,客戶端一樣可以作為主程、組長甚至總監,我們專案中也有一些職級很高的客戶端大佬。乙個人的職業發展更多的是取決於你的能力,以及你工作上的表現,而不是取決於你選擇了什麼崗位。
三、技術要求的區別
其實這兩個崗位的要求,可以直接去參考一下各個遊戲大廠對於這兩個崗位的jd(崗位描述),對於我自身的經驗來說(我參加過客戶端的秋招和引擎的秋招),有一部分技術要求是公有的(public),比如計算機基礎知識(資料結構、作業系統、計算機組成)、計算機語言能力(c++、c#、lua)、演算法能力;當然還有專案經歷(專案、比賽、實習都算);區別來說,其實主要就是計算機圖形學的知識了。除此之外,引擎崗可能還會更注重你的底層技術知識,比如計算機組成中的快取技術,c++編譯鏈結的原理(動態鏈結、靜態鏈結),作業系統中的記憶體管理等。此外,遊戲客戶端可能更看重於你對遊戲引擎的熟悉程度(使用),以及開發遊戲的經驗。如果你自己嘗試開發過很多或者質量很高的遊戲,面試的時候肯定是很加分的。
那麼對於引擎崗來說,圖形學基本是必問的了。遊戲引擎主要關注實時渲染,所以離線渲染可能要求不是那麼高,當然如果你光追學得很牛逼,實時光追很了解得話還是有用的。至於數字幾何處理、計算幾何這些,感覺算是一些前置基礎知識,不用太過系統和詳細地去學,用到的時候再學可能效率會更高。還有模擬,這些其實與你做的方向相關,比如我自己就對流體模擬、布料模擬很感興趣,因此這些可以多深入學習,上面也說了引擎崗也分很多方向,如果你就是擅長物理,那麼你的技術深度越深越好。
四、如何準備
和職業發展一樣,面試關注的是你的實力,跟本科生研究生沒有太大的關係,只是一般研究生對於技術和知識的積累更深厚,導致了可能會被認為引擎崗研究生會更容易進入,其實我們組裡就有幾個本科生,實力也挺強。
如果想要系統地學習,那麼還是我剛才說的那幾點,計算機基礎、圖形學基礎知識、演算法和coding能力,以及專案經驗。對於圖形學而言,現在的學習資料太多了,有空的話直接games**來一套,學一學閆神的101和202,只要全部理解掌握了,把作業都獨立完成了,面試肯定沒問題。
如果你只是想達到招聘的門檻,那麼其實圖形學也有一些八股文。我可以簡單說一下,渲染管線、變換矩陣、著色模型、抗鋸齒處理、輻射度量學(brdf)、pbr、陰影、全域性光照等。。面經也很多,自己找吧。但是光靠八股文還是有可能會翻車的,幹程式設計師這行的,還是得有真材實料不是。
騰訊遊戲客戶端開發面試
一些情況的簡單說明 這一次招聘是遊戲專場,所以關於其它的網路 雲計算等其它方面的卻不是很了解 我面的是遊戲客戶端開發,這一次面試是單面,遊戲策劃跟遊戲運營是群面 流程大概是 面試首先是自我介紹 一分鐘 然後是面試官根據你的簡歷來問你問題,最後你可以問面試官一些問題。前後加起來大概30分鐘左右 重點來...
遊戲引擎開發
這條路很長,因為需要知道和用到的東西太多了。g8 y4 n r5 m4 x u6 h 8 o.g5 j 學習次序 1 首先是語言方面,這個問題沒有太多的選擇的餘地,基本上是用c和c vb的也有,但是很少 c 因為微軟的力挺,在遊戲開發中也逐漸多了示例。了解基本語義和語法就可以下一步了。如果想c 學精...
微信小遊戲客戶端開發環境搭建
官方手冊 開發工具 環境配置 5.作為開發,cocos creator提供的功能並不那麼得友好,自帶原生編輯器不支援斷點除錯,碼 很不方便。不過可以利用第三發編輯器,vscode就不錯,並且官方推薦的也是這個。6.vscode配置 在coscos creator找到中vscode工作流選單,把所有選...