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

Налаштування проєкту

Файл 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.

Розділи та налаштування

Нижче наведено всі доступні налаштування, упорядковані за категоріями.

Project

Title

Назва застосунку.

Version

Версія застосунку.

Publisher

Ім’я видавця.

Developer

Ім’я розробника.

Write Log File

Визначає, коли рушій записує файл журналу. Варіанти:

  • “Never”: не записувати файл журналу.
  • “Debug”: записувати файл журналу лише для збірок Debug.
  • “Always”: записувати файл журналу для збірок Debug і Release.

Якщо з редактора запущено більше одного екземпляра (instance), файл матиме назву instance_2_log.txt, де 2 — індекс екземпляра. Якщо запущено один екземпляр або запуск виконується з пакета, файл матиме назву log.txt. Файл журналу розміщуватиметься за одним із наведених шляхів (вони перевіряються в такому порядку):

  1. Шлях, указаний у project.log_dir (приховане налаштування)
  2. Системний шлях для журналів:
    • macOS/iOS: NSDocumentDirectory
    • Android: Context.getExternalFilesDir()
    • Інші: коренева папка застосунку
  3. Шлях до допоміжних даних застосунку
    • macOS/iOS: NSApplicationSupportDirectory
    • Windows: CSIDL_APPDATA (наприклад, C:\Users\<username>\AppData\Roaming)
    • Android: Context.getFilesDir()
    • Linux: змінна середовища HOME

Minimum Log Level

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

Compress Archive

Вмикає стиснення архівів під час пакування. Зауважте, що наразі це застосовується до всіх платформ, окрім Android, де apk уже містить усі дані в стисненому вигляді.

Dependencies

Список URL-адрес Library URL бібліотек проєкту. Докладніше див. у посібнику з бібліотек.

Custom Resources

custom_resources Користувацькі ресурси включають до основного архіву гри за допомогою поля Custom Resources у game.project.

Поле Custom Resources має містити розділений комами список ресурсів, які буде включено до основного архіву гри. Якщо вказано каталоги, усі вкладені файли та каталоги включаються рекурсивно. Читати ці файли можна за допомогою sys.load_resource().

Завантаження користувацьких ресурсів докладніше описано в посібнику з доступу до файлів.

Bundle Resources

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_exclude_resources Розділений комами список ресурсів, які не слід включати до пакета. Тобто їх буде вилучено з результату збирання ресурсів на кроці bundle_resources.


Bootstrap

Main Collection

Посилання на файл колекції (collection), яка використовується для запуску застосунку; типово /logic/main.collection.

Render

Файл налаштувань рендерингу, який визначає конвеєр рендерингу; типово /builtins/render/default.render.


Library

Include Dirs

Розділений пробілами список каталогів вашого проєкту, до яких слід надавати доступ через механізм поширення бібліотек. Докладніше див. у посібнику з бібліотек.


Script

Shared State

Установіть прапорець, щоб усі типи скриптів використовували спільний стан Lua.


Engine

Run While Iconified

Дозволяє рушію продовжувати роботу, коли вікно застосунку згорнуто (лише для настільних платформ).

Fixed Update Frequency

Частота оновлення функції життєвого циклу fixed_update(self, dt) у герцах.

Max Time Step

Якщо протягом одного кадру часовий крок стає завеликим, його буде обмежено цим максимальним значенням. У секундах.


Display

Width

Ширина вікна застосунку в пікселях.

Height

Висота вікна застосунку в пікселях.

High Dpi

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

Samples

Кількість вибірок для згладжування методом надлишкової вибірки. Задає підказку вікна GLFW_FSAA_SAMPLES. Значення 0 означає, що згладжування вимкнено.

Fullscreen

Установіть прапорець, якщо застосунок має запускатися в повноекранному режимі. Якщо прапорець знято, застосунок працює у вікні.

Update Frequency

