大家好,這段時間我完成了“積木模式”、“管道模式”、“多線程模式”、“依賴隔離模式”的初稿
目前我已經完成了所有模式(7個模式)的初稿,下面會給出它們的定義和使用場景,如果您正好能用到,請聯繫我提前閱讀模式的初稿,歡迎大家給出反饋建議,您的大名有機會出現在《3D編程模式》的書中,感謝!
我的QQ號:
395976266
我的微信號:
chaogex
這裏是所有的的寫書記錄:
《3D編程模式》寫書記錄
模式的概況
積木模式
定義
系統由積木搭建而成
使用場景
多人開發的大型系統
具體場景如下:
- 多人開發的引擎
- 多人開發的編輯器
管道模式
定義
將連續的、有一定執行順序的邏輯離散化爲一個個獨立的Job,按照配置數據在管道中依次執行
使用場景
需要按串行或者並行的順序連續地執行多個邏輯
具體場景如下:
- 系統的初始化
- 引擎主循環中的更新、渲染
多線程模式
定義
首先並行運行多個線程,然後同步更新主線程數據
使用場景
需要渲染大型場景或者有並行邏輯的系統
具體場景如下:
- 需要渲染大型場景
- 開多個線程來並行地執行一些邏輯,如加載超大模型、進行復雜計算等邏輯
依賴隔離模式
定義
隔離系統的外部依賴,使得外部依賴的變化不會影響系統
使用場景
使用了頻繁變化的外部依賴的系統
具體場景如下:
-
替換編輯器使用的引擎
-
升級編輯器使用的引擎的版本
-
增加編輯器使用的引擎
拼接模式
定義
分解包括各種分支的大數據爲小塊單位,按照配置文件來拼接
使用場景
系統需要構造包括各種分支的數據
具體場景如下:
- 構造引擎的Shader代碼
- 構造遊戲的地圖數據
撤銷重做模式
定義
操作時保存不可變的state,撤銷/重做時取出對應的state來作爲當前的state
使用場景
使用函數式編程範式開發的系統,該系統需要撤銷/重做功能
具體場景如下:
- 需要撤銷/重做功能的編輯器
- 需要保存/載入功能的遊戲
ECS模式
定義
組合代替繼承,集中管理組件數據,分離邏輯和數據
使用場景
適合於大型的遊戲,場景中有很多人物,人物的行爲很多或者很複雜
具體場景如下:
- 有很多個種類的遊戲人物的遊戲
- 遊戲人物有很多的行爲,而且還經常會增加新的行爲