Приветствую. Есть желающий, кто может подсобить с оптимизацией уже выпущенной игры

или подскажет что ещё можно сделать?

Резал всё, что только можно, но у людей всё равно иногда тормозит, если видеокарта ниже 3060. Иногда бывает ошибка в нехватке видеопамяти, но чаще всего на DirectX12, на DirectX11 реже.

У тех же животных отказался от Move To, заменив на Add Movement Input, но особого прироста не заметил. Уже думаю заменить животных на обычных Pawn, только хз как их адекватно двигать и проигрывать анимации.

В игре имеется поддержка FSR 2, DLSS, Intel Xess, это спасает немного ситуацию, но не все их включают.

В курсе, что попросят профайлер, но лично мне он не о чём не говорит) Был только 1 раз когда профайлер подсказал с оптимизацией блюпринта, указав на этот блюпринт (виджет).

93 ответов

548 просмотров

Без полноценного профилирования ты просто тыкаешься вслепую. Осваивай все виды профилирования, особенно простейшие. Команды в консоли stat unitgraph и другие из серии stat (особенно stat game, stat physics, stat scenerendering, stat ai). Инструментируй свой код. Учись использовать графический профайлер и Insights. Из простых методов - пробуй отключать разные части игры, чтобы понять, что сильнее тормозит.

Виталий Усатов
Простейшие я и так знаю и использую.

Ну тогда показывай основные цифры по разным подсистемам в игре. Без этого как тебе чатик поможет?

Виталий-Усатов Автор вопроса
Михаил Никонов
Ну тогда показывай основные цифры по разным подсис...

Вот цифры из игрового билда. Видеокарта MSI GeForce RTX 3060 VENTUS 3X OC, процессор AMD Ryzen 7 5700G BOX, оперативной памяти 128гБ DDR4.

Виталий Усатов
screenshot Вот цифры из игрового билда. Видеокарта MSI GeFor...

Плохо видно цифры, слишком мелко. Напишу про то, что удалось разглядеть. На скриншотах вроде бы рендеринг сильнее тормозит, то есть узкое место больше в GPU time. Хотя game (игровая логика), возможно, тоже близко по затратам.

Виталий Усатов
screenshot Вот цифры из игрового билда. Видеокарта MSI GeFor...

Из рендеринга сразу бросается в глаза количество треугольников на экране - более 8 миллионов. Это слишком много для такой сцены. Для понимания масштаба, если у тебя разрешение в игре, допустим, 1920 на 1080, то это всего 2 миллиона точек. Зачем тебе 8 миллионов треугольников, по 4 треугольника на точку? Зритель их не увидит никогда. Снижай хотя бы до 2 млн. Скорее всего, можно ЛОДы нарутить более агрессивные для деревьев и еще чего-то.

Виталий-Усатов Автор вопроса
Михаил Никонов
Из рендеринга сразу бросается в глаза количество т...

Как раз сейчас работаю с лодами. У всех деревьев есть билбоард лоды

Виталий Усатов
screenshot Вот цифры из игрового билда. Видеокарта MSI GeFor...

Количество draw calls тоже выглядит слишком большим. Подумай, откуда столько. Может, можно еще утрамбовать. Сильнее использовать инстансинг для растительности, или HLOD для построек. Персонажей вроде мало на экране, так что вряд ли это из-за них.

Виталий-Усатов Автор вопроса
Михаил Никонов
Количество draw calls тоже выглядит слишком больши...

Вот сейчас одним плагином массово задаю лоды тем объектам, у которых их не было.

Виталий-Усатов Автор вопроса
adil the human
Очень крутые ебеня

Вот стараюсь их оптимизировать)

Виталий-Усатов Автор вопроса
Михаил Никонов
Количество draw calls тоже выглядит слишком больши...

По поводу арстительности: как можно сильнее использовать инстансинг, если растительность обычная. та же трава просто буквально по 10 полигонов с текстурками в 512

Чтобы лучше понять, где больше тормозит, проведи простейшие эксперименты. Посмотри fps и unitgraph без освещения и наоборот, только освещение без шейдеров. А так же посмотри визуализацию shader complexity. Это все в редакторе можно через менюшку посмотреть или же клавишами функциональными (F1, F2, F3, F4, F5 и т.д.).

