This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
La compressione delle texture non solo riduce le dimensioni delle risorse nell’archivio del gioco, ma può anche ridurre la quantità di memoria GPU necessaria.
La maggior parte dei giochi contiene almeno alcuni contenuti usati di rado. Dal punto di vista dell’uso della memoria, non ha senso tenerli sempre caricati: è preferibile caricarli quando servono e scaricarli quando non sono più necessari. Questo comporta ovviamente un compromesso tra avere contenuti subito disponibili, occupando memoria durante l’esecuzione, e caricarli al momento, impiegando del tempo per il caricamento.
Defold offre diversi modi per caricare contenuti dinamicamente:
Per ridurre la frammentazione della memoria, Defold alloca una sola volta la memoria per componenti e risorse quando viene creata una collezione. La quantità di memoria allocata dipende dalla configurazione dei vari contatori dei componenti in game.project. Usa il profilatore per misurare con precisione l’uso di componenti e risorse e configura il gioco con valori massimi più vicini al numero effettivo di componenti e risorse. In questo modo ridurrai la quantità di memoria usata dal gioco (consulta le informazioni sull’ottimizzazione del numero massimo di componenti).
Ottimizza il numero di nodi GUI impostando nel file GUI un numero massimo di nodi limitato a quelli necessari. Il campo Current Nodes nelle proprietà del componente GUI mostra il numero di nodi usati dal componente GUI.
Puoi configurare la dimensione dell’heap di un gioco HTML5 realizzato con Defold tramite il campo heap_size in game.project. Assicurati di ottimizzare l’utilizzo della memoria del gioco e di impostare la dimensione dell’heap al minimo necessario.
Per i giochi piccoli, un heap di 32 MB è un obiettivo raggiungibile. Per i giochi più grandi, punta a 64–128 MB. Se, per esempio, sei a 58 MB e non sono possibili ulteriori ottimizzazioni, puoi scegliere 64 MB senza pensarci troppo. Non esiste una dimensione obiettivo rigida: dipende dal gioco. Cerca semplicemente di ridurre le dimensioni, scegliendo idealmente valori che siano potenze di due.
Per controllare l’utilizzo attuale dell’heap, puoi avviare il gioco e giocare nel livello o nella sezione che richiede più risorse, monitorando l’utilizzo della memoria:
if html5 then
local mem = tonumber(html5.run("HEAP8.length") / 1024 / 1024)
print(mem)
end
Puoi anche aprire gli strumenti per sviluppatori del browser e scrivere quanto segue nella console:
HEAP8.length / 1024 / 1024
Se l’utilizzo della memoria rimane a 32 MB, ottimo! Altrimenti, segui i passaggi per ottimizzare le dimensioni del motore stesso e degli asset di grandi dimensioni, come suoni e texture.