{"id":3872,"url":"\/distributions\/3872\/click?bit=1&hash=dfaa5b3c50208659098d01f07da485e8dde373ffdfc18a6c165dbdfdc8ce31fe","title":"\u041a\u043e\u0442\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e \u0441\u043e\u0446\u0441\u0435\u0442\u0438 \u0441 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u0438\u0434\u0435\u043e","buttonText":"\u041c\u044f\u0443!","imageUuid":"af50a6ca-4f1a-5649-a992-94e85a4ba2c0","isPaidAndBannersEnabled":false}
Gamedev
Maltsev Denis

Настраиваем окружение для 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
0
35 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Элис Ловердрайв

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

-

Ответить
Развернуть ветку
Эд Ов

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

Ответить
Развернуть ветку
Darkusoid

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

Ответить
Развернуть ветку
gammaclone

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

Ответить
Развернуть ветку
gammaclone

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

Ответить
Развернуть ветку
Король Ночи

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

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

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

Ответить
Развернуть ветку
Vitaliy A.

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

Ответить
Развернуть ветку
Эд Ов

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

Ответить
Развернуть ветку
Entropy
так как 4.22 с отладочной инфой весит около 35 гигабайт

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

Ответить
Развернуть ветку
Антон Антонов

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

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

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

Ответить
Развернуть ветку
Sargonius

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

Ответить
Развернуть ветку
Obscurus Decessus

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

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

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

Ответить
Развернуть ветку
perfect_genius

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

Ответить
Развернуть ветку
Maltsev Denis
Автор

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

Ответить
Развернуть ветку
Константин Лисецкий

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

Ответить
Развернуть ветку
Марио

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

Ответить
Развернуть ветку
gammaclone

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

Ответить
Развернуть ветку
Vitaliy A.

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

Ответить
Развернуть ветку
Марио

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

Ответить
Развернуть ветку
Vitaliy A.

Но зачем?

Ответить
Развернуть ветку
Марио

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

Ответить
Развернуть ветку
Obscurus Decessus

Попробуй эту https://rutracker.net/forum/viewtopic.php?t=4689008 или поищи еще там, года 2 назад от туда брал.

Ответить
Развернуть ветку
Марио

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

Ответить
Развернуть ветку
Читать все 35 комментариев
null