Другие способы сборки
Эти подходы, как правило, медленнее и требуют более глубокого понимания Unreal Engine.
См. Unreal Engine для ваших первых шагов с хостингом игрового сервера Unreal Engine на Edgegap.
Изучите альтернативные методы сборки, подходящие для более опытных пользователей Unreal Engine и Edgegap:
Другие способы сборки это быстрый и автоматизированный метод, подходящий для непрерывной интеграции.
⚡ Сборка из плагина это устаревший метод сборки, требующий сборки Unreal Engine из исходного кода.
⚡ Сборка со скриптами
Сборка со скриптами — это быстрый, полностью автоматизированный и простой метод, подходящий для непрерывной интеграции.
Подготовка
Прежде чем начать, убедитесь, что вы создали бесплатный аккаунт на Edgegap (кредитная карта не требуется).
Настройте несколько основных вещей на вашей машине для разработки:
Установите Docker Desktop (или Docker CLI)
Установите Docker Desktop из официального источника (аккаунт не требуется).
Перезагрузите компьютер после завершения установки.
Получите доступ к ресурсам Unreal Engine на GitHub
Перейдите к вашей странице панели связанных аккаунтов Unreal Engine.
Свяжите аккаунт GitHub с вашим аккаунтом Epic.
Авторизуйте Epic Games для доступа к вашему аккаунту GitHub.
Примите приглашение по электронной почте присоединиться к организации Epic Games на GitHub.
Создать персональный токен доступа GitHub (классический)
включить только разрешение
[read:packages],создать токен - сохраните это значение в безопасном месте, вы не увидите его снова.
1. Настройка проекта
Независимо от того, используете ли вы компьютер с Windows, Mac или Linux, вы будете должны собрать свой сервер для среды выполнения Linux, поскольку большинство поставщиков облачных услуг в настоящее время (включая Edgegap) работают на Linux. Не беспокойтесь, знание Linux не требуется.
☑️ Отключить проверку совместимости версии Unreal Engine для выделенных серверов и установить IpNetDriver в качестве драйвера по умолчанию или запасного драйвера для сетей репликации:
Убедитесь, что вводите свой DefaultServerTarget в конце этого фрагмента!
☑️ Перезапустите Unreal Engine чтобы загрузить последние изменения.
☑️ Создайте скрипт целевой сборки выделенного сервера скопировав ваш <PROJECT>Editor.Target.cs файл в корневой папке проекта и переименовав копию в <PROJECT>Server.Target.cs.
☑️ Замените любые ссылки на слово Editor на Server в вашем скрипте целевой сборки сервера.
☑️ Измените параметры сборки сервера по умолчанию редактируя ваш скрипт целевой сборки сервера:
✅ Теперь вы можете перейти к следующему шагу.
Необязательно: интеграция со Steam
Чтобы интегрировать Steam, используйте IpNetDriver в качестве драйвера сети по умолчанию и убедитесь, что 64-битный steamclient.so для Linux скопирован в образ по пути /home/ubuntu/.steam/sdk64/ .
Добавьте steamclient.so библиотеку для Linux одним щелчком с помощью нашего расширения Docker.
Обязательно отключите сетевые функции Steam, которые отправляют пакеты через Steam Relay и могут вызывать проблемы с подключением или всплески задержки. Это не мешает вам использовать другие функции Steamworks, такие как таблицы лидеров, достижения, голосовая связь или публикация вашей игры в магазине Steam.
2. Сборка и публикация
Работа в команде разработчиков предполагает совместное использование кода. Когда что-то идет не так, последнее, что вы хотите услышать — «у меня работает». Серверы игр должны надежно запускаться на любой машине, поскольку успешные игровые серверы работают на тысячах серверов по всему миру.
Чтобы сделать ваш сервер надежным, мы используем Docker — виртуализационное ПО, гарантирующее, что все зависимости вашего серверного кода вплоть до уровня операционной системы всегда будут точно такими же, независимо от того, как и где запускается сервер.
Мы рекомендуем посмотреть «Никогда не устанавливайте локально» (видео). Вам НЕ нужно использовать Dockerhub с Docker. Docker ≠ Dockerhub. Думайте о Docker как о движке для программирования, а о Dockerhub — как о его магазине приложений.
☑️ Убедитесь, что Docker установлен и запущен.
☑️ Скачайте наши 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 для загрузки ваших готовых сборок.
☑️ Запустите отредактированный скрипт чтобы начать процесс сборки и загрузки. После выполнения этого шага будет добавлен новый образ в вашей странице панели управления Edgegap Container Registry в вашем Repository.
☑️ Вы будете автоматически перенаправлены на создание нового Приложения и версии в панель управления.
✅ Теперь вы можете перейти к следующему шагу, перейдите к Другие способы сборки.
Устранение неполадок и FAQ
ОШИБКА: не удалось выполнить функцию Build: Dockerfile не может быть пустым
Некоторые исходники плагина могут отсутствовать
Dockerfileи/илиStartServer.sh, пожалуйста, найдите копию этих файлов в исходной версии вашего плагина на GitHub и добавьте их в ваш локальный плагин.
open //./pipe/dockerDesktopLinuxEngine: Системе не удается найти указанный файл.
Убедитесь, что Docker запущен на вашей машине разработки.
invalid reference format EdgegapLog: Warning: OnContainerizeCallback: Не удалось создать контейнер, сообщение: Failed
Убедитесь, что имя вашего приложения задано и не содержит пробелов в конце.
Не забудьте нажать Enter, чтобы подтвердить введенное значение после завершения редактирования.
Не удалось найти файл правил назначения для цели ‘ProjectName’ при сборке проекта?
Измените конфигурацию сборки в вашем
XYZServerTarget.csфайле:
403 Forbidden, не удалось отправить контейнер, сообщение: Failed
Пожалуйста, убедитесь, что ваши учетные данные Docker настроены правильно.
Если вы используете Edgegap Container Registry, убедитесь, что имя пользователя не содержит
app-version-pull, это профиль, который позволяет только загружать образы. Вместо этого ваш профиль должен напоминать адрес электронной почты вашей учетной записи.Убедитесь, что у вас достаточно свободного места в вашем Container Registry. Рекомендуем попробовать Другие способы сборки, а также использовать наш API для удаления старых образов. Образы хранятся на вашем локальном компьютере до удаления для резервного копирования.
⚡ Сборка из плагина
Наш устаревший плагин включает расширенные утилиты и требует сборки Unreal Engine из исходного кода.
Подготовка
Прежде чем начать, убедитесь, что вы создали бесплатный аккаунт на Edgegap (кредитная карта не требуется).
Настройте несколько основных вещей на вашей машине для разработки:
Установите Docker Desktop (или Docker CLI)
Установите Docker Desktop из официального источника (аккаунт не требуется).
Перезагрузите компьютер после завершения установки.
Получите доступ к ресурсам Unreal Engine на GitHub
Перейдите к вашей странице панели связанных аккаунтов Unreal Engine.
Свяжите аккаунт GitHub с вашим аккаунтом Epic.
Авторизуйте Epic Games для доступа к вашему аккаунту GitHub.
Примите приглашение по электронной почте присоединиться к организации Epic Games на GitHub.
Установите официальный плагин Edgegap для Unreal Engine
Выберите один из официальных плагинов:
скачайте Инструменты разработчика,
или скачайте Инструменты разработчика.
1. Настройка проекта
Независимо от того, используете ли вы компьютер с Windows, Mac или Linux, вы будете должны собрать свой сервер для среды выполнения Linux, поскольку большинство поставщиков облачных услуг в настоящее время (включая Edgegap) работают на Linux. Не беспокойтесь, знание Linux не требуется.
☑️ Соберите вашу версию Unreal Engine из исходного кода на вашей машине разработки,
установите специфическую ветку релиза (например,
5.5) чтобы строить на стабильной основе,используйте твердотельный накопитель (SSD) чтобы ускорить сборку (с ~12+ часов до ~2+ часов),
это требуется только в первый раз и каждый раз, когда вы обновляете версию Unreal Engine.
Скачивайте ветку с помощью git-клиента! Использование интерфейса GitHub всегда скачает нестабильную релизную ветку.
☑️ Установите Unreal Cross-Compiling Toolchain для сборки игровых серверов для Linux.
☑️ Перезагрузите вашу машину разработки, иначе позже вы столкнетесь с ошибками!
☑️ Отключить проверку совместимости версии Unreal Engine для выделенных серверов и установить IpNetDriver в качестве драйвера по умолчанию или запасного драйвера для сетей репликации:
Убедитесь, что вводите свой DefaultServerTarget в конце этого фрагмента!
☑️ Перезапустите Unreal Engine чтобы загрузить последние изменения.
☑️ Создайте скрипт целевой сборки выделенного сервера скопировав ваш <PROJECT>Editor.Target.cs файл в корневой папке проекта и переименовав копию в <PROJECT>Server.Target.cs.
☑️ Замените любые ссылки на слово Editor на Server в вашем скрипте целевой сборки сервера.
☑️ Измените параметры сборки сервера по умолчанию редактируя ваш скрипт целевой сборки сервера:
✅ Теперь вы можете перейти к следующему шагу.
Необязательно: интеграция со Steam
Чтобы интегрировать Steam, используйте IpNetDriver в качестве драйвера сети по умолчанию и убедитесь, что 64-битный steamclient.so для Linux скопирован в образ по пути /home/ubuntu/.steam/sdk64/ .
Добавьте steamclient.so библиотеку для Linux одним щелчком с помощью нашего расширения Docker.
Обязательно отключите сетевые функции Steam, которые отправляют пакеты через Steam Relay и могут вызывать проблемы с подключением или всплески задержки. Это не мешает вам использовать другие функции Steamworks, такие как таблицы лидеров, достижения, голосовая связь или публикация вашей игры в магазине Steam.
2. Сборка и публикация
Работа в команде разработчиков предполагает совместное использование кода. Когда что-то идет не так, последнее, что вы хотите услышать — «у меня работает». Серверы игр должны надежно запускаться на любой машине, поскольку успешные игровые серверы работают на тысячах серверов по всему миру.
Чтобы сделать ваш сервер надежным, мы используем Docker — виртуализационное ПО, гарантирующее, что все зависимости вашего серверного кода вплоть до уровня операционной системы всегда будут точно такими же, независимо от того, как и где запускается сервер.
Мы рекомендуем посмотреть «Никогда не устанавливайте локально» (видео). Вам НЕ нужно использовать Dockerhub с Docker. Docker ≠ Dockerhub. Думайте о Docker как о движке для программирования, а о Dockerhub — как о его магазине приложений.
☑️ Убедитесь, что Docker установлен и запущен.
☑️ Пересоберите наш плагин для вашей пользовательской версии Unreal Engine, собранной из исходного кода.
☑️ Скопируйте скомпилированный плагин в вашу Plugins папку в корне вашего проекта Unreal (не движка).
☑️ Запустите ваш новый Unreal Engine из Visual Studio и откройте пункт панели инструментов Edit / Plugins.
☑️ Включите наш плагин в разделе INSTALLED / Other.
☑️ Настройте наш плагин открыв пункт панели инструментов Edit / Project Settings / Edgegap:
Всегда нажимайте Enter после изменения значений ввода, чтобы убедиться, что они сохранены правильно.
API Token необходим для загрузки вашего сервера на Edgegap, получите его, нажав Get Token.
Имя приложения на Edgegap может совпадать с именем вашего проекта или быть изменен, убедитесь, что используете только строчные буквы, цифры или символы дефиса
-и подчеркивания_.Image Path предоставляет при желании пользовательскую иконку для вашего игрового сервера на Edgegap, пока пропустите этот шаг.
Version name полезно для отслеживания совместимости клиента/сервера и отката в случае проблем.
Для названий версий приложения отлично подходят метки времени, например
2024.01.30-16.50.20-UTC.Несколько версий приложения могут указывать на один и тот же тег образа, например
v1.1.0иdev.Узнайте больше о Приложения и версии позже.
Не используйте повторно latest версию чтобы предотвратить развертывание нашей системой устаревшего (кэшированного) образа.
☑️ Нажмите Create Application. Выполнение этого шага приведет к появлению нового приложения в Edgegap Dashboard.
☑️ Пока пропустите настройки пользовательского контейнерного реестра, при желании позже вы сможете использовать сторонний реестр.
☑️ Когда вас устроит конфигурация, нажмите Build and Push, дождитесь завершения процесса и убедитесь, что в вашей консоли Unreal нет новых ошибок. Выполнение этого шага приведет к в корне проекта появится новая папка - Saved/LinuxServer. Кроме того, теперь в вашей новый образ появляется теперь в вашей странице панели управления Edgegap Container Registry под вашим Repository, и новый Приложения и версии появляется в вашей панели управления под вашим Application.
☑️ В новой версии вашего приложения задайте переменную окружения TARGET_FILE_NAME так, чтобы она соответствовала вашему DefaultServerTarget значению из шага Другие способы сборки.
✅ Теперь можно перейти к следующему шагу.
Устранение неполадок и FAQ
ОШИБКА: не удалось выполнить функцию Build: Dockerfile не может быть пустым
Некоторые исходники плагина могут отсутствовать
Dockerfileи/илиStartServer.sh, пожалуйста, найдите копию этих файлов в исходной версии вашего плагина на GitHub и добавьте их в ваш локальный плагин.
open //./pipe/dockerDesktopLinuxEngine: Системе не удается найти указанный файл.
Убедитесь, что Docker запущен на вашей машине разработки.
invalid reference format EdgegapLog: Warning: OnContainerizeCallback: Не удалось создать контейнер, сообщение: Failed
Убедитесь, что имя вашего приложения задано и не содержит пробелов в конце.
Не забудьте нажать Enter, чтобы подтвердить введенное значение после завершения редактирования.
Не удалось найти файл правил назначения для цели ‘ProjectName’ при сборке проекта?
Измените конфигурацию сборки в вашем
XYZServerTarget.csфайле:
403 Forbidden, не удалось отправить контейнер, сообщение: Failed
Пожалуйста, убедитесь, что ваши учетные данные Docker настроены правильно.
Если вы используете Edgegap Container Registry, убедитесь, что имя пользователя не содержит
app-version-pull, это профиль, который позволяет только загружать образы. Вместо этого ваш профиль должен напоминать адрес электронной почты вашей учетной записи.Убедитесь, что у вас достаточно свободного места в вашем Container Registry. Рекомендуем попробовать Другие способы сборки, а также использовать наш API для удаления старых образов. Образы хранятся на вашем локальном компьютере до удаления для резервного копирования.
👉 Следующие шаги
Продолжите к Unreal Engine с нашим Dashboard Deployment функционалом и узнайте больше об остановке ваших развертываний, внедряемых переменных и параметризации, а также о доступности сервера для обнаружения.
Последнее обновление
Это было полезно?

