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 представляет все настройки, сгруппированные по категориям.

Project settings

Формат файла

Настройки в game.project обычно изменяются в Defold, но файл также можно редактировать в любом стандартном текстовом редакторе. Файл использует стандартный формат INI и выглядит так:

[category1]
setting1 = value
setting2 = value
[category2]
...

A real example is:

[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). Примеры:

local title = sys.get_config_string("project.title")
local gravity_y = sys.get_config_number("physics.gravity_y")

Ключ — это комбинация названия категории и имени настройки, разделённые точкой, записанные строчными буквами с заменой всех пробелов на подчёркивания. Примеры: поле “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_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 упаковываются в основной архив игры с помощью поля Custom Resources в game.project.

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

Дополнительную информацию о пользовательских ресурсах см. в разделе Файловый доступ.

Bundle Resources

bundle_resources Bundle resources — это дополнительные файлы и каталоги, расположенные как часть application bundle с использованием поля 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

Ссылка на файл коллекции, используемой для запуска приложения. По умолчанию: /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

Создаёт back buffer высокого разрешения на дисплеях с поддержкой High DPI. Как правило, игра будет рендериться в двойном разрешении относительно значений Width и Height, которые по-прежнему будут логическим разрешением в скриптах и свойствах.

Samples

Количество сэмплов для суперсэмплинга (SSAA). Задаёт GLFW_FSAA_SAMPLES. Значение 0 отключает сглаживание.

Fullscreen

Если опция отмечена, приложение запускается в полноэкранном режиме. Если нет — в оконном.

Update Frequency

Желаемая частота кадров в герцах. Значение 0 — переменная частота. При значении больше 0 частота фиксируется и ограничивается в рантайме реальной частотой обновления. Это означает, что игровой цикл не сможет выполняться дважды за кадр движка. Используйте sys.set_update_frequency(hz) для изменения этого значения во время выполнения. Работает и в headless-сборках.

Swap interval

Целое значение, управляющее VSync. 0 — отключает, по умолчанию 1. При использовании OpenGL это значение определяет количество кадров между обновлениями буфера (swap interval). Для Vulkan VSync контролируется напрямую этим значением, так как понятия swap interval нет.

Vsync

Использовать аппаратный VSync для тайминга кадров. Может быть переопределено драйвером графики и особенностями платформы. Для устаревшего поведения «variable_dt» отключите этот параметр и установите ограничение частоты кадров в 0.

Display Profiles

Файл профилей дисплея. По умолчанию: /builtins/render/default.display_profilesc. Подробнее см. в руководстве по GUI Layouts.

Dynamic Orientation

Если опция включена, приложение автоматически переключает ориентацию между альбомной и портретной при повороте устройства. Приложение разработки не поддерживает эту настройку.

Display Device Info

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


Render

Clear Color Red

Компонент красного цвета для очистки экрана. Используется в render-скрипте и при создании окна.

Clear Color Green

Компонент зелёного цвета для очистки экрана. Используется в render-скрипте и при создании окна.

Clear Color Blue

Компонент синего цвета для очистки экрана. Используется в render-скрипте и при создании окна.

Clear Color Alpha

Компонент альфа-канала для очистки экрана. Используется в render-скрипте и при создании окна.


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. Если загружается больше через прокси, значение необходимо увеличить. Каждый мир использует значительный объём памяти.

Scale

Коэффициент масштабирования физики относительно игрового мира для повышения точности (0.011.0). Например, при 0.02 — 50 единиц равны 1 метру ($1 / 0.02$).

Allow Dynamic Transforms

Если включено, движок будет применять трансформации игрового объекта (позиция, масштаб, поворот) к привязанным компонентам столкновений.

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

Определяет фильтрацию, используемую при уменьшении текстуры (minification filtering).

Default Texture Mag Filter

Определяет фильтрацию, используемую при увеличении текстуры (magnification filtering).

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, такие как немедленный режим отрисовки (immediate mode). Не применяется к OpenGL ES.


Shader

Exclude GLES 2.0

Не компилировать шейдеры для устройств, использующих OpenGLES 2.0 / WebGL 1.0.


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()). Кэш сохраняет ответ, связанный с запросом, и повторно использует его при следующих вызовах. Поддерживаются заголовки ETag и Cache-Control: max-age.

SSL Certificates

Файл, содержащий корневые SSL-сертификаты, используемые для проверки цепочки сертификатов во время SSL-рукопожатия.


Collection

Max Instances

Максимальное количество экземпляров игровых объектов в коллекции. По умолчанию — 1024. (См. информацию по оптимизации количества компонентов).

Max Input Stack Entries

Максимальное количество игровых объектов во входном стеке.


Sound

Gain

Глобальное усиление (громкость), от 0 до 1.

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

Максимальное количество компонентов Mesh на коллекцию. (См. информацию по оптимизации количества компонентов).


Model

Max Count

Максимальное количество компонентов Model на коллекцию. (См. информацию по оптимизации количества компонентов).

Split Meshes

Разбивать меши с более чем 65536 вершинами на новые меши.

Max Bone Matrix Texture Width

Максимальная ширина текстуры матриц костей. Только необходимый размер для анимаций используется, округляется до ближайшей степени двойки.

Max Bone Matrix Texture Height

Максимальная высота текстуры матриц костей. Только необходимый размер для анимаций используется, округляется до ближайшей степени двойки.


GUI

Max Count

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

Max Particlefx Count

Максимальное количество одновременно активных эмиттеров.

Max Animation Count

Максимальное количество одновременно активных анимаций в GUI.


Label

Max Count

Максимальное количество компонентов Label. (См. информацию по оптимизации количества компонентов).

Subpixels

Если опция включена, Label могут отображаться с дробным позиционированием, не выровненным по пикселям.


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

Максимальное количество фабрик коллекций. (См. информацию по оптимизации количества компонентов).


Factory

Max Count

Максимальное количество фабрик игровых объектов. (См. информацию по оптимизации количества компонентов).


iOS

App Icon 57x57–180x180

Файл изображения (.png), используемый в качестве иконки приложения при заданных размерах W × H.

Launch Screen

Файл раскадровки (.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 при сборке приложения.

Privacy Manifest

Манифест конфиденциальности Apple для приложения. По умолчанию: /builtins/manifests/ios/PrivacyInfo.xcprivacy.

Custom Entitlements

Если задано, права (entitlements) из предоставленного provisioning profile (.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 Field Title

Поле в JSON-пейлоуде, используемое в качестве заголовка push-уведомления. Если оставить пустым, заголовком будет имя приложения.

Push Field Text

Поле в JSON-пейлоуде, используемое в качестве текста push-уведомления. Если оставить пустым, будет использовано поле alert, аналогично поведению на iOS.

Version Code

Целочисленное значение, указывающее версию приложения. Увеличивайте при каждом обновлении.

Minimum SDK Version

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

Target SDK Version

Уровень API, на который нацелено приложение (android:targetSdkVersion).

Package

Идентификатор пакета. Должен состоять минимум из двух сегментов, разделённых точками. Каждый сегмент должен начинаться с буквы и содержать только буквенно-цифровые символы или подчёркивания.

GCM Sender Id

Sender Id для Google Cloud Messaging. Установите строку, выданную Google, чтобы включить push-уведомления.

FCM Application Id

Идентификатор приложения Firebase Cloud Messaging.

Manifest

Если указано, используется заданный Android-манифест (XML-файл) при сборке.

Iap Provider

Указывает, какой магазин использовать. Допустимые значения: Amazon и GooglePlay. См. extension-iap для получения дополнительной информации.

Input Method

Определяет метод получения текстового ввода на Android-устройствах. Допустимые значения: KeyEvent (старый метод) и HiddenInputField (новый).

Immersive Mode

Если включено, скрывает навигационные и статус-бары и позволяет приложению обрабатывать все касания по экрану.

Display Cutout

Расширять область приложения в зону выреза экрана (display cutout).

Debuggable

Определяет, может ли приложение быть отлажено с помощью таких инструментов, как GAPID или Android Studio. Устанавливает флаг android:debuggable в Android-манифесте (официальная документация).

ProGuard config

Пользовательский файл ProGuard для удаления избыточных Java‑классов из итогового APK.

Extract Native Libraries

Указывает, должен ли установщик извлекать нативные библиотеки из APK в файловую систему. Если установлено в false, библиотеки остаются внутри APK в несжатом виде. Это увеличивает размер APK, но ускоряет загрузку, так как библиотеки загружаются напрямую. Устанавливает флаг android:extractNativeLibs в Android-манифесте (официальная документация).


macOS

App Icon

Файл изображения (.png), используемый как иконка приложения на 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

Включает кнопку полноэкранного режима в index.html.

Show Made With Defold

Добавляет ссылку «Made With Defold» в index.html.

Show Console Banner

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

Scale Mode

Определяет способ масштабирования canvas-элемента.

Retry Count

Количество попыток повторной загрузки файла при запуске движка (см. Retry Time).

Retry Time

Интервал в секундах между попытками загрузки файла при сбое (см. Retry Count).

Transparent Graphics Context

Если включено, графический контекст будет иметь прозрачный фон.


IAP

Auto Finish Transactions

Если включено, транзакции IAP завершаются автоматически. Если отключено, необходимо вручную вызывать iap.finish() после успешной транзакции.


Live update

Settings

Ресурс настроек Liveupdate, используемый при сборке.

Mount On Start

Автоматически монтировать ранее смонтированные ресурсы при запуске приложения.


Native extension

App Manifest

Если задан, используется манифест приложения для настройки сборки движка. Это позволяет удалить неиспользуемые части движка и уменьшить размер итогового бинарного файла. Подробнее об исключении ненужных возможностей читайте в руководстве по манифесту приложения.


Profiler

Enabled

Включить внутриигровой профайлер.

Track Cpu

Если включено, разрешается профилирование CPU в release-сборках. Обычно доступ к профилированию возможен только в debug-сборках.

Sleep Between Server Updates

Количество миллисекунд ожидания между обновлениями сервера.

Performance Timeline Enabled

Включить таймлайн производительности в браузере (только HTML5).


Установка конфигурационных значений при запуске движка

При запуске движка из командной строки можно указать конфигурационные значения, переопределяющие настройки game.project:

# Указать коллекцию начальной загрузки
$ dmengine --config=bootstrap.main_collection=/my.collectionc

# Установить два пользовательских конфигурационных значения
$ dmengine --config=test.my_value=4711 --config=test2.my_value2=1234

Пользовательские значения, как и любое другое значение конфигурации, могут быть считаны с помощью sys.get_config_string() или sys.get_config_number():

local my_value = sys.get_config_number("test.my_value")
local my_value2 = sys.get_config_string("test.my_value2")

Оптимизация max count для компонентов

Файл настроек game.project содержит множество значений, задающих максимальное количество определённого ресурса, которое может существовать одновременно, часто в расчёте на одну загруженную collection (также называемую world). Движок Defold использует эти максимальные значения для предварительного выделения памяти, чтобы избежать динамических аллокаций и фрагментации памяти во время работы игры.

Структуры данных Defold, используемые для представления компонентов и других ресурсов, оптимизированы так, чтобы занимать как можно меньше памяти, но при выборе значений всё равно нужно быть аккуратным, чтобы не выделять больше памяти, чем реально необходимо.

Чтобы дополнительно оптимизировать использование памяти, процесс сборки Defold анализирует содержимое игры и переопределяет max counts, если можно точно определить нужное количество:

  • Если collection не содержит компонентов factory, будет выделено точное количество каждого компонента и Game Object, а значения max count будут проигнорированы.
  • Если collection содержит компонент factory, будут проанализированы спаунимые объекты, и max count будет использоваться для компонентов, которые могут быть созданы из factory, а также для Game Objects.
  • Если collection содержит factory или collection factory с включённой опцией “Dynamic Prototype”, для этой collection будут использоваться max counters.

Пользовательские настройки проекта

Возможно определить собственные настройки как для основного проекта, так и для нативных расширений. Для основного проекта они указываются в файле game.properties в корне проекта. Для нативного расширения — в файле ext.properties рядом с ext.manifest.

Файл настроек использует тот же INI-формат, что и game.project, а атрибуты свойств указываются с помощью точечной нотации с суффиксами:

[my_category]
my_property.private = 1
...

Файл с настройками по умолчанию, применяемый всегда, доступен здесь.

Доступны следующие атрибуты:

[my_extension]
// `type` — используется для парсинга строкового значения
my_property.type = string // одно из следующих значений: bool, string, number, integer, string_array, resource

// `help` — используется как подсказка в редакторе (на данный момент не используется)
my_property.help = string

// `default` — значение по умолчанию, если пользователь не задал его вручную
my_property.default = string

// `private` — приватное значение, используемое при сборке, но не включаемое в итоговый бандл
my_property.private = 1 // булевое значение 1 или 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

Additionally, you can set the following attributes on a setting category:

[my_extension]
// `group` - category group in game.project, for example 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

At the moment meta properties are used only in bob.jar when bundling application, but later will be parsed by the editor and represented in the game.project viewer.