2020年4月技術導讀
首先,感謝所有將自己時間貢獻在知識分享的人們。
本文將簡單地介紹下最近我看到的想學的、有意思的教程、視訊等,內容不僅限於遊戲開發。大家可以做個參考,說不定其中就能找到適合自己的教程,進一步打算接下來的學習。
這個文章型別和之前寫的都不一樣,一方面有自己時間少、沉澱不夠、不能持續輸出的原因,另一方面是因為這些東西都比較碎,也不好在記錄生活的微博上釋出一些專業的東西。至於這個導讀會不會成為一個系列來更新,還要看看我有沒有足夠東西來分享啦。
書籍
《程式設計師修煉之道(第2版)》
在我經過了入門階段之後,發現很多以前學的很多教程,都很難在工作中進行參考。恰巧雲鳳翻譯的第二版已經出版了,裡面的內容讓我對程式設計“修煉”有了更深的理解。
投資知識,收益最佳。 ——本傑明·富蘭克林
學習學習再學習!
遊戲開發:世嘉新人培訓教材
這本書我從 17 年等到現在,三年了,拿到手之後覺得所有的等待都是值得的。
從第一章就能看出作者踏實的程式設計功底和力求和對優化的不倦追求。一個命令列推箱子游戲從過程式的實現,到運用 C++風格的物件導向的實現,到章節末為了講解底層記憶體儲存結構而把專案中所有變數都存在一個記憶體陣列中的實現。從中作者講解基礎的 C++ 語法、位運算、指標和引用的異同等概念。
接下來的章節,作者還講解 2D 圖形處理、狀態、碰撞、數學等等遊戲密不可分的章節,由於作者都為章節提供了類庫,因此不必擔心書是否會過時,讀者只需踏踏實實跟著作者打基礎即可。
雖然我很少寫 C++,也清楚學 C++ 在遊戲開發中是逃不開的,乾脆就啃這本書的同時把 C++ 也給上手了,一箭雙鵰!
這本書也是我近期著重看的一本書,同步更新練習在:Latias94/game-programmer-book-training
Data-Oriented Design
一本深度講解面向資料設計的書籍,當你熟悉了物件導向程式設計,可以嘗試看看這本書,用一種不同的思維方式看待你的資料。Unity 開發者在 ECS 正式版公佈之前,也可以先深入瞭解一下面向資料設計的模式。
作者在其網站公開了書籍內容,地址為:Data-Oriented Design
同時也可以參考這篇導讀:Highly recommended read : dataorienteddesign.com/dodbook
公開課
圖形學
遊戲程式設計類書籍涉及的內容太雜,不適合用作專門學習圖形學的參考資料。OpenGL / Shader 確實是應該學習的內容,但是以我的理解來看,更適合先入門圖形學基礎之後再去進一步學習,這樣會簡單很多。這也是我個人的理念:我們要學的是圖形學,而不是圖形學 API,這兩者應該完全分開看待。另外 OpenGL / Shader 這塊學多了會容易讓人產生理解偏差,覺得圖形學就等於實時渲染(當然是錯的,但是很多人真的這麼認為!)。
於是閆老師釋出了一門公開課:“GAMES101: 現代計算機圖形學入門”。
本課程將全面而系統地介紹現代計算機圖形學的四大組成部分:(1)光柵化成像,(2)幾何表示,(3)光的傳播理論,以及(4)動畫與模擬。每個方面都會從基礎原理出發講解到實際應用,並介紹前沿的理論研究。通過本課程,你可以學習到計算機圖形學背後的數學和物理知識,並鍛鍊實際的程式設計能力。
課程作業系統:GAMES2020線上課程:計算機圖形學(閆令琪)課程作業系統
國外 MIT CMU 部分課程翻譯
Simviso 是一個翻譯國外課程的民間組織,目前已經翻譯了:MIT 6.004 計算機組成原理、MIT 6.824 分散式系統 2020、CMU資料庫15-445/645、史丹佛編譯原理 等頂級教程。他們接下來的翻譯計劃也在 simviso 國外MIT CMU 史丹佛計算機科班頂級課程翻譯系列 中提到。(我在想這一段字的知識濃度得有多高 Orz)
原理性的東西參考這些教程最好不過了,我們還可以跟著課程手寫一個資料庫、CPU 等等。
教程
Custom SRP
Catlike Coding 的教程一向是從基礎講到進階應用,在 SRP 的主題中,他寫了不少基於 Unity 2019 版本的自定義渲染流水線的教程,目前還在持續更新。
Ray Tracing In One Week
跟著 Ray Tracing In One Week 系列教程一步步來做個光線追蹤器,也可以在學完上面圖形學公開課中的光線追蹤部分後來看這個教程作為補充。這個教程也可以用 Unity 來做,例如我的 Latias94/RayTracingInOneWeekWithUnity,雖然只跟到第八章 = =。
跟完這個教程之後,如果對進一步的 DOTS、優化方面學習感興趣的話,我還提供了下面四篇文章/專案作為參考。
- Daily Pathtracer
- 跟著 aras-p 做一個 C# + burst 路徑追蹤器,還可以參考一下陳嘉棟老師的介紹:《Daily Pathtracer!安利下不錯的Pathtracer學習資料》
- Unity Toy Path Tracer
- 路徑追蹤器的另一個實現,該作者想進一步探索 Unity 的 DOTS 技術棧,尤其是 Burst + Job System,對這方面感興趣的不要錯過。
- weekend-tracer
- 又一個 C# + burst 的路徑跟蹤器實現。
- GPU Ray Tracing in One Weekend
- 用 Compute Shader 實現光追的基於 GPU 的實現。
Go 語言探索萬物原理
瞭解了當前使用的技術,可以擴寬領域,學習一些和專案不相關的東西,說不定會帶來靈感。
老司機帶你飛系列
Github 地址:happyer/distributed-computing
- 《老司機帶你用 Go 語言實現 MapReduce 框架》
- 《老司機帶你用 Go 語言實現 Raft 分散式一致性協議》
- 《老司機帶你用 Go 語言實現 Paxos 演算法》
- 《老司機帶你用 Go 語言實現分散式資料庫》
7 天用 Go 動手寫/從零實現系列
Github 地址:geektutu/7days-golang
- 7天用Go從零實現Web框架 - Gee
- 7天用Go從零實現分散式快取 GeeCache
- 7天用Go從零實現ORM框架 GeeORM
視訊
- 【雙語】紀念碑谷的關卡創作挑戰 | Monument Valley's Level Design | Mix and Jam
- Mix and Jam 用六分鐘清晰地講解了紀念碑谷製作思路,並提供了專案參考。
文章
- Ray Wenderlich - Introduction to Shaders in Unity
- Ray Wenderlich 的教程通常會提供初始專案,手把手帶你寫程式碼,加上獨特風格的配圖,很適合用來入門某個技術。這次帶來的是如何寫 Unity Shaders,實現一個簡單的水流 Shader。
最後
看了看內容,這次分享的視訊和文章都偏少了,其實主要是想分享前面的書籍和公開課,有機會的話有價值的視訊和文章我也會多關注,並且分享到導讀中。如果你喜歡這系列,或者想對這個系列有其他的想法,歡迎在評論區告訴我。
相關文章
- 2020年5月技術導讀(遊戲向)遊戲
- Cloud + TiDB 技術解讀CloudTiDB
- 讀《etcd 技術內幕》
- 最牛逼的技術能力,是技術領導力
- PHP 核心技術 --物件導向PHP物件
- Cube 技術解讀 | Cube 小程式技術詳解
- Cube 技術解讀 | Cube 卡片技術棧詳解
- 思維導圖形式帶你讀完《大型網站技術架構》上網站架構
- 思維導圖形式帶你讀完《大型網站技術架構》中網站架構
- .NET 技術棧 思維導圖
- 婦與術(一):女性體育報導,技術or花瓶?
- 併發技術4:讀寫鎖
- 如何閱讀技術類書籍
- java核心技術閱讀筆記Java筆記
- 技術雜談 之 室內導航
- Flutter 底部導航——BottomNavigationBar | 掘金技術徵文FlutterNavigation
- 軟體設計師:物件導向技術物件
- 漏洞優先順序技術(VPT)導論
- 一文讀懂Apache Flink技術Apache
- 《現代前端技術解析》讀後鬼扯前端
- 技術書籍超級閱讀法
- Tair持久儲存系列技術解讀AI
- 回饋讀者【贈技術書通知】
- GaussDB技術解讀系列:效能調優
- Qtum量子鏈關鍵技術解讀QT
- Ceph分散式儲存技術解讀分散式
- 如何解讀wlan的通訊技術?
- 滴滴AR實景導航背後的技術
- 看完就能掌握的PHP核心技術 - 物件導向PHP物件
- 技術人如何提升自己(推薦必讀)
- 解讀圖資料庫技術路線資料庫
- 讀《JavaScript核心技術開發解密》筆記JavaScript解密筆記
- 技術解讀GaussDB (for MySQL)流控機制MySql
- 陽振坤:OceanBase 4.0 核心技術解讀
- 【導航】讀書導航
- Netpoll導讀
- 網路技術有一個問題,技術迭代太快導致了新的風險
- 如今領占主導地位的19種AI技術!AI