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
Использование сжатия текстур не только уменьшит размер ресурсов внутри архива вашей игры, но и может снизить объём используемой GPU-памяти.
В большинстве игр есть контент, который используется нечасто. С точки зрения использования памяти не имеет смысла держать такой контент загруженным постоянно — его лучше загружать и выгружать по мере необходимости. Это, конечно, компромисс между доступностью контента и временем загрузки.
В Defold есть несколько способов динамической загрузки контента:
Defold выделяет память для компонентов и ресурсов один раз при создании коллекции, чтобы уменьшить фрагментацию памяти. Объём выделяемой памяти зависит от настроек различных счётчиков компонентов в game.project. Используйте профайлер, чтобы получить точные данные об использовании компонентов и ресурсов, и настройте вашу игру на использование максимальных значений, близких к реальному количеству компонентов и ресурсов. Это поможет уменьшить объём используемой памяти (см. информацию об оптимизации максимального количества компонентов).
Оптимизируйте количество GUI-нодов, задав максимальное число нодов в GUI-файле в соответствии с реальными потребностями. Поле Current Nodes
в свойствах компонента GUI покажет количество используемых нодов этим компонентом.
The heap size of a Defold HTML5 game can be configured from the heap_size
field in game.project. Make sure to optimize memory usage of your game and set a minimal heap size.
For small games, 32 MB is an achievable heap size. For larger games, aim for 64–128 MB. If, for example, you’re at 58 MB and further optimization isn’t feasible, you can settle on 64 MB without overthinking it. There’s no strict target size — it depends on the game. Just aim for smaller sizes, ideally in steps of powers of two.
To check current heap usage you can launch your game and play the game in the most “resource heavy” level or section and monitor memory usage:
if html5 then
local mem = tonumber(html5.run("HEAP8.length") / 1024 / 1024)
print(mem)
end
You can also open the developer tools of your browser and write the following in the console:
HEAP8.length / 1024 / 1024
If the memory usage remains at 32 MB, that’s great! If not, follow the steps to optimize the size of the engine itself and large assets such as sounds and textures.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB