天天看點

有關引擎架構的一些總結

遊戲的引擎可比作賽車的引擎,而引擎是賽車的心髒,決定着賽車的性能和穩定性,賽車的速度、操縱感這些直接與車手相關的名額都是建立在引擎的基礎上的。遊戲也是如此,簡單地說,遊戲引擎就是用于控制所有遊戲功能的主程式。

關于引擎架構方面,我們可以把引擎裡的各個類封裝成一個類庫,再在用戶端的項目裡引入這個庫檔案,即可友善地調用類庫裡實作各個類的具體操作。一般引擎應包括哪些類了?在我做的一個渲染引擎中,有錄影機,D3D系統,聲音,字型,輸入系統,模型,拾取,地形,四叉樹,水等,還設計了一個App類,負責場景的資訊處理。可在用戶端設計一App的派生類GameApp,同時把場景類Scene作為GameApp的成員,通過在App設計相關的虛拟函數,則可實作在GameApp運用虛函數處理實際場景的資訊。

現讨論一下作為引擎的類庫的項目屬性的設定。

一:建立項目時應選取項目類型為類庫。

二:在項目屬性視窗裡,設定配置類型為靜态庫

三:在項目屬性視窗裡,配置屬性---C/C++---預編譯頭,設定為建立預編譯頭

四:分别設定Debug版本和Release 版本的工作目錄,輸出目錄等。

再設定用戶端的項目屬性,引入引擎類庫。

一:在項目屬性視窗裡,配置屬性---連結器---正常---設定附加庫目錄為引擎生成的類庫檔案(lib檔案)所在目錄。

二:在項目屬性視窗裡,配置屬性---連結器---輸入---附加依賴項,加入引擎生成的類庫。

三:若出現有關“預設庫MSVCRTD與其他庫的使用沖突“的錯誤資訊,則在項目屬性視窗裡,配置屬性---連結器---輸入---忽略特定庫裡輸入libcmtd.lib(Debug)/ libcmt.lib(Release)

四:在項目屬性視窗裡,配置屬性---C/C++---預編譯頭,設定為建立預編譯頭

五:分别設定Debug版本和Release 版本的工作目錄,輸出目錄等。

在實際操作中,應先編譯生成引擎的類庫,再編譯并運作用戶端的程式。

繼續閱讀