我會建議,從需求出發,以開發某特定型別遊戲為目標,最後通用的部分就是遊戲引擎和相關工具。遊戲不要太複雜,例如避免角色動畫,可考慮載具之類。整個計劃要按需求一步一步來,例如目標是一個第三身坦克射擊遊戲,可拆分為多個小目本標:
1. 初始化視窗,渲染一個三角形。
2. 渲染旋轉的立方體。
3. 用鍵盤控制立方體移動和旋轉。
4. 加入一個全域性方向光源。
5. 用一個動態陣列儲存遊戲物件(暫時都是長方體),可獨立控制它們的位置、坐向、顏色,每幀逐一渲染。
6. 用上述的功能,以程式方式生成一個簡單場景(地面、大樓)。
7. 控制長方體形式的坦克在場景移動,令攝像頭跟隨。
8. 匯入某種三維格式的三維模型,如 obj,先只考慮頂點位置、法線,渲染它。
9. 重構場景結構,可用上元件的方式。同時更改渲染和遊戲程式碼。
10. 要解決坦克穿過大樓的問題,可實現簡單的碰撞檢測,或使用現成的物理引擎如 bullet。
11. 發射炮彈,模擬彈道。
12. 加入具簡單 AI 的坦克。...實現過程中,儘量透過重構把遊戲邏輯和遊戲引擎分離。關於遊戲引擎的基本概念,可參考敝人譯作。(手機碼字,不寫太多,有具體問題再問吧。)
我會建議,從需求出發,以開發某特定型別遊戲為目標,最後通用的部分就是遊戲引擎和相關工具。遊戲不要太複雜,例如避免角色動畫,可考慮載具之類。整個計劃要按需求一步一步來,例如目標是一個第三身坦克射擊遊戲,可拆分為多個小目本標:
1. 初始化視窗,渲染一個三角形。
2. 渲染旋轉的立方體。
3. 用鍵盤控制立方體移動和旋轉。
4. 加入一個全域性方向光源。
5. 用一個動態陣列儲存遊戲物件(暫時都是長方體),可獨立控制它們的位置、坐向、顏色,每幀逐一渲染。
6. 用上述的功能,以程式方式生成一個簡單場景(地面、大樓)。
7. 控制長方體形式的坦克在場景移動,令攝像頭跟隨。
8. 匯入某種三維格式的三維模型,如 obj,先只考慮頂點位置、法線,渲染它。
9. 重構場景結構,可用上元件的方式。同時更改渲染和遊戲程式碼。
10. 要解決坦克穿過大樓的問題,可實現簡單的碰撞檢測,或使用現成的物理引擎如 bullet。
11. 發射炮彈,模擬彈道。
12. 加入具簡單 AI 的坦克。...實現過程中,儘量透過重構把遊戲邏輯和遊戲引擎分離。關於遊戲引擎的基本概念,可參考敝人譯作。(手機碼字,不寫太多,有具體問題再問吧。)