遊戲圖形程序員的發展方向與競爭力?
圖形程序的發展方向
1.只有自研引擎的公司才有這個職業?
2.這個職業未來方向是什麼呢?感覺離主程與技術總監都很遠
3.算是引擎程序員嗎?需要學習引擎嗎?
4.在學校需要掌握什麼技術再去應聘?,c/c++,shader,GPU編程(多線程渲染?CUDA?)
5.大公司與創業公司該職位的區別?
6.與邏輯程序員相比的優劣?競爭力怎麼樣?
7.新人去是否打雜以及打雜的工作內容,是否能學到東西?
8.另外還有手游公司和主機公司的問題。。。。二者區別肯定鐵大。。。。二者區別是什麼呢?哪個更有意義?
遊戲行業的渲染引擎程序在國內定位尷尬。
做為渲染引擎程序,工作主要為:
1. 為美術編寫材質 shader,後處理 shader,特效 shader
2. 維護粒子特效系統,維護 gameplay 相關特效系統3. GPU profiling,並編寫相關 profiling 工具或者 profiling 模式4. 修改、定製、二次開發渲染管線,包括渲染層及驅動層
5. 編寫為上一點所服務的數據結構6. 制定為上一點所服務的 production pipeline,及編寫相關工具7. 和美術溝通,和TA溝通,完善 production pipeline在國內大部分對於渲染程序的需求僅集中在1,2,3點。由於 unity 等工具的普及,前三點已經不需要專門的渲染程序去維護。而對於4,5,6,7點,大部分項目要麼不敢做要麼不想做。
所以現狀其實比較不樂觀:一方面國內的需求不大,很難找到適合的團隊或者項目;另一方面隨著育碧上海等公司逐漸轉向手游頁游開發,國內在人才孵化上基本斷檔,在技術積累上和國外差距越來越大,並且沒有任何扭轉的趨勢。
所以個人建議畢業生從事這個方向的還是出國讀書然後在國外生根發展,國內土壤不多,環境不好。
===================
另外點對點地回復一下題主的問題:
1.只有自研引擎的公司才有這個職業?
大部分項目都有需要自己定製的畫面需求,再簡單也需要一些自己定製的特效什麼的。所以如果僅是寫 shader,那麼大部分公司其實都是需要的。
2.這個職業未來方向是什麼呢?感覺離主程與技術總監都很遠
國內的未來方向,除了去顯卡廠當技術支持我並沒有看出什麼大的發展。國內基本沒有渲染主程這種位置,技術總監很多是 general programmer 出身或者伺服器出身。3.算是引擎程序員嗎?需要學習引擎嗎?
需要。不過這裡指出學習引擎不是說把 UE4 會用了,那只是一個 UE4 美術外包人員的水平。需要學的是一些常用的架構,比如 UE4 是怎麼實現多線程渲染的,基本的 deferred shading 是怎麼做的,Gbuffer 是怎麼分配的,tiled lighting 是怎麼實現的,light map 烘培是怎麼回事,shader 編譯時怎麼回事,等等。4.在學校需要掌握什麼技術再去應聘?,c/c++,shader,GPU編程(多線程渲染?CUDA?)
面向對象的編程、基本的 shader、多線程。GPU compute 部分,遊戲行業用 compute shader,不過懂 CUDA 的 compute shader 也就一天的事情。但是國內現狀是很多項目連 DX11 的底層都沒有。5.大公司與創業公司該職位的區別?
建議去已經有成功產品的小公司。說實話某廠現在圖像渲染這方面是在開倒車。6.與邏輯程序員相比的優劣?競爭力怎麼樣?
在國內要競爭力強,那麼多對 CPU 端優化、內存優化、文件讀取等多放點心。在國外的話這個職位薪水是邏輯程序的1.5 - 3 倍以上。
7.新人去是否打雜以及打雜的工作內容,是否能學到東西?
打雜不能學到東西,打雜的結果就是:1. 給別人的爛代碼擦屁股;2. 年末考核讓你背末位淘汰的鍋。8.另外還有手游公司和主機公司的問題。。。。二者區別肯定鐵大。。。。二者區別是什麼呢?哪個更有意義?國內還有主機公司么?如果僅僅是用商業引擎開發然後在 DEV KIT 上編譯一把的話,那不算主機公司。另外從圖像渲染的角度來看,手游的渲染和非手游的渲染,以後是兩個工種。春節有點閑時間,忍不住要回答問題。我的回答比較片面,主要都是自己在招聘過程以及和其他開發人員交流得出的結論,僅當參考。
1.只有自研引擎的公司才有這個職業?
多數情況是。也有很給力的團隊拿著已有引擎魔改的,可以盯著各個公司/工作室的招聘需求。
2.這個職業未來方向是什麼呢?感覺離主程與技術總監都很遠
主程/技術總監跟你初期點什麼技能關係不大。這個不想展開說了,知乎上關於怎樣往這個方向發展的優秀文章挺多的。個人覺得,你就當 RPG 玩吧,玩久了能夠擔任這個職位的時候,自然就得去做。(主程普遍反饋:都有一顆想卸任專心專研技術的心,技術總監會好點,但你的日常是規劃公司未來幾年的技術方向,技術選型,評估和驗證新技術在已有項目中使用的可行性外加救火隊長,也是一顆想卸任專心研究某領域的心。)
3.算是引擎程序員嗎?需要學習引擎嗎?
算引擎的圖形渲染部分。需要學習。舉個例子:
數據的導入導出按理和你沒關係,工具程序員做的事情。但是處理後的數據和你的渲染息息相關,做到圖形渲染的 leader 需要為遊戲定做渲染 pipeline,這個時候你需要從數據製作開始設計,一直傳到 GPU 中,不單單只是渲染得好看。
4.在學校需要掌握什麼技術再去應聘?,c/c++,shader,GPU編程(多線程渲染?CUDA?)
專攻圖形的話,盡量自己從頭做一個軟渲染器,把光柵化階段的各個計算都搞明白。再學習一些光照理論,搞明白光照方程的哪幾個部分是實時渲染里目前難以處理的地方以及他們的製作工序。哪些花俏的 shader 效果等等,留著以後工作去發揮,那是展現你創意的部分,需要你先有紮實的基本功,才能弄的又快又絢。
5.大公司與創業公司該職位的區別?
錢多錢少 (笑)。總的來講,圖形程序員還是推薦去靠譜的大公司里做,靜心做。
6.與邏輯程序員相比的優劣?競爭力怎麼樣?
先點遊戲性程序員的技能點的話,最後發展路線更多的是遊戲產品。圖形程序員的優勢是,專業技能高,在程序優化,引擎設計等各方面擁有比較高的話語權。劣勢是容易墜入唯技術論或者唯圖像效果論的深淵,對遊戲產品這樣一個綜合性產品的設計容易以便概全。(這裡沒有地圖炮,其實這都靠個人悟性,也有很多非常優秀的圖形程序員對遊戲產品本身也能有深刻理解的)
邏輯程序員對產品上線發布,以及產品的綜合水平有更多的想法和看法,比較適合發展成創業或者製作人。
7.新人去是否打雜以及打雜的工作內容,是否能學到東西?
打雜,做圖形先沉澱幾年,去掉浮躁的心。
再無聊的項目,有的人進去都會一直激動,覺得新鮮,無時無刻不再萌生新的想法。努力調整自己的心態去做這樣的人,就能持續學習。
8.另外還有手游公司和主機公司的問題。。。。二者區別肯定鐵大。。。。二者區別是什麼呢?哪個更有意義?
區別是有,鐵大與否我說不來。單機遊戲注重體驗,gameplay 和 玩家感受。氪金遊戲注重系統設計。
作為圖形程序員,和你最直接的利益是單機遊戲中注重玩家感受的部分,這部分有時需要特殊的渲染來營造,是你發揮職業技能的首選之地。但無論主機還是手游都需要優化,這部分能力無論如何你都需要培養。其實TA也是不錯的選擇,但是如果不從普通美工的活做起,不了解建模,貼圖等每道工序,及積累豐富經驗,是做不好TA的。但只會寫些shade是不能稱之為圖形程序員的。
如果在北京的話可以來我們公司看看。有興趣可以私信我
作為一個985軟工畢業,圖像渲染底層用c實現各種shading的玩家 找工作表示好難,各種要經驗or研究生學位(2012年)。。。後來只能去做頁游後端了。。
2.這個職業未來方向是什麼呢?感覺離主程與技術總監都很遠。
由於不是引擎程序,其他問題就不回答了,簡單說一下我理解的主程和技術總監職位吧,歡迎友善的討論。凡事無絕對,環境不同,崗位職能也可能不同。
主程的崗位也分多種,比如客戶端主程序,服務端主程,小公司可能就一個主程崗位,客戶端和伺服器都管。
主程要做的事情很多,主要有2方面:1. 技術。需要根據策劃需求來制定客戶端和服務端的框架,搭建基本的通信和存儲等功能。針對遊戲類型來做技術選型,比如同步的模型,資料庫應該用啥,還要code review,協調各職能組的溝通和分配開發工作內容。在這方面邏輯程序相比引擎程序有優勢,因為他們從遊戲功能入手,一個功能可能橫跨客戶端和服務端,遊戲各個模塊都有接觸,所以對遊戲產品的大局理解更深。2. 管理。招人,培養,管理程序團隊,照顧他們,忽悠他們不要走,我們的項目很有前途,讓他們更專註的開發手上的東西。跟部門經理拍桌子,多要點活動經費什麼的,這點小公司的更累。考察主程的不光你是技術水平,還有情商和管理能力等等。這點邏輯程序也是有點優勢的。
技術總監相比主程更關注技術多一些,比如如何沉澱和提高程序的整體技術實力,讓公司所有的項目能平穩的運行。講究的對技術理解的深度。
所以我認為引擎程序走最後可以成為技術總監相比主程會更容易一些。
而且。。技術總監一般是管主程的~~~
以上 :)現在國內公司專業的圖形圖形程序員其實比較尷尬,手游大部分用unity基本用不著你,端游幾乎沒公司敢開新項目了,除非你出道早靠這條路混了個leader然後轉管理,國內很難有機會像國外圖形程序那樣深入持續得搞技術,真心想搞圖形學好英語出國去搞吧
推薦閱讀:
※程序員的職業發展路線應該是由廣度到深度還是由深度到廣度?
※碼農如何進動畫影視公司,後續發展怎麼樣?
※程序員使用無功能鍵區的鍵盤+IDE開發,是一種怎樣的體驗?
※為什麼知乎上這麼多人推薦 HHKB,卻不反覆強調說該鍵盤不適合一部分程序員?