如何有效地學習ue4的源碼?或者說有什麼地方要注意的?
好龐大,都不知道從哪裡開始下手。。
這麼跟題主說吧, UE3我看過, 也都只敢從D3D渲染驅動這塊逐步往上看, 因為D3D API我比較熟. 但是越往上看, 越看不大懂. 最後只能把一些牛B的寫法學了. 真正的架構和思想, 到UE4已經是高度抽象了. 如果連引擎都不會用來看引擎代碼, 簡直就是耍流氓
結論:先學會用引擎,然後再看代碼
首先,你要搞清楚為什麼要看它的代碼
如果你想學某項技術的細節,還是去找單獨的Paper/Sample,在UE4里藏得很深你很難找到
如果你想學軟體結構,設計模式,建議你挑一個簡單的去學
如果你想做VR/遊戲項目,你沒必要去看引擎的代碼,管好你應用層即可,網上有的是教程
如果你希望在使用它的過程中遇到Bug可以隨時修改,不好意思,輪不到你去改它的Bug,出現問題一定是你應用層的Bug。
如果你想了解更多的,文檔和入門教程中都沒有提到的功能,或是添加你想要的功能,把代碼讀透的確是唯一的辦法,需要注意的是99%的你想要但是覺得它沒有的功能,它其實都有,只是你沒找到。
如果你想用它的代碼做一個全新的平台/編輯器,希望你量力而行,不要一時心急毀了你作為程序員的信心首先贊一個,願意看代碼的都是定力太高,痔瘡俠,言歸正傳
1.先了解一下引擎結構,知道大概的模塊位置
2.先確定你要從哪個部分開始下手,代碼很多,跳轉很多,做筆記是必須的,3.代碼裡面有說明,下端點跟一下,然後做筆記然後就是耐心了,祝你好運從RHI開始看 相關的實現只看了OpenGL部分 RHI本身抽象 各個資源的定義以及RHI本身的設計 OpenGL相應的RHI實現,包括了很多內容 其中 往下看Shader在進編譯ShaderCore那塊個人覺得可以打住了 往上看到有基於UObject的時候可以打住了 我也只看了那麼點 邊看邊學邊寫 現在自己的玩具已經能基本渲染一些模型場景了
在實踐的過程中學習效率最高,我們在做一款基於ue4點次世代遊戲,來我們公司實踐一下吧。有意的話私信我
寫了這麼多年代碼 每每遇到好引擎都立足大局想細細品嘗其體系架構 以此為樂。
後來被老司機點醒「我說句難聽的。你看了這麼多,你會用嗎?你所謂的看懂,多年後的你看來都是錯的。」
痛定思痛,所以推薦UE4直接挑選自己想要看的模塊,不必深究部分實現。
每當產生「這jb代碼怎麼寫的跟屎一樣」這種人生錯覺的時候……不如直接上手用了再說,「想得太多做的太少」會是我程序員進步路上一大絆腳石。
最好是邊做邊學。先看actor及子類的類視圖,每個類都有很清楚的注釋。並且把對應的物體放進場景跑一跑。再看component和子類。也是掛到actor上試一試。然後做一個自定義藍圖節點了解一下藍圖過程,自定義動畫節點看一下動畫藍圖。再往後根據自己想看的部分仔細看就可以了。
當年帶團隊做引擎的時候,到後來自己都看著費勁了,這個時代已經不再是個人英雄時代了,看別人的引擎最好以熟練使用為基礎,並且帶著明確的目的去看,泛泛去看就是浪費時間
在中國,還沒到開發自己商業引擎的時候,這種時候,看引擎源碼這種事情,當興趣喵喵就好,就好像你喜歡量子力學,宇宙物理,可以看,但別指望從中得到什麼特殊的好處
如何有效地學習ue4的源碼?
先用ue4做東西,從編輯器逐步到源碼,從遊戲性代碼逐步到引擎代碼,從細節逐步到整體,看的時候要有針對性。新手不要直接去看源代碼看架構,源代碼上,如果你不是老司機,有的東西謹防白紙黑字寫的明明白白你照樣不懂他在說啥。架構上,新手談架構都是扯淡。
工程上可能會有些奇怪的經驗之舉,沒有經驗很難明白為什麼那麼做,或者直接看天書。
或者說有什麼地方要注意的?需要注意的地方就是要有一個強勁點的電腦。
任何引擎都一樣,看引擎主要是看架構,U4的架構雖然龐大但是各個Module其實已經給你分的很清晰了,了解各個Module的作用和互相之間的關係,不必在意太多細節,除非你對某個特性非常感興趣,比如渲染,那就仔細看看。很多人有一個誤區覺得渲染管線看明白了就是引擎看完了,其實這些都是細節,渲染只是一個模塊,雖然是相對重要的模塊。同意上面說的,先要會用引擎。
沒有必要看懂的,會用就夠了,unreal代碼辣樣複雜,各種調用關係各種凌亂。如果真心想看,建議從tool看起。
推薦閱讀:
※Unity上面有什麼好的熱更新方案?
※在 Ubisoft 工作是什麼樣的感覺?
※中國的遊戲為何始終在遊戲性上沒有大的進步?
※國外有哪些遊戲在法律上已經被認定為侵權另一款遊戲的案例?
※Unity3d客戶端開發,要深入學習,更需要先從哪方面入手?