Бажана частота кадрів у герцах. Задайте 0 для змінної частоти кадрів. Значення більше за 0 задає фіксовану частоту кадрів, яка під час виконання обмежується фактичною частотою кадрів (це означає, що не можна оновлювати ігровий цикл двічі за кадр рушія). Використовуйте sys.set_update_frequency(hz), щоб змінювати це значення під час виконання. Це налаштування також працює у збірках без графічного інтерфейсу.

Swap interval

Це ціле значення визначає, як застосунок працює з вертикальною синхронізацією (vsync). 0 вимикає vsync; типове значення — 1. Якщо використовується адаптер OpenGL, це значення задає кількість кадрів, через яку вікно має оновлюватися між обмінами буферів. У Vulkan немає вбудованого поняття інтервалу обміну буферів, тому це значення визначає, чи ввімкнено vsync.

Vsync

Налаштування для сумісності зі старими версіями. Це налаштування застаріле; у нових проєктах використовуйте Swap Interval. Якщо його вимкнено, фактичний інтервал обміну буферів примусово встановлюється в 0. Якщо ввімкнено, фактичне значення визначається Swap Interval.

Display Profiles

Визначає файл профілів дисплея; типово /builtins/render/default.display_profilesc. Докладніше див. у посібнику з компонувань GUI.

Dynamic Orientation

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

Display Device Info

Виводить інформацію про GPU в консоль під час запуску.


Render

Clear Color Red

Червоний канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.

Clear Color Green

Зелений канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.

Clear Color Blue

Синій канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.

Clear Color Alpha

Альфа-канал кольору очищення, який використовується скриптом рендерингу та під час створення вікна.


Font

Runtime Generation

Використовує генерування шрифтів під час виконання.


Physics

Max Collision Object Count

Максимальна кількість об’єктів колізій.

Type

Тип фізики: 2D або 3D.

Gravity X

Гравітація світу вздовж осі x. У метрах за секунду.

Gravity Y

Гравітація світу вздовж осі y. У метрах за секунду.

Gravity Z

Гравітація світу вздовж осі z. У метрах за секунду.

Debug

Установіть прапорець, щоб візуалізувати фізику для налагодження.

Debug Alpha

Значення альфа-компонента візуалізації фізики, 01.

World Count

Максимальна кількість одночасно наявних фізичних світів; типово 4. Якщо ви одночасно завантажуєте більше ніж 4 світи через проксі колекцій (collection proxy), потрібно збільшити це значення. Враховуйте, що кожен фізичний світ виділяє значний обсяг пам’яті.

Scale

Визначає, як фізичний рушій має масштабувати фізичні світи відносно ігрового світу для забезпечення числової точності, 0.011.0. Якщо задати значення 0.02, фізичний рушій сприйматиме 50 одиниць як 1 метр ($1 / 0.02$).

Allow Dynamic Transforms

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

Use Fixed Timestep

Установіть прапорець, якщо фізичний рушій має використовувати фіксовані оновлення, незалежні від частоти кадрів. Використовуйте це налаштування разом із функцією життєвого циклу fixed_update(self, dt) і налаштуванням проєкту engine.fixed_update_frequency, щоб взаємодіяти з фізичним рушієм через рівні проміжки часу. Для нових проєктів рекомендовано значення true.

Debug Scale

Розмір відображення одиничних об’єктів фізики, як-от трійок осей і нормалей.

Max Collisions

Кількість колізій, про які повідомлятиметься скриптам.

Max Contacts

Кількість точок контакту, про які повідомлятиметься скриптам.

Contact Impulse Limit

Ігнорує контактні імпульси зі значеннями, меншими за це налаштування.

Ray Cast Limit 2d

Максимальна кількість запитів трасування променів у 2D за кадр.

Ray Cast Limit 3d

Максимальна кількість запитів трасування променів у 3D за кадр.

Trigger Overlap Capacity

Максимальна кількість фізичних тригерів, що перекриваються.

Velocity Threshold

Мінімальна швидкість, за якої колізії будуть пружними.

Max Fixed Timesteps

