> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/ru/unreal-engine/dopolnitelnye-sposoby-sborki.md).

# Дополнительные способы сборки

Эти подходы, как правило, медленнее и требуют более глубокого понимания Unreal Engine.

{% hint style="success" %}
См. [Unreal Engine](/ru/unreal-engine.md) для ваших первых шагов с хостингом игрового сервера Unreal Engine на Edgegap.
{% endhint %}

Изучите альтернативные методы сборки, подходящие для более опытных пользователей Unreal Engine и Edgegap:

1. [#build-with-scripts](#build-with-scripts "mention") это быстрый и автоматизированный метод, подходящий для непрерывной интеграции.
2. [#build-from-plugin](#build-from-plugin "mention") это устаревший метод сборки, требующий сборки Unreal Engine из исходного кода.

## ⚡ Сборка со скриптами

Сборка со скриптами — это быстрый, полностью автоматизированный и простой метод, подходящий для непрерывной интеграции.

### Подготовка <a href="#scripts-before-starting" id="scripts-before-starting"></a>

Прежде чем начать, убедитесь, что вы [создали бесплатный аккаунт на Edgegap](https://app.edgegap.com/auth/register) (кредитная карта не требуется).

**Настройте несколько основных вещей на вашей машине для разработки:**

<details>

<summary><a href="https://www.docker.com/products/docker-desktop/">Установите Docker Desktop (или Docker CLI)</a></summary>

* [Установите Docker Desktop из официального источника](https://www.docker.com/products/docker-desktop/) (аккаунт не требуется).
* Перезагрузите компьютер после завершения установки.

</details>

<details>

<summary><a href="https://www.unrealengine.com/en-US/ue-on-github">Получите доступ к ресурсам Unreal Engine на GitHub</a></summary>

* [Зарегистрируйтесь для получения аккаунта GitHub.](https://github.com/)
* Перейдите к вашей [странице панели связанных аккаунтов Unreal Engine](https://www.epicgames.com/account/connections).
* Свяжите аккаунт GitHub с вашим аккаунтом Epic.
  * Авторизуйте Epic Games для доступа к вашему аккаунту GitHub.
  * Примите приглашение по электронной почте присоединиться к организации Epic Games на GitHub.

</details>

<details>

<summary><a href="https://github.com/settings/tokens/new">Создать персональный токен доступа GitHub (классический)</a></summary>

* включить только разрешение `[read:packages]` ,
* создать токен - **сохраните это значение в безопасном месте, вы не увидите его снова**.

</details>

### 1. Настройка проекта <a href="#scripts-configure-game-builds" id="scripts-configure-game-builds"></a>

Независимо от того, используете ли вы компьютер с Windows, Mac или Linux, вы будете **должны собрать свой сервер для среды выполнения Linux**, поскольку большинство поставщиков облачных услуг в настоящее время (включая Edgegap) работают на Linux. Не беспокойтесь, знание Linux не требуется.

☑️ **Отключить проверку совместимости версии Unreal Engine** для выделенных серверов и **установить `IpNetDriver` в качестве драйвера по умолчанию или запасного драйвера** для сетей репликации:

{% hint style="warning" %}
Убедитесь, что **вводите свой `DefaultServerTarget`  в конце этого фрагмента**!
{% endhint %}

<pre data-title="Config/DefaultEngine.ini"><code><a data-footnote-ref href="#user-content-fn-1">[ConsoleVariables]</a>
net.IgnoreNetworkChecksumMismatch=1
net.CurrentHandshakeVersion=2
net.MinHandshakeVersion=2
net.VerifyNetSessionID=0
net.VerifyNetClientID=0

<a data-footnote-ref href="#user-content-fn-2">[/Script/Engine.GameEngine]</a>
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

<a data-footnote-ref href="#user-content-fn-3">[/Script/OnlineSubsystemUtils.IpNetDriver]</a>
MaxClientRate=1000000000
MaxInternetClientRate=1000000000
InitialConnectTimeout=120.0
MaxNetTickRate=60
NetServerMaxTickRate=60

<a data-footnote-ref href="#user-content-fn-4">[/Script/BuildSettings.BuildSettings]</a>
DefaultServerTarget=LyraServer
</code></pre>

☑️ **Перезапустите Unreal Engine** чтобы загрузить последние изменения.

☑️ **Создайте скрипт целевой сборки выделенного сервера** скопировав ваш `<PROJECT>Editor.Target.cs` файл в корневой папке проекта и переименовав копию в `<PROJECT>Server.Target.cs`.

☑️ **Замените любые ссылки на** слово **`Editor`** **на** **`Server`** в вашем скрипте целевой сборки сервера.

☑️ **Измените параметры сборки сервера по умолчанию** редактируя ваш скрипт целевой сборки сервера:

<pre data-title="Source/<PROJECT>Server.Target.cs"><code>bOverrideBuildEnvironment = true;
<a data-footnote-ref href="#user-content-fn-5">bUseLoggingInShipping = true;</a>
<a data-footnote-ref href="#user-content-fn-6">bUseChecksInShipping = false;</a>
<a data-footnote-ref href="#user-content-fn-7">bBuildWithEditorOnlyData = false;</a>
<a data-footnote-ref href="#user-content-fn-8">bUsesSlate = false;</a>
<a data-footnote-ref href="#user-content-fn-9">bCompileCEF3 = false;</a>
</code></pre>

✅ Теперь вы можете перейти к следующему шагу.

<details>

<summary>Необязательно: интеграция со Steam</summary>

Чтобы **интегрировать Steam**, используйте `IpNetDriver` в качестве драйвера сети по умолчанию и убедитесь, что [64-битный steamclient.so для Linux](https://developer.valvesoftware.com/wiki/SteamCMD#Ubuntu) скопирован в образ по пути `/home/ubuntu/.steam/sdk64/` .

{% hint style="success" %}
Добавьте `steamclient.so`  библиотеку для Linux одним щелчком с помощью нашего [расширения Docker](/ru/unreal-engine.md).
{% endhint %}

<a href="https://github.com/edgegap/edgegap-unreal-buildutils/raw/refs/heads/main/steamclient.so" class="button secondary" data-icon="square-down">Скачать steamclient.so</a>

<pre class="language-docker" data-title="Dockerfile"><code class="lang-docker">...
<a data-footnote-ref href="#user-content-fn-10">RUN mkdir -p /home/ubuntu/.steam/sdk64</a>
<a data-footnote-ref href="#user-content-fn-11">COPY ./steamclient.so /home/ubuntu/.steam/sdk64/steamclient.so</a>
<a data-footnote-ref href="#user-content-fn-12">RUN chmod 755 /home/ubuntu/.steam/sdk64/steamclient.so</a>
...
</code></pre>

{% hint style="warning" %}
**Обязательно отключите сетевые функции Steam, которые отправляют пакеты через Steam Relay и могут вызывать проблемы с подключением или всплески задержки.** Это не мешает вам использовать другие функции Steamworks, такие как таблицы лидеров, достижения, голосовая связь или публикация вашей игры в магазине Steam.
{% endhint %}

<pre data-title="Config/DefaultEngine.ini"><code>[OnlineSubsystemSteam]
bUseSteamNetworking=false
bAllowP2PPacketRelay=false
<a data-footnote-ref href="#user-content-fn-13">SteamDevAppId=480</a>
<a data-footnote-ref href="#user-content-fn-13">SteamAppId=480</a>
</code></pre>

</details>

### 2. Сборка и публикация <a href="#scripts-build-and-upload-to-edgegap" id="scripts-build-and-upload-to-edgegap"></a>

Работа в команде разработчиков предполагает совместное использование кода. Когда что-то идет не так, последнее, что вы хотите услышать — «у меня работает». Серверы игр должны надежно запускаться на любой машине, поскольку успешные игровые серверы работают на тысячах серверов по всему миру.

Чтобы сделать ваш сервер надежным, мы используем Docker — виртуализационное ПО, гарантирующее, что все зависимости вашего серверного кода вплоть до уровня операционной системы всегда будут точно такими же, независимо от того, как и где запускается сервер.

{% hint style="info" %}
Мы рекомендуем посмотреть [«Никогда не устанавливайте локально» (видео)](https://www.youtube.com/watch?v=J0NuOlA2xDc\&ab_channel=Coderized). **Вам НЕ нужно использовать Dockerhub с Docker**.  Docker ≠ Dockerhub. Думайте о Docker как о движке для программирования, а о Dockerhub — как о его магазине приложений.
{% endhint %}

☑️ **Убедитесь, что Docker установлен и запущен.**

{% embed url="<https://github.com/edgegap/edgegap-unreal-buildutils>" %}

☑️ **Скачайте наши Edgegap Build Utils** включая:

* скрипты сборки для конкретных платформ:
  * `BuildAndUpload.ps1`  для Windows,
  * `BuildAndUpload.sh`  для macOS и Linux,
* `Dockerfile`  - рецепт для сборки ваших Docker-образов,
* `dockerignore`  - список некритичных файлов для удаления и ускорения сборки,
* `StartServer.sh`  - служебный скрипт, управляющий жизненным циклом вашего Unreal Engine во время выполнения.

☑️ **Переместите `edgegap-unreal-buildutils` папку в корневой каталог вашего проекта.**

☑️ **Отредактируйте `BuildAndUpload`  скрипт для вашей платформы** чтобы настроить:

* учетные данные GitHub, используемые для загрузки предварительно собранных образов Unreal Engine для Linux-серверов,
* сведения о проекте — версия движка, конфигурация сервера, имя файла .uproject,
* [учетные данные Edgegap Registry](https://app.edgegap.com/registry-management/repositories/list) для загрузки ваших готовых сборок.

☑️ **Запустите отредактированный скрипт** чтобы начать процесс сборки и загрузки. После выполнения этого шага будет добавлен новый **образ в вашей** [странице панели управления Edgegap Container Registry в вашем Repository](https://app.edgegap.com/registry-management/repositories/list).

☑️ Вы будете автоматически перенаправлены на **создание нового** [Приложения и версии](/ru/learn/orkestraciya/application-and-versions.md#app-versions) в [панель управления](https://app.edgegap.com/application-management/applications/list)**.**

✅ Теперь вы можете перейти к следующему шагу, перейдите к [#test-your-server-locally](#test-your-server-locally "mention").

<details>

<summary>Устранение неполадок и FAQ</summary>

`ОШИБКА: не удалось выполнить функцию Build: Dockerfile не может быть пустым`

* Некоторые исходники плагина могут отсутствовать `Dockerfile` и/или `StartServer.sh` , пожалуйста, найдите копию этих файлов в исходной версии вашего плагина на GitHub и добавьте их в ваш локальный плагин.

***

`open //./pipe/dockerDesktopLinuxEngine: Системе не удается найти указанный файл.`

* Убедитесь, что Docker запущен на вашей машине разработки.

***

`invalid reference format EdgegapLog: Warning: OnContainerizeCallback: Не удалось создать контейнер, сообщение: Failed`

* Убедитесь, что имя вашего приложения задано и не содержит пробелов в конце.
* Не забудьте нажать Enter, чтобы подтвердить введенное значение после завершения редактирования.

***

[**Не удалось найти файл правил назначения для цели ‘ProjectName’ при сборке проекта?**](https://forums.unrealengine.com/t/how-may-i-resolve-an-error-couldnt-find-target-rules-file-for-target-projectname-when-building-a-project/411707)

* Измените конфигурацию сборки в вашем `XYZServerTarget.cs` файле:

```
BuildConfig = EProjectPackagingBuildConfigurations::PPBC_Shipping;
```

***

`403 Forbidden, не удалось отправить контейнер, сообщение: Failed`

* Пожалуйста, убедитесь, что ваши учетные данные Docker настроены правильно.
* Если вы используете Edgegap Container Registry, убедитесь, что имя пользователя не содержит `app-version-pull` , это профиль, который позволяет только загружать образы. Вместо этого ваш профиль должен напоминать адрес электронной почты вашей учетной записи.
* Убедитесь, что у вас достаточно свободного места в вашем [Container Registry](https://app.edgegap.com/registry-management/repositories/list). Рекомендуем попробовать [#optimize-server-build-size](#optimize-server-build-size "mention"), а также использовать [наш API для удаления старых образов](https://docs.edgegap.com/api/#tag/Container-Registry/operation/image-tag-delete). Образы хранятся на вашем локальном компьютере до удаления для резервного копирования.

</details>

## ⚡ Сборка из плагина <a href="#build-from-plugin" id="build-from-plugin"></a>

Наш устаревший плагин включает расширенные утилиты и требует сборки Unreal Engine из исходного кода.

### Подготовка <a href="#plugin-before-starting" id="plugin-before-starting"></a>

Прежде чем начать, убедитесь, что вы [создали бесплатный аккаунт на Edgegap](https://app.edgegap.com/auth/register) (кредитная карта не требуется).

**Настройте несколько основных вещей на вашей машине для разработки:**

<details>

<summary><a href="https://www.docker.com/products/docker-desktop/">Установите Docker Desktop (или Docker CLI)</a></summary>

* [Установите Docker Desktop из официального источника](https://www.docker.com/products/docker-desktop/) (аккаунт не требуется).
* Перезагрузите компьютер после завершения установки.

</details>

<details>

<summary><a href="https://www.unrealengine.com/en-US/ue-on-github">Получите доступ к ресурсам Unreal Engine на GitHub</a></summary>

* [Зарегистрируйтесь для получения аккаунта GitHub.](https://github.com/)
* Перейдите к вашей [странице панели связанных аккаунтов Unreal Engine](https://www.epicgames.com/account/connections).
* Свяжите аккаунт GitHub с вашим аккаунтом Epic.
  * Авторизуйте Epic Games для доступа к вашему аккаунту GitHub.
  * Примите приглашение по электронной почте присоединиться к организации Epic Games на GitHub.

</details>

<details>

<summary>Настройте вашу среду разработки</summary>

* [Скачайте исходный код Unreal Engine](https://dev.epicgames.com/documentation/en-us/unreal-engine/downloading-unreal-engine-source-code#downloadingthesourcecode).
* [Настройте Visual Studio](https://dev.epicgames.com/documentation/en-us/unreal-engine/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine).

</details>

<details>

<summary>Установите официальный плагин Edgegap для Unreal Engine</summary>

Выберите один из официальных плагинов:

* скачайте [Инструменты разработчика](/ru/unreal-engine/developer-tools.md#integration-kit),
* или скачайте [Инструменты разработчика](/ru/unreal-engine/developer-tools.md#legacy-plugin).

</details>

### 1. Настройка проекта <a href="#scripts-configure-game-builds" id="scripts-configure-game-builds"></a>

Независимо от того, используете ли вы компьютер с Windows, Mac или Linux, вы будете **должны собрать свой сервер для среды выполнения Linux**, поскольку большинство поставщиков облачных услуг в настоящее время (включая Edgegap) работают на Linux. Не беспокойтесь, знание Linux не требуется.

☑️ [Соберите вашу версию Unreal Engine из исходного кода](https://dev.epicgames.com/documentation/en-us/unreal-engine/building-unreal-engine-from-source) на вашей машине разработки,

* установите [специфическую ветку релиза (например, ](https://github.com/EpicGames/UnrealEngine/tree/5.5)[`5.5`](https://github.com/EpicGames/UnrealEngine/tree/5.5)[)](https://github.com/EpicGames/UnrealEngine/tree/5.5) чтобы строить на стабильной основе,
* **используйте твердотельный накопитель (SSD)** чтобы ускорить сборку (с \~12+ часов до \~2+ часов),
* это требуется только в первый раз и каждый раз, когда вы обновляете версию Unreal Engine.

{% hint style="warning" %}
**Скачивайте ветку с помощью git-клиента!** Использование интерфейса GitHub всегда скачает нестабильную `релизную` ветку.
{% endhint %}

☑️ [Установите Unreal Cross-Compiling Toolchain](https://dev.epicgames.com/documentation/en-us/unreal-engine/linux-development-requirements-for-unreal-engine) для сборки игровых серверов для Linux.

☑️ **Перезагрузите вашу машину разработки**, иначе позже вы столкнетесь с ошибками!

☑️ **Отключить проверку совместимости версии Unreal Engine** для выделенных серверов и **установить `IpNetDriver` в качестве драйвера по умолчанию или запасного драйвера** для сетей репликации:

{% hint style="warning" %}
Убедитесь, что **вводите свой `DefaultServerTarget`  в конце этого фрагмента**!
{% endhint %}

<pre data-title="Config/DefaultEngine.ini"><code><a data-footnote-ref href="#user-content-fn-1">[ConsoleVariables]</a>
net.IgnoreNetworkChecksumMismatch=1
net.CurrentHandshakeVersion=2
net.MinHandshakeVersion=2
net.VerifyNetSessionID=0
net.VerifyNetClientID=0

<a data-footnote-ref href="#user-content-fn-2">[/Script/Engine.GameEngine]</a>
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

<a data-footnote-ref href="#user-content-fn-3">[/Script/OnlineSubsystemUtils.IpNetDriver]</a>
MaxClientRate=1000000000
MaxInternetClientRate=1000000000
InitialConnectTimeout=120.0
MaxNetTickRate=60
NetServerMaxTickRate=60

<a data-footnote-ref href="#user-content-fn-4">[/Script/BuildSettings.BuildSettings]</a>
DefaultServerTarget=LyraServer
</code></pre>

☑️ **Перезапустите Unreal Engine** чтобы загрузить последние изменения.

☑️ **Создайте скрипт целевой сборки выделенного сервера** скопировав ваш `<PROJECT>Editor.Target.cs` файл в корневой папке проекта и переименовав копию в `<PROJECT>Server.Target.cs`.

☑️ **Замените любые ссылки на** слово **`Editor`** **на** **`Server`** в вашем скрипте целевой сборки сервера.

☑️ **Измените параметры сборки сервера по умолчанию** редактируя ваш скрипт целевой сборки сервера:

<pre data-title="Source/<PROJECT>Server.Target.cs"><code>bOverrideBuildEnvironment = true;
<a data-footnote-ref href="#user-content-fn-5">bUseLoggingInShipping = true;</a>
<a data-footnote-ref href="#user-content-fn-6">bUseChecksInShipping = false;</a>
<a data-footnote-ref href="#user-content-fn-7">bBuildWithEditorOnlyData = false;</a>
<a data-footnote-ref href="#user-content-fn-8">bUsesSlate = false;</a>
<a data-footnote-ref href="#user-content-fn-9">bCompileCEF3 = false;</a>
</code></pre>

✅ Теперь вы можете перейти к следующему шагу.

<details>

<summary>Необязательно: интеграция со Steam</summary>

Чтобы **интегрировать Steam**, используйте `IpNetDriver` в качестве драйвера сети по умолчанию и убедитесь, что [64-битный steamclient.so для Linux](https://developer.valvesoftware.com/wiki/SteamCMD#Ubuntu) скопирован в образ по пути `/home/ubuntu/.steam/sdk64/` .

{% hint style="success" %}
Добавьте `steamclient.so`  библиотеку для Linux одним щелчком с помощью нашего [расширения Docker](/ru/unreal-engine.md).
{% endhint %}

<a href="https://github.com/edgegap/edgegap-unreal-buildutils/raw/refs/heads/main/steamclient.so" class="button secondary" data-icon="square-down">Скачать steamclient.so</a>

<pre class="language-docker" data-title="Dockerfile"><code class="lang-docker">...
<a data-footnote-ref href="#user-content-fn-10">RUN mkdir -p /home/ubuntu/.steam/sdk64</a>
<a data-footnote-ref href="#user-content-fn-11">COPY ./steamclient.so /home/ubuntu/.steam/sdk64/steamclient.so</a>
<a data-footnote-ref href="#user-content-fn-12">RUN chmod 755 /home/ubuntu/.steam/sdk64/steamclient.so</a>
...
</code></pre>

{% hint style="warning" %}
**Обязательно отключите сетевые функции Steam, которые отправляют пакеты через Steam Relay и могут вызывать проблемы с подключением или всплески задержки.** Это не мешает вам использовать другие функции Steamworks, такие как таблицы лидеров, достижения, голосовая связь или публикация вашей игры в магазине Steam.
{% endhint %}

<pre data-title="Config/DefaultEngine.ini"><code>[OnlineSubsystemSteam]
bUseSteamNetworking=false
bAllowP2PPacketRelay=false
<a data-footnote-ref href="#user-content-fn-13">SteamDevAppId=480</a>
<a data-footnote-ref href="#user-content-fn-13">SteamAppId=480</a>
</code></pre>

</details>

### 2. Сборка и публикация <a href="#plugin-build-and-upload-to-edgegap" id="plugin-build-and-upload-to-edgegap"></a>

Работа в команде разработчиков предполагает совместное использование кода. Когда что-то идет не так, последнее, что вы хотите услышать — «у меня работает». Серверы игр должны надежно запускаться на любой машине, поскольку успешные игровые серверы работают на тысячах серверов по всему миру.

Чтобы сделать ваш сервер надежным, мы используем Docker — виртуализационное ПО, гарантирующее, что все зависимости вашего серверного кода вплоть до уровня операционной системы всегда будут точно такими же, независимо от того, как и где запускается сервер.

{% hint style="info" %}
Мы рекомендуем посмотреть [«Никогда не устанавливайте локально» (видео)](https://www.youtube.com/watch?v=J0NuOlA2xDc\&ab_channel=Coderized). **Вам НЕ нужно использовать Dockerhub с Docker**.  Docker ≠ Dockerhub. Думайте о Docker как о движке для программирования, а о Dockerhub — как о его магазине приложений.
{% endhint %}

☑️ **Убедитесь, что Docker установлен и запущен.**

☑️ [Пересоберите наш плагин](https://dev.epicgames.com/community/learning/tutorials/qz93/unreal-engine-building-plugins) для вашей пользовательской версии Unreal Engine, собранной из исходного кода.

☑️ **Скопируйте скомпилированный плагин** в вашу `Plugins` папку **в корне вашего проекта Unreal** (не движка).

☑️ **Запустите ваш новый Unreal Engine** из Visual Studio и **откройте пункт панели инструментов Edit / Plugins**.

☑️ **Включите наш плагин** в разделе **INSTALLED / Other**.

☑️ **Настройте наш плагин** открыв пункт панели инструментов **Edit / Project Settings / Edgegap**:

{% hint style="warning" %}
Всегда нажимайте Enter после изменения значений ввода, чтобы **убедиться, что они сохранены правильно**.
{% endhint %}

* **API Token** необходим для загрузки вашего сервера на Edgegap, получите его, нажав Get Token.
* **Имя приложения** на Edgegap может совпадать с именем вашего проекта или быть изменен, убедитесь, что используете только строчные буквы, цифры или символы дефиса `-` и подчеркивания `_`.
* **Image Path** предоставляет при желании пользовательскую иконку для вашего игрового сервера на Edgegap, пока пропустите этот шаг.
* **Version name** полезно для отслеживания совместимости клиента/сервера и отката в случае проблем.
  * Для названий версий приложения отлично подходят метки времени, например `2024.01.30-16.50.20-UTC` .
  * Несколько версий приложения могут указывать на один и тот же тег образа, например `v1.1.0` и `dev` .
  * Узнайте больше о [Приложения и версии](/ru/learn/orkestraciya/application-and-versions.md) позже.

{% hint style="warning" %}
**Не используйте повторно `latest` версию** чтобы предотвратить развертывание нашей системой устаревшего (кэшированного) образа.
{% endhint %}

☑️ Нажмите **Create Application.** Выполнение этого шага приведет к появлению **нового приложения** в [Edgegap Dashboard](https://app.edgegap.com/application-management/applications/list).

☑️ Пока пропустите настройки пользовательского контейнерного реестра, при желании позже вы сможете использовать сторонний реестр.

☑️ Когда вас устроит конфигурация, нажмите **Build and Push**, дождитесь завершения процесса и убедитесь, что в вашей консоли Unreal нет новых ошибок. Выполнение этого шага приведет к **в корне проекта появится новая папка** - `Saved/LinuxServer`. Кроме того, теперь в вашей **новый образ появляется теперь в вашей** [странице панели управления Edgegap Container Registry под вашим Repository](https://app.edgegap.com/registry-management/repositories/list), и новый [Приложения и версии](/ru/learn/orkestraciya/application-and-versions.md#app-versions) **появляется в вашей** [панели управления под вашим Application](https://app.edgegap.com/application-management/applications/list)**.**

☑️ В новой версии вашего приложения задайте переменную окружения `TARGET_FILE_NAME`  так, чтобы она соответствовала вашему `DefaultServerTarget`  значению из шага [#id-2.-configure-game-server-builds-1](#id-2.-configure-game-server-builds-1 "mention").

✅ Теперь можно перейти к следующему шагу.

<details>

<summary>Устранение неполадок и FAQ</summary>

`ОШИБКА: не удалось выполнить функцию Build: Dockerfile не может быть пустым`

* Некоторые исходники плагина могут отсутствовать `Dockerfile` и/или `StartServer.sh` , пожалуйста, найдите копию этих файлов в исходной версии вашего плагина на GitHub и добавьте их в ваш локальный плагин.

***

`open //./pipe/dockerDesktopLinuxEngine: Системе не удается найти указанный файл.`

* Убедитесь, что Docker запущен на вашей машине разработки.

***

`invalid reference format EdgegapLog: Warning: OnContainerizeCallback: Не удалось создать контейнер, сообщение: Failed`

* Убедитесь, что имя вашего приложения задано и не содержит пробелов в конце.
* Не забудьте нажать Enter, чтобы подтвердить введенное значение после завершения редактирования.

***

[**Не удалось найти файл правил назначения для цели ‘ProjectName’ при сборке проекта?**](https://forums.unrealengine.com/t/how-may-i-resolve-an-error-couldnt-find-target-rules-file-for-target-projectname-when-building-a-project/411707)

* Измените конфигурацию сборки в вашем `XYZServerTarget.cs` файле:

```
BuildConfig = EProjectPackagingBuildConfigurations::PPBC_Shipping;
```

***

`403 Forbidden, не удалось отправить контейнер, сообщение: Failed`

* Пожалуйста, убедитесь, что ваши учетные данные Docker настроены правильно.
* Если вы используете Edgegap Container Registry, убедитесь, что имя пользователя не содержит `app-version-pull` , это профиль, который позволяет только загружать образы. Вместо этого ваш профиль должен напоминать адрес электронной почты вашей учетной записи.
* Убедитесь, что у вас достаточно свободного места в вашем [Container Registry](https://app.edgegap.com/registry-management/repositories/list). Рекомендуем попробовать [#optimize-server-build-size](#optimize-server-build-size "mention"), а также использовать [наш API для удаления старых образов](https://docs.edgegap.com/api/#tag/Container-Registry/operation/image-tag-delete). Образы хранятся на вашем локальном компьютере до удаления для резервного копирования.

</details>

## 👉 Следующие шаги

Продолжите к [/pages/4f12d6b07f29a7e2ea62dce99593d25108936d1c#id-5.-deploy-to-cloud](https://docs.edgegap.com/ru/unreal-engine/pages/4f12d6b07f29a7e2ea62dce99593d25108936d1c#id-5.-deploy-to-cloud "mention") с нашим [Dashboard Deployment](https://app.edgegap.com/deployment-management/deployments/list) функционалом и узнайте больше об остановке ваших развертываний, внедряемых переменных и параметризации, а также о доступности сервера для обнаружения.

[^1]: отключить проверку совместимости

[^2]: использовать IpNetDriver

[^3]: установить частоту тиков клиента/сервера и тайм-аут

[^4]: установить сборку сервера как целевую по умолчанию

[^5]: включить логи

[^6]: не использовать проверки

[^7]: не упаковывать контент редактора

[^8]: не упаковывать Slate UI (редактор)

[^9]: не компилировать CEF3 (редактор)

[^10]: создать родительский каталог

[^11]: скопировать файл steamclient.so

[^12]: разрешить выполнение клиента Steam

[^13]: найдите в портале вашего издателя в Steam
