嗨,大家好我開始了一個新的小遊戲引擎的設計,我假設遊戲引擎是一個DLL,然後爲使用這個DLL並輸出一個EXE文件的遊戲構建一個項目。遊戲引擎作爲EXE和遊戲作爲DLL?
但後來我閱讀了最新的ID技術遊戲引擎,以及他們如何以相反的方式進行操作。 (http://fabiensanglard.net/doom3/index.php)
這不是真的解釋爲什麼。我覺得它與modding有關,因爲在發動機(EXE)是封閉源的情況下,只有遊戲(在這種情況下,DLL)向公衆開放了很長一段時間。
但我想知道是否有其他原因。
由於我知道DLL項目應該有所有可重用的代碼。正常的項目應該是應用程序,它會引用可重用的DLL。通過這種方式,您可以在DLL項目中構建一個可用於其他任何未來項目的框架。
我能想到的另一個唯一原因是,AFAIK只有DLL的名字被記錄在程序文件中,沒有文本或數據,所以如果遊戲可能比引擎大,它可以使可執行文件的大小更小。
[編輯]
我已經想到了另一個理由,它是這樣的:發動機是一個EXE所以它可能是,它可能沒有一個遊戲DLL使用嗎?像CAD或腳本等工具一樣?
是的,我確實知道。例如Stefan Zerbst的「3D遊戲引擎編程」深入探討了爲每個模塊使用不同的DLL。但它將遊戲作爲把所有東西放在一起的核心部分。這就是爲什麼我問是否有引擎的隱藏原因(在IDTech4的情況下,「引擎」是除了進入不同DLL的圖形模塊之外的所有東西)是中心部分(EXE文件),並將遊戲加載爲一個DLL。 – 2013-02-21 13:48:17
建立一個通用的遊戲環境,根據模塊和配置變成一個特定的遊戲,除了編寫使用其他模塊的遊戲之外,不能輕易地被其他遊戲重複使用。 – 2013-02-21 14:06:30
你能舉個例子嗎?我相信你可以使用模塊實現相同的通用遊戲環境。 – 2013-02-22 11:36:19