我目前正在爲遊戲引擎編寫一個內存分配系統,我想知道是否有經驗豐富的開發人員可以幫助您瞭解哪些分配器結構是有用的。遊戲引擎的分配器
我知道這聽起來有點令人擔憂的一些人,所以我想我需要證明我的位置一點點。我已閱讀答案here和here(以及博客,它們指向here,here和here)。但是請看,我已經嘗試過「先製作一個遊戲,然後重複使用的代碼就是你的'引擎''的東西,但它並不適合我。我發現我實際上一直陷入那些我一次又一次做的事情中(可能沒有很好地重用我的代碼),並且在任何遊戲中都沒有得到很大的提高。
所以,我決定編寫這些東西,我是重用一遍一遍一次......做一次,把它放在一邊。
我真的發現自己脫離了我的聯盟,所以我買了幾本書。傑森格雷戈裏(GEA)的遊戲引擎架構非常好,順便說一句,但我也有遊戲編碼完成(McShaffry)和編程遊戲AI by Example(Buckland)。 GEA對高性能分配器有一些非常好的想法,並且對我非常感興趣,所以我想我會放棄它。
我編寫了一個基於堆棧的分配器,並且幾乎完成了一個基於池的分配器。兩者都具有內存對齊的能力,並且可以被分配用於不同的內存預算(即,任何分配器可以例如使用「零售」存儲器或「開發」存儲器等)。我發現,就編程技能/興趣水平而言,創建這些組件是一件很有意義的事情。
如果有任何開發人員那裏誰願意建議是有用的任何其他分配結構或經常拿出在遊戲開發我想知道。 ?或者如果有任何開發人員在整個職業生涯中從未使用過其他任何東西?
再次證明我的問題(我幾乎可以聽到人們竊竊私語「只要製作你自己的遊戲,看看你需要什麼結構......」,但是......)遊戲引擎架構對我來說是一個很好的資源,因爲作者願意並且毫不羞恥地說:「嘿,這就是這個行業最大的挑戰。」如果有人能夠做一些'經驗 - 重用'並且說'考慮這個結構',那麼這將爲我節省大量時間寫出整整一堆遊戲並找出有用的東西。
這個派對有點遲到,但是在你需要的時候開發自定義分配器對於遊戲引擎來說可能是一個非常昂貴的建議。通常情況下,只有當您接近開發週期的末尾時纔會「需要它」,那時您將不得不重構引擎的重要部分,以便最有效地使用它們。如果您正在開發任何大量物品的實時遊戲,並且正在考慮針對桌面PC平臺以外的其他任何遊戲,那麼從長遠來看,您幾乎肯定會需要它們。 – Gerald 2012-07-14 03:26:10