Виталий Усатов
screenshot Вот цифры из игрового билда. Видеокарта MSI GeFor...

Еще можно попробовать запустить игру в очень низком разрешении, буквально 320 на 240. Тогда будет лучше видно, где ограничение по процессорному времени.

Виталий-Усатов Автор вопроса
Михаил Никонов
Чтобы лучше понять, где больше тормозит, проведи п...

shader complexity ландшафт прям ярко красный ибо UDS подключен к нему ещё. Текстурки ландшафта 1к

Виталий Усатов
screenshot Вот цифры из игрового билда. Видеокарта MSI GeFor...

Можно отключить overlaps, если они тебе не нужны. Это от жанра зависит. Они у тебя жрут много (UpdateOverlaps в основной игровой нитке). Погугли как они отключаются, я не помню точно все подробности. Наверняка можно их отключить хотя бы для ботов.

Виталий-Усатов Автор вопроса
Михаил Никонов
Можно отключить overlaps, если они тебе не нужны. ...

Ну ботов можно бить. Когда бью кидаю на них трейс

Виталий Усатов
Ultra Dynamic Sky

А, ясно. Погодные эффекты видимо жрут. А без них есть разница по фпс?

Виталий Усатов
Если честно, то не особо.

Ты как измерял? Без них такой же shader complexity? Или без них такой же фпс? Это же две большие разницы

Виталий-Усатов Автор вопроса
Mikhailo Oliynik
тут половину логики на тике?

Есть таймеры, но на отдельном общем блюпринт акторе + диспетчеры

Виталий-Усатов Автор вопроса
Михаил Никонов
Ты как измерял? Без них такой же shader complexity...

shader complexity всегда одинаковый - ярко красный

Виталий Усатов
screenshot Вот цифры из игрового билда. Видеокарта MSI GeFor...

По AI вроде маленькие совсем цифры, видимо нет смысла его трогать, это ничего не даст.

Виталий-Усатов Автор вопроса
Виталий Усатов
shader complexity всегда одинаковый - ярко красный

Ну тогда получается что погодные эффекты непричем. Трамбуй свой ландшафт. Что там криминального делает Brushify? Слишком много слоев? Покрути разные отладочные визуализации для ландшафта, там в менюшке редактора есть много полезного. https://www.youtube.com/watch?v=grt8WLbFqkY

Виталий-Усатов Автор вопроса
Михаил Никонов
Ну тогда получается что погодные эффекты непричем....

Когда включал RVT для ландшафта было лучше. Но когда начинался дождь - он мерцал. Пришлось RVT отключить.

Виталий Усатов
Когда включал RVT для ландшафта было лучше. Но ког...

Да, если слишком много слоев или слишком сложный материал ландшафта, то RVT - основной способ оптимизации. Если он тебе не подходит, то надо снижать сложность материала ландшафта. Я по крайней мере не знаю другого способа. Ну или искать способ правильно настроить RVT / обойти его баги (мерцание или что там, разные проблемы бывают).

Виталий-Усатов Автор вопроса
Михаил Никонов
Да, если слишком много слоев или слишком сложный м...

Что еще можно оптимизировать кроме ландшафта?

Виталий Усатов
Для них используется плагин WorldDirectorPRO

По описанию вроде он не должен тебе создавать проблемы по производительности, скорее наоборот. Как его профилировать - надо смотреть в доках по нему.

Виталий-Усатов Автор вопроса
Михаил Никонов
По описанию вроде он не должен тебе создавать проб...

Он у меня отключен для персонажей, которые выдают квесты ибо он переспамливает всё время с их квестами

Виталий Усатов
Что еще можно оптимизировать кроме ландшафта?

Очевидно, оптимизировать надо то, что тормозит на твоей целевой платформе. Ты точно установил, что тормозит?

Виталий-Усатов Автор вопроса
Виталий-Усатов Автор вопроса
Михаил Никонов
Боец по ходу сдался ))

Ну если бы сдался - забил бы вообще на оптимизацию)

Виталий Усатов
Что еще можно оптимизировать кроме ландшафта?