Максимальна кількість кроків симуляції за використання фіксованого часового кроку (лише для 3D).


Graphics

Default Texture Min Filter

Визначає фільтр для зменшення текстури.

Default Texture Mag Filter

Визначає фільтр для збільшення текстури.

Max Draw Calls

Максимальна кількість викликів рендерингу.

Max Characters:

Кількість символів, для яких заздалегідь виділяється місце в буфері рендерингу тексту, тобто кількість символів, які можна відобразити в кожному кадрі.

Max Font Batches

Максимальна кількість пакетів тексту, які можна відобразити в кожному кадрі.

Max Debug Vertices

Максимальна кількість вершин для налагодження. Використовуються, зокрема, для рендерингу фізичних форм.

Texture Profiles

Файл профілів текстур для цього проєкту; типово /builtins/graphics/default.texture_profiles.

Verify Graphics Calls

Перевіряє повернене значення після кожного графічного виклику й повідомляє про помилки в журналі.

OpenGL Version Hint

Підказка щодо версії контексту OpenGL. Якщо вибрано конкретну версію, вона використовуватиметься як мінімально необхідна (не застосовується до OpenGL ES).

OpenGL Core Profile Hint

Задає підказку профілю OpenGL ‘core’ під час створення контексту. Профіль core вилучає всі застарілі можливості OpenGL, як-от рендеринг у безпосередньому режимі. Не застосовується до OpenGL ES.

Vulkan Version Major

graphics.vulkan_version_major — підказка щодо основної версії контексту/API Vulkan. Застосовується лише тоді, коли вибрано графічну підсистему Vulkan. Типове значення — 1.

Vulkan Version Minor

graphics.vulkan_version_minor — підказка щодо другорядної версії контексту/API Vulkan. Застосовується лише тоді, коли вибрано графічну підсистему Vulkan. Типове значення — 0.


Shader

Exclude GLES 2.0

Не компілювати шейдери для пристроїв із OpenGLES 2.0 / WebGL 1.0.

GLSL ES Default Precision Float

shader.glsl_es_default_precision_float задає типовий глобальний кваліфікатор точності для значень із рухомою комою у кроскомпільованих шейдерах GLSL ES. Допустимі значення — mediump і highp; типове значення — mediump.

GLSL ES Default Precision Int

shader.glsl_es_default_precision_int задає типовий глобальний кваліфікатор точності для цілих значень у кроскомпільованих шейдерах GLSL ES. Допустимі значення — mediump і highp; типове значення — highp.


Input

Repeat Delay

Кількість секунд очікування до початку повторення введення, коли елемент керування утримують натиснутим.

Repeat Interval

Кількість секунд між повтореннями введення, коли елемент керування утримують натиснутим.

Gamepads

Посилання на файл конфігурації геймпадів, який зіставляє їхні сигнали з ОС; типово /builtins/input/default.gamepads.

Game Binding

Посилання на файл конфігурації введення, який зіставляє апаратне введення з діями; типово /input/game.input_binding.

Use Accelerometer

Установіть прапорець, щоб рушій отримував події введення акселерометра в кожному кадрі. Вимкнення введення акселерометра може дещо підвищити продуктивність.


Resource

Http Cache

Якщо встановлено прапорець, вмикається кеш HTTP для швидшого завантаження ресурсів через мережу в рушій, запущений на пристрої.

Uri

Розташування даних збірки проєкту у форматі URI.

Max Resources

Максимальна кількість ресурсів, які можна завантажити одночасно.


Network

Http Timeout

Тайм-аут HTTP у секундах. Задайте 0, щоб вимкнути тайм-аут.

Http Thread Count

Кількість робочих потоків сервісу HTTP.

Http Cache Enabled

Установіть прапорець, щоб увімкнути кеш HTTP для мережевих запитів (через http.request()). Кеш HTTP зберігатиме відповідь на запит і повторно використовуватиме збережену відповідь для подальших запитів. Кеш HTTP підтримує заголовки відповіді HTTP ETag і Cache-Control: max-age.

SSL Certificates

Файл із кореневими сертифікатами SSL, які використовуються для перевірки ланцюжка сертифікатів під час встановлення з’єднань SSL.


Collection

Max Instances

Максимальна кількість екземплярів ігрових об’єктів у колекції; типово 1024. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Max Input Stack Entries

Максимальна кількість ігрових об’єктів у стеку введення.


Sound

Gain

Загальне підсилення (гучність), 01.

Use Linear Gain

Якщо ввімкнено, підсилення лінійне. Якщо вимкнено, використовується експоненційна крива.

Max Sound Data

Максимальна кількість звукових ресурсів, тобто кількість унікальних звукових файлів під час виконання.

Max Sound Buffers

(Наразі не використовується) Максимальна кількість одночасно наявних звукових буферів.

Max Sound Sources

(Наразі не використовується) Максимальна кількість звуків, що відтворюються одночасно.

Max Sound Instances

Максимальна кількість одночасно наявних екземплярів звуку, тобто звуків, що фактично відтворюються одночасно.

Max Component Count

Максимальна кількість звукових компонентів на колекцію.

Sample Frame Count

Кількість відліків, які використовуються для кожного оновлення звуку. 0 означає автоматичне визначення (1024 для 48 кГц, 768 для 44.1 кГц).

Use Thread

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

Stream Enabled

Якщо встановлено прапорець, звукова система використовуватиме потокове завантаження вихідних файлів.

Stream Cache Size

Максимальний розмір кешу звукових фрагментів, що містить усі фрагменти. Типово 2097152 байти. Це число має бути більшим за добуток кількості завантажених звукових файлів і розміру фрагмента потоку. Інакше є ризик витіснення нових фрагментів із кешу в кожному кадрі.

Stream Chunk Size

Розмір у байтах кожного фрагмента, що завантажується потоково.

Stream Preload Size

Визначає розмір у байтах початкового фрагмента звукових файлів, що читаються з архіву.


Sprite

Max Count

Максимальна кількість спрайтів на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Subpixels

Установіть прапорець, щоб дозволити відображення спрайтів без вирівнювання за пікселями.


Tilemap

Max Count

Максимальна кількість карт плиток на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Max Tile Count

Максимальна кількість одночасно видимих плиток на колекцію.


Spine

Max Count

Максимальна кількість компонентів моделей Spine. (Див. інформацію про оптимізацію максимальної кількості компонентів).


Mesh

Max Count

Максимальна кількість компонентів сіток на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).


Model

Max Count

Максимальна кількість компонентів моделей на колекцію. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Split Meshes

Розділяє сітки з понад 65536 вершинами на нові сітки.

Max Bone Matrix Texture Width

Максимальна ширина текстури матриць кісток. Використовується лише розмір, потрібний для анімацій, округлений угору до найближчого степеня двійки.

Max Bone Matrix Texture Height

Максимальна висота текстури матриць кісток. Використовується лише розмір, потрібний для анімацій, округлений угору до найближчого степеня двійки.


GUI

Max Count

Максимальна кількість компонентів GUI. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Max Particle Count

Максимальна кількість одночасно наявних частинок у GUI.

Max Animation Count

Максимальна кількість активних анімацій у GUI.


Label

Max Count

Максимальна кількість текстових міток. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Subpixels

Установіть прапорець, щоб дозволити відображення текстових міток без вирівнювання за пікселями.


Particle FX

Max Count

Максимальна кількість одночасно наявних емітерів. (Див. інформацію про оптимізацію максимальної кількості компонентів).

Max Particle Count

Максимальна кількість одночасно наявних частинок.


Box2D

Velocity Iterations

Кількість ітерацій обчислення швидкості для фізичного розв’язувача Box2D 2.2.

Position Iterations

Кількість ітерацій обчислення позиції для фізичного розв’язувача Box2D 2.2.

Sub Step Count

Кількість підкроків для фізичного розв’язувача Box2D 3.x.


Collection proxy

Max Count

