Wszystkie wyspy Unreal Editor dla Fortnite (UEFN) obsługują szeroką gamę sprzętu, od wysokiej klasy komputerów PC po urządzenia mobilne. Jednak, aby stworzyć popularne wyspy na urządzenia mobilne, należy od samego początku pamiętać o optymalizacji i wydajności pamięci.
Ta strona zawiera wskazówki dotyczące kluczowych kwestii, które należy wziąć pod uwagę podczas projektowania dla urządzeń mobilnych.
Dobre praktyki w zakresie projektowania na urządzenia mobilne w pigułce
Projektuj z myślą o graczach:
Poznaj swoich odbiorców i dowiedz się, czego oczekują od gier mobilnych.
Utwórz niestandardowy UI, który będzie prosty, przejrzysty i łatwy w nawigacji na ekranie urządzenia mobilnego.
Projektuj z myślą o różnych ekranach i często testuj grę na wielu typach ekranów i w różnych rozdzielczościach.
Wykorzystaj istniejące sterowanie Fortnite na urządzeniach mobilnych i odpowiednio zaprojektuj swoją grę.
Buduj zaangażowanie za pomocą rozgrywki:
Stwórz krótką, ale atrakcyjną pętlę rozgrywki, dzięki czemu łatwo będzie zacząć i zakończyć grę.
Zadbaj o szybkie, atrakcyjne wprowadzenie, które zaprezentuje mechanikę gry i wzbudzi zainteresowanie graczy.
Zapewnij poczucie robienia postępów, zachęcaj do wytrwałości i nagradzaj, aby skłonić do wielokrotnego grania.
Wybierz tryby gry i gatunki, które przyciągają graczy mobilnych.
Zoptymalizuj swój projekt:
Efektywnie zarządzaj teksturami.
Priorytetowo traktuj wydajność pamięci.
Ustawienia skalowalności
UEFN został zaprojektowany z myślą o skalowalności platformy. Ze względu na ograniczenia sprzętowe niektóre funkcje są wyłączone lub przeskalowane w dół przy niższych poziomach jakości. Skorzystaj z narzędzia skalowalności obrazu w edytorze, aby wyświetlić podgląd swojej wyspy dla różnych grup skalowalności. Testowanie na różnych poziomach jest wysoce zalecane.
Poniższa tabela przedstawia kluczowe funkcje, które można skalować lub wyłączać na różnych poziomach jakości:
Budowanie wyspy i zasobów z uwzględnieniem skalowalności zapewnia najlepszą możliwą wydajność i jakość grafiki, niezależnie od urządzenia. Najważniejsze obszary, które należy wziąć pod uwagę:
Poziomy LOD siatki: Użyj poziomów LOD siatki dla niestandardowych siatek statycznych lub szkieletowych, aby zmniejszyć liczbę wielokątów i zwiększyć liczbę klatek na sekundę (FPS).
Świat i poziomy HLOD: Streamuj mapę przy użyciu poziomów HLOD i World Partition, aby ograniczyć renderowanie, odciążając GPU i zwiększając FPS.
Grupy tekstur i mapowanie mipmapy: Włącz skalowanie materiałów w czasie wykonywania za pomocą mapowania mipmapy. Upewnij się, że tekstury są we właściwej grupie i zostały utworzone w potęgach dwójki, aby zapewnić płynne skalowanie i wysoką jakość wizualną. Tekstury, które nie są zgodne z potęgą dwójki, nie będą streamowane.
Jakość materiałów: Złożone materiały mogą być zbyt kosztowne na platformach o słabszych parametrach. Stworzyliśmy otoki funkcji materiałów, które pomogą ci jeszcze bardziej dostosować różne aspekty materiału do różnych poziomów platform.
Przejdź do Fortnite > Materiały > Funkcje, gdzie znajdziesz
MF_QualitySwitch_MaterialAttributes,MF_QualitySwitch_ScalariMF_QualitySwitch_Vector. Zastosowanie tych otok przełączników jakości w celu usprawnienia funkcji materiału przy niższych ustawieniach jakości poprawi wydajność. Więcej informacji można znaleźć na stronie Funkcje materiału.
Wskazówki dotyczące optymalizacji grafiki i zasobów dla urządzeń mobilnych
Od samego początku pamiętaj o ograniczeniach urządzeń mobilnych.
Unikaj przerysowań. Spłaszczaj warstwy, ograniczaj przezroczystość i przycinaj nakładające się elementy.
Uprość tekstury. Korzystaj z narzędzia do minimalizacji.
Dokładnie przetestuj swoją wyspę na urządzeniach mobilnych. Poszukaj konfliktów UI i elementów nakładających się na ustawienia rozgrywki. Do testowania gier mobilnych możesz użyć Amazon Luna lub Xbox Cloud Gaming.
Uruchom narzędzie do obliczania pamięci, aby wyświetlić szczegółową listę najbardziej kosztownych zasobów na twoim poziomie.
Więcej wskazówek dotyczących optymalizacji
Chociaż UEFN oferuje doskonałą skalowalność silnika, nadal konieczne jest usprawnienie i optymalizacja treści. Przeciążenie sprzętu prowadzi do niskiej liczby klatek na sekundę, długiego czasu ładowania i nieoptymalnego działania. Aby poprawić wydajność, należy stosować się do poniższych wytycznych:
Optymalizacja siatek: Utrzymuj możliwie najmniejszą wartość licznika wierzchołków. Patrz: Tworzenie zasobów dla Fortnite, aby zapoznać się z budżetami licznika wierzchołków.
Liczba materiałów: Używaj jak najmniejszej liczby materiałów. Idealnie używaj tylko jednej sekcji materiału na siatkę.
Rozdzielczość tekstur: Urządzenia mobilne mają ograniczoną pamięć tekstur. Używaj tekstur 512x512 pikseli i, jeśli to możliwe, unikaj większych rozmiarów.
Ograniczenie liczby poleceń rysowania: Unikaj renderowania zbyt wielu unikatowych obiektów i tekstur jednocześnie. Używaj instancji i hierarchicznie instancjonowanych siatek statycznych (HISM) oraz grupuj mniejsze obiekty w większe rekwizyty, jeśli to możliwe.
World Partition i warstwy danych: Zmniejsz liczbę zasobów wyświetlanych na ekranie i skróć czas ładowania. Więcej informacji o World Partition znajdziesz na stronie dokumentacji poświęconej zarządzaniu pamięcią.
Optymalizacja oświetlenia: Używaj najmniejszego możliwego promienia światła, unikaj nakładania się świateł i ustaw mobilność światła na nieruchome.
Wyłącz rzucanie cieni dla świateł, które nie wymagają ostrych cieni, zwłaszcza w obszarach zewnętrznych, gdzie światło nieba zapewnia wystarczające oświetlenie otoczenia.
Użyj menedżera skalowalności oświetlenia: Twórz różne scenariusze oświetlenia dla każdego poziomu ESS. Można skonfigurować uproszczony, bardziej wydajny schemat oświetlenia dla niskich i średnich poziomów (urządzenia mobilne i starsze konsole).
Mipmapy – dlaczego są nam potrzebne
Potraktuj mipmapy jak poziomy LOD tekstur. Rozdzielczość tekstury może się zmieniać w zależności od odległości i orientacji kamery.
Choć używanie tekstur bez mipmap w celu uzyskania ostrzejszego renderowania jest kuszące, takie tekstury pozostają w pamięci urządzenia i omijają proces streamowania UEFN.
Poniższa tabela przedstawia wykorzystanie pamięci tekstur według rozmiaru. Spójrzmy na przykład na teksturę o rozmiarze 1024x512, która zajmuje połowę pamięci tekstury o rozmiarze 1024x1024.
Chociaż pojedynczo wydają się niewielkie, wiele tekstur ładuje się jednocześnie na ekran i nie jest natychmiast usuwanych z pamięci, gdy kamera odwraca się w inną stronę. Nagromadzenie tekstur może prowadzić do zawieszenia się urządzenia z powodu przekroczenia limitów pamięci.
Rozwiązywanie problemów dotyczących urządzeń mobilnych
Oto kilka typowych problemów i rozwiązań pozwalających zoptymalizować wyspę pod kątem urządzeń mobilnych.
Niska liczba klatek na sekundę (FPS) na urządzeniach mobilnych
Problem: Zbyt wiele poleceń rysowania i przeciążona karta graficzna.
Rozwiązanie: Zmniejsz ilość jednocześnie widocznej zawartości. Użyj World Partition, aby podzielić poziom i redukować to, co jest renderowane.
Rozwiązanie: Użyj poziomów HLOD i LOD siatki, aby zmniejszyć złożoność zasobów i zmniejszyć wartość licznika wierzchołków, umożliwiając GPU szybsze renderowanie obiektów.
Rozwiązanie: Uprość złożone materiały przy niższych ustawieniach jakości lub zmniejsz liczbę unikatowych materiałów, które wymagają większej liczby obliczeń GPU na klatkę. W miarę możliwości używaj materiałów ponownie.
Rozwiązanie: Gdy to możliwe, grupuj mniejsze obiekty w jeden większy zasób. Dzięki temu karta graficzna może renderować je jako pojedynczy przedmiot lub użyć polecenia rysowania.
Problem: Wczytywanie zbyt wielu zasobów jednocześnie.
Rozwiązanie: Użyj World Partition, aby podzielić poziom i zmniejszyć ilość załadowanej zawartości.
Rozwiązanie: Użyj HISM oraz instancji, aby zmniejszyć liczbę unikatowych zasobów.
Rozwiązanie: W miarę możliwości używaj materiałów ponownie, aby ograniczyć liczbę obliczeń GPU na klatkę.
Wykorzystanie pamięci wyspy jest zbyt wysokie
Problem: Niezoptymalizowana zawartość.
Rozwiązanie: W miarę możliwości używaj tekstur 512x512, przypisz odpowiednią grupę tekstur i upewnij się, że streaming jest włączony.
Rozwiązanie: W przypadku niestandardowych siatek, użyj najmniejszej wartości licznika wierzchołków, aby uzyskać efektywne poziomy LOD i mniejszy rozmiar konwersji.
Problem: Zbyt wiele unikatowych siatek.
Rozwiązanie: Jeśli to możliwe, używaj HISM oraz instancji. Ponowne wykorzystywanie tego samego zasobu na różne sposoby zmniejsza liczbę unikatowych zasobów przechowywanych w pamięci.
Rozwiązanie: Gdy to możliwe, grupuj mniejsze obiekty w jeden większy zasób.
Obsługiwane urządzenia mobilne
W poniższych tabelach zamieszczono listę urządzeń wraz ze specyfikacjami, które warto wziąć pod uwagę podczas testowania środowisk mobilnych.
Android
| E.G.O. | Minimalne wymagania |
|---|---|
System operacyjny | systemem Android w wersji 10.0 lub nowszej |
Architektura | z 64-bitowym systemem Android, procesorem ARM64, |
RAM | 4 GB pamięci RAM |
Karta graficzna | Adreno 530 lub lepsza, Mali-G71 MP20, Mali-G72 MP12 lub lepsza |
Apple
| Urządzenie | Model |
|---|---|
iPhone | 11, 11 Pro, 11 Pro Max, 12, 12 mini, 12 Pro, 12 Pro Max, 13, 13 mini, 13 Pro, 13 Pro Max, 14, 14 Plus, 14 Pro, 14 Pro Max, 15, 15 Plus, 15 Pro, 15 Pro Max, 16, 16 Plus, 16 Pro, 16 Pro Max |
iPhone SE | (3. generacja – 2022 r.) |
iPad Pro | 12,9″ (2. generacja lub nowsza), 11″ (1. generacja lub nowsza), 10,5″ |
iPad Air | (4. generacja – 2020 r., 5. generacja – 2022 r.) |
iPad | (10. generacja – 2022 r.) |
iPad mini | (6. generacja – 2021 r.) |
Materiały dodatkowe
Poszerz swoją wiedzę, zapoznając się z poniższymi materiałami:
Sekcja poświęcona pamięci i optymalizacji w dokumentacji Fortnite
Film na YouTube o optymalizacji projektów w UEFN
Film na YouTube o zarządzaniu pamięcią w UEFN