Экспорт проекта: от профиля до запуска
Выбор ресурсов и обычных файлов, C# publish, профили, команды и приёмка готовой сборки.
Результат экспорта
Экспортёр берёт проект, применяет настройки профиля, подготавливает ресурсы и создаёт результат для выбранной платформы. Экспорт не равен сборке самого движка из исходников и не равен сохранению документа в редакторе.
| Действие | Результат |
|---|---|
| Export Project | Приложение и необходимые данные для выбранного профиля |
| Export All | Экспорт всех профилей; каждому нужен выходной путь |
| Export PCK/ZIP | Только ресурсный пакет, без самостоятельного приложения |
Начните с экспорта Windows, если нужна первая проверяемая desktop-сборка. Для выделенного сервера используется отдельный режим; обычному клиенту не включайте его ради уменьшения размера.
Что подготовить до экспорта
- Главный документ задан и запускается. Все нужные документы и ресурсы сохранены.
- Скрипты собираются. Для C# существует ожидаемый
.slnи связанный.csproj: без решения текущий экспортный плагин может не распознать .NET-проект. - Есть профиль целевой платформы и шаблон нужной версии и архитектуры. Экспортёр должен находить именно требуемые Debug/Release-файлы.
- Выходная папка отделена от исходного проекта. Не складывайте готовые сборки среди ресурсов, которые снова попадут в экспорт.
Откройте Project → Export, добавьте платформу и задайте понятное имя профиля. Это имя, а не только название платформы, передаётся командной строке. Недостающие шаблоны проверяйте через Editor → Manage Export Templates. SDK и инструменты, требуемые другой платформой, настраиваются по её отдельному руководству; наличие профиля само по себе их не устанавливает.
Какие файлы попадут в игру
Для первой сборки удобно выбрать все ресурсы. После рабочего экспорта можно уменьшать состав и повторять проверку.
| Режим | На что обратить внимание |
|---|---|
| Все ресурсы | Это ресурсы проекта, а не автоматически любые файлы на диске |
| Выбранные уровни или ресурсы с зависимостями | Включите необходимые стартовые документы и проверьте всё, что загружается динамически |
| Все ресурсы, кроме выбранных | Исключение нужного файла может проявиться только во время игры |
| Настраиваемый экспорт | Режимы отдельных файлов проверяйте на готовом результате |
JSON, TXT и другие обычные файлы, читаемые через FileAccess, добавляются фильтром включения, например *.json. Фильтр исключения применяется после включения и может убрать нужный файл. Ресурс, путь к которому строится из строки во время игры, тоже проверяйте отдельно: явно включите его при выборочном экспорте.
Импорт ресурсов и экспорт решают разные задачи. Наличие исходной картинки на диске не доказывает, что её импортированный результат вошёл в пакет.
C#-сборка и ресурсный пакет
C#-плагин выполняет publish с конфигурацией ExportDebug или ExportRelease. dotnet/embed_build_outputs решает, будут ли результаты C# включены внутрь PCK или распределены отдельными файлами. Сохраняйте весь выходной набор, включая появившиеся каталоги и DLL.
binary_format/embed_pck у desktop-профиля — другая настройка: она встраивает сам PCK в исполняемый файл. Это не обещание единственного файла для любой игры. Расширения и другие зависимости могут оставаться отдельными.
PCK/ZIP, полученный через Export PCK/ZIP, сам по себе не запускается. Не подменяйте отсутствующую полноценную сборку случайным EXE редактора. Для первого выпуска используйте Export Project и проверьте его результат. Дополнительные пакеты описаны в PCK, патчах и модах.
Где хранятся настройки
export_presets.cfg— профили, фильтры, выходные пути и обычные параметры. Храните его вместе с версией проекта, проверив содержимое перед публикацией..reckfell/export_credentials.cfg— параметры, отмеченные экспортёром как секретные, включая пароли и ключи. Не добавляйте его в публичный репозиторий.
После переноса проекта проверьте наличие шаблонов, средств сборки и конфиденциальных настроек на новом компьютере. Сам файл профилей не переносит установленные SDK.
Автоматизация
Команды ниже — пример Windows. Подставьте существующий редактор, проект и имя профиля; создайте выходную папку заранее.
$engineExe = 'C:/Tools/Reckfell/Runtime/Reckfell Engine.console.exe'
$projectDir = 'C:/Projects/MyGame'
$buildDir = 'C:/Builds/MyGame'
New-Item -ItemType Directory -Force -Path "$buildDir/Release" | Out-Null
& $engineExe --headless --path $projectDir --editor --export-release 'Windows Desktop' "$buildDir/Release/Game.exe"
if ($LASTEXITCODE -ne 0) { throw 'Export failed' }Для Debug замените --export-release на --export-debug; для одного пакета используйте --export-pack и выходной .pck. Относительный выходной путь отсчитывается от проекта. Проверяйте код завершения и журнал. Возможности остальных аргументов — командная строка.
Приёмка готового результата
Запускайте выходное приложение, а не F6 в редакторе. Проверьте запуск из другой папки, ресурсы по динамическим путям, обычные файлы, ввод, звук, переходы между уровнями и сохранения в user://. Затем повторите проверку на целевом устройстве. Не удаляйте исходный проект после успешного экспорта: готовая сборка не заменяет исходные ресурсы и историю изменений.
В техническом примере выполнены Windows x64 C# Debug/Release-экспорт и запуск обеих сборок вне исходного проекта. Проверены C#-точка входа, ресурс, UTF-8 JSON и настройки. Остальные платформы, графика, все режимы фильтрации и установка на чистую систему этим примером не подтверждены.