Максимальна кількість проксі колекцій. (Див. інформацію про оптимізацію максимальної кількості компонентів).


Collection factory

Max Count

Максимальна кількість фабрик колекцій (collection factory). (Див. інформацію про оптимізацію максимальної кількості компонентів).


Factory

Max Count

Максимальна кількість фабрик (factory) ігрових об’єктів. (Див. інформацію про оптимізацію максимальної кількості компонентів).


iOS

App Icon 57x57–180x180

Файл зображення (.png) для піктограми застосунку із заданими шириною й висотою W × H.

Launch Screen

Файл Storyboard (.storyboard). Докладніше про його створення див. у посібнику з iOS.

Icons Asset

Файл ресурсу піктограм (.car), що містить піктограми застосунку.

Prerendered Icons

(iOS 6 і раніші версії) Установіть прапорець, якщо ваші піктограми вже відрендерено. Якщо прапорець знято, до піктограм автоматично додаватиметься глянцевий відблиск.

Bundle Identifier

Ідентифікатор пакета дає iOS змогу розпізнавати оновлення вашого застосунку. Ідентифікатор пакета має бути зареєстрований в Apple та унікальний для вашого застосунку. Не можна використовувати той самий ідентифікатор для застосунків iOS і macOS. Він має складатися з двох або більше сегментів, розділених крапкою. Кожен сегмент має починатися з літери. Кожен сегмент може містити лише літери, цифри, символ підкреслення або дефіс (-) (див. CFBundleIdentifier)

Bundle Name

Коротка назва пакета (15 символів) (див. CFBundleName).

Bundle Version

Версія пакета — число або x.y.z. (див. CFBundleVersion)

Info.plist

Якщо вказано, цей файл Info.plist використовується замість вбудованого базового маніфесту iOS під час пакування застосунку. Вбудований маніфест містить записи локальної мережі та Bonjour, потрібні редактору для виявлення цільових пристроїв у збірках, що не є збірками випуску. Якщо ви надаєте власний маніфест і вам потрібні виявлення цільових пристроїв, профілювання, гаряче перезавантаження або потокове передавання журналу на пристрої, збережіть ці записи, як описано в посібнику з iOS.

Privacy Manifest

Маніфест конфіденційності Apple для застосунку. Типове значення поля — /builtins/manifests/ios/PrivacyInfo.xcprivacy.

Custom Entitlements

Якщо вказано, права в наданому профілі підготовки (.entitlements, .xcent, .plist) буде об’єднано з правами з профілю підготовки, наданого під час пакування застосунку.

Default Language

Мова, яка використовується, якщо бажаної мови користувача немає в списку Localizations застосунку (див. CFBundleDevelopmentRegion). Використовуйте дволітерний код стандарту ISO 639-1, якщо бажана мова в ньому є, або трилітерний код ISO 639-2.

Localizations

Це поле містить розділені комами рядки, що задають назви мов або коди мов ISO для підтримуваних локалізацій (див. CFBundleLocalizations).


Android

App Icon 36x36–192x192

Файл зображення (.png) для піктограми застосунку із заданими шириною й висотою W × H.

Push Icon Small–LargeXxxhdpi

Файли зображень (.png) для власних піктограм push-сповіщень на Android. Піктограми автоматично використовуватимуться і для локальних, і для віддалених push-сповіщень. Якщо не задано, типово використовується піктограма застосунку.

Push Field Title

Визначає поле JSON у корисному навантаженні, яке слід використовувати як заголовок сповіщення. Якщо залишити це налаштування порожнім, заголовком push-сповіщень типово буде назва застосунку.

Push Field Text

Визначає поле JSON у корисному навантаженні, яке слід використовувати як текст сповіщення. Якщо залишити порожнім, використовуватиметься текст із поля alert, як і на iOS.

Version Code

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

Minimum SDK Version

Мінімальний рівень API, необхідний для запуску застосунку (android:minSdkVersion).

Target SDK Version

Рівень API, на який орієнтований застосунок (android:targetSdkVersion).

