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
Файл game.project містить усі налаштування, що стосуються всього проєкту. Він має бути в кореневій папці проєкту й називатися game.project. Перше, що робить рушій під час запуску вашої гри, — шукає цей файл.
Кожне налаштування у файлі належить до певної категорії. Коли ви відкриваєте файл, Defold показує всі налаштування, згруповані за категоріями.

Налаштування в game.project зазвичай змінюють у Defold, але файл також можна редагувати в будь-якому звичайному текстовому редакторі. Файл відповідає стандарту формату INI й має такий вигляд:
[category1]
setting1 = value
setting2 = value
[category2]
...
Ось реальний приклад:
[bootstrap]
main_collection = /main/main.collectionc
Він означає, що налаштування main_collection належить до категорії bootstrap. Коли використовується посилання на файл, як у прикладі вище, до шляху потрібно додати символ ‘c’, який означає, що ви посилаєтеся на скомпільовану версію файлу. Також зауважте, що папка з game.project є коренем проєкту, тому шлях у налаштуванні починається з ‘/’.
Значення з game.project можна читати під час виконання за допомогою sys.get_config_string(key), sys.get_config_number(key), sys.get_config_int(key) і sys.get_config_boolean(key). Приклади:
local title = sys.get_config_string("project.title")
local gravity_y = sys.get_config_number("physics.gravity_y")
local fullscreen = sys.get_config_boolean("display.fullscreen", false)
Ключ складається з назви категорії та назви налаштування, розділених крапкою, і записується малими літерами із заміною всіх пробілів на символи підкреслення. Приклади: поле “Title” з категорії “Project” стає project.title, а поле “Gravity Y” з категорії “Physics” — physics.gravity_y.
Нижче наведено всі доступні налаштування, упорядковані за категоріями.
Назва застосунку.
Версія застосунку.
Ім’я видавця.
Ім’я розробника.
Визначає, коли рушій записує файл журналу. Варіанти:
Якщо з редактора запущено більше одного екземпляра (instance), файл матиме назву instance_2_log.txt, де 2 — індекс екземпляра. Якщо запущено один екземпляр або запуск виконується з пакета, файл матиме назву log.txt. Файл журналу розміщуватиметься за одним із наведених шляхів (вони перевіряються в такому порядку):
NSDocumentDirectoryContext.getExternalFilesDir()NSApplicationSupportDirectoryCSIDL_APPDATA (наприклад, C:\Users\<username>\AppData\Roaming)Context.getFilesDir()HOMEЗадає мінімальний рівень журналювання. Показуватимуться лише записи цього рівня або вище.
Вмикає стиснення архівів під час пакування. Зауважте, що наразі це застосовується до всіх платформ, окрім Android, де apk уже містить усі дані в стисненому вигляді.
Список URL-адрес Library URL бібліотек проєкту. Докладніше див. у посібнику з бібліотек.
custom_resources
Користувацькі ресурси включають до основного архіву гри за допомогою поля Custom Resources у game.project.
Поле Custom Resources має містити розділений комами список ресурсів, які буде включено до основного архіву гри. Якщо вказано каталоги, усі вкладені файли та каталоги включаються рекурсивно. Читати ці файли можна за допомогою sys.load_resource().
Завантаження користувацьких ресурсів докладніше описано в посібнику з доступу до файлів.
bundle_resources
Ресурси пакета — це додаткові файли й папки, які включають до пакета застосунку за допомогою поля Bundle Resources у game.project.
Поле Bundle Resources має містити розділений комами список каталогів із файлами та папками ресурсів, які під час пакування потрібно скопіювати до кінцевого пакета без змін. Каталоги слід указувати абсолютними шляхами від кореня проєкту, наприклад /res. Каталог ресурсів має містити підпапки з іменами у форматі platform або architecture-platform.
Підтримувані платформи: ios, android, osx, win32, linux, web, switch. Також можна використовувати підпапку common для файлів ресурсів, спільних для всіх платформ. Приклад:
res
├── win32
│ └── mywin32file.txt
├── common
│ └── mycommonfile.txt
└── android
├── myandroidfile.txt
└── res
└── xml
└── filepaths.xml
Ви можете використати sys.get_application_path(), щоб отримати шлях до розташування застосунку. На основі цього базового шляху сформуйте кінцеві абсолютні шляхи до потрібних файлів. Отримавши їх, ви зможете звертатися до файлів за допомогою функцій io.* та os.*.
Завантаження ресурсів пакета докладніше описано в посібнику з доступу до файлів.
bundle_exclude_resources
Розділений комами список ресурсів, які не слід включати до пакета. Тобто їх буде вилучено з результату збирання ресурсів на кроці bundle_resources.
Посилання на файл колекції (collection), яка використовується для запуску застосунку; типово /logic/main.collection.
Файл налаштувань рендерингу, який визначає конвеєр рендерингу; типово /builtins/render/default.render.
Розділений пробілами список каталогів вашого проєкту, до яких слід надавати доступ через механізм поширення бібліотек. Докладніше див. у посібнику з бібліотек.
Установіть прапорець, щоб усі типи скриптів використовували спільний стан Lua.
Дозволяє рушію продовжувати роботу, коли вікно застосунку згорнуто (лише для настільних платформ).
Частота оновлення функції життєвого циклу fixed_update(self, dt) у герцах.
Якщо протягом одного кадру часовий крок стає завеликим, його буде обмежено цим максимальним значенням. У секундах.
Ширина вікна застосунку в пікселях.
Висота вікна застосунку в пікселях.
Створює задній буфер із високою щільністю пікселів на дисплеях, які це підтримують. Зазвичай гра рендеритиметься з удвічі більшою роздільністю, ніж задано в налаштуваннях Width і Height, які й надалі визначатимуть логічну роздільність для скриптів і властивостей.
Кількість вибірок для згладжування методом надлишкової вибірки. Задає підказку вікна GLFW_FSAA_SAMPLES. Значення 0 означає, що згладжування вимкнено.
Установіть прапорець, якщо застосунок має запускатися в повноекранному режимі. Якщо прапорець знято, застосунок працює у вікні.
Бажана частота кадрів у герцах. Задайте 0 для змінної частоти кадрів. Значення більше за 0 задає фіксовану частоту кадрів, яка під час виконання обмежується фактичною частотою кадрів (це означає, що не можна оновлювати ігровий цикл двічі за кадр рушія). Використовуйте sys.set_update_frequency(hz), щоб змінювати це значення під час виконання. Це налаштування також працює у збірках без графічного інтерфейсу.
Це ціле значення визначає, як застосунок працює з вертикальною синхронізацією (vsync). 0 вимикає vsync; типове значення — 1. Якщо використовується адаптер OpenGL, це значення задає кількість кадрів, через яку вікно має оновлюватися між обмінами буферів. У Vulkan немає вбудованого поняття інтервалу обміну буферів, тому це значення визначає, чи ввімкнено vsync.
Налаштування для сумісності зі старими версіями. Це налаштування застаріле; у нових проєктах використовуйте Swap Interval. Якщо його вимкнено, фактичний інтервал обміну буферів примусово встановлюється в 0. Якщо ввімкнено, фактичне значення визначається Swap Interval.
Визначає файл профілів дисплея; типово /builtins/render/default.display_profilesc. Докладніше див. у посібнику з компонувань GUI.
Установіть прапорець, якщо застосунок має динамічно перемикатися між портретною й альбомною орієнтаціями під час повороту пристрою. Зауважте, що застосунок для розробки наразі не враховує це налаштування.
Виводить інформацію про GPU в консоль під час запуску.
Червоний канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.
Зелений канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.
Синій канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.
Альфа-канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.
Використовує генерування шрифтів під час виконання.
Максимальна кількість об’єктів колізій.
Тип фізики: 2D або 3D.
Гравітація світу вздовж осі x. У метрах за секунду.
Гравітація світу вздовж осі y. У метрах за секунду.
Гравітація світу вздовж осі z. У метрах за секунду.
Установіть прапорець, щоб візуалізувати фізику для налагодження.
Значення альфа-компонента візуалізації фізики, 0–1.
Максимальна кількість одночасно наявних фізичних світів; типово 4. Якщо ви одночасно завантажуєте більше ніж 4 світи через проксі колекцій (collection proxy), потрібно збільшити це значення. Враховуйте, що кожен фізичний світ виділяє значний обсяг пам’яті.
Визначає, як фізичний рушій має масштабувати фізичні світи відносно ігрового світу для забезпечення числової точності, 0.01–1.0. Якщо задати значення 0.02, фізичний рушій сприйматиме 50 одиниць як 1 метр ($1 / 0.02$).
Установіть прапорець, якщо фізичний рушій має застосовувати трансформацію ігрового об’єкта (game object) до всіх прикріплених компонентів (component) об’єктів колізій. Це можна використовувати для переміщення, масштабування й обертання форм колізій, навіть динамічних.
Установіть прапорець, якщо фізичний рушій має використовувати фіксовані оновлення, незалежні від частоти кадрів. Використовуйте це налаштування разом із функцією життєвого циклу fixed_update(self, dt) і налаштуванням проєкту engine.fixed_update_frequency, щоб взаємодіяти з фізичним рушієм через рівні проміжки часу. Для нових проєктів рекомендовано значення true.
Розмір відображення одиничних об’єктів фізики, як-от трійок осей і нормалей.
Кількість колізій, про які повідомлятиметься скриптам.
Кількість точок контакту, про які повідомлятиметься скриптам.
Ігнорує контактні імпульси зі значеннями, меншими за це налаштування.
Максимальна кількість запитів трасування променів у 2D за кадр.
Максимальна кількість запитів трасування променів у 3D за кадр.
Максимальна кількість фізичних тригерів, що перекриваються.
Мінімальна швидкість, за якої колізії будуть пружними.
Максимальна кількість кроків симуляції за використання фіксованого часового кроку (лише для 3D).
Визначає фільтр для зменшення текстури.
Визначає фільтр для збільшення текстури.
Максимальна кількість викликів рендерингу.
Кількість символів, для яких заздалегідь виділяється місце в буфері рендерингу тексту, тобто кількість символів, які можна відобразити в кожному кадрі.
Максимальна кількість пакетів тексту, які можна відобразити в кожному кадрі.
Максимальна кількість вершин для налагодження. Використовуються, зокрема, для рендерингу фізичних форм.
Файл профілів текстур для цього проєкту; типово /builtins/graphics/default.texture_profiles.
Перевіряє повернене значення після кожного графічного виклику й повідомляє про помилки в журналі.
Підказка щодо версії контексту OpenGL. Якщо вибрано конкретну версію, вона використовуватиметься як мінімально необхідна (не застосовується до OpenGL ES).
Задає підказку профілю OpenGL ‘core’ під час створення контексту. Профіль core вилучає всі застарілі можливості OpenGL, як-от рендеринг у безпосередньому режимі. Не застосовується до OpenGL ES.
graphics.vulkan_version_major — підказка щодо основної версії контексту/API Vulkan. Застосовується лише тоді, коли вибрано графічну підсистему Vulkan. Типове значення — 1.
graphics.vulkan_version_minor — підказка щодо другорядної версії контексту/API Vulkan. Застосовується лише тоді, коли вибрано графічну підсистему Vulkan. Типове значення — 0.
Не компілювати шейдери для пристроїв із OpenGLES 2.0 / WebGL 1.0.
shader.glsl_es_default_precision_float задає типовий глобальний кваліфікатор точності для значень із рухомою комою у кроскомпільованих шейдерах GLSL ES. Допустимі значення — mediump і highp; типове значення — mediump.
shader.glsl_es_default_precision_int задає типовий глобальний кваліфікатор точності для цілих значень у кроскомпільованих шейдерах GLSL ES. Допустимі значення — mediump і highp; типове значення — highp.
Кількість секунд очікування до початку повторення введення, коли елемент керування утримують натиснутим.
Кількість секунд між повтореннями введення, коли елемент керування утримують натиснутим.
Посилання на файл конфігурації геймпадів, який зіставляє їхні сигнали з ОС; типово /builtins/input/default.gamepads.
Посилання на файл конфігурації введення, який зіставляє апаратне введення з діями; типово /input/game.input_binding.
Установіть прапорець, щоб рушій отримував події введення акселерометра в кожному кадрі. Вимкнення введення акселерометра може дещо підвищити продуктивність.
Якщо встановлено прапорець, вмикається кеш HTTP для швидшого завантаження ресурсів через мережу в рушій, запущений на пристрої.
Розташування даних збірки проєкту у форматі URI.
Максимальна кількість ресурсів, які можна завантажити одночасно.
Тайм-аут HTTP у секундах. Задайте 0, щоб вимкнути тайм-аут.
Кількість робочих потоків сервісу HTTP.
Установіть прапорець, щоб увімкнути кеш HTTP для мережевих запитів (через http.request()). Кеш HTTP зберігатиме відповідь на запит і повторно використовуватиме збережену відповідь для подальших запитів. Кеш HTTP підтримує заголовки відповіді HTTP ETag і Cache-Control: max-age.
Файл із кореневими сертифікатами SSL, які використовуються для перевірки ланцюжка сертифікатів під час встановлення з’єднань SSL.
Максимальна кількість екземплярів ігрових об’єктів у колекції; типово 1024. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість ігрових об’єктів у стеку введення.
Загальне підсилення (гучність), 0–1.
Якщо ввімкнено, підсилення лінійне. Якщо вимкнено, використовується експоненційна крива.
Максимальна кількість звукових ресурсів, тобто кількість унікальних звукових файлів під час виконання.
(Наразі не використовується) Максимальна кількість одночасно наявних звукових буферів.
(Наразі не використовується) Максимальна кількість звуків, що відтворюються одночасно.
Максимальна кількість одночасно наявних екземплярів звуку, тобто звуків, що фактично відтворюються одночасно.
Максимальна кількість звукових компонентів на колекцію.
Кількість відліків, які використовуються для кожного оновлення звуку. 0 означає автоматичне визначення (1024 для 48 кГц, 768 для 44.1 кГц).
Якщо встановлено прапорець, звукова система використовуватиме потоки для відтворення звуку, щоб зменшити ризик переривань за значного навантаження на головний потік.
Якщо встановлено прапорець, звукова система використовуватиме потокове завантаження вихідних файлів.
Максимальний розмір кешу звукових фрагментів, що містить усі фрагменти. Типово 2097152 байти.
Це число має бути більшим за добуток кількості завантажених звукових файлів і розміру фрагмента потоку.
Інакше є ризик витіснення нових фрагментів із кешу в кожному кадрі.
Розмір у байтах кожного фрагмента, що завантажується потоково.
Визначає розмір у байтах початкового фрагмента звукових файлів, що читаються з архіву.
Максимальна кількість спрайтів на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Установіть прапорець, щоб дозволити відображення спрайтів без вирівнювання за пікселями.
Максимальна кількість карт плиток на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість одночасно видимих плиток на колекцію.
Максимальна кількість компонентів моделей Spine. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість компонентів сіток на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість компонентів моделей на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Розділяє сітки з понад 65536 вершинами на нові сітки.
Максимальна ширина текстури матриць кісток. Використовується лише розмір, потрібний для анімацій, округлений угору до найближчого степеня двійки.
Максимальна висота текстури матриць кісток. Використовується лише розмір, потрібний для анімацій, округлений угору до найближчого степеня двійки.
Максимальна кількість компонентів GUI. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість одночасно наявних частинок у GUI.
Максимальна кількість активних анімацій у GUI.
Максимальна кількість текстових міток. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Установіть прапорець, щоб дозволити відображення текстових міток без вирівнювання за пікселями.
Максимальна кількість одночасно наявних емітерів. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість одночасно наявних частинок.
Кількість ітерацій обчислення швидкості для фізичного розв’язувача Box2D 2.2.
Кількість ітерацій обчислення позиції для фізичного розв’язувача Box2D 2.2.
Кількість підкроків для фізичного розв’язувача Box2D 3.x.
Максимальна кількість проксі колекцій. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість фабрик колекцій (collection factory). (Див. інформацію про оптимізацію максимальної кількості компонентів).
Максимальна кількість фабрик (factory) ігрових об’єктів. (Див. інформацію про оптимізацію максимальної кількості компонентів).
Файл зображення (.png) для піктограми застосунку із заданими шириною й висотою W × H.
Файл Storyboard (.storyboard). Докладніше про його створення див. у посібнику з iOS.
Файл ресурсу піктограм (.car), що містить піктограми застосунку.
(iOS 6 і раніші версії) Установіть прапорець, якщо ваші піктограми вже відрендерено. Якщо прапорець знято, до піктограм автоматично додаватиметься глянцевий відблиск.
Ідентифікатор пакета дає iOS змогу розпізнавати оновлення вашого застосунку. Ідентифікатор пакета має бути зареєстрований в Apple та унікальний для вашого застосунку. Не можна використовувати той самий ідентифікатор для застосунків iOS і macOS. Він має складатися з двох або більше сегментів, розділених крапкою. Кожен сегмент має починатися з літери. Кожен сегмент може містити лише літери, цифри, символ підкреслення або дефіс (-) (див. CFBundleIdentifier)
Коротка назва пакета (15 символів) (див. CFBundleName).
Версія пакета — число або x.y.z. (див. CFBundleVersion)
Якщо вказано, цей файл Info.plist використовується замість вбудованого базового маніфесту iOS під час пакування застосунку. Вбудований маніфест містить записи локальної мережі та Bonjour, потрібні редактору для виявлення цільових пристроїв у збірках, що не є збірками випуску. Якщо ви надаєте власний маніфест і вам потрібні виявлення цільових пристроїв, профілювання, гаряче перезавантаження або потокове передавання журналу на пристрої, збережіть ці записи, як описано в посібнику з iOS.
Маніфест конфіденційності Apple для застосунку. Типове значення поля — /builtins/manifests/ios/PrivacyInfo.xcprivacy.
Якщо вказано, права в наданому профілі підготовки (.entitlements, .xcent, .plist) буде об’єднано з правами з профілю підготовки, наданого під час пакування застосунку.
Мова, яка використовується, якщо бажаної мови користувача немає в списку Localizations застосунку (див. CFBundleDevelopmentRegion). Використовуйте дволітерний код стандарту ISO 639-1, якщо бажана мова в ньому є, або трилітерний код ISO 639-2.
Це поле містить розділені комами рядки, що задають назви мов або коди мов ISO для підтримуваних локалізацій (див. CFBundleLocalizations).
Файл зображення (.png) для піктограми застосунку із заданими шириною й висотою W × H.
Файли зображень (.png) для власних піктограм push-сповіщень на Android. Піктограми автоматично використовуватимуться і для локальних, і для віддалених push-сповіщень. Якщо не задано, типово використовується піктограма застосунку.
Визначає поле JSON у корисному навантаженні, яке слід використовувати як заголовок сповіщення. Якщо залишити це налаштування порожнім, заголовком push-сповіщень типово буде назва застосунку.
Визначає поле JSON у корисному навантаженні, яке слід використовувати як текст сповіщення. Якщо залишити порожнім, використовуватиметься текст із поля alert, як і на iOS.
Ціле значення, що вказує версію застосунку. Збільшуйте його для кожного наступного оновлення.
Мінімальний рівень API, необхідний для запуску застосунку (android:minSdkVersion).
Рівень API, на який орієнтований застосунок (android:targetSdkVersion).
Ідентифікатор пакета. Має складатися з двох або більше сегментів, розділених крапкою. Кожен сегмент має починатися з літери. Кожен сегмент може містити лише літери, цифри або символ підкреслення.
Ідентифікатор відправника Google Cloud Messaging. Задайте рядок, призначений Google, щоб увімкнути push-сповіщення.
Ідентифікатор застосунку Firebase Cloud Messaging.
Якщо задано, під час пакування використовується вказаний XML-файл маніфесту Android. Власний маніфест замінює вбудований базовий маніфест Defold. Фрагменти маніфестів нативних розширень і далі об’єднуються з ним, але подальші зміни вбудованого базового маніфесту не успадковуються автоматично, тому під час оновлення порівнюйте власні маніфести з поточним вбудованим маніфестом. Для ігор задайте android:appCategory="game" в елементі <application>. Для застосунків, що не є іграми, задавайте android:appCategory лише тоді, коли одна з визначених Android категорій застосунків точно описує застосунок.
Визначає магазин, який слід використовувати. Допустимі варіанти — Amazon і GooglePlay. Докладніше див. у extension-iap.
Визначає спосіб отримання введення з клавіатури на пристроях Android. Допустимі варіанти — KeyEvent (старий спосіб) і HiddenInputField (новий).
Якщо ввімкнено, приховує панелі навігації та стану й дає застосунку змогу отримувати всі події дотику на екрані.
Розширює область відображення до вирізу дисплея.
Визначає, чи можна налагоджувати застосунок за допомогою таких інструментів, як GAPID або Android Studio. Це задає прапорець android:debuggable у маніфесті Android (офіційна документація).
Власний файл ProGuard, що допомагає вилучити зайві класи Java з кінцевого APK.
Визначає, чи розпаковує інсталятор пакета нативні бібліотеки з APK у файлову систему. Якщо задано false, нативні бібліотеки зберігаються в APK без стиснення. Хоча APK може бути більшим, застосунок завантажується швидше, оскільки під час виконання бібліотеки завантажуються безпосередньо з APK. Це задає прапорець android:extractNativeLibs у маніфесті Android (офіційна документація).
Файл піктограми пакета (.icns) для піктограми застосунку на macOS.
Якщо задано, під час пакування використовується вказаний файл info.plist.
Маніфест конфіденційності Apple для застосунку. Типове значення поля — /builtins/manifests/osx/PrivacyInfo.xcprivacy.
Ідентифікатор пакета дає macOS змогу розпізнавати оновлення вашого застосунку. Ідентифікатор пакета має бути зареєстрований в Apple та унікальний для вашого застосунку. Не можна використовувати той самий ідентифікатор для застосунків iOS і macOS. Він має складатися з двох або більше сегментів, розділених крапкою. Кожен сегмент має починатися з літери. Кожен сегмент може містити лише літери, цифри, символ підкреслення або дефіс (-).
Мова, яка використовується, якщо бажаної мови користувача немає в списку Localizations застосунку (див. CFBundleDevelopmentRegion). Використовуйте дволітерний код стандарту ISO 639-1, якщо бажана мова в ньому є, або трилітерний код ISO 639-2.
Це поле містить розділені комами рядки, що задають назви мов або коди мов ISO для підтримуваних локалізацій (див. CFBundleLocalizations).
Файл зображення (.ico) для піктограми застосунку на Windows. Докладніше про створення файлу .ico див. у посібнику з Windows.
Докладніше про багато з цих параметрів див. у посібнику з платформи HTML5.
Розмір купи в мегабайтах для Emscripten.
Використовує вказаний файл шаблону HTML під час пакування. Типово /builtins/manifests/web/engine_template.html.
Використовує вказаний CSS-файл теми під час пакування. Типово /builtins/manifests/web/light_theme.css.
Якщо задано, під час пакування для заставки при запуску використовується вказане зображення замість логотипа Defold.
Під час пакування для HTML5 дані гри розділяються на один або кілька архівних файлів даних. Коли рушій запускає гру, ці архівні файли читаються в пам’ять. Використовуйте це налаштування, щоб указати розташування даних.
Суфікс, який додається до архівних файлів. Корисно, наприклад, щоб примусово отримувати некешований вміст із CDN (наприклад, ?version2).
Список аргументів, які буде передано рушію.
Вмикає потокове завантаження файлу wasm (працює швидше й використовує менше пам’яті, але потребує MIME-типу application/wasm).
Вмикає кнопку Fullscreen у файлі index.html.
Вмикає посилання Made With Defold у файлі index.html.
Якщо ввімкнено, під час запуску рушія цей параметр виводить інформацію про рушій і його версію в консоль браузера (через console.log()).
Визначає спосіб масштабування полотна гри.
Кількість спроб завантажити файл під час запуску рушія (див. Retry Time).
Кількість секунд очікування між спробами завантажити файл, якщо завантаження не вдалося (див. Retry Count).
Установіть прапорець, якщо графічний контекст має мати прозоре тло.
Установіть прапорець, щоб автоматично завершувати транзакції IAP. Якщо прапорець знято, після успішної транзакції потрібно явно викликати iap.finish().
Файл ресурсу налаштувань Liveupdate, який використовується під час пакування.
Якщо задано, маніфест застосунку використовується для налаштування збірки рушія. Це дає змогу вилучати з рушія невикористовувані частини, щоб зменшити кінцевий розмір двійкового файлу. Дізнайтеся, як виключати невикористовувані можливості, у посібнику з маніфесту застосунку.
Налаштування Profiler у App Manifest визначає, чи додається код профайлера під час компонування налагоджувальних збірок і збірок випуску. Наведені нижче налаштування визначають поведінку коду профайлера, наявного у вибраній збірці, під час виконання. Докладніше див. у посібнику з профілювання.
Вмикає профайлер у грі.
Вибіркове вимірювання використання CPU типово ввімкнено в налагоджувальних збірках. Увімкніть це налаштування, якщо таке вимірювання також потрібне у збірці випуску, до якої через App Manifest включено підтримку профайлера.
Кількість мілісекунд паузи між оновленнями сервера.
Вмикає часову шкалу продуктивності в браузері (лише для HTML5).
profiler.max_sample_count — максимальна кількість вимірювань профайлера, що записуються для кожного потоку за кадр. Типове значення — 4096, мінімальне — 128. Збільшуйте його лише тоді, коли коректні дані профілювання перевищують обмеження; спочатку перевірте код профілювання нативних розширень на непарні виклики початку та завершення областей.
Під час запуску рушія можна передати з командного рядка значення конфігурації, що перевизначають налаштування game.project:
# Specify a bootstrap collection
$ dmengine --config=bootstrap.main_collection=/my.collectionc
# Set two custom config values
$ dmengine --config=test.my_value=4711 --config=test2.my_value2=foobar
Користувацькі значення, як і будь-які інші значення конфігурації, можна читати за допомогою відповідної функції, описаної в розділі Доступ під час виконання:
local my_value = sys.get_config_number("test.my_value")
local my_value2 = sys.get_config_string("test.my_value2")
local my_flag = sys.get_config_boolean("test.my_flag", false)
Файл налаштувань game.project містить багато значень, які задають максимальну кількість ресурсів певного типу, що можуть існувати одночасно. Часто цю кількість рахують окремо для кожної завантаженої колекції (collection), яку також називають світом. Рушій Defold використовує ці максимальні значення, щоб заздалегідь виділити пам’ять для відповідної кількості ресурсів і уникнути динамічного виділення та фрагментації пам’яті під час роботи гри.
Структури даних Defold для представлення компонентів (components) та інших ресурсів оптимізовано для мінімального споживання пам’яті. Утім, ці значення слід задавати обачно, щоб не виділяти більше пам’яті, ніж насправді потрібно.
Щоб додатково оптимізувати використання пам’яті, під час збирання Defold аналізує вміст гри й перевизначає максимальні значення, якщо точну кількість можна встановити напевно:
Можна визначати власні налаштування для основного проєкту або нативного розширення. Власні налаштування основного проєкту потрібно визначати у файлі game.properties у корені проєкту. Файли з назвою ext.properties виявляються будь-де в проєкті та завантажених бібліотечних залежностях; їм не потрібен файл ext.manifest поруч. Усі виявлені метадані розширень об’єднуються, після чого застосовується кореневий файл game.properties, який може їх перевизначити.
Файл налаштувань використовує той самий формат INI, що й game.project, а атрибути властивостей визначаються за допомогою крапкової нотації із суфіксом:
[my_category]
my_property.private = 1
...
Типовий файл метаданих, який застосовується завжди, доступний тут
Наразі доступні такі атрибути:
[my_extension]
// `type` - used for the value string parsing
my_property.type = string // one of the following values: bool, string, number, integer, string_array, resource
// `help` - displayed as a help tooltip in the editor
my_property.help = string
// `default` - value used as default if user didn't set value manually
my_property.default = string
// `private` - private value used during the bundle process but will be removed from the bundle itself
my_property.private = 1 // boolean value 1 or 0
// `label` - editor input label
my_property.label = My Awesome Property
// `minimum` and/or `maximum` - valid range for numeric properties, validated in the editor UI
my_property.minimum = 0
my_property.maximum = 255
// `options` - drop-down choices for the editor UI, comma-separated value[:label] pairs
my_property.options = android: Android, ios: iOS
// `resource` type only:
my_property.filter = jpg,png // allowed file extensions for resource selector dialog
my_property.preserve-extension = 1 // use original resource extension instead of a built one
// deprecation
my_property.deprecated = 1 // mark property as deprecated
my_property.severity-default = warning // if deprecated property is specified, but set to a default value
my_property.severity-override = error // if deprecated property is specified and set to a non-default value
Крім того, для категорії налаштувань можна задати такі атрибути:
[my_extension]
// `group` - game.project category group, e.g. Main, Platforms, Components, Runtime, Distribution
group = Runtime
// `title` - displayed category title
title = My Awesome Extension
// `help` - displayed category help
help = Settings for My Awesome Extension
Ці файли метаданих розбирають і Bob, і редактор. Редактор використовує їх для створення відповідних полів, варіантів вибору, перевірок і спливних підказок у переглядачі game.project.