Work in progress

The content of this page was not yet updated for Godot 4.4 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Экспорт проектов

Зачем экспортировать?

Изначально, Godot не имел никаких способов экспорта проекта. Разработчики просто собирали исполняемые файлы и пакеты для каждой платформы вручную.

Когда все больше разработчиков (и даже непрограммистов) начали использовать его, и когда наша компания начала брать больше проектов одновременно, стало очевидно, что это узкое место.

На ПК

Распространить игровой проект на ПК с помощью Godot довольно просто. Поместите двоичный файл Godot в тот же каталог, что и файл project.godot, затем заархивируйте каталог проекта, и все готово.

Звучит просто, но, вероятно, есть несколько причин, по которым разработчик может этого не делать. Во-первых, нежелательно распространять множество файлов. Некоторым разработчикам может не понравиться, когда любопытные пользователи смотрят на то, как была сделана игра, другим она может показаться неэлегантной и так далее. Другая причина заключается в том, что разработчик может предпочесть специально скомпилированный двоичный файл, который меньше по размеру, более оптимизирован и не включает такие инструменты, как редактор и отладчик.

Наконец, Godot имеет простую но эффективную систему создания DLC как дополнительных пакетов файлов.

На мобильных платформах

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

Это может быть проблематично, потому что это означает, что разработчик должен быть ознакомлен с SDK каждой платформы еще до того, как сможет экспортировать. В то время как изучение каждого SDK всегда поощряется, может быть неприятно быть вынужденным делать это в нежелательное время.

У этого подхода есть ещё одна проблема: разные устройства предпочитают обрабатывать одни и те же данные в разных форматах. Яркий пример — сжатие текстур. Всё компьютерное оборудование использует сжатие S3TC (BC), стандартизированное уже более десяти лет, но мобильные устройства используют другие форматы сжатия текстур, например, ETC1 и ETC2.

Export menu (меню экспорта)

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

Чтобы открыть меню экспорта, нажмите кнопку Export (экспорт):

../../_images/export.webp

Откроется меню экспорта. Однако оно будет совершенно пустым. Это потому, что нам нужно добавить предустановку экспорта.

../../_images/export_dialog.webp

Чтобы создать набор настроек экспорта, нажмите кнопку Add… (Добавить…) в верхней части меню экспорта. Откроется раскрывающийся список платформ для выбора предустановки экспорта.

../../_images/export_preset.webp

Для экспорта часто бывает достаточно параметров по умолчанию, поэтому их настройка обычно не требуется. Однако многие платформы требуют установки дополнительных инструментов (SDK) для возможности экспорта. Кроме того, для создания пакетов Godot необходимо установить шаблоны экспорта. Меню экспорта будет жаловаться, когда что-то отсутствует, и не позволит пользователю экспортировать для этой платформы, пока он не решит следующее:

../../_images/export_error.webp

Ожидается, что в это время пользователь вернётся к документации и последует инструкциям по правильной настройке этой платформы.

Кнопки в нижней части меню позволяют экспортировать проект несколькими способами:

  • Export All (Экспортировать всё): экспортируйте проект как играбельную сборку (исполняемый файл Godot и данные проекта) для всех заданных шаблонов настроек. Для этого у всех шаблонов настроек должен быть определён Export Path (Путь экспорта).

  • Export Project: экспортируйте проект как воспроизводимую сборку (исполняемый файл Godot и данные проекта) для выбранного пресета.

  • Экспорт PCK/ZIP: экспорт ресурсов проекта в виде PCK- или ZIP-архива. Это не играбельная сборка, она экспортирует только данные проекта без исполняемого файла Godot.

Экспорт шаблонов

Помимо настройки платформы, необходимо установить шаблоны экспорта, чтобы иметь возможность экспортировать проекты. Их можно получить в виде файла TPZ (который представляет собой переименованный ZIP-архив) на странице загрузки.

После загрузки их можно установить с помощью параметра Install Export Templates (Установить шаблоны экспорта) в редакторе:

../../_images/export_templates.webp

Варианты ресурсов

При экспорте Godot составляет список всех файлов для экспорта, а затем создаёт пакет. Существует 3 различных режима экспорта:

  • Экспорт всех ресурсов проекта

  • Экспорт выбранных сцен (включая зависимости)

  • Экспорт выбранных ресурсов (включая зависимости)

../../_images/export_resources.webp

Export all resources in the project (Экспорт всех ресурсов в проекте) экспортирует все ресурсы в проекте. Export selected scenes (Экспорт выбранных сцен) и Export selected resources (Экспорт выбранных ресурсов) даёт вам список сцен или ресурсов в проекте, и вы должны выбрать каждую сцену или ресурс, которые хотите экспортировать.