Package

Ідентифікатор пакета. Має складатися з двох або більше сегментів, розділених крапкою. Кожен сегмент має починатися з літери. Кожен сегмент може містити лише літери, цифри або символ підкреслення.

GCM Sender Id

Ідентифікатор відправника Google Cloud Messaging. Задайте рядок, призначений Google, щоб увімкнути push-сповіщення.

FCM Application Id

Ідентифікатор застосунку Firebase Cloud Messaging.

Manifest

Якщо задано, під час пакування використовується вказаний XML-файл маніфесту Android. Власний маніфест замінює вбудований базовий маніфест Defold. Фрагменти маніфестів нативних розширень і далі об’єднуються з ним, але подальші зміни вбудованого базового маніфесту не успадковуються автоматично, тому під час оновлення порівнюйте власні маніфести з поточним вбудованим маніфестом. Для ігор задайте android:appCategory="game" в елементі <application>. Для застосунків, що не є іграми, задавайте android:appCategory лише тоді, коли одна з визначених Android категорій застосунків точно описує застосунок.

Iap Provider

Визначає магазин, який слід використовувати. Допустимі варіанти — Amazon і GooglePlay. Докладніше див. у extension-iap.

Input Method

Визначає спосіб отримання введення з клавіатури на пристроях Android. Допустимі варіанти — KeyEvent (старий спосіб) і HiddenInputField (новий).

Immersive Mode

Якщо ввімкнено, приховує панелі навігації та стану й дає застосунку змогу отримувати всі події дотику на екрані.

Display Cutout

Розширює область відображення до вирізу дисплея.

Debuggable

Визначає, чи можна налагоджувати застосунок за допомогою таких інструментів, як GAPID або Android Studio. Це задає прапорець android:debuggable у маніфесті Android (офіційна документація).

ProGuard config

Власний файл ProGuard, що допомагає вилучити зайві класи Java з кінцевого APK.

Extract Native Libraries

Визначає, чи розпаковує інсталятор пакета нативні бібліотеки з APK у файлову систему. Якщо задано false, нативні бібліотеки зберігаються в APK без стиснення. Хоча APK може бути більшим, застосунок завантажується швидше, оскільки під час виконання бібліотеки завантажуються безпосередньо з APK. Це задає прапорець android:extractNativeLibs у маніфесті Android (офіційна документація).


macOS

App Icon

Файл піктограми пакета (.icns) для піктограми застосунку на macOS.

Info.plist

Якщо задано, під час пакування використовується вказаний файл info.plist.

Privacy Manifest

Маніфест конфіденційності Apple для застосунку. Типове значення поля — /builtins/manifests/osx/PrivacyInfo.xcprivacy.

Bundle Identifier

Ідентифікатор пакета дає macOS змогу розпізнавати оновлення вашого застосунку. Ідентифікатор пакета має бути зареєстрований в Apple та унікальний для вашого застосунку. Не можна використовувати той самий ідентифікатор для застосунків iOS і macOS. Він має складатися з двох або більше сегментів, розділених крапкою. Кожен сегмент має починатися з літери. Кожен сегмент може містити лише літери, цифри, символ підкреслення або дефіс (-).

Default Language

Мова, яка використовується, якщо бажаної мови користувача немає в списку Localizations застосунку (див. CFBundleDevelopmentRegion). Використовуйте дволітерний код стандарту ISO 639-1, якщо бажана мова в ньому є, або трилітерний код ISO 639-2.

Localizations

Це поле містить розділені комами рядки, що задають назви мов або коди мов ISO для підтримуваних локалізацій (див. CFBundleLocalizations).


Windows

App Icon

Файл зображення (.ico) для піктограми застосунку на Windows. Докладніше про створення файлу .ico див. у посібнику з Windows.


HTML5

Докладніше про багато з цих параметрів див. у посібнику з платформи HTML5.

Heap Size

Розмір купи в мегабайтах для Emscripten.

.html Shell

