В чём проблема
Главная проблема с точки зрения оптимизации в 7 Days To Die заключается в многопоточности. В сложных сценах, таких как большие города, небоскрёбы или большое количество зомби сильно падает производительность, при том что видеокарта не загружена на 100% — тут даже 4090 не поможет, так как упор идёт в процессор, который движок не может нормально загрузить. Именно поэтому снижение настроек графики может не давать никакого эффекта — видеокарта и так "отдыхает". Разработчики знают про эту проблему, но пока не торопятся решать.
Как они сами писали, в новых версиях Unity (сейчас разработчики обновляют движок в каждой крупной альфе) инструменты для реализации многопоточной обработки улучшаются, но всё ещё довольно кривые и требуют "переписывания большого количества кода, на что нужно много времени". Так что пока нам остаётся только ждать — уже несколько месяцев все силы программистов брошены на написание ИИ для бандитов, которые будут в А22. Но мы можем попытаться самим немного улучшить производительность в игре.
Как эту проблему решить
В Unity есть функция под названием graphics jobs. Она немного улучшает многопоточную обработку. Нет, игра не станет использовать всю мощь многоядерных процессоров, но всё же ситуация с использованием процессора и, соответственно, загрузкой видеокарты и FPS должна улучшиться. Эта функция должна работать с любыми играми на Unity, например в Sons Of The Forest она включена по умолчанию.
Почему её нет в 7 Days To Die? Разработчики включали graphics jobs в А20.1 Experimental, но тогда у многих игроков начались вылеты. Разработчики не смогли найти причину вылетов и убрали эту функцию.
Включение graphics jobs
Перед этим обязательно сделайте резервную копию сохранений игры!!! Они лежат в "C:\Users\Имя пользователя\AppData\Roaming\7DaysToDie".
Также необходимо отключить Easy Anti-Cheat. Для этого в Steam в библиотеке выберите игру, нажмите "Играть", и в появившемся окне выберите "Show game launcher". В нём вам надо убрать галочку "Use Easy Anti-Cheat" и запустить игру нажатием кнопки "Run & Save as default". Ещё лаунчер можно запустить с помощью 7dLauncher.exe в корневой папке игры.
- Вы можете прописать эту функцию вручную, это очень просто и быстро — инструкция под спойлером.
- Или можете скачать прикреплённый к посту файл. Его необходимо закинуть с заменой в "7 Days To Die\7DaysToDie_Data".
Эффект от этих изменений зависит от железа и ситуации в игре. У кого-то в определённых сценах прирост может быть довольно большим, у кого-то он может быть на уровне погрешности.
После обновления игры или проверки файлов внесённые изменения сбросятся!
Ещё советы по оптимизации
- Отключите динамические сетки. Эта настройка позволяет игре обновлять импосторы — примитивные модели зданий, который мы видим издалека. Включение этой функции будет обновлять импосторы локаций, чтобы вы издалека могли видеть все изменения или разрушения локаций на расстоянии, как и свои постройки. Но это может стать дорогим удовольствием для вашего компьютера. Делается это из главного меню. Просто поставьте во вкладке настроек "Динамические сетки" всё на "нет" и снизьте до минимума параметры снизу. Но дальность этих сеток регулирует дальность отрисовки локаций, даже если настройка отключена. По умолчанию это 1000 блоков, что достаточно. 500 будет заметно с высоты, а также вы сможете в огромных городах видеть, как вдалеке появляются и исчезают высотки, но в целом это несильно заметно. 100 блоков — если всё совсем плохо. Настройка качества делает импосторы более детализированными и тоже работает даже при отключении динамических сеток. Немного подробнее об этом можете узнать в этом видео (проблема с окнами не актуальна для А21).
- Оптимизируйте настройки графики. Игра позволяет неплохо снизить некоторые настройки при минимальной потере качества. Об этом можете узнать в этом видео.
- Будьте осторожнее с SSR. В А21 разработчики реализовали отражения в пространстве экрана, но это тяжёлая настройка. Лично у меня даже в чистом поле, где нечего отражать этой технологией, FPS при включении её на ультра падает с 89 до 58, а вот на низких 83 FPS, при том что вы вряд ли сможете заметить снижение качества SSR. За это отвечает настройка "Отражения в отображаемом пространстве".
Автор файла: Yakov
В общем я немного покопался в техчасти и выяснил, что Unity graphics jobs, которые и включает этот мод, улучшают многопоточный рендеринг, то есть используется больше потоков процессора, что особенно важно для 7 DTD, в которой часто видеокарта недогружена (особенно в орду или в больших городах, зданиях). Подобные решения в теории совместимы почти с любой игрой на Unity. То есть можно в файл boot.config из другой игры внести эти две строчки (ниже), и graphics jobs должны заработать. Хотя лучше поискать подобные моды конкретно под нужную игру. Вот изменения, которые вносит мод в заменяемый файл:
gfx-enable-gfx-jobs=1
gfx-enable-native-gfx-jobs=1
Это просто 2 новые строчки, которые собственно и активируют настройку. Но вылеты из-за этого бывают не только в 7 DTD. Похоже, что это проблема именно движка. Ниже содержание файла boot.config оригинального и модифицированного (под 1 и 2 спойлерами соответственно).
wait-for-native-debugger=0
hdr-display-enabled=0
gc-max-time-slice=3
gfx-enable-gfx-jobs=1
gfx-enable-native-gfx-jobs=1
wait-for-native-debugger=0
hdr-display-enabled=0
gc-max-time-slice=3
Сам многопоточный рендеринг в 7 Days To Die по умолчанию реализован не очень, в частности из-за трудностей его реализации в Unity. Так что если поставить орду на 64 зомби, то при любых настройках графики фпс будет такой себе, а видеокарта будет прохлаждаться, потому что процессор просто не может быстро просчитать пути для зомби и так далее. Чтобы хоть как-то это компенсировать, в А20 во время орды у зомби куда реже стали обновляться пути, так что можно резко сменить местоположение, но зомби несколько секунд будут идти туда, где игрока уже нет. И из-за этого после А17 зомби не строят пути в обход друг друга, от чего частенько идут на игрока стройными колоннами. А если позади медленного зомби окажется быстрый, то он его не обгонит. Но именно из-за этого в А17 каждая орда превращалась в слайд-шоу.
Именно в описанных выше ситуациях мод и должен помогать. Просто фпс он вряд ли сильно повысит, а вот при сильной нагрузке на проц должен помочь увеличить фпс и снизить просадки.
Попробовал добавить gfx строчки на версии alpha 21.2, очень сильно помогло, была проблема что с обновлением на .2 версию производительно катастрофически упала, 30 кадров было по всюду. Как только вписал не ниже 70 кадров в городе, а за городом и вовсе 100. И это на всех высоких вперемешку с ультра настройками со включенной динамической сеткой.
это интересно, ща попробую отпишу
ммм вроде чет поменялось а вроде нет, позже добавлю если не забуду
У всех по-разному. На каких-то системах может вообще отрицательный рост быть, но это вряд ли) Ещё в комментах писали, что мод с видяхами от AMD работает не так хорошо. У меня 1650S, так что проверить не могу.
1660 ti 16gb оперативки игра на ссд самсунг 980 pro проц ryzen 7pro 1700x
решил попробывать я на ноуте Asus TUF F15 связка Intel core i5-11300H
3060 6gb
фпс в нормальной обстановке колебриться 60-90 в пвп битвах рейдах просадки до 35
после установки мода фпс особо не поднялся а точне каких либо изменений не было замеченно
видеокарта по прежнему не нагружается больше 55%
Попробуйте сравнить в орду с большим количеством зомби (64), или при быстрой поездке по центру огромного города (ну или банально в каком-нибудь гигантском здании). Именно в этих ситуациях должно помогать, как я написал в своём большом комменте.
Не заметил каких-то изменений, но и проблем вроде нет. Есть не просит, топлива не нужно на "пропитание", пусть стоит. Тем более, если комментатор ниже уверяет, что может помочь.
Переписал и дополнил статью. Также можете посмотреть ещё видео про то, как в игре строится кадр, как её запустить на калькуляторе и что ещё по оптимизации в ней уже есть