Tutte le isole di Unreal Editor per Fortnite (UEFN) sono compatibili con un’ampia gamma di dispositivi, dai PC di fascia alta agli smartphone. Tuttavia, per realizzare isole pensate per dispositivi mobili con buone prestazioni, è fondamentale progettare l'esperienza di gioco sin dall’inizio tenendo conto dell’ottimizzazione e della gestione della memoria.
In questa pagina troverai alcuni suggerimenti fondamentali per progettare isole ottimizzate per dispositivi mobili.
Panoramica delle linee guida per il design mobile–friendly
Progetta esperienze di gioco partendo dai desideri degli utenti finali:
Comprendi il tuo pubblico e le aspettative che può avere da un’esperienza su dispositivi mobili.
Crea una UI personalizzata intuitiva e facile da navigare sul display di un dispositivo mobile.
Progetta l'esperienza tenendo presente diverse dimensioni di schermi e risoluzioni eseguendo spesso il playtest della tua isola.
Sfrutta i comandi dei dispositivi mobili esistenti di Fortnite e adatta il tuo design di conseguenza.
Stimola il coinvolgimento degli utenti attraverso il gameplay:
Punta su un loop di gameplay breve ma avvincente, che sia facile da imparare e rapido da riprendere.
Introduci subito le meccaniche chiave con tutorial semplici e accattivanti.
Offri progressione, persistenza e ricompense per incentivare l'affezionamento al gioco.
Prediligi modalità e generi che si adattino meglio ai giocatori amanti delle esperienze su dispositivi mobili.
Ottimizza il tuo progetto:
Gestisci le texture in modo efficiente.
Dai priorità alla gestione della memoria.
Impostazioni di scalabilità
UEFN è progettato per gestire diversi livelli di scalabilità. In caso di limitazioni hardware, alcune funzionalità vengono disabilitate o ridotte qualitativamente sui dispositivi meno performanti. Utilizza lo strumento di scalabilità visiva nell’Editor per simulare l’aspetto della tua isola con diversi profili di qualità. Ti consigliamo di testare le tue esperienze di gioco su diverse scale.
La tabella seguente mostra le funzionalità principali che vengono ridimensionate o disattivate a seconda del livello di qualità selezionato.
Creare isole e asset tenendo conto della scalabilità garantisce ottime prestazioni e miglior resa visiva su qualsiasi dispositivo. Aree chiave da considerare:
Mesh LOD: utilizza i LOD per mesh statiche o scheletriche personalizzate allo scopo di ridurre i poligoni e aumentare gli FPS.
Mondo e HLOD: utilizza il caricamento in streaming della mappa tramite HLOD e World Partition per ridurre gli elementi renderizzati, alleggerendo la GPU e aumentando gli FPS.
Gruppi di Texture e Mip Mapping: abilita il ridimensionamento dei materiali in runtime tramite mipmap. Assicurati che le texture siano nel gruppo corretto e create in potenze di due per garantire qualità visiva e un'esperienza di streaming fluida. Le texture non conformi non saranno trasmesse in streaming.
Qualità dei materiali: materiali troppo complessi possono essere troppo pesanti su piattaforme di fascia bassa. Utilizza i wrapper delle funzioni materiali (MF_QualitySwitch_MaterialAttributes, Scalar, Vector) per adattare le impostazioni a diversi livelli di qualità.
Vai su Fortnite > Materiali > Funzioni, dove troverai
MF_QualitySwitch_MaterialAttributes,MF_QualitySwitch_ScalareMF_QualitySwitch_Vector. Utilizzando questi wrapper switch per agevolare le funzioni materiali con impostazioni di qualità basse, potrai migliorare le prestazioni della tua esperienza. Per maggiori informazioni, consulta la pagina Funzioni materiali.
Consigli per ottimizzare grafica e asset su dispositivi mobili
Considera i limiti dovuti alla visualizzazione da dispositivi mobili fin dall'inizio.
Riduci l’overdraw appiattendo i layer, limitando trasparenze e riducendo elementi sovrapposti.
Semplifica le texture. Utilizza strumenti per convertire gli elementi in icone.
Testa sempre la tua isola su dispositivi mobili. Verifica la presenza di possibili conflitti tra UI e controlli di gioco. Per i playtest puoi usare Amazon Luna o Xbox Cloud Gaming.
Utilizza lo strumento di calcolo della memoria per individuare gli asset più costosi in termini di prestazioni.
Altri consigli per l'ottimizzazione
Sebbene UEFN offra una scalabilità avanzata, dovrai sempre assicurarti di semplificare e ottimizzare i tuoi contenuti. Un sovraccarico di risorse può causare cali di FPS, rallentare i caricamenti e compromettere l'esperienza di gioco. Considera queste linee guida:
Ottimizza le mesh: mantieni il numero di poligoni al minimo indispensabile. Consulta la documentazione Creazione di asset compatibili con Fortnite per ottenere informazioni sui budget poligonali.
Numero di materiali: utilizza il minor numero possibile di materiali. Idealmente, scegli solo un materiale per mesh.
Risoluzione texture: i dispositivi mobili hanno una memoria texture limitata. Prediligi texture da 512x512 pixel ed evita dimensioni maggiori, se possibile.
Riduci le draw call: evita di renderizzare troppi oggetti e texture univoci simultaneamente. Utilizza le istanze e le mesh statiche istanziate gerarchiche (HISM) e raggruppa oggetti piccoli in asset più grandi.
World Partition e layer dati: sfruttali per ridurre gli asset caricati a schermo e migliorare i tempi di caricamento. Scopri di più sulle funzionalità di World Partition nella pagina della documentazione di Gestione della memoria.
Illuminazione: usa raggi luminosi piccoli, evita luci sovrapposte, imposta la mobilità su Stazionaria.
Proiezione ombre: disattiva le ombre su luci che non ne hanno reale bisogno, specialmente nelle aree esterne dove la luce atmosferica fornisce un'illuminazione ambientale sufficiente.
Sfrutta la Gestione scalabilità illuminazione: crea vari scenari in base ai livelli ESS. Puoi impostare uno schema di illuminazione semplificato e più performante per i livelli medio e basso (dispositivi mobili e console meno recenti).
Perché sfruttare le Mipmap
Le mipmap sono l’equivalente dei LOD per le texture: La risoluzione varia in base alla distanza e all’angolo della visuale.
Sebbene la tentazione di utilizzare texture prive di mipmap per un rendering più nitido sia forte, tali texture rimangono nella memoria del dispositivo e bypassano il processo di streaming UEFN.
Il grafico seguente mostra l'utilizzo della memoria delle texture in base alle dimensioni. Esempio: una texture 1024x512 usa metà memoria rispetto a una 1024x1024.
Le texture, anche se di piccole dimensioni, si caricano sullo schermo simultaneamente e non vengono rimosse dalla memoria all'istante quando la visuale viene spostata. Questo accumulo può causare arresti anomali del dispositivo a causa del superamento dei limiti di memoria.
Risoluzione dei problemi per dispositivi mobili
Ecco una serie di problemi comuni e relative soluzioni riguardo al processo di ottimizzazione di un'isola per dispositivi mobili:
Frame al secondo (FPS) bassi su dispositivi mobili
Problema: troppe draw call e sovraccarico della scheda grafica.
Soluzione: riduci i contenuti visibili contemporaneamente. Utilizza la funzione World Partition per lo streaming dinamico del livello e riduci ciò che deve essere renderizzato.
Soluzione: utilizza HLOD e Mesh LOD per ridurre la complessità degli asset e il numero di poligoni, consentendo alla GPU di eseguire il rendering degli oggetti più velocemente.
Soluzione: semplifica i materiali complessi impostando parametri di qualità inferiori o riduci il numero di materiali univoci, che richiedono più calcoli GPU per frame. Riutilizza i materiali quando possibile.
Soluzione: quando possibile, raggruppa diversi oggetti piccoli in un asset più grande. In questo modo, la GPU li elaborerà come un singolo elemento, riducendo le draw call e migliorando le prestazioni.
Problema: caricamento di troppi asset contemporaneamente.
Soluzione: utilizza la funzione World Partition per lo streaming dinamico del livello e riduci il numero di contenuti da caricare.
Soluzione: utilizza HISM e le istanze per ridurre il numero di asset univoci.
Soluzione: riutilizza i materiali quando possibile per ridurre i calcoli GPU per frame.
L'utilizzo della memoria dell'isola è troppo elevato
Problema: contenuti non ottimizzati.
Soluzione: utilizza texture 512x512 quando possibile, assegna correttamente i gruppi di texture e assicurati che lo streaming sia abilitato.
Soluzione: riduci poligoni nei LOD delle mesh personalizzate e raggruppa più oggetti piccoli in asset unici.
Problema: troppe mesh univoche.
Soluzione: utilizza HISM e istanze quando possibile. Il riutilizzo dello stesso elemento in modi diversi riduce il numero di asset univoci archiviati in memoria.
Soluzione: quando possibile, raggruppa diversi oggetti piccoli in un asset più grande.
Dispositivi mobili supportati
Le tabelle seguenti elencano i dispositivi e le specifiche da tenere in considerazione durante il test delle esperienze mobili.
Android
| E.G.O. | Requisiti minimi |
|---|---|
Sistema operativo | Sistema operativo Android 10.0 o versioni successive |
Architettura | Android a 64 bit con processore ARM64 |
RAM | 4 GB di RAM |
GPU | Adreno 530 o versioni successive, Mali-G71 MP20, Mali-G72 MP12 o versioni successive |
Apple
| Dispositivo | Modello |
|---|---|
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 | 3a generazione 2022 |
iPad Pro | 12.9in 2a generazione o successiva, 11in 1a generazione o successiva, 10.5in |
iPad Air | 4a generazione 2020, 5a generazione 2022 |
iPad | 10a generazione 2022 |
iPad mini | 6a generazione 2021 |
Risorse aggiuntive
Arricchisci le tue conoscenze consultando le seguenti risorse:
Sezione Memoria e ottimizzazione della documentazione di Fortnite
Video YouTube Project Optimization in UEFN
Video YouTube Memory Management in UEFN