Використовує вказаний файл шаблону HTML під час пакування. Типово /builtins/manifests/web/engine_template.html.

Custom .css

Використовує вказаний CSS-файл теми під час пакування. Типово /builtins/manifests/web/light_theme.css.

Splash Image

Якщо задано, під час пакування для заставки при запуску використовується вказане зображення замість логотипа Defold.

Archive Location Prefix

Під час пакування для HTML5 дані гри розділяються на один або кілька архівних файлів даних. Коли рушій запускає гру, ці архівні файли читаються в пам’ять. Використовуйте це налаштування, щоб указати розташування даних.

Archive Location Suffix

Суфікс, який додається до архівних файлів. Корисно, наприклад, щоб примусово отримувати некешований вміст із CDN (наприклад, ?version2).

Engine Arguments

Список аргументів, які буде передано рушію.

Wasm Streaming

Вмикає потокове завантаження файлу wasm (працює швидше й використовує менше пам’яті, але потребує MIME-типу application/wasm).

Show Fullscreen Button

Вмикає кнопку Fullscreen у файлі index.html.

Show Made With Defold

Вмикає посилання Made With Defold у файлі index.html.

Show Console Banner

Якщо ввімкнено, під час запуску рушія цей параметр виводить інформацію про рушій і його версію в консоль браузера (через console.log()).

Scale Mode

Визначає спосіб масштабування полотна гри.

Retry Count

Кількість спроб завантажити файл під час запуску рушія (див. Retry Time).

Retry Time

Кількість секунд очікування між спробами завантажити файл, якщо завантаження не вдалося (див. Retry Count).

Transparent Graphics Context

Установіть прапорець, якщо графічний контекст має мати прозоре тло.


IAP

Auto Finish Transactions

Установіть прапорець, щоб автоматично завершувати транзакції IAP. Якщо прапорець знято, після успішної транзакції потрібно явно викликати iap.finish().


Live update

Settings

Файл ресурсу налаштувань Liveupdate, який використовується під час пакування.


Native extension

App Manifest

Якщо задано, маніфест застосунку використовується для налаштування збірки рушія. Це дає змогу вилучати з рушія невикористовувані частини, щоб зменшити кінцевий розмір двійкового файлу. Дізнайтеся, як виключати невикористовувані можливості, у посібнику з маніфесту застосунку.


Profiler

Налаштування Profiler у App Manifest визначає, чи додається код профайлера під час компонування налагоджувальних збірок і збірок випуску. Наведені нижче налаштування визначають поведінку коду профайлера, наявного у вибраній збірці, під час виконання. Докладніше див. у посібнику з профілювання.

Enabled

Вмикає профайлер у грі.

Track Cpu

Вибіркове вимірювання використання CPU типово ввімкнено в налагоджувальних збірках. Увімкніть це налаштування, якщо таке вимірювання також потрібне у збірці випуску, до якої через App Manifest включено підтримку профайлера.

Sleep Between Server Updates

Кількість мілісекунд паузи між оновленнями сервера.

Performance Timeline Enabled

Вмикає часову шкалу продуктивності в браузері (лише для HTML5).

Max Sample Count

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 аналізує вміст гри й перевизначає максимальні значення, якщо точну кількість можна встановити напевно:

  • Якщо колекція не містить компонентів-фабрик (factory components), пам’ять буде виділено для точної кількості компонентів кожного типу та ігрових об’єктів (game objects), а максимальні значення буде проігноровано.
  • Якщо колекція містить компонент-фабрику, об’єкти, які він створює, буде проаналізовано. Максимальні значення застосовуватимуться до компонентів, які можуть створювати фабрики, та до ігрових об’єктів.
  • Якщо колекція містить фабрику або фабрику колекцій з увімкненою опцією “Dynamic Prototype”, вона використовуватиме максимальні значення лічильників.

Користувацькі налаштування проєкту

Можна визначати власні налаштування для основного проєкту або нативного розширення. Власні налаштування основного проєкту потрібно визначати у файлі 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.