Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Исходный код Unreal Engine 4
GAMEINATOR forums > Общие разделы > Создание и модификация игр. Геймдев.
autistic
Итак, на этот раз решил собрать из исходного кода такого монстра как Unreal Engine 4, спешу поделиться опытом.
Прежде всего, для получения доступа к исходному коду нам понадобится зарегистрировать аккаунт на GitHub. В моем случае этого не потребовалось т.к такой аккаунт у меня есть уже достаточно давно, вот его адрес, если кто не знает.
Далее нам потребуется связать аккаунт на GitHub с аккаунтом Epic Games (ну этот-то аккаунт есть практически у всех посетителей gameru.net, включая меня). Для этого переходим по этой ссылке и заполняем обязательные поля. Главное поле, которое мы должны заполнить, имеет название: "GITHUB ACCOUNT NAME", туда мы должны вписать свой ник на гитхабе.


После этого нужно вновь вернуться на GitHub и подтвердить свое членство в организации Epic Games (ага, нас только что приняли внештатными сотрудниками). Оригинальную инструкцию от эпиков можно найти в публичном репозитории.

Теперь нам нужно сделать форк (Fork) репозитория с исходными кодами UE4 на свой аккаунт, чтобы получить возможность модифицировать исходный код и отправлять пул реквесты (Pull Requests) разработчикам. Переключаемся со своего аккаунта на корпоративный аккаунт Epic Games путем переключения выпадающего списка в верхнем левом углу страницы:


Находим в панели справа ссылку на интересующий нас репозиторий (UnrealEngine) и переходим по ней:


В верхнем правом углу нажимаем кнопку Fork, в открывшемся диалоге жмем на юзерпик своего аккаунта, и вуаля - теперь у нас есть копия исходных кодов UE4


Дальше нам предстоит клонировать наш удаленный репозиторий на гитхабе себе на локальную машину, и сделать там его локальную копию. Для этого устанавливаем git-клиент, открываем git-bash, переходим в директорию куда мы будем клонировать удаленный репозиторий и используем команду
Код
git clone <ссылка на удаленный репозиторий>



Чтобы узнать ссылку на репозиторий заходим в свой (не к эпикам) аккаунт на гитхабе и переходим по ссылке в репозиторий UnrealEngine. На странице репозитория нужно нажать на кнопку "Clone or Download" и скопировать ссылку из выпадающего списка.


Теперь необходимо скачать и установить дополнительные зависимости для сборки исходного кода, а также сгенерировать файлы решения для Visual Studio 2015 (Важно подчеркнуть, что требуется именно эта версия среды разработки, это может быть как Ultimate Edition так и бесплатная Community Edition)
Для этого переходим в корневой каталог проекта и запускаем поочередно два батника Setup.bat и GenerateProjectFiles.bat


После всего, открываем сгенерированный солюшн UE4.sln и запускаем сборку (на этом этапе можно смело отправиться кататься на велосипеде в парк, часа на два)
Запускаем исполняемый файл UE4Editor.exe из подкаталога Engine/Binaries/x64 и... не тут то было! Появляется загрузочное окно и редактор виснет на 25% загрузки. Открываем диспетчер задач и наблюдаем за тем, что происходит:


А происходит следующее, движок, как видно по скриншоту, в несколько потоков компилирует шейдерные программы и делать он это будет долго (на моей машине этот процесс занял порядка 15 минут), так что можно смело оставлять редактор в таком состоянии и идти пить чай. По завершении компиляции скомпилированные шейдеры сохранятся на жестком диске и при повторном запуске их компиляция уже не потребуется.
1001v
Можно поинтересоваться, зачем такая подробная инструкция?
autistic
1001v, чтобы сэкономить время, которое понадобится на прочтение документации на английском языке и повторения этих шагов. Кроме того, я подумал что не все посетители форума обладают достаточными навыками и подробная инструкция могла бы быть полезна.
1001v
Просто показалось забавным, что будущим форкерам анриал енжина объясняют, как сделать гит клон.
autistic
1001v, ну, когда-нибудь все бывает в первый раз smile.gif помню ту пору, когда я начал интересоваться программированием игр, в открытом доступе было очень мало исходных кодов игровых движков такого уровня, в основном это были утекшие в сеть некомпилируемые исходники, вроде half-life, либо суровый код quake на чистом си, а информации по ним было и того было меньше.
Giperion
Собрать то конечно можно, но зачем?
Нет, серьёзно.
Есть же готовая версия движка, уже скомпилированная и готовая к работе. Если человеку надо внести какие то ИЗМЕНЕНИЯ В ДВИЖОК (причем если хотите создать С++ проект, опять таки можно воспользоваться уже скомпилированной версией), то он самостоятельно разберется как там его собрать, благо сборка UE4 чуть ли не самая легкая.
Ну единственное исключение тут - сборка Debug версий движка, для решения проблем с каким нибудь заковыристым багом в игре, но это исключение лишь подтверждает правило.
autistic
Цитата(Giperion @ 29.08.2016, 00:12) *
зачем?

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

Цитата(Giperion @ 29.08.2016, 00:12) *
разберется как там его собрать

Но ведь это проще делать когда перед глазами есть подробная инструкция.

Цитата(Giperion @ 29.08.2016, 00:12) *
Если человеку надо внести какие то ИЗМЕНЕНИЯ В ДВИЖОК

Не боги горшки обжигают smile.gif
MegaNub
Цитата(refuse @ 28.08.2016, 21:08) *
в основном это были утекшие в сеть некомпилируемые исходники, вроде half-life

Если речь о второй части, то оба слива вполне себе собираемы. Что за 03-04 годы, что за 07 год. Есть даже инструкции, например: Tutorial
1001v
Недавно собирал под линукс, официальная инструкция оказалась достаточно подробной.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.