Czy muszę po prostu tworzyć instancje całej mojej grafiki do pamięci, które są ładowane z pliku? Jaki jest najlepszy sposób, aby sobie z tym poradzić? Czy potrzebuję tylko jakiegoś menedżera zasobów, który tworzy te instancje graficzne podczas ekranu ładowania, a następnie jest o nich mowa później?
Jakie są typowe rzeczy, które należy wstępnie załadować w grach? Ile powinienem wstępnie załadować?
Czy warto wyświetlać jakiś pasek postępu? Jak mogę skrócić czas ładowania? Jak powinien wyglądać ekran ładowania?
Jakie są dobre przykłady ładowania ekranów? Jakieś przykłady kodu?
W szczególności moja gra jest przeznaczona dla Andriod (Java / mobile), ale możesz udzielić ogólnych odpowiedzi.
Odpowiedzi:
Typowe rzeczy do wstępnego ładowania to wszystko, czego będziesz potrzebować w czasie rzeczywistym. Za wyjątkiem koncepcji takich jak clipmapy i megatekultury (jeśli chodzi o ładowanie potrzebnych części i iteracyjne aktualizowanie ich podczas poruszania się po świecie), będziesz chciał zachować wszystko, czego potrzebujesz na swoim poziomie / obszarze / cokolwiek w pamięci, a nie na dysku. IO działa powoli, a ty nie chcesz ładować tekstur, gdy skręcisz za róg i wkrótce się wyświetli. I przez wszystko rozumiem tekstury, dźwięki, siatki, metadane ... wszystko.
Jeśli możesz pokazać pasek postępu (tzn. Masz dokładne odwzorowanie kroków ładowania na wartości procentowe), to na pewno to pokaż. Jeśli nie, przynajmniej pokaż coś, na przykład krótką wiadomość tekstową lub wskaźnik ładowania, który jest aktualizowany po każdym kroku, abyś mógł przynajmniej powiedzieć, że coś się dzieje.
Jeśli jest coś, o czym wiesz, że będzie potrzebne, ale nie od razu, możesz załadować to w tle i zatrzymać grę (niezbyt dobrze, ale upewnij się, że rzadko się to zdarza), jeśli jest to potrzebne zbyt wcześnie. Pomoże to w skróceniu czasu ładowania. Nie wiem zbyt wiele na temat rozwoju Androida, ani tego, czy urządzenie będzie musiało poradzić sobie z grą, ale zwykle jest to dość lekkie na procesorze, więc nie powinno być tam dużego problemu.
źródło
Musisz być „Siatka splajnów”
źródło
Zależy, czy wybierasz jeden ekran ładowania i natychmiastowe przejścia poziomu lub wiele ładowań.
Powiedziałbym, że ten drugi byłby lepszy pod względem pamięci.
Coś jak:
//First loading screen
Load menu layouts or whatever
Load GUI assets
Show something to pass the time
Switch to menu
//In between levels
Remove any graphics specific to the last level - get rid of something that isn't going to reappear like a boss.
Load level graphics that haven't already been loaded
Again, show progress or something to pass the time
A podczas ładowania pamiętaj, aby nie mieć czarnego ekranu. Lub w tym przypadku statyczny ekran. Wiele razy widziałem jakiś nieruchomy obraz na początku aplikacji i od razu pomyślałem, że się zawiesił.
Dobrym sposobem na zaangażowanie gracza byłoby po prostu ładnie narysowane tło sceny w grze lub odniesienie do fabuły; pasek ładowania z / bez procentu, o ile nie jest to statyczny „ładowanie”; a potem może jakieś informacje.
źródło
Na platformy iPhone i Android musisz załadować wszystkie tekstury i dźwięki. Ładowanie tekstur i dźwięków jest bardzo wolne na starych telefonach takich jak iPhone 2G, 3G lub G1. Nie możesz tego zrobić w grze.
źródło
Jak powiedzieli inni, jeśli możesz załadować wszystkie dane poziomu, zanim zaczniesz je odtwarzać, będziesz mieć znacznie lepszą wydajność. Jest to częste źródło problemów w czasie klatek, aby załadować zasoby podczas gry.
Typowe rzeczy do zrobienia podczas ładowania ekranu to statyczny obraz tła, bardzo prosty poziom, kilka wskazówek i wskazówek, jak grać, szybkie animacje itp.
Oto ekran ładowania dla APB. Cholernie fajne. :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related
Oto pseudo kod pokazujący pasek postępu na ekranie ładowania:
Ugh, zmuszony do użycia! = Ponieważ przerwał renderowanie kodu, gdy użyłem <
źródło
Ładowanie ekranów może służyć do ukrycia praktycznie wszystkiego; ładowanie zasobów, wszelkie potrzebne połączenia (tcp itp.), wypełnianie map obiektami gry i inicjalizacja.
Często zajmuję się zarządzaniem zasobami (lub menedżerem każdego rodzaju zasobu - dźwiękiem, grafiką itp.) I ładowaniem tego, co zostanie wykorzystane w pamięci. Następnie poproś menedżerów o wyciągnięcie referencji z gry.
Wyświetlanie paska postępu, określanie, co należy wstępnie załadować itp. Wydaje się zależeć od projektu, czasu ładowania i gustów. Paski postępu są dobre, jeśli są dokładne i jest to długi ładunek (dobrze wiedzieć, jak długo trzeba czekać).
Powiedziawszy to, na moim telefonie z Androidem preferuję aplikacje, które mają własny, gustownie wykonany ekran ładowania. Nie potrzebuje paska, ale animacja informuje użytkownika o działających programach. Wierzę, że Android ma domyślny pasek, którego możesz użyć, co dobrze działa.
Oto pytanie SO, które może Cię zainteresować.
źródło
Warto zauważyć, że platformy z wymogami kontroli jakości (np. X360, PS3, DS itp.) Będą wymagały animacji na ekranie ładowania (lub w rzeczywistości dowolnego ekranu, który pozostaje statyczny przez ponad kilka sekund ).
Wynika to z tego, że w przeciwnym razie użytkownik może pomyśleć, że gra się zawiesiła, podczas gdy w rzeczywistości ładowanie zajmuje dużo czasu. Nawet tam, gdzie nie jest to wymagane, z pewnością doradziłbym to.
Każda forma animacji jest w porządku, ale prosty pasek postępu może nie być najlepszy, ponieważ wszelkie duże kroki ładowania mogą spowodować, że pasek postępu w ogóle się nie porusza, co oznacza, że ekran jest tak statyczny, jak gdyby w ogóle nie ma baru. Oprócz wskaźnika postępu lepiej wyświetlać ciągle poruszający się obraz, na przykład obracającą się ikonę.
źródło
Do ekranów ładowania w Conquest poszedłem z odrobiną opisu misji (jaki to był rodzaj gry, a także trochę fabuły misji) i podstawową pomocą dotyczącą poleceń.
W tle ładowałem dźwięki. Grafika była ładowana na żądanie i wydawało się, że działa całkiem dobrze w naszej grze, ale dźwięki były niedźwiedziem, więc wstępnie załadowałem wszystkie dźwięki potrzebne do misji. Przycisk Ładowanie / Start jest wyłączony, dopóki wszystko nie zostanie załadowane, ale nie mam żadnej animacji (którą warto dodać).
To jest nasza pierwsza gra, więc wciąż się dużo uczymy, ale jak na razie nam się to udało.
źródło