2015-09-04 18 views
1

我的問題與這個問題有些相關(Better to load resources on the run or to pre load them on memory?),但是我有一些自己的想法可以提出來。運行應用程序,更好地加載資源或存儲它們以使用?

也就是說,我知道動態加載資源可能會產生性能影響(延遲加載,延遲等),但我想真正的問題是預加載所需的所有內容還是更好加載,因爲它們更好是必要的。

例如:我目前正在開發2D遊戲。在遊戲加載時,它會自動加載一些所需的圖像/精靈。不過,我正在考慮擴展它,以包括地圖,項目和npcs(目前保存在文本文件中)。這就是說,加載地圖的延遲時間相當明顯(當遊戲中更改地圖時爲0.5 - 1.25秒)。 NPC和物品沒有多大意義(因爲它們通常很小,而且它們會有一小部分)。

這是一個更好的做法來加載啓動程序的一切,或者它被認爲是一種不好的做法?同樣,如果它僅適用於較小的實現,那麼您何時預計它會開始耗盡計算機以使它們全部加載?請注意,我希望遊戲中包含大約200-500幅地圖,每幅地圖最大大小約爲50kb,所有NPC /項目的地圖總數小於200kb。

回答

1

這是一個很好的問題。這是我解決它的方式。

我和兩個都去了。我在我的視頻遊戲中創建了航點。每個航點都有各種文件,必須由該航點裝載。然後我有一個文件加載器,它具有加載文件所需的路標的優先列表。每個航點都有它需要的文件。在我的遊戲中,當它到達一個沒有完成加載的路點時(文件加載器會跟蹤航點的完成百分比),它會以百分比形式顯示加載欄。

fileloader在單獨的線程上運行。在實現它之後,我注意到我在開始時只有一個快速加載欄,它爲第一個菜單加載了一堆菜單圖像,而且我再也看不到另一個加載欄。當用戶到達需要它們的地方時,所有文件都會被加載。

編輯:我不加載地圖的backgorund圖像,直到它需要。儘管該地圖中所有其他單位在遊戲的其他級別共享,但已經加載完畢。這裏有一個平衡,你願意用在用戶的計算機上多少內存永遠不會需要和加載時間,你願意讓用戶的時間。我能夠將我的內存佔用空間限制在150MB左右。這給了我空間來加載所有的地圖,如果我想要的話,我應該決定加載地圖的backgorund圖像。如果遊戲是一款小型休閒遊戲,而你的足跡已經在400MB,那麼我會考慮避免加載不必要的對象。隨着內存使用率的提高,您有更多的選項可用於加載可能不需要的對象,以減少加載時間。

+1

我正在考慮類似的東西,基本上把我的遊戲劃分到內容區域(例如,地圖1-60全部位於一個小的包含區域,因此加載它們,當它們交換到不同的區域時有一個加載屏幕)。它至少會略微優化內存使用情況。 – Sh4d0wsPlyr

相關問題