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

Формат файла

Формат файла настроек представляет собой простой текст (формат 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). Примеры:

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

Если опция отмечена, движок будет записывать файл журнала. Если запущено несколько экземпляров из редактора, файл будет называться 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 are bundled in the main game archive using the Custom Resources field in game.project.

The Custom Resources field should contain a comma separated list of resources that will be included in the main game archive. If directories are specified, all files and directories in that directory are recursively included. You can read the files using sys.load_resource().

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

Bundle Resources

bundle_resources Bundle resources are additional files and folders located as a part of your application bundle using the Bundle Resources field in game.project.

The Bundle Resources field should contain a comma separated list of directories containing resource files and folders that should be copied as-is into the resulting package when bundling. The directories must be specified with an absolute path from the project root, for example /res. The resource directory must contain subfolders named by platform, or architecture-platform.

Supported platforms are ios, android, osx, win32, linux, web, switch A subfolder named common is also allowed, containing resource files common for all platforms. Example:

res
├── win32
│   └── mywin32file.txt
├── common
│   └── mycommonfile.txt
└── android
    ├── myandroidfile.txt
    └── res
        └── xml
            └── filepaths.xml

You can use sys.get_application_path() to get the path to where the application is stored. Use this application base path to create the final absolute path to the files you need access to. Once you have the absolute path of these files you can use the io.* and os.* functions to access the files.

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

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. Рекомендуется для новых проектов.

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():

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

Component max count optimizations

The game.project settings file contains many values specifying the maximum number of a certain resource that can exist at the same time, often counted per loaded collection (also called world). The Defold engine will use these max values to preallocate memory for this amount of memory to avoid dynamic allocations and memory fragmentation while the game is running.

The Defold data structures used to represent components and other resources are optimized to use as little memory as possible but care should still be taken when setting the values to avoid allocating more memory than is actually necessary.

To further optimize memory usage the Defold build process will analyse the content of the game and override the max counts if it is possible to know for certain the exact amount:

  • If a collection doesn’t contain any factory components the exact amount of each component and Game Object will be allocated and the max count values will be ignored.
  • If a collection contains a factory component the spawned objects will be analysed and the max count will be used for components that can be spawned from the factories and for Game Objects.
  • If a collection contains a factory or a collection factory with activated “Dynamic Prototype” option, this collection will use the max counters.

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

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

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

[my_category]
my_property.private = 1
...

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

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

// `type` — используется для парсинга строкового значения (на данный момент только в bob.jar)
my_property.type = string // возможные значения: bool, string, number, integer, string_array, resource

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

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

// `private` — приватное значение, используемое при сборке, но не включаемое в итоговый бандл
my_property.private = 1 // булевое значение: 1 или 0

На данный момент meta-свойства используются только в bob.jar при сборке, но в будущем они будут также обрабатываться редактором и отображаться в game.project.