IPB

>

Исходный код Unreal Engine 4

, Сборка, исследование, обсуждение

 
 autistic
сообщение 28.08.2016, 20:11
Сообщение #1


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



Итак, на этот раз решил собрать из исходного кода такого монстра как Unreal Engine 4, спешу поделиться опытом.
Прежде всего, для получения доступа к исходному коду нам понадобится зарегистрировать аккаунт на GitHub. В моем случае этого не потребовалось т.к такой аккаунт у меня есть уже достаточно давно, вот его адрес, если кто не знает.
Далее нам потребуется связать аккаунт на GitHub с аккаунтом Epic Games (ну этот-то аккаунт есть практически у всех посетителей gameru.net, включая меня). Для этого переходим по этой ссылке и заполняем обязательные поля. Главное поле, которое мы должны заполнить, имеет название: "GITHUB ACCOUNT NAME", туда мы должны вписать свой ник на гитхабе.
(IMG:http://images.gameru.net/thumb/055e58ebd9.png)

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

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

Находим в панели справа ссылку на интересующий нас репозиторий (UnrealEngine) и переходим по ней:
(IMG:http://images.gameru.net/thumb/70896d3f4f.png)

В верхнем правом углу нажимаем кнопку Fork, в открывшемся диалоге жмем на юзерпик своего аккаунта, и вуаля - теперь у нас есть копия исходных кодов UE4
(IMG:http://images.gameru.net/thumb/05728a7035.png)

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

(IMG:http://images.gameru.net/thumb/f8236d2c63.png)

Чтобы узнать ссылку на репозиторий заходим в свой (не к эпикам) аккаунт на гитхабе и переходим по ссылке в репозиторий UnrealEngine. На странице репозитория нужно нажать на кнопку "Clone or Download" и скопировать ссылку из выпадающего списка.
(IMG:http://images.gameru.net/thumb/319a18c92a.png)

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

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

А происходит следующее, движок, как видно по скриншоту, в несколько потоков компилирует шейдерные программы и делать он это будет долго (на моей машине этот процесс занял порядка 15 минут), так что можно смело оставлять редактор в таком состоянии и идти пить чай. По завершении компиляции скомпилированные шейдеры сохранятся на жестком диске и при повторном запуске их компиляция уже не потребуется.
(IMG:http://images.gameru.net/thumb/ae719f30e6.png)
Перейти в начало страницы
 
 
 
 
Ответов
 1001v
сообщение 28.08.2016, 20:25
Сообщение #2


Кандидат Игровых Наук
******************

Группа: Участник
Сообщений: 3370
Регистрация: 24.08.2010
Пользователь №: 14054



Можно поинтересоваться, зачем такая подробная инструкция?
Перейти в начало страницы
 
 
 autistic
сообщение 28.08.2016, 20:34
Сообщение #3


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



1001v, чтобы сэкономить время, которое понадобится на прочтение документации на английском языке и повторения этих шагов. Кроме того, я подумал что не все посетители форума обладают достаточными навыками и подробная инструкция могла бы быть полезна.
Перейти в начало страницы
 
 
 1001v
сообщение 28.08.2016, 20:48
Сообщение #4


Кандидат Игровых Наук
******************

Группа: Участник
Сообщений: 3370
Регистрация: 24.08.2010
Пользователь №: 14054



Просто показалось забавным, что будущим форкерам анриал енжина объясняют, как сделать гит клон.
Перейти в начало страницы
 
 
 autistic
сообщение 28.08.2016, 21:10
Сообщение #5


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



1001v, ну, когда-нибудь все бывает в первый раз (IMG:style_emoticons/default/smile.gif) помню ту пору, когда я начал интересоваться программированием игр, в открытом доступе было очень мало исходных кодов игровых движков такого уровня, в основном это были утекшие в сеть некомпилируемые исходники, вроде half-life, либо суровый код quake на чистом си, а информации по ним было и того было меньше.
Перейти в начало страницы
 
 
 Giperion
сообщение 28.08.2016, 22:14
Сообщение #6


Геймер
******

Группа: Участник
Сообщений: 105
Регистрация: 12.05.2010
Пользователь №: 13853



Собрать то конечно можно, но зачем?
Нет, серьёзно.
Есть же готовая версия движка, уже скомпилированная и готовая к работе. Если человеку надо внести какие то ИЗМЕНЕНИЯ В ДВИЖОК (причем если хотите создать С++ проект, опять таки можно воспользоваться уже скомпилированной версией), то он самостоятельно разберется как там его собрать, благо сборка UE4 чуть ли не самая легкая.
Ну единственное исключение тут - сборка Debug версий движка, для решения проблем с каким нибудь заковыристым багом в игре, но это исключение лишь подтверждает правило.
Перейти в начало страницы
 
 
 autistic
сообщение 28.08.2016, 22:54
Сообщение #7


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



Цитата(Giperion @ 29.08.2016, 00:12) *
зачем?

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

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

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

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

Не боги горшки обжигают (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 MegaNub
сообщение 29.08.2016, 16:51
Сообщение #8


Продвинутый геймер
********

Группа: Участник
Сообщений: 311
Регистрация: 01.05.2014
Пользователь №: 20523



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

Если речь о второй части, то оба слива вполне себе собираемы. Что за 03-04 годы, что за 07 год. Есть даже инструкции, например: Tutorial
Перейти в начало страницы
 
 
 1001v
сообщение 27.10.2017, 05:51
Сообщение #9


Кандидат Игровых Наук
******************

Группа: Участник
Сообщений: 3370
Регистрация: 24.08.2010
Пользователь №: 14054



Недавно собирал под линукс, официальная инструкция оказалась достаточно подробной.
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 16.10.2019, 03:13