Gamedev Maltsev Denis
2 481

Настраиваем окружение для UE4

Кусочек нашего кода и игры.
В закладки
Аудио

О чем хочу поговорить? О том, как настроить свое окружение для UE4 так, чтобы потом не было мучительно больно работать. Какой у меня опыт? Никакого - инди из ассетов и та еще в разработке. Поэтому правки, замечания и дополнения максимально приветствуются!

Я, наверняка, опоздал с помощью к текущему гейм-джему… Значит, оставим сей труд для будущих поколений. 😁 Еще хочу отметить, что буду говорить о настройке UE4 именно для программирования. Скорее всего, у художников или звуковиков свои требования.

Железо.

Да, анрил требователен к железу. Если у вас совсем древняя пишущая машинка и нет возможности апгрейда, то стоит посмотреть на другие движки: Unity или Godot. Если же у вас геймерский ПеКа, то он наверняка подойдет для комфортной работы с UE4.

  • Видеокарта. Советовать тут сложно. Она должна быть. Она должна быть дискретной. А дальше все зависит от тяжести игры. Я не замечал, чтобы анрил что-то усиленно считал на видюхе. Думаю, любая современная (год-два) дискретная видеокарта потянет большинство задач.
  • Процессор. Сборка С++ и шейдеров проходит именно на CPU. Больше потоков – больше одновременных задач – быстрее выполняется работа. Частота процессора по приоритету ниже.
  • Память. Ее должно быть очень много. 😊 Минимальный минимум 8 гигабайт. И очень важна скорость взаимодействия процессора с памятью, память должна успевать обслуживать все ядра. Вот тут может быть ощутимый профит от «разгона».
  • Самое главное – винчестер. С HDD будут боль и страдания. Только SSD и по возможности NVMe. Обращать внимание на случайную скорость записи и чтения. 120 гигабайт будет впритык. Поставить 2 версии движка уже не получится, так как 4.22 с отладочной инфой весит около 35 гигабайт.

На 3dnews есть великолепный раздел «Компьютер месяца», конкретные комплектующие можно посмотреть в нем. Например:

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

Софт.

Напоминаю, весь софт должен лежать на SSD, не только движок.

  • Винда. Эпики кругом и по всякому используют семерку и десятку. Я не видел macOS или Linux. Поэтому у меня большие сомнения, что они хорошо оптимизируют и тестируют работу с движком под другие платформы.
  • Студия. Две версии на выбор: 2017 и 2019. 2017-я хороша и надежна, но без Visual Assist X работать с UE4 тяжело. IntelliSense не справляется совсем: подсветку не дождешься, автозаполнение не работает, кругом фантомные ошибки. А VAX стоит от $50 до $250, что, мягко говоря, ощутимо. С 2019 таких проблем нет, IntelliSense «из коробки» отлично переваривает UE4. Правда, сейчас есть небольшие проблемы со стабильностью, у меня пару раз студия падала на поиске.
  • Если не устраивает студия, то можно попробовать CLion или Visual Studio Code. Но, в любом случае, придется ставить студию со всеми SDK.
  • Epic Games Launcher (в этот момент раздается зловещий хохот Галенкина за кадром) и Unreal Engine 4. Я крайне рекомендую ставить самую последнюю версию движка и всегда его обновлять. Например, полная пересборка нашей игры на 4.21 занимала около 120 секунд, сейчас, на 4.22, эта операция занимает меньше 90 секунд.
  • GIT или любая другая система контроля версий, поддерживаемая UE4. Даже если работа идет в одиночку. Дело в том, что через нее UE4 узнает об измененных файлах, и может группировать неизмененные С++ файлы в один, что существенно повышает скорость сборки. Поработали, видим, что студия начинает компилировать тонну файлов, коммит+пуш и снова все собирается быстро.
  • Периодически желательно чистить папку с игрой. BAT-ничек прилагаю ниже, его кладем рядышком с *.uproject. Запускать перед коммитом, естественно закрыв студию и движок.
echo off rem Visual Studio del /Q .vs rd /S /Q .vs del *.sln rem Visual Studio Code del /Q .vscode rd /S /Q .vscode del *.code-workspace rem Unreal Engine del /Q Binaries rd /S /Q Binaries rem Build - build settings del /Q "Build\WindowsNoEditor" rd /S /Q "Build\WindowsNoEditor" rem Intermediate - temporary files generated when you compile your code del /Q Intermediate rd /S /Q Intermediate rem Saved - local log & configuration files, screenshots, auto-saves etc. del /Q Saved rd /S /Q Saved

Настройка.

Антивирус. Этот друг реально бесит, но без него страхово. Поэтому в исключения добавим только критичные для разработки папки:

  • C:\Program Files (x86)\Microsoft Visual Studio

  • C:\Program Files (x86)\Windows Kits
  • C:\Program Files\Epic Games
  • C:\Users\{$USER}\AppData\Local\Microsoft\VisualStudio
  • C:\Users\{$USER}\AppData\Local\UnrealEngine
  • C:\Users\{$USER}\Documents\Unreal Projects - или другая папка в которой лежит игра

Далее, есть такая дока по настройке студии для UE4:

Для 2019-й она устарела, и я бы посоветовал только отключить ErrorList и в тулбаре увеличить ширину поля SolutionConfiguration. В плане производительности менять ничего не надо.

В настройках Epic Games Launcher чекаем Minimize To System Tray, это сэкономит немного оперативки. Если недостаточно места на SSD, то там же можно указать другую папку для Vault Cache Location. В эту папку скидываются примеры и ассеты и она может занимать довольно много места.

Поведение.

Будьте вежливы! 😊 Плюс к этому:

  • Первый запуск движка. Вырубить рендеринг фильма, майнинг биткоина и прочее. Запастись терпением и спокойствием. UE4 может ощутимо подвиснуть на 45% и 73%. Не пугаемся, пьем чай/кофе, ждем до победного.
  • Если видим в правом нижнем углу «Compiling Shaders». Лучше всего дождаться окончания процесса. Не бесите движок - не меняйте материалы. Да и любая другая работа в этот момент не будет приятной.
  • В студии же, наоборот, лучше пересобрать проект, а уже потом дать IntelliSense сканировать его. Дело в том, что при сборке Unreal Build Tool создает дополнительные файлы и если их нет, то IntelliSense может генерировать фантомные ошибки.

По коду только такое:

  • Если есть возможность, разбивайте игру на модули и плагины. Но грамотно такое сделать… Нужна голова с Камаз 😊
  • Аккуратнее с #include, особенно в заголовочных файлах. Это основная причина тормозов.
  • Если много раз перекомпилировали игру, сделайте рекомпайлинг при закрытом редакторе. Это избавит от некоторых ошибок.

Конец.

Вот и все, ребята! 😃 Жду ваших tips and tricks в комментах!

PS: Очень клевое видео для повышения своей производительности.

100 UE4 Tips and Tricks | Unreal Fest Europe 2019 | Unreal Engine

#UE4

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Maltsev Denis", "author_type": "self", "tags": ["include","ue4"], "comments": 35, "likes": 50, "favorites": 141, "is_advertisement": false, "subsite_label": "gamedev", "id": 54436, "is_wide": false, "is_ugc": true, "date": "Fri, 14 Jun 2019 13:58:21 +0300" }
Подкаст «Жиза ГД»:
Можно ли «продать»
плохую игру?
Слушать фоном🎧
{ "id": 54436, "author_id": 92857, "diff_limit": 1000, "urls": {"diff":"\/comments\/54436\/get","add":"\/comments\/54436\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/54436"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
35 комментариев

Популярные

По порядку

Написать комментарий...
4

Бесит, что VS тянет на комп огромное количество говна, которое размазывается по всей системе. :(

Ответить
1

В 2017 и 2019 уже не так. Все настраивается и удаляется через один инсталлер. Удобно.

Ответить
–3

Зато VS начиная с 2013 - тормозной кусок говна, которым невозможно пользоваться.

Ответить
0

Ну так майкрософты дали тебе VS Code, зачем тебе вся студия?

Ответить
1

Ни раз видел Live Training на MacOS, да и коллеги успешно ставили ue4 на свои макбуки. Проблем особо не наблюдалось. С Linux другое дело, под ubuntu сталкивались с кучей багов.

Ответить
1

Под Линуксом сейчас все более менее хорошо работает. Главный минус в том, что собираешь только движок, а ассеты с маркетплейса качаются только через лаунчер, который для линукса не завезли. И получается такой вот огрызочек.. При чем уже года с 15 пинают эпиков за линуксовый лаунчер или хотя бы скачку ассетов через браузер, но видимо им это нахер не нужно.

Ответить
1

А ещё можно так делать

Ответить
0

Я пару месяцев назад пытался перейти на Visual Studio Code. Но, не срослось... Хотя в визуальном плане, мне с ним намного приятнее работать. Батничек, кстати умеет подчищать и за VSCode.

Ответить
1

И у меня не срослось
Буду возвращаться в CLion

Ответить
1

не представляю как может срастись где-то после силайона

Ответить
1

Периодически желательно чистить папку с игрой. BAT-ничек прилагаю ниже, его кладем рядышком с *.uproject. Запускать перед коммитом, естественно закрыв студию и движок.

А зачем нужен батничек? То есть он как-то оптимизирует работу, или просто чтобы не добавлять в git лишние файлы? В последнем случае лучше использовать .gitignore .

Ответить
0

.gitignore не отправляет на сервак лишнего. батник лишнее сносит на локальном компе. меньше мусора - веселее жить. как-то так.

Ответить
1

хз, надо посмотреть что там генерируется, но сносить .vs и *.sln (кэш VS и файлы солюшенов) как-то странно. Плюс обычно можно просто ткнуть правой кнопкой по солюшену и сказать "Clean solution" - это почистит лишние файлы.

Ответить
0

все это регенерится или движком или студией. clean solution не чистит промежуточных настроек редактора или настройки игры.

Ответить
0

Иногда бэкапы из папки saved очень помогают. К тому же кэш VS на больших проектах удалять не стоит, его просчет занимает довольно много времени.

Ответить
1

так как 4.22 с отладочной инфой весит около 35 гигабайт

А если с сорсов

Ответить
0

А еще кэш шейдеров в AppData. И там даже маленький проект весит от 5 гб. Так что SSD нужен минимум на 512.

Ответить
0

У них в поставке, кстати, отладочная инфа из Development билда, которой часто нехватает для полноценной отладки. Так что да, винт нужен жирный.

Ответить
1

>Видеокарта. Советовать тут сложно. Она должна быть. Она должна быть дискретной. А дальше все зависит от тяжести игры. Я не замечал, чтобы анрил что-то усиленно считал на видюхе. Думаю, любая современная (год-два) дискретная видеокарта потянет большинство задач.

Если проект маленький, или только начинается знакомство с движком, можно и без неё.
Несколько месяцев сидел только на проце (8700к). Работать может и не супер приятно, но можно.

Ответить
1

Про 19 студию и работающий там Intellisense полезно, спасибо, надо будет опробовать.

Ответить
1

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

Ответить
0

4.22 занимает 35 Гбит. Но она же кастомной сборки 107 из-за дебаг файлов и папки билд(удалишь и двиг по новой компилить). А со временем ты понимаешь что на некастомном движке многое не сделаешь

Ответить
0

Антивирус. Этот друг реально бесит, но без него страхово.

У вас там 2019 не наступил? : )

Ответить
0

Я проводил замеры, а ты?

Ответить
0

Я удалил каспервского лет 6 назад и каждый новый год устанавливаю, проверяю весь компьютер и удаляю - за 6 лет ни одного. Интернет силами корпораций стал значительно безопаснее сейчас.

Ответить
0

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

Ответить
–1

Автор поста, откуда качал движок?

Ответить
0

Я не автор, но с большой уверенностью полагаю что с официального сайте

Ответить
0

Скачивается и обновляется через EGS.

Ответить
0

Жаль, я подумал что на том сайте мог би заваляться первый и третий анрили
А то их нигде нет.

Ответить
0

Но зачем?

Ответить
0

Хочу немного поимпровизировать
Сперва на первом, так как он очень похож на голд соурс, а затем перейду на третий

Ответить
0

Большое вам спасибо
Забавно, когда я искал на рутрекере то было полно четвертых

Ответить
0

Прямой эфир

{ "remaining": "WzAsMSwyLDMsNCw1LDYsNyw4LDld" } [ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Уве Болл вернулся в кино
и начал экранизировать flash-игры
Подписаться на push-уведомления