Сборка Unreal Engine из исходников для Linux.

10. февраля 2023 Unreal Engine 4, Unreal Engine 5 0

Подготовка.

Загрузка исходного кода и прочих компонентов движка будет осуществляться с помощью git путём клонирования среза репозитория.

Репозиторий Unreal Engine размещён на Github и является приватным:

https://github.com/EpicGames/UnrealEngine

При отсутствии аккаунта и регистрации Github ID будет подобная картина:

Для получения доступа потребуется регистрация на Github и добавление Github ID в профиль на UnrealEngine.com. Официальная инструкция: https://github.com/EpicGames/Signup

Следующим этапом является загрузка компонентов движка из репозитория.

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

Загрузка исходников Unreal Engine.

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

В данном примере рассмотрен вариант загрузки из ветки 4.27-plus, которая на момент 2023 года всё ещё является актуальной для разработчиков, доделывающих свои проекты на Unreal Engine 4.

Посмотреть на ветку в репозитории можно так:

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

В данном случае в терминале открыт каталог /home/$USER/Programs/. Если начать загрузку без перехода в конкретный каталог, файлы окажутся в корне домашнего каталога.

Примечание: Движок со всеми компонентами и срезом git занимает более 100 Гб.

Теперь можно начать загрузку компонентов путём клонирования среза репозитория:

git clone -b 4.27-plus git@github.com:EpicGames/UnrealEngine.git

-b — опция служит для указания конкретной ветки. В данном случае это 4.27-plus.

Если все манипуляции по настройке ssh осуществлены верно, будет предложено ввести пароль (passphrase) для использования ключа, а после начнётся загрузка компонентов:

Конечный результат должен иметь подобный вид:

Сборка Unreal Engine.

Официальная инструкция: https://github.com/EpicGames/UnrealEngine/blob/4.27-plus/Engine/Build/BatchFiles/Linux/README.md

Все загруженные компоненты движка будут находиться в каталоге UnrealEngine. Его необходимо открыть в терминале. Тем самым, исходя из условий примера, должен получиться следующий путь:

/home/$USER/Programs/UnrealEngine/

Внутри каталога UnrealEngine находится файл Setup.sh. Это сценарий командной оболочки, который инициирует подготовку рабочей среды, загрузку дополнительных компонентов движка (в основном разнообразные проприетарные компоненты) и сборку библиотеки LinuxNativeDialogs.

Осуществить запуск сценария из терминала, в котором открыт каталог UnrealEngine:

./Setup.sh

Должен начаться процесс подготовки и последующая загрузка дополнительных компонентов.

В процессе будет предложено зарегистрировать файловые типы (MIME-типы), относящиеся к движку:

Register Unreal File types?

Имеет смысл ответить утвердительно.

Итогом работы Setup.sh станет сообщение об успешном завершении: «Setup successful.«

Теперь необходимо осуществить конфигурирование сборки, по завершению которого в /home/$USER/Programs/UnrealEngine/ будут созданы make-файл и CMakelists.txt, а так же файлы проекта для различных сред программирования (KDevelop, QtCreator и прочих):

./GenerateProjectFiles.sh

Пример успешного завершения:

Пример части содержимого /home/$USER/Programs/UnrealEngine/:

Наконец остаётся осуществить сборку (компиляцию) компонентов движка из исходного кода.

Чтобы не собирать «всё на свете» лучше явно задать необходимое. Оптимальный вариант:

make CrashReportClient ShaderCompileWorker UnrealLightmass UnrealPak UE4Editor UE4Game UE4Client UE4Server BlankProgram SlateViewer UnrealHeaderTool UnrealFrontend UnrealInsights

Примечание: Для минимальной сборки достаточно CrashReportClient, ShaderCompileWorker, UnrealLightmass, UnrealPak и UE4Editor.

Сборка занимает довольно продолжительное время (около часа), загружает процессор на 100% и потребует более 5 Гб ОЗУ с пределом до 1 Гб на поток.

По каждому собранному модулю будет выведено время, затраченное на сборку:

По завершению сборки можно запускать редактор Unreal Engine — UE4Editor:

./Engine/Binaries/Linux/UE4Editor

Первый запуск будет относительно долгим из-за перекомпиляции шейдерного кэша.

Теперь можно работать:


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *