Gamedev
Maltsev Denis
4693

Настраиваем окружение для 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
{ "author_name": "Maltsev Denis", "author_type": "self", "tags": ["ue4","include"], "comments": 35, "likes": 53, "favorites": 148, "is_advertisement": false, "subsite_label": "gamedev", "id": 54436, "is_wide": false, "is_ugc": true, "date": "Fri, 14 Jun 2019 13:58:21 +0300", "is_special": false }
0
35 комментариев
Популярные
По порядку
Написать комментарий...
4

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

Ответить
1

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

Ответить
–3

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

Ответить
0

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

Ответить
2

-

Ответить
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

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

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

Ответить
0

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

Ответить
1

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

Ответить
0

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

Ответить
0

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

Ответить
–1

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

Но зачем?

Ответить
0

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

Ответить
0

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

Ответить

Комментарии

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }