Jednym z powszechnych powodów jest to, że nie zawsze równie łatwo jest ustalić, czy zasób będzie potrzebny w najbliższej przyszłości.
Ponieważ jako przykład posłużyłeś się stronicowaniem terenu, będę kontynuować.
Jest całkowicie rozsądne, jeśli jesteś na danej siatce mapy, aby załadować wszystkie sąsiednie siatki map w tle. Wiesz, że użytkownik może co najwyżej wprowadzić jedną z nich. Kiedy to zrobią, możesz usunąć te, które już nie sąsiadują i załadować te, które już są. Zauważyłeś to.
Teraz wyobraź sobie szybką podróż. Nie ma absolutnie żadnego sposobu, aby przewidzieć, dokąd użytkownik może się udać. Mają (zwykle) prawie całą mapę do wyboru. Wstępne ładowanie wszystkich możliwych lokalizacji szybkich podróży zajęłoby o wiele za dużo pamięci (możesz równie dobrze załadować całą mapę do pamięci) i zdecydowanie za dużo czasu (zakładając, że cała mapa nie została wcześniej załadowana). Kiedy to się stanie? Kiedy otworzą okno szybkiej podróży? Problem stałby się tylko kilka razy gorszy!
Dlatego nawet większość gier z funkcją stronicowania terenu „bez obciążenia” wciąż ma ekrany ładowania w czasie szybkiej podróży. Dlatego też, jeśli poruszasz się wystarczająco szybko, czasami możesz uruchomić ekrany ładowania nawet w grach z mapami bez obciążenia (pamiętam, że zrobiłem to w TES Oblivion).
Teraz wyobraź sobie, że dotyczy to ogólnie zasobów gry, w których relacje często nie są oczywiste. W końcu będziesz musiał albo załadować wszystkie możliwe opcje, albo zacząć zgadywać, co zrobi użytkownik. Zgadywanie jest kosztowne (zarówno w fazie projektowania, jak i procesora) i skomplikowany bałagan w programie. Konkretne przykłady:
- Zapisz pliki: musisz załadować każdy zapisany plik, zanim użytkownik dotrze do ekranu zapisywania, lub zgadnij, który plik może załadować (najnowsze 5 itp.).
- Interfejs użytkownika: wiele gier strategicznych zmienia interfejs w zależności od frakcji. Musisz załadować każdy możliwy projekt interfejsu użytkownika, zanim użytkownik rozpocznie grę.
- Świat gry: w grach generowanych proceduralnie, takich jak Minecraft lub RTS, takich jak Civilization, świat nie istnieje, dopóki się go nie obejrzy, w różnym stopniu. Wstępne ładowanie jest niemożliwe, ponieważ na początku nie istniały; ich wstępne obliczenie można w najlepszym wypadku wykonać podobnie jak wstępne ładowanie i nie ma zastosowania w przypadku RTS.
Mogą istnieć sposoby na obejście niektórych z tych problemów, ale znalezienie tego kosztuje prawdziwe pieniądze . Większość graczy akceptuje rozsądne ekrany ładowania, a jeśli tak, to zazwyczaj wydaje więcej na sprzęt, aby je złagodzić. Jest to postrzegane jako problem sprzętowy , a nie problem z grą , chyba że jest to nadmiernie nadmierne lub w inny sposób zakłócające (jak ładowanie na środku poziomów).
Pamiętaj, że ładowanie w tle nie jest bezpłatne. Współczesne wykorzystanie terenu ładującego w tle i niektórych plików modelu ma zwykle minimalny wpływ, ale jeśli nagle zgadujesz o wielu różnych zasobach, zwłaszcza jeśli nie masz wiarygodnych danych i musisz rozładować wiele zasobów i załadować zbędne , możesz zmielić system w pył.
Ideą ładowania w tle jest wykorzystanie martwych cykli dla lepszego wykorzystania, ale jest tylko tak wiele martwych cykli do użycia. To samo dotyczy pamięci - wstępne ładowanie może znacznie zwiększyć wykorzystanie pamięci przez grę. Za pomocą ekranu ładowania możesz zrzucić istniejące zasoby. Nie ma takiego luksusu z ładowaniem w tle, co oznacza, że może podwoić zapotrzebowanie na pamięć gry pod tym względem.