


Netmarble, uno dei principali sviluppatori di giochi mobile, ha sviluppato Game of Thrones: Kingsroad (disponibile a breve su Android), un RPG di azione-avventura basato sulla serie Game of Thrones, vincitrice di un Emmy® Award e di un Golden Globe®. Ha riscontrato problemi di prestazioni, in particolare throttling termico, durante l'esecuzione del gioco su dispositivi Android, con ripercussioni sul rendimento e sull'esperienza utente. Per risolvere il problema, ha sfruttato in modo strategico il Android Adaptive Performance Framework (ADPF) e ha implementato ottimizzazioni incentrate sulla scalabilità della risoluzione e sull'aggiustamento dinamico della frequenza frame.
La sfida
I giochi mobile ad alta fedeltà richiedono risorse GPU e CPU significative, spesso inducendo una generazione di calore eccessiva e il throttling termico sui dispositivi Android. Netmarble ha osservato che sessioni di gioco prolungate hanno comportato un aumento della temperatura del dispositivo, causando un calo delle prestazioni, inclusi cali della frequenza frame e prestazioni incoerenti. La sfida principale è stata mantenere un'esperienza visivamente coinvolgente, gestendo al contempo in modo efficace le temperature del dispositivo per evitare il throttling e garantire un rendimento costante.
Soluzione
Netmarble ha adottato un approccio basato sui dati per utilizzare l'ADPF, concentrandosi su aggiustamenti dinamici in base allo stato termico in tempo reale.
Identificare i colli di bottiglia delle prestazioni
Netmarble ha condotto un'analisi meticolosa delle prestazioni, misurando l'impatto di varie impostazioni della qualità grafica sia sulle frequenze dei fotogrammi sia sul carico termico. Questa analisi ha rivelato che la scalabilità della risoluzione ha avuto l'impatto più significativo sul carico della GPU e sull'emissione termica, senza influire in modo significativo sulle frequenze frame. È importante sottolineare che abbiamo scoperto che altre opzioni grafiche (ombre, texture e così via) hanno avuto un impatto relativamente minimo sul rendimento termico complessivo.
Scalabilità della risoluzione dinamica
Netmarble ha aggiunto un sistema di risoluzione dinamica. Modifica la qualità delle immagini del gioco in base alla temperatura del dispositivo utilizzando l'API ADPF Thermal. In questo modo il gioco si adatta a condizioni diverse. Quando il dispositivo è freddo, il gioco utilizza una risoluzione elevata. Se il dispositivo si surriscalda, il gioco riduce la risoluzione per ridurre il calore.
Regolazione della frequenza fotogrammi adattiva
In combinazione con il ridimensionamento della risoluzione, Netmarble ha implementato aggiustamenti dinamici della frequenza fotogrammi. Se il valore FPS target del gioco è impostato su 60, il sistema può ridurre gradualmente il valore FPS target quando viene rilevato un calore eccessivo. Evitando i problemi termici, Netmarble ha impostato il numero minimo di FPS scalabili su 30. Ciò ha garantito un'esperienza di gioco coerente. Inoltre, il sistema è progettato per aumentare gradualmente i FPS fino al valore target quando la temperatura diminuisce, mantenendo un rendimento ottimale.
Risultati
L'implementazione della scalabilità della risoluzione dinamica e degli aggiustamenti adattivi dei FPS, grazie all'ADPF, ha comportato miglioramenti significativi nella gestione termica e nelle prestazioni sostenute.

- Maggiore margine termico: ADPF ha ridotto il margine termico medio da 1,04 a 0,92 (riduzione dell'11%), impedendo il degrado delle prestazioni e migliorando la longevità del dispositivo. Il valore della riserva termica non ha mai superato 1, quindi è stato evitato il surriscaldamento del dispositivo.
- Frequenze frame più coerenti: ADPF offre un'esperienza di gioco più fluida regolando in modo intelligente i FPS target del gioco in base allo stato termico del dispositivo. Senza ADPF, i FPS del gioco potrebbero variare notevolmente (ad es. da 40 a 56) a causa del throttling termico. Questa frequenza incoerente, causata dalla difficoltà del dispositivo a gestire il calore, può portare a un'esperienza di gameplay sgradevole. Con ADPF, il gioco riduce in modo proattivo gli FPS target in base alle esigenze per evitare un eccessivo accumulo di calore, garantendo una frequenza frame più stabile e coerente, in genere nell'intervallo 50-60 FPS. In questo modo, si impediscono i cali improvvisi di frame associati al throttling termico, con un'esperienza di visualizzazione notevolmente migliorata e più piacevole.
- Grafica di alta qualità preservata: dando la priorità alla scalabilità della risoluzione come meccanismo di regolazione principale, Netmarble ha ridotto al minimo l'impatto visivo della gestione termica, mantenendo altre impostazioni (texture, effetti e così via) a livelli più elevati.
Conclusione
Concentrandosi sulla scalabilità della risoluzione e sugli aggiustamenti dinamici dei frame rate al di sotto di 60 FPS guidati dall'ADPF, Netmarble ha mitigato i problemi di surriscaldamento in Game of Thrones: Kingsroad, mantenendo un equilibrio ottimale tra prestazioni, qualità delle immagini e esperienza utente. Il loro utilizzo strategico dell'ADPF evidenzia un approccio efficace per gli sviluppatori di giochi mobile che si trovano ad affrontare sfide simili. L'ADPF ha consentito un'esperienza più affidabile, piacevole e coerente, consentendo ai giocatori di giocare più a lungo con meno cali di frame e meno preoccupazioni per il surriscaldamento del dispositivo. Grazie a questa soluzione, Netmarble continua a offrire esperienze di gioco di alta qualità, garantendo al contempo prestazioni e longevità ottimali dei dispositivi.
Inizia a utilizzare ADPF oggi stesso in Unity, Unreal e C++
Gli sviluppatori interessati a utilizzare l'adattabilità di Android devono svolgere quanto segue:
- Scopri di più su ADPF, sul plug-in ADPF di Unreal Engine e sul provider Android per il rendimento adattivo di Unity.
- Utilizza ADPF con i livelli di qualità Unity e la scalabilità di Unreal Engine predefiniti.
- Monitora il rendimento del gioco per assicurarti che soddisfi le aspettative. Prova diverse impostazioni (risoluzione, frame rate, ombre, texture e così via) per trovare le prestazioni migliori e un aumento termico minimo.
- Modifica le impostazioni della qualità grafica separatamente per ridurre le improvvise diminuzioni del rendimento.
Indipendentemente dal motore che utilizzi, puoi sempre scegliere di utilizzare direttamente le API. Scopri di più su Android Adaptability e sul plug-in ADPF di Unreal Engine.