Файл game.project содержит все настройки проекта. Он должен находиться в корневой папке проекта и называться game.project. Первое, что делает движок при старте и запуске игры, это ищет данный файл.
Каждая настройка в файле относится к определенной категории. При открытии файла Defold представляет все настройки, сгруппированные по категориям.
Ниже приведены все доступные настройки, упорядоченные по секциям. Некоторые параметры на данный момент не отображаются в редакторе настроек (они помечены ниже как “скрытые настройки”), но их можно настроить вручную, кликнув правой кнопкой мыши на game.project и выбрав Open With ▸ Text Editor.
Название приложения.
Версия приложения.
Если опция отмечена, движок будет записывать файл журнала log.txt в корень проекта. При запуске на iOS доступ к файлу журнала можно получить через iTunes, вкладка Apps раздел File Sharing. На Android файл хранится во внешнем хранилище приложения. При запуске приложения разработки dmengine журнал можно просмотреть с помощью:
$ adb shell cat /mnt/sdcard/Android/data/com.defold.dmengine/files/log.txt
Включает сжатие архивов при упаковке в бандл. Стоит отметить, что в настоящее время это относится ко всем платформам, кроме Android, где apk содержит все данные в уже сжатом виде.
Список URL на Library URL проекта. За подробностями обращайтесь к руководству по библиотекам.
Список ресурсов, разделенных запятыми, которые будут включены в проект. Если указаны каталоги, рекурсивно включаются все файлы и каталоги в этом каталоге. Ресурсы могут быть загружены с помощью sys.load_resource()
.
Список директорий, разделенных запятыми и содержащих файлы ресурсов и директории, которые должны быть скопированы как есть в результирующий бандл. Директории должны быть указаны с абсолютным путем от корня проекта, например /res
. Директория ресурсов должна содержать вложенные папки с именами platform
или architecure-platform
.
Поддерживаемые платформы: ios
, android
, osx
, win32
, linux
, web
.
Также допускается наличие подпапки с именем common
, содержащей файлы ресурсов, общие для всех платформ.
Список ресурсов, разделенных запятыми, которые не должны быть включены в бандл.
Ссылка на файл коллекции, используемой для запуска приложения, по умолчанию /logic/main.collection
.
Файл, используемый для настройки и определения пайплайна рендеринга, по умолчанию /builtins/render/default.render
.
Список директорий, разделенных пробелами, которые должны быть доступны из проекта через общий доступ к библиотеке.
Если опция отмечена, скрипты всех типов будут выполнятся в едином Lua-контексте. По умолчанию опция отключена.
Позволяет движку продолжать выполнение, пока окно приложения свернуто (только для настольных платформ), по умолчанию опция отключена (false
).
Ширина окна приложения в пикселях, по умолчанию 960
.
Высота окна приложения в пикселях, по умолчанию 640
.
Создает вторичный буфер высокого разрешения (high dpi back buffer) для мониторов с его поддержкой. При этом, игра будет рендериться в двойном разрешении по сравнению с тем, что установлено в настройках Width и Height и которое по прежнему будет логическим разрешением, используемым в скриптах и свойствах.
Количество сэмплов, используемых при избыточной выборке сглаживания (SSAA). Задает для окна инструкцию GLFW_FSAA_SAMPLES. По умолчанию 0
, что означает, что сглаживание отключено.
Если опция отмечена, приложение будет запускаться в полноэкранном режиме, иначе — в оконном.
If Vsync
checked, snaps to the closest matching swap interval for the set frame cap if a monitor is detected. Otherwise uses timers to respect the set value, 0 means no cap. This setting maps to display.update_frequency
.
Vertical sync, rely on hardware vsync for frame timing. Can be overridden depending on graphics driver and platform specifics.
Используемый файл профилей отображения, по умолчанию /builtins/render/default.display_profilesc
. За подробностями обращайтесь к руководству по GUI-компоновкам.
Если опция отмечена, приложение будет динамически переключаться между книжной и альбомной ориентациями при повороте устройства. Следует отметить, что в настоящее время в приложении для разработчиков данная настройка не предусмотрена.
Clear color red channel, используется рендер скриптом и при создании окна. Добавлено в 1.2.167.
Clear color green channel, используется рендер скриптом и при создании окна. Добавлено в 1.2.167.
Clear color blue channel, используется рендер скриптом и при создании окна. Добавлено в 1.2.167.
Clear color alpha channel, используется рендер скриптом и при создании окна. Добавлено в 1.2.167.
Используемый тип физики, 2D
(по умолчанию) или 3D
.
Мировая гравитация по оси Y. По умолчанию-10
, что соответствует естественному значению.
Если опция отмечена, физика будет визуализироваться в целях отладки.
Значение компонента альфа для визуализируемой физики, 0
–1
. По умолчанию 0.9
.
Максимальное количество одновременных физических пространств, по умолчанию 4
. Если загружать более 4 пространств одновременно через прокси коллекции, необходимо увеличить это значение. Следует помнить, что для каждого физического пространства выделяется значительный объем памяти.
Мировая гравитация по оси X. По умолчанию 0
.
Мировая гравитация по оси Z. По умолчанию 0
.
Указывает физическому движку, как масштабировать физические пространства по отношению к игровому миру для числовой точности, 0.01
–1.0
. Если значение установлено в 0.02
, это означает, что физический движок будет воспринимать 50 единиц как 1 метр ($1 / 0.02$). По умолчанию используется значение 1.0
.
Если опция отмечена, физический движок будет масштабировать объекты столкновения, используя масштаб игровых объектов, к которым они относятся. По умолчанию true
.
Указывает, насколько большими рисовать отдельные объекты в физике, такие как триады и нормали. По умолчанию 30
.
Количество коллизий, о которых будет сообщено скриптам, по умолчанию 64
.
Количество точек контакта, о которых будет сообщено скриптам, по умолчанию 128
.
Игнорировать импульсы контактов со значениями меньше этого, по умолчанию 0.0
.
Максимальное количество запросов 2d-рейкастинга в кадре. По умолчанию 64
.
Максимальное количество запросов 3d-рейкастинга в кадре. По умолчанию 128
.
Максимальное количество накладывающихся (overlapping) физических триггеров. По умолчанию 16
.
Указывает, какую фильтрацию использовать при уменьшающей фильтрации, linear
по умолчанию`.
Указывает, какую фильтрацию использовать при увеличивающей фильтрации, linear
по умолчанию.
Максимальное количество вызовов рендеринга, по умолчанию 1024
.
Количество символов, предварительно распределенных в буфере рендеринга текста, то есть количество символов, которое может быть отображено в каждом кадре, по умолчанию 8192
.
Максимальное количество отладочных вершин. Используется, в частности, для физического рендеринга форм, по умолчанию 10000
.
Файл профилей текстур, используемый для данного проекта, по умолчанию /builtins/graphics/default.texture_profiles
.
Секунды ожидания перед тем, как удерживаемый ввод начнет повторяться, по умолчанию 0.5
.
Секунды ожидания между каждым повторением удерживаемого ввода, по умолчанию 0.2
.
Ссылка на файл конфигурации геймпадов, который сопоставляет сигналы геймпадов с ОС. По умолчанию /builtins/input/default.gamepads
.
Ссылка на файл конфигурации ввода, который сопоставляет аппаратный ввод с действиями. По умолчанию /input/game.input_binding
.
Если опция отмечена, движок будет получать ввод событий акселерометра каждый кадр. Отключение ввода акселерометра может дать некоторый выигрыш в производительности. По умолчанию опция включена.
Если опция отмечена, будет включен кэш HTTP, что позволит запущенному на устройстве движку быстрее загружать ресурсы по сети. По умолчанию опция отключена.
Место поиска данных о сборке проекта, в формате URI.
Максимальное количество ресурсов, которые могут быть загружены одновременно, по умолчанию 1024
.
Время ожидания (timeout) HTTP в секундах. По умолчанию 0
, что соответствует отключению таймаута.
Максимальное количество экземпляров игровых объектов в коллекции, по умолчанию 1024
.
Глобальное усиление (громкость), 0
–1
, По умолчанию 1
.
Максимальное количество звуковых ресурсов, то есть количество уникальных звуковых файлов во время выполнения. По умолчанию 128
.
(В настоящее время не используется) Максимальное количество одновременно существующих буферов звука. По умолчанию 32
.
(В настоящее время не используется) Максимальное количество одновременно воспроизводимых звуков. По умолчанию 16
.
Максимальное количество одновременно существующих экземпляров звука, то есть фактических звуков, воспроизводимых в одно и то же время. По умолчанию 256
.
Если опция отмечена, звуковая система будет использовать потоки для воспроизведения звука, чтобы снизить риск запинания при высокой нагрузке на основной поток. По умолчанию включено.
Максимальное количество спрайтов на коллекцию. По умолчанию 128
.
Если опция отмечены, спрайтам разрешается отображаться невыровненными по отношению к пикселям, по умолчанию опция отмечена.
Максимальное количество тайловых карт на коллекцию. По умолчанию 16
.
Максимальное количество одновременно видимых тайлов на коллекцию. По умолчанию 2048
.
Максимальное количество Spine-моделей. По умолчанию 128
.
Максимальное количество компонентов Mesh на коллекцию. По умолчанию 128
.
Максимальное количество компонентов Model на коллекцию. По умолчанию 128
.
Максимальное количество компонентов GUI. По умолчанию 64
.
Максимальное количество одновременно существующих. По умолчанию 64
.
Максимальное количество одновременно существующих частиц. По умолчанию 1024
.
Максимальное компонентов Label. По умолчанию 64
.
Если опция отмечена, Label будут отображаться невыровненными по отношению к пикселям. По умолчанию включено.
Максимальное количество одновременно существующих эмиттеров. По умолчанию 64
.
Максимальное количество одновременно существующих частиц. По умолчанию 1024
.
Максимальное количество прокси-коллекций. По умолчанию 8
.
Максимальное количество фабрик коллекций. По умолчанию 128
.
Максимальное количество фабрик игровых объектов. По умолчанию 128
.
Файл изображения (.png), используемый в качестве иконки приложения при заданных значениях ширины и высоты — W
× H
.
Файл раскадровки (.storyboard). О том, как его создать читайте в руководстве по iOS.
(iOS 6 and earlier) Check if your icons are pre-rendered. If this is unchecked the icons will get a glossy highlight added automatically.
Идентификатор бандла, позволяющий iOS распознавать любые обновления к вашему приложению. ID бандла должен быть зарегистрирован в Apple и быть уникальным для приложения. Невозможно использовать один и тот же идентификатор для iOS и macOS приложений.
Если задано, этот файл info.plist используется при сборке бандла приложения.
If specified, the entitlements in the supplied provisioning profile (.entitlements, .xcent, .plist) will be merged with the entitlements from the provisioning profile supplied when bundling the application.
If checked the Custom Entitlements will replace the ones in the provisioning profile when bundling. Must be used in combination with the Custom Entitlements setting above.
Язык, используемый приложением, если в списке Localizations
отсутствует предпочитаемый пользователем язык (см. CFBundleDevelopmentRegion). Используйте двухбуквенный стандарт ISO 639-1, если предпочитаемый язык в нем доступен, или трехбуквенный ISO 639-2.
Данное поле содержит разделенные запятыми строки, идентифицирующие названия языков или ISO-обозначения языков поддерживаемых локализаций (см. CFBundleLocalizations).
Файл изображения (.png), используемый в качестве иконки приложения при заданных значениях ширины и высоты — W
× H
.
Файлы изображений (.png) для использования в качестве пользовательских иконок push-уведомлений на Android. Иконки будут автоматически использоваться как для локальных, так и для удаленных push-уведомлений. Если они не заданы, по умолчанию будет использоваться иконка приложения.
Specifies which payload JSON field should be used as notification title. Leaving this setting empty makes the pushes default to the application name as title.
Specifies which payload JSON field should be used as notification text. If left empty, the text in the field alert
is used, just as on iOS.
Целочисленное значение, указывающее на версию приложения. Увеличивайте для каждого последующего обновления.
Идентификатор пакета.
Идентификатор отправителя Google Cloud Messaging. Задайте здесь строку, назначенную Google для включения push-уведомлений.
Если задано, при упаковке бандла будет использоваться указанный XML-файл манифеста Android.
Используемый магазин. Возможные варианты: Amazon
и GooglePlay
. По умолчанию используется GooglePlay
.
Метод получения ввода с клавиатуры на Android устройствах. Возможные варианты: KeyEvent
(старый метод) и HiddenInputField
(новый). По умолчанию KeyEvent
.
Если опция отмечена, панель навигации и строка состояния скроются и приложение будет перехватывать все события касаний экрана.
Включает или отключает возможность отлаживать приложение с помощью таких инструментов, как GAPID или Android Studio. Опция устанавливает флаг android:debuggable
в манифесте Android.
Файл изображения (.png), используемый в качестве иконки приложения на macOS.
Если задано, указанный файл info.plist будет использоваться при сборке бандла.
Идентификатор бандла позволяет macOS распознавать обновления для вашего приложения. ID бандла должен быть зарегистрирован в Apple и быть уникальным для приложения. Невозможно использовать один и тот же идентификатор для приложений iOS и macOS.
Язык, используемый приложением, если в списке Localizations
отсутствует предпочитаемый пользователем язык (см. CFBundleDevelopmentRegion). Используйте двухбуквенный стандарт ISO 639-1, если предпочитаемый язык в нем доступен, или трехбуквенный ISO 639-2.
Данное поле содержит разделенные запятыми строки, идентифицирующие названия языков или ISO-обозначения языков поддерживаемых локализаций (см. CFBundleLocalizations).
Файл изображения (.ico), используемый в качестве иконки приложения в Windows. О том, как создать файл .ico, читайте в руководстве по Windows.
Используемый магазин. Возможные варианты: None
и Gameroom
. По умолчанию None
.
Размер кучи (количество мегабайт) для использования компилятором Emscripten. По умолчанию 256 МБ.
HTML файл-шаблон, используемый при сборке бандла. По умолчанию /builtins/manifests/web/engine_template.html
.
CSS файл темы, используемый при сборке бандла. По умолчанию /builtins/manifests/web/light_theme.css
.
Если опция отмечена, то при запуске при комплектации вместо логотипа Defold будет использоваться указанный сплешскрин.
При сборке бандла для HTML5 игровые данные разбиваются на один или несколько архивных файлов. Когда движок запускает игру, эти архивные файлы считываются в память. Данный параметр используется для указания расположения этих данных. По умолчанию archive
.
Суффикс, который будет добавляться к архивным файлам. Полезно, например, для принудительного получения некэшированного содержимого из CDN (?version2
, например).
Список аргументов, передаваемых движку.
Включает кнопку Fullscreen в файле index.html
. По умолчанию true
.
Включает ссылку Made With Defold в файле index.html
file. По умолчанию true
.
Метод масштабирования игрового холста. По умолчанию Downscale Fit
.
Если опция отмечена, IAP транзакции будут завершаться автоматически. В противном случае необходимо явно вызывать iap.finish()
после успешной транзакции. По умолчанию опция включена.
If set, use the specified private key file when bundling live update content. If no key file is set, a key is generated.
If set, use the specified public key file when bundling live update content. If no key file is set, a key is generated.
If set, use the app manifest to customize the engine build. This allows you to remove unneeded parts from the engine making it possible to decrease the final binary size. Note that this feature is in alpha state. Please visit the forum for information on how to proceed.
Если опция отмечена, профилирование CPU в релизных версиях сборок будет включено. Как правило, информация о профилировании доступна только в отладочных сборках.
Формат файла настроек представляет собой простой текст (формат INI) и может быть отредактирован любым стандартным текстовым редактором. Формат выглядит следующим образом:
[category1]
setting1 = value
setting2 = value
[category2]
...
Наглядный пример:
[bootstrap]
main_collection = /main/main.collectionc
что означает, что настройка main_collection относится к категории bootstrap. Во всех случаях, когда используется ссылка на файл, как в примере выше, путь должен быть дополнен символом ‘c’. Это означает, что вы ссылаетесь на скомпилированную версию файла. Также следует учитывать, что папка, содержащая файл game.project, будет корнем проекта, поэтому в пути установки присутствует начальный символ ‘/’.
При запуске движка из командной строки можно указать конфигурационные значения, переопределяющие настройки 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 = tonumber(sys.get_config("test.my_value"))
The first thing of note is that on desktop platforms vsync can be controlled globally by graphics card settings. If for example vsync is force-enabled in the graphics control panel it is not user controllable, e.g. the setting cannot be accessed or modified from Defold. Most mobile devices also has vsync enabled by default.
With Vsync
checked in game.project the engine relies on hardware vsync and uses a fixed time step dt
based on any detected monitor refresh rate. This is the default setting. With Vsync
checked and Frame cap
> 0, the rate will be clamped to a swap interval that matches any detected main monitor refresh rate. With Vsync
unchecked and Frame cap
0, the time step is not fixed but instead uses actual elapsed time difference for dt
. With Vsync
unchecked and Frame cap
> 0, timers are used to respect the set frame cap value. There is no guarantee that the frame cap will be achieved depending on platform specifics and hardware settings.
Swap interval is the interval with which to swap the front and back buffers in sync with vertical blanks (v-blank), the hardware event where the screen image is updated with data from the front buffer. A value of 1 swaps the buffers at every v-blank, a value of 2 swaps the buffers every other v-blank and so on. A value of 0 disables waiting for v-blank before swapping the buffers*. Setting swap_interval
is done by calling the set_vsync_swap_interval
function.
Currently, Defold queries for monitor refresh rate at init and uses that as a basis for picking a fixed dt
. If you want to support monitors using variable refresh rate (GSync or FreeSync for example) or other scenarios where the refresh rate might not be trivial to query, uncheck Vsync
to let the engine measure actual dt
each frame instead of relying on a fixed time step.
Frame cap 0 (default) | Frame cap > 0 | |
---|---|---|
Vsync checked (default) | Relies on hardware vsync. Fixed dt of 1/(detected monitor refresh rate) . |
Fixed dt of (swap interval)/(detected monitor refresh rate) where swap interval is clamped to the closest matching monitor refresh rate frame cap multiple. |
Vsync unchecked | Calculates dt each frame based on elapsed system time. Vsync might still be enabled in driver settings. |
Uses a fixed dt of 1 / (Frame cap) . Uses timers and sleeps to respect the set frame cap. |
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB