Експортування проєктів

Чому експорт?

Спочатку у Godot не було засобів для експорту проєктів. Розробники компілювали відповідні бінарні файли та збирали пакети для кожної платформи вручну.

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

На ПК

Поширити ігровий проєкт на ПК з Godot досить просто. Перетягніть бінарний файл Godot в ту саму директорію, що і файл project.godot, а потім стисніть каталог проєкту і готово.

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

Finally, Godot has a simple but efficient system for creating DLCs as extra package files.

Попередження

Godot does not support loading PCK files larger than 2 GB yet. If your exported project data is larger than 2 GB, you will need to split it into several PCK files by exporting additional PCKs and loading them at run-time.

На мобільний

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

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

З цим підходом є й інша проблема: різні пристрої віддають перевагу деяким даним у різних форматах. Основний приклад цього - стиснення текстур. Все апаратне забезпечення ПК використовує стиснення S3TC (BC), яке було стандартизовано вже більше десятиліття, але мобільні пристрої використовують різні формати для стиснення текстури, наприклад PVRTC (iOS), або ETC (Android).

Меню експорту

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

Щоб відкрити меню експорту, натисніть кнопку Експорт:

../../../_images/export.png

Відкриється меню експорту. Однак воно буде абсолютно порожнім. Це тому, що нам потрібно додати попередньо встановлений експорт.

../../../_images/export_dialog.png

Щоб створити попередньо встановлений експорт, натисніть кнопку Додати… у верхній частині меню експорту. Це відкриє спадний список платформ для вибору встановлення експорту.

../../../_images/export_preset.png

Варіантів за замовчуванням часто достатньо для експорту, тому налаштування їх зазвичай не потрібне. Однак для багатьох платформ потрібні додаткові інструменти (SDK) для встановлення експорту. Крім того, Godot потребує експортних шаблонів, встановлених для створення пакетів. Меню експорту скаржиться, коли чогось немає, і не дозволить користувачу експортувати на цю платформу, поки проблему не буде вирішено:

../../../_images/export_error.png

Користувачу варто в таких випадках звернутися до документації та дотримуватися інструкцій щодо правильної настройки цієї платформи.

Шаблони експорту

Крім створення платформи, для експорту проєктів повинні бути встановлені шаблони експорту. Їх можна отримати у вигляді файлу TPZ (який є перейменованим архівом ZIP) на сторінці завантаження.

Після завантаження їх можна встановити за допомогою параметра Встановити шаблони експорту у редакторі:

../../../_images/exptemp.png

Режим експортування

При експортуванні, Godot складає список усіх файлів, які потрібно експортувати, а потім створює пакет. Існує 3 режими експортування:

  • Експортувати усі ресурси у проєкті

  • Експортувати позначені ресурси (і залежності)

  • Експортувати позначені ресурси (і залежності)

../../../_images/expres.png

Export all resources in the project will export every resource in the project. Export selected scenes and Export selected resources gives you a list of the scenes or resources in the project, and you have to select every scene or resource you want to export.

../../../_images/expselected.png

Експорт із командного рядка

У виробництві, це корисно для автоматизації компіляції, і Godot підтримує це з параметрами командного рядка --export і --export-debug. Експорт із командного рядка все ще потребує попереднього встановлення експорту для визначення параметрів експорту. Основним викликом команди буде:

godot --export "Windows Desktop" some_name

Це буде експортовано до some_name.exe, якщо припустити, що є попереднє встановлення під назвою "Windows Desktop", і цей шаблон можна знайти. Шлях виходу відносно шляху проєкту, або абсолютний; він не поважає каталог, з якого викликалася команда.

Ви також можете налаштувати його для експорту лише файлу PCK, або ZIP, що дозволяє використовувати один експорт із кількома виконуваними програмами Godot. Це має місце, якщо ім'я цілі закінчується на .pck, або .zip.

Часто корисно поєднувати --export із --path та створювати спеціальний попередньо встановлений експорт для автоматизованого експорту:

godot --path path/to/project --export "pck" game_name.pck

PCK versus ZIP pack file formats

Each format has its upsides and downsides. PCK is the default and recommended format for most use cases, but you may want to use a ZIP archive instead depending on your needs.

PCK format:

  • Uncompressed format. Larger file size, but faster to read/write.

  • Not readable and writable using tools normally present on the user's operating system, even though there are third-party tools to extract and create PCK files.

ZIP format:

Попередження

Due to a known bug, when using a ZIP file as a pack file, the exported binary will not try to use it automatically. Therefore, you have to create a launcher script that the player can double-click or run from a terminal to launch the project:

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

Save the launcher script and place it in the same folder as the exported binary. On Linux, make sure to give executable permissions to the launcher script using the command chmod +x launch.sh.