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
Розмір вашої гри може бути вирішальним чинником успіху на таких платформах, як веб і мобільні пристрої, тоді як на настільних комп’ютерах і консолях він має менше значення, оскільки дисковий простір дешевий і його зазвичай достатньо.
Apple і Google встановили обмеження розміру застосунків для завантаження через мобільні мережі (на відміну від завантаження через Wifi). Для Android це обмеження становить 200 МБ для застосунків, опублікованих як пакети застосунків. Користувачі iOS отримають попередження, якщо розмір застосунку перевищує 200 МБ, але все одно зможуть продовжити завантаження.
Дослідження 2017 року показало: «З кожним збільшенням розміру APK на 6 МБ ми спостерігаємо зниження коефіцієнта конверсії встановлень на 1 %». (джерело)
Poki та багато інших платформ для вебігор рекомендують, щоб розмір початкового завантаження не перевищував 5 МБ.
Facebook рекомендує, щоб гра Facebook Instant Game запускалася менш ніж за 5 секунд, а бажано — менш ніж за 3 секунди. Що це означає для фактичного розміру застосунку, чітко не визначено, але йдеться про розмір до 20 МБ.
Розмір інтерактивної реклами, у яку можна пограти, зазвичай обмежений від 2 до 5 МБ залежно від рекламної мережі.
Оптимізувати розмір застосунку можна двома способами: зменшивши розмір рушія та/або розмір ігрових ресурсів.
Щоб краще зрозуміти, із чого складається розмір вашого застосунку, під час пакування можна створити звіт про збирання. Досить часто більшу частину розміру гри займають звуки та графіка.
Під час збирання й пакування вашого застосунку Defold створює дерево залежностей. Система збирання починає зі стартової колекції (bootstrap collection), зазначеної у файлі game.project, і перевіряє кожну колекцію (collection), ігровий об’єкт (game object) і компонент (component), на які є посилання, щоб скласти список ресурсів, які використовуються. Лише ці ресурси потрапляють до кінцевого пакета застосунку. Усе, на що немає прямих посилань, буде виключено. Хоча корисно знати, що невикористані ресурси не буде включено, вам як розробнику все одно потрібно зважати на те, що входить до кінцевого застосунку, на розмір окремих ресурсів і загальний розмір пакета застосунку.
Швидкий спосіб зменшити розмір рушія — видалити з нього функціональність, якою ви не користуєтеся. Це робиться за допомогою файлу маніфесту застосунку, у якому можна видалити непотрібні компоненти рушія. Приклади:
image.load()Найбільший виграш від оптимізації розміру ресурсів зазвичай дає зменшення розміру звуків і текстур.
Defold підтримує такі формати:
Defold підтримує 8-бітні та 16-бітні файли PCM Wave. Ogg Vorbis і Ogg Opus використовують власні стиснені формати, тому вимога до бітової глибини PCM на них не поширюється. Декодер Opus типово не включено; увімкніть Include Sound Decoder: Opus у маніфесті застосунку, перш ніж використовувати ресурси .opus.
Наші звукові декодери підвищують або знижують частоту дискретизації звуків відповідно до потреб поточного звукового пристрою.
Короткі звуки, як-от звукові ефекти, часто стискають сильніше, тоді як музичні файли стискають менше. Defold не виконує стиснення, тож розробнику потрібно подбати про це окремо для кожного аудіоформату.
Ви можете редагувати звуки в зовнішньому звуковому редакторі (або в командному рядку, наприклад за допомогою ffmpeg), щоб знизити якість або перетворити їх на інший формат. Також розгляньте перетворення звуків зі стерео на моно, щоб додатково зменшити розмір вмісту.
Є кілька способів оптимізувати текстури, які використовує ваша гра, але насамперед потрібно перевірити розміри зображень, доданих до атласу або використаних як джерело плиток. Ніколи не використовуйте зображення більшого розміру, ніж насправді потрібно у вашій грі. Імпортування великих зображень і зменшення їхнього масштабу до потрібного розміру марнує пам’ять текстур, тому цього слід уникати. Почніть зі зміни розмірів зображень у зовнішньому графічному редакторі до фактичних розмірів, потрібних у вашій грі. Для таких елементів, як фонові зображення, може бути прийнятним використати мале зображення та збільшити його до потрібного розміру. Коли ви зменшите зображення до правильного розміру й додасте їх до атласів або використаєте в джерелах плиток, також потрібно врахувати розмір самих атласів. Максимальний допустимий розмір атласу залежить від платформи та графічного обладнання.
У цьому дописі на форумі наведено кілька порад, як змінити розміри багатьох зображень за допомогою скриптів або стороннього програмного забезпечення.
Якщо атлас завеликий, потрібно розділити його на кілька менших атласів, використати багатосторінкові атласи або змінити масштаб усього атласу за допомогою профілю текстур. Система профілів текстур у Defold дає змогу не лише змінювати масштаб цілих атласів, а й застосовувати алгоритми стиснення, щоб зменшити розмір атласу на диску. Докладніше про це можна прочитати в посібнику з профілів текстур. Якщо ви не знаєте, що використати, спробуйте почати з цих налаштувань і надалі пристосувати їх до своїх потреб:
Докладніше про оптимізацію текстур і керування ними можна прочитати в цьому дописі на форумі.
Розмір ваших шрифтів буде меншим, якщо ви визначите, які символи використовуватимете, і вкажете їх у Characters замість використання прапорця All Chars.
Ще один спосіб зменшити початковий розмір застосунку — виключити частину ігрового вмісту з пакета застосунку й завантажувати її на вимогу. Defold надає систему Live Update для виключення вмісту, який завантажуватиметься на вимогу.
Виключений вміст може охоплювати будь-що: від цілих рівнів до персонажів, скінів, зброї або транспортних засобів, які можна розблокувати. Якщо у вашій грі багато вмісту, організуйте процес завантаження так, щоб стартова колекція та колекція першого рівня містили лише мінімум ресурсів, потрібних для цього рівня. Цього можна досягти за допомогою проксі колекцій (collection proxy) або фабрик (factory) з увімкненим прапорцем «Exclude». Розподіляйте ресурси відповідно до поступу гравця. Такий підхід забезпечує ефективне завантаження ресурсів і низьке початкове використання пам’яті. Докладніше читайте в посібнику з Live Update.
Збірки для Android мають підтримувати як 32-бітні, так і 64-бітні архітектури процесорів. Під час пакування для Android ви можете вказати, які архітектури процесорів включити:

Типово пакет включає архітектури armv7-android та arm64-android. Третя архітектура, x86_64-android, доступна, але типово не включена, оскільки вона переважно корисна для емуляторів Android, ChromeOS і Windows Subsystem for Android, а не для фізичних пристроїв. Залиште її невибраною, щоб зменшити розмір пакета, якщо вам не потрібно цілеспрямовано підтримувати одне з цих середовищ.
Google Play підтримує кілька APK для одного випуску гри. Це означає, що ви можете зменшити розмір застосунку, створивши два APK, по одному для кожної архітектури процесора, і завантаживши обидва в Google Play.
Ви також можете поєднати файли розширення APK та вміст Live Update завдяки розширенню APKX на порталі ресурсів.