Он же у тебя ярко красный ) Попробуй для начала замени его на самый простой. Посмотришь разницу в фпс

Виталий-Усатов Автор вопроса
Dmitriy
Он же у тебя ярко красный ) Попробуй для начала за...

Менять ландшафт в готовой игре такое себе решение.

Виталий-Усатов Автор вопроса
Dmitriy
да просто проверить. Удали с него всё

Если поставить материал попроще, то конечно будет зеленый. Но прироста FPS, по крайней мере в движке, нет.

Виталий Усатов
Если поставить материал попроще, то конечно будет ...

прям вот убираешь всю траву, а фпс не подрастает?

Виталий-Усатов Автор вопроса

В HD немного выше FPS, меньше HD в меню игры нет.

Виталий-Усатов Автор вопроса
Dmitriy
прям вот убираешь всю траву, а фпс не подрастает?

+10 FPS максимум в движке. Не сильно то и много.

Виталий Усатов
Если поставить материал попроще, то конечно будет ...

Еще кстати напиши параметры ландшафта самого. Общее количество вершин, квадов на секцию, секций на компонент.

Виталий Усатов
+10 FPS максимум в движке. Не сильно то и много.

я не следил за темой. Если было 10, а стало 20, то это в 2 раза )

Виталий Усатов
10 не было, было больше)

Я бы удалял всё по очереди. Траву, деревья.. хз что там у тебя еще есть. Ну и смотрел что влияет больше всего

Виталий-Усатов Автор вопроса
Михаил Никонов
Это много в твоем случае

Удалить всю траву и деревья и получить +10 FPS это не много.

Виталий Усатов
Удалить всю траву и деревья и получить +10 FPS это...

Зарплатой так же разбрасываешься, как и ФПСами? ))

Виталий Усатов
Оно?

Сетка ландшафта нормальная вроде, соответствует рекомендациям

Виталий-Усатов Автор вопроса
Михаил Никонов
Сетка ландшафта нормальная вроде, соответствует ре...

Если включить отображение сетки ландшафта, то на вид довольно полигонистая)

Виталий-Усатов Автор вопроса
Виталий Усатов
В HD немного выше FPS, меньше HD в меню игры нет.

В редакторе запусти на очень низком разрешении.

Виталий Усатов
Каким образом?

Да хоть бы и окошко уменьши

Виталий-Усатов Автор вопроса
Виталий Усатов
Уменьшал. FPS был выше.

Ну вот тебе и ответ - все еще графику нужно оптимизировать

Виталий-Усатов Автор вопроса
Виталий-Усатов Автор вопроса
Виталий Усатов
Не хочется получить мыльную игру

Вопрос тогда уже в приоритетах и в целевой платформе. С технической точки зрения, резерв для оптимизации еще наверняка есть.

Виталий Усатов
Игра на ПК и хочу иметь 120 FPS на 3060.

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

Виталий Усатов
Игра на ПК и хочу иметь 120 FPS на 3060.

И ты все еще не объяснил, зачем тебе 8 миллионов полигонов на экране, если у тебя всего 2 миллиона точек?

Виталий-Усатов Автор вопроса
Михаил Никонов
И ты все еще не объяснил, зачем тебе 8 миллионов п...

На этом скриншоте точно 8 миллионов полигонов?

Виталий Усатов
screenshot На этом скриншоте точно 8 миллионов полигонов?

А сколько там? Не видно ничерта в таком качестве.

Виталий Усатов
2 миллиона с копейками вроде как.

В идеале должно быть 1-2 миллиона. У тебя на некоторых скриншотах вроде было 8, но там трудно разглядеть, возможно это 3.

Михаил Никонов
В идеале должно быть 1-2 миллиона. У тебя на некот...

Просто больше 2 млн не имеет смысла, зачем много треугольников на 1 точку? Зритель эти треугольники никак не увидит.

Виталий Усатов
Игра на ПК и хочу иметь 120 FPS на 3060.

На всякий случай.. ты же в курсе, что в редакторе фпс намного меньше чем в билде?

Виталий Усатов
Если поставить материал попроще, то конечно будет ...

Ты ещё движок в дебаг таргете собирали и там посмотри

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта