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

Оптимізація використання пам’яті

Стиснення текстур

Стиснення текстур не лише зменшить розмір ресурсів в архіві вашої гри, але й може зменшити обсяг пам’яті GPU, потрібний для зберігання текстур.

Динамічне завантаження

У більшості ігор є принаймні певний вміст, який використовується нечасто. З погляду використання пам’яті немає сенсу постійно тримати такий вміст у пам’яті — краще завантажувати й вивантажувати його за потреби. Звісно, це компроміс між негайною доступністю вмісту ціною використання пам’яті під час виконання та завантаженням вмісту ціною витрат часу на завантаження.

У Defold є кілька способів динамічного завантаження вмісту:

Оптимізація лічильників компонентів

Defold одноразово виділяє пам’ять для компонентів (component) і ресурсів під час створення колекції (collection), щоб зменшити фрагментацію пам’яті. Обсяг виділеної пам’яті залежить від налаштувань різних лічильників компонентів у game.project. Скористайтеся профайлером, щоб отримати точні дані про використання компонентів і ресурсів, та налаштуйте гру так, щоб максимальні значення були ближчими до фактичної кількості компонентів і ресурсів. Це зменшить обсяг пам’яті, який використовує ваша гра (див. інформацію про оптимізацію максимальної кількості компонентів).

Оптимізація кількості вузлів GUI

Оптимізуйте кількість вузлів GUI, установивши у файлі GUI максимальну кількість вузлів відповідно до потреб. Поле Current Nodes у властивостях компонента GUI показує кількість вузлів, які використовує компонент GUI.

Розмір купи (HTML5)

Розмір купи гри Defold для HTML5 можна налаштувати в полі heap_size у game.project. Оптимізуйте використання пам’яті у грі та встановіть мінімальний розмір купи.

Для невеликих ігор цілком досяжний розмір купи 32 МБ. Для більших ігор орієнтуйтеся на 64–128 МБ. Якщо, наприклад, гра використовує 58 МБ і подальша оптимізація недоцільна, можна без зайвих вагань зупинитися на 64 МБ. Суворої цільової межі немає — усе залежить від гри. Просто прагніть менших розмірів, бажано вибираючи значення, що є степенями двійки.

Щоб перевірити поточне використання купи, запустіть гру, перейдіть на рівень або в ділянку, що потребує найбільше ресурсів, і стежте за споживанням пам’яті:

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

Також можна відкрити інструменти розробника браузера та ввести в консолі:

HEAP8.length / 1024 / 1024

Якщо використання пам’яті залишається на рівні 32 МБ — чудово! Якщо ні, виконайте кроки з оптимізації розміру самого рушія та великих ресурсів, як-от звуків і текстур.