../../_images/export_selected.webp

Export all resources in the project except resources checked below does exactly what it says, everything will be exported except for what you select in the list.

Export as dedicated server will remove all visuals from a project and replace them with a placeholder. This includes Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D. You can also go into the list of files and specify specific visual resources that you do wish to keep.

Примечание

Файлы и папки, название которых начинается с точки, никогда не будут включены в экспортируемый проект. Это сделано для того, чтобы папки контроля версий типа .git не были включены в экспортируемый файл PCK.

Под списком ресурсов находятся два фильтра, которые можно настроить. Первый позволяет экспортировать вместе с проектом файлы, не являющиеся ресурсами, такие как .txt, .json и .csv. Второй фильтр позволяет исключить все файлы определённого типа, не отменяя выбор вручную. Например, файлы .png.

Файлы конфигурации

Конфигурация экспорта хранится в двух файлах, оба из которых можно найти в каталоге проекта:

  • export_presets.cfg: Этот файл содержит большую часть конфигурации экспорта и может быть безопасно передан в систему контроля версий. Здесь нет ничего, что обычно пришлось бы хранить в секрете.

  • .godot/export_credentials.cfg: Этот файл содержит параметры экспорта, которые считаются конфиденциальными, такие как пароли и ключи шифрования. Как правило, его не следует передавать в систему контроля версий или передавать другим лицам, если вы не уверены в своих действиях.

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

Экспорт из командной строки

В рабочей среде полезно автоматизировать сборку, и Godot поддерживает это с помощью параметров командной строки --export-release и --export-debug. Для экспорта из командной строки по-прежнему требуется предустановка экспорта для определения параметров экспорта. Вот простой пример вызова команды:

godot --export-release "Windows Desktop" some_name.exe

Экспорт будет выполнен в файл some_name.exe, при условии, что существует предустановка с названием «Windows Desktop» и шаблон можно найти. (Имя предустановки экспорта необходимо указывать в кавычках, если оно содержит пробелы или специальные символы.) Выходной путь указывается относительно пути к проекту или абсолютно; каталог, из которого была вызвана команда, не учитывается.

Расширение выходного файла должно соответствовать расширению, используемому в процессе экспорта Godot:

  • Windows: .exe

  • macOS: .app or .zip (or .dmg when exporting from macOS)

  • Linux: Любое расширение (включая отсутствие). .x86_64 обычно используется для 64-битных двоичных файлов x86.

  • HTML5: .zip

  • Android: .apk

  • iOS: .zip

Вы также можете настроить его для экспорта только файла PCK или ZIP, что позволяет использовать один экспортированный файл основного пакета с несколькими исполняемыми файлами Godot. При этом имя шаблона настроек экспорта все равно должно быть указано в командной строке:

godot --export-pack "Windows Desktop" some_name.pck

Часто бывает полезно объединить флаг --export-release с флагом --path, чтобы не пришлось переходить cd в папку проекта перед выполнением команды:

godot --path /path/to/project --export-release "Windows Desktop" some_name.exe

См. также

Смотрите Руководство по командной строке для получения дополнительной информации об использовании Godot из командной строки.

PCK по сравнению с форматами файлов ZIP Pack

У каждого формата есть свои плюсы и минусы. PCK - это стандартный и рекомендуемый формат для большинства случаев использования, но вы можете вместо этого использовать ZIP-архив, в зависимости от ваших потребностей.

Формат PCK:

  • Несжатый формат. Больший размер файла, но быстрее для чтения / записи.

  • Не читаются и не доступны для записи с использованием инструментов, которые обычно присутствуют в операционной системе пользователя, даже несмотря на то, что существуют сторонние инструменты для извлечения и создания файлов PCK.

Формат ZIP:

  • Сжатый формат. Меньший размер файла, но медленнее для чтения / записи.

  • Доступно для чтения и записи с помощью инструментов, обычно имеющихся в операционной системе пользователя. Это может быть полезно, чтобы упростить модификацию (см. также Экспортирование пакетов, патчей и модов).

Предупреждение

Из-за известной ошибки, при использовании файла ZIP в качестве файла пакета экспортированный двоичный файл не будет пытаться использовать его автоматически. Следовательно, вы должны создать сценарий запуска, на который игрок может дважды щелкнуть или запустить из терминала для запуска проекта:

:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip

# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip

Сохраните сценарий запуска и поместите его в ту же папку, что и экспортированный двоичный файл. В Linux обязательно предоставьте исполняемые права для сценария запуска с помощью команды chmod +x launch.sh.