Manuals
Manuals




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

Optimizar el uso de memoria

Compresión de texturas

El uso de compresión de texturas no solo reduce el tamaño de los recursos dentro del archivo del juego, sino que las texturas comprimidas también pueden reducir la cantidad de memoria de GPU necesaria.

Carga dinámica

La mayoría de los juegos tienen al menos algo de contenido que se usa con poca frecuencia. Desde el punto de vista del uso de memoria, no tiene sentido mantener ese contenido cargado en memoria en todo momento, sino cargarlo y descargarlo cuando se necesita. Esto obviamente implica un equilibrio entre tener algo disponible de inmediato a costa de memoria en runtime y cargar algo a costa del tiempo de carga.

Defold tiene varias maneras de cargar contenido dinámicamente:

Optimizar contadores de componentes

Defold asigna memoria para componentes y recursos una vez cuando se crea una colección, para reducir la fragmentación de memoria. La cantidad de memoria que se asigna depende de la configuración de varios contadores de componentes en game.project. Usa el profiler para obtener un uso preciso de componentes y recursos, y configura tu juego para usar valores máximos más cercanos al conteo real de componentes y recursos. Esto reducirá la cantidad de memoria que usa tu juego (consulta la información sobre las optimizaciones de max count de componentes).

Optimizar el conteo de nodos GUI

Optimiza el conteo de nodos GUI configurando el número máximo de nodos en el archivo GUI solo con lo necesario. El campo Current Nodes de las propiedades del componente GUI mostrará la cantidad de nodos usados por el componente GUI.

Tamaño del heap (HTML5)

El tamaño del heap de un juego HTML5 de Defold se puede configurar desde el campo heap_size en game.project. Asegúrate de optimizar el uso de memoria de tu juego y definir un tamaño de heap mínimo.

Para juegos pequeños, 32 MB es un tamaño de heap alcanzable. Para juegos más grandes, apunta a 64–128 MB. Si, por ejemplo, estás en 58 MB y no es viable optimizar más, puedes quedarte en 64 MB sin pensarlo demasiado. No hay un tamaño objetivo estricto: depende del juego. Simplemente apunta a tamaños más pequeños, idealmente en incrementos de potencias de dos.

Para comprobar el uso actual del heap, puedes iniciar tu juego y jugar el nivel o la sección con más carga de recursos, y monitorizar el uso de memoria:

if html5 then
    local mem = tonumber(html5.run("HEAP8.length") / 1024 / 1024)
    print(mem)
end

También puedes abrir las herramientas de desarrollador de tu navegador y escribir lo siguiente en la consola:

HEAP8.length / 1024 / 1024

Si el uso de memoria se mantiene en 32 MB, ¡excelente! Si no, sigue los pasos para optimizar el tamaño del motor en sí y de assets grandes como sonidos y texturas.