Optimizing a Unity game, Part 1. Batching

  Рет қаралды 85,939

Insane One - Разработка игр

Insane One - Разработка игр

Күн бұрын

I decided to record a series of short videos on how to configure Unity correctly and typical mistakes to avoid. Following these videos will eliminate FPS slumps and statters in your game. The first topic on this list will be the draw calls batching (also you can take a look on a GPU Instancing), which I consider one of the most important aspects of optimization.
Support the channel on Russian-language Boosty: boosty.to/insa...
Or you can on Patreon: / insaneone
Channel's Discord server: / discord
VK group: insaneo...
On my channel I regularly post new tutorials on Unity and game development, as well as other interesting topics related to game-development. Subscribe!
Don't forget to leave a comment if you have any questions or suggestions on videos.)
#Unity #UnityOptimization #GameDevelopment

Пікірлер: 96
@Lord_of_the_Fridge
@Lord_of_the_Fridge 4 жыл бұрын
Класс. Отлично получается, продолжай в том же духе :) Самое необходимое, коротко и понятно.
@Netry27
@Netry27 4 жыл бұрын
Попал на видос в рекомендациях. Очень этому рад, теперь иду смотреть на батчинг во всех проектах. Жду новых видео и интересных тем. Подписка обязательная.
@schwut
@schwut 4 жыл бұрын
Чувак, офигенные видосы делаешь: кратко, емко, без воды, хорошая дикция - топ на русском ютубе, продолжай в том же духе!
@slava7522
@slava7522 4 жыл бұрын
*Для тех, кто использует URP/HDRP* Dynamic Batching будет находиться в последней вкладке созданного профиля рендерера
@maldok4087
@maldok4087 4 жыл бұрын
Спасибо, помогло
@dorian_erty
@dorian_erty 3 жыл бұрын
Где? Я не могу там найти
@necoray1302
@necoray1302 3 жыл бұрын
Большое спасибо, что упомянул эту фичу!
@alexkirra3802
@alexkirra3802 2 жыл бұрын
Где-где?
@uralfansoft
@uralfansoft Жыл бұрын
Закрепите коммент пжлста
@МирославМалюсейко
@МирославМалюсейко 2 жыл бұрын
В игре процедурно генерируется данж из тайлов, потому было много раздельных объектов. Но одна только настройка динамического батчинга снизила батчи с 4-5к до 100-200. Вообще не ожидал такой разницы, так что большое спасибо.)
@Kot-Alenya
@Kot-Alenya 4 жыл бұрын
Спасибо за видео, продолжай в том же духе! Удачи
@who-1880
@who-1880 4 жыл бұрын
Ее чувак, спасибо. В игре на телефоне жутко лагало, ФПС упал до критический 3 ФПС. Ты спас ситуцию. Лайк и Подписка!) Было выше 700DC, стало не выше 500
@psy_gamer
@psy_gamer 4 жыл бұрын
Отличный ролик! Буду ждать новых)
@dark_node6173
@dark_node6173 2 жыл бұрын
Бро, это круто! Снизил батчинг с 1200 до 200-300, И снял нагрузку с гпу аж на 60%!!!!!! Просто Лайк, респект и уважуха!
@Woolf530
@Woolf530 9 ай бұрын
а фпс не изменился )) Потому, что для ПК что 300 батчей, что 1200 - ниочем, слишком мизерная нагрузка. Нормальная нагрузка в DC для современных видеокарт, это 3-8 тыс DC
@TheDeiw_0110
@TheDeiw_0110 2 жыл бұрын
Очень редко пишу коментарии, но огромное спасибо. Коротко, понятно и без воды. Продолжай в том же духе)
@ЕльХвойный
@ЕльХвойный 5 ай бұрын
Спасибо автору за освещение темы оптимизации
@aleksander_i37
@aleksander_i37 11 ай бұрын
Круто , но не хватает про mesh combiner и атласы для ui . Т.к ладно батчи уменьшать , но проблема идет от draw calls, если их уж слишком много , то буст небольшой даст , в 2 раза это максимум . Но вот если засунуть все меши в одну сетку , вместо 1500 draw calls будет один . Насчет динамических не уверен , решение для динамических в твоем видео оптимально , но все же это тоже можно скомбинировать .
@Ligul
@Ligul 4 жыл бұрын
Ого, весьма неплохой ролик! Я, пожалуй, даже подпишусь)
@georgyushkevich8448
@georgyushkevich8448 2 жыл бұрын
Если вы используете URP или HDRP и SRP Batacher (включен там по умолчанию) - то количество батчей перестает быть актуальным параметром. Ну и вообще использование батчинга легкое, только если у вас проект из кубов с одинаковым материалом. Если у вас сложная графика, то там уже всякие проблемы возникают - нужно минимизировать количество шейдеров и материалов в сцене, максимально использовать атласы - только тогда батчинг будет давать какой-то эффект ощутимый.
@Андрей-в7и6ь
@Андрей-в7и6ь 4 жыл бұрын
Очень полезная инфа, спасибо! лаконично, без растягивания времени, круто)
@GorloTras
@GorloTras 3 ай бұрын
Прикол в том, что я про это знал. И уже 3 год делаю игру. Сколько я на оптимизацией работал ужас. Но это того стоило
@thebad7628
@thebad7628 4 жыл бұрын
Огромное спасибо!!!
@АлексейЛебедев-ю4ж
@АлексейЛебедев-ю4ж 2 жыл бұрын
низкий поклон, вы супер!
@persontashik_z
@persontashik_z Жыл бұрын
Все поклонения только Аллаху!!!
@gregorykl2317
@gregorykl2317 3 жыл бұрын
Круто! Спасибо! Понятно и интересно
@PavelStr-x5w
@PavelStr-x5w 2 жыл бұрын
Спасибо за урок!!
@CyberYurius
@CyberYurius 3 жыл бұрын
Спасибо за полезные уроки! Сними пожалуйста видео про оптимизацию и настройку проекта под андроид!
@fantomsung1430
@fantomsung1430 Жыл бұрын
0:00 Я точна так-же думаю но не на Unity а на Unreal Engine
@call_me_ondreo
@call_me_ondreo 4 жыл бұрын
Чисто лукас
@АйнурБижанова-б6у
@АйнурБижанова-б6у 4 жыл бұрын
Спасибо тебе продолжай в том же духе
@ОлегМашков-я8х
@ОлегМашков-я8х 4 жыл бұрын
Отличное видео.
@mastervolodsobeck5176
@mastervolodsobeck5176 4 жыл бұрын
Супер, 100% огромное сенкс!
@ОлексійВискворкін
@ОлексійВискворкін 4 жыл бұрын
В первую очередь оптимизация террейна под мобильные платформы)Интересно,может что нового узнаю.
@ХуТава-ц9н
@ХуТава-ц9н 3 жыл бұрын
Спасибо помогло с 150 до 300 фпс поднялося
@fcockroach
@fcockroach Жыл бұрын
@@kot-o-kot бред же, человек не написал что за проект. что за железо у него, какое разрешение экрана, может он там в 360п запустил игру с rtx 4090). На каком-то железе эти цифры могут быть ниже. Не у всех же топовое железо. Так что увеличение производительности в 2 раза еще как имеет смысл, особенно с минимальными трудозатратами. Больше людей сможет сыграть в игру, меньше будет негативных отзывов про оптимизацию.
@fcockroach
@fcockroach Жыл бұрын
@@kot-o-kot это шутка?), если игра идет в макс 60 фпс на 360п, то в 1080 она будет идти 30-40фпс, возможно даже хуже, у человека же х2 производительности и неважно 150 там было или 30, важен множитель/процент. Господи, речь идёт о разработке игр, если у конечного пользователя игра идет в максимум 60фпс, то без этих настроек шла бы намного хуже, это очевидно ведь. Удачи
@FONORX
@FONORX 3 жыл бұрын
Расскажите про коллайдеры. Как на сложную многополигональную модель добавить свой собственный простой коллайдер.
@КириллНекирилл-э4т
@КириллНекирилл-э4т 4 жыл бұрын
Благодаря этому видео я устроился миддлом+++++
@oleksandrmartysh7534
@oleksandrmartysh7534 2 жыл бұрын
А я сеньором. И мне сразу в первый день работы дали личный кабинет и Роллс-Ройс. очень полезное видео! )))
@АлексейЛебедев-ю4ж
@АлексейЛебедев-ю4ж 2 жыл бұрын
супер ролики а то все кругом как установить движок)
@Natharcheck
@Natharcheck 4 жыл бұрын
Лайк , подписка !!!!!!
@ПаутовНиколай-з1э
@ПаутовНиколай-з1э Жыл бұрын
От статического батчинга сильно увеличивается размер билда, так что он не бесплатный и не всегда подойдет
@mrgoodpeople
@mrgoodpeople Жыл бұрын
Самое тормозное, что может быть в Unity, это если создавать например для каждого дерева отдельный GameObject. Вот тогда это будет ужасно глючить. Вместо этого нужно сделать всё в одном меше, где каждое дерево будет отдельным треугольником или их группой. Ну и т.п.
@electron4ik
@electron4ik 2 жыл бұрын
У меня изначально было 120 fps и 20 batches. Сейчас 150 fps и 12 batches. КРУТО РЕКОМЕНДУЮ!!!!!!!!!!
@Tefaorhi
@Tefaorhi 3 ай бұрын
Кто бы хотел помочь в создании моей игры? Или же можем вместе сделать какую то новую игру.
@ademard
@ademard 4 жыл бұрын
Спасибо огромное! А стоит ли включать "GPU Instancing" для материалов статических объектов?
@insaneone-7220
@insaneone-7220 4 жыл бұрын
В общем, нет, но ничего плохого не случится если включить. Просто ничего не произойдёт, т.к. Static Batching работает отдельно.
@skt5659
@skt5659 4 жыл бұрын
Почему то очень сильно растет вес apk файла, если делать неподвижные элементы статическими(
@DaS_10
@DaS_10 Жыл бұрын
0:53 то чувство когда у тебя 20к+
@mrgoodpeople
@mrgoodpeople Жыл бұрын
Со свойствами Static может быть вот какая проблема. Представьте, что у вас например ависимулятор. Ваш самолёт быстро пролетает тысячи метров. Это приведёт к проблемам с дрожанием камеры. Что делают? Ну обычно все объекты помещают в общий контейнер и периодически его смещают, чтобы координаты камеры не были очень большими. Дрожание пропадает. Но ведь в этом случае у нас ВСЕ объекты на сцене перестают быть статическими, что делать в таком случае. Поможет ли кратковременное (на один кадр) снятие через код свойства Static и возвращение его обратно, чтобы Unity всё правильно обработал?
@ДневникЖижы
@ДневникЖижы Жыл бұрын
Dynamic batching сам по себе достаточно ресурсоемкий. В некоторых проектах он может ухудшить производительность.
@ShiroKira-j2o
@ShiroKira-j2o 8 ай бұрын
Здравствуйте. Нужно ли включать static batching у родительского объекта в котором дочерние двигаются? и наоборот если родительский объект двигается, а дочерние не двигаются.
@insaneone-7220
@insaneone-7220 8 ай бұрын
Включать только у статичных объектов. Если дочерние двигаются - скорее всего, смысла включать нет.
@TheFenix717
@TheFenix717 3 жыл бұрын
Я не пойму, помоги пожалуйста! У меня в static пишется: Batches 250, FPS:350, ничего не тормозит, но при этом видюха нагевается до максимум, вентиляторы начинают работать как двигатель самолёта! В чем проблема??
@SezKiTo
@SezKiTo Жыл бұрын
Устройство обрабатывает больше, чем должно, а может проблема с оборудованием, или драйверами
@stasonick
@stasonick Жыл бұрын
сделай ограничение FPS
@Гыгы
@Гыгы 4 жыл бұрын
Enable GPU Instancin можно включать для всех материалов, или только для тех, которые используются на динамических объектах?
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Желательно только для тех, которые на динамических объектах. На статические объекты включение не должно влиять в принципе, т. е. можно было бы включить для всех, но у меня несколько раз было странное поведение статики с этой галочкой, поэтому я не включаю для неё в своих проектах обычно.
@mrgoodpeople
@mrgoodpeople Жыл бұрын
Кстати у меня у одного статистика в Unity довольно бесполезная в плане FPS, потому что очень сильно плавает в зависимости от того, какой объекты выделен в сцене и свойства которого отображаются справа. Я заметил, что при полном снятии выделения FPS может быть ниже, а если выделить какой-то (непонятно даже какой) объект, то FPS вдруг резко повышается, иногда в 1.5 раза, а порой и в 2. Вообщем окно статистики ведёт себя очень странно.
@FAKKER_rap
@FAKKER_rap 10 ай бұрын
Окуклинг Куколдинг каждый раз забивает папку Occlusion миллионами файлов которые нужно удалять по часу вручную 👍 чтобы на 97% не застревало
@VolkGam
@VolkGam 4 жыл бұрын
Спасибо! Не знаете, можно ли написать скрипт, который пробежится по всем материалам проекта и установит галочку Enable GPU Instancing? А то это нереально сделать вручную... ) Ща прогуглю...
@frendis9787
@frendis9787 3 жыл бұрын
и что там ?
@yingwai8668
@yingwai8668 Жыл бұрын
От куда у тебя +100 фпс? У меня лимит в 75, и нигде не могу найти как его отключить. Помогите!
@gomandobry
@gomandobry Жыл бұрын
Насчет тормознутости не знаю. Постоянно чекаю разные инди игры на анриале. Вот что реально жутко лагает и спайкает, а игры на юнити как правило хуже выглядят но стабильно работают. Я не говорю что анриал тормознутый, просто начинающие разрабы парой кликов бездумно накручивают графику
@spiritofancientwherewolf149
@spiritofancientwherewolf149 2 жыл бұрын
Херасе ты молодец. Научил инстансингу. Кролик да будет тебе известно что ты не динамический батчинг в GPU inctancing включаешь а включаешь его под конкретный шейдер это раз! А во вторых ты его банально включаешь для статика на данном материале. Покажи магию динамика батча на 2000 персонажей одновременно. Что за бред ты вообще несешь.
@hagwe
@hagwe 3 жыл бұрын
Static batching и динамик не работает почему то в URP. Saved by batching всего равен нулю. В чем причина?
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Если не ошибаюсь, там батчинг работает по-своему и в этом окошке результаты его работы не отображаются. Нужно использовать инструменты URP для этого, но я не подскажу как их найти, т. к. не пользуюсь URP)
@hagwe
@hagwe 3 жыл бұрын
@@insaneone-7220 да я уже нашел инфу. Оказывается в новых версиях URP есть SRP Batching который как раз всё делает сам. И инфа о его работе в Stats не показывается, но фпс выше. Пробовал отключить SRP и Saved by batching сразу заработал в статистике ,но фпс чутка упал. Т.е. получается сейчас система работает немного по другому, но лучше чем было раньше.
@СергейКихно-ж9ы
@СергейКихно-ж9ы 4 жыл бұрын
нормас
@nikart2502
@nikart2502 4 жыл бұрын
а это нормально, что у меня показывается 1200 фпс?)
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Нормально, но лучше использовать Application.targetFramerate, чтобы ограничить это значение и не использовать лишние ресурсы устройства. Ну и да, этот вариант оптимизации при таком fps вряд ли нужен)
@nikart2502
@nikart2502 4 жыл бұрын
@@insaneone-7220 спасибо
@pccompanysimulatorproject4802
@pccompanysimulatorproject4802 3 жыл бұрын
У меня батчингом удалось добиться с 30fps до 58
@trader_iks
@trader_iks 4 жыл бұрын
Если честно, то после всего этого количество батчей как было так и осталось, а вот ФПС с 450 упал до 160...
@LiverGreen
@LiverGreen 9 ай бұрын
300-500? Я со своими 170000
@БольнойУёбок
@БольнойУёбок 2 жыл бұрын
Хз у меня конечно не лагало но как было 691 так и осталось
@georgii_
@georgii_ 5 ай бұрын
У меня максимум 30 фпс помемуто
@pepzzey9143
@pepzzey9143 7 ай бұрын
спасибо, фпс упал с 100 до 60👍
@MrFelsS
@MrFelsS Жыл бұрын
Разрабам ЕФТ над отправить
@pccompanysimulatorproject4802
@pccompanysimulatorproject4802 3 жыл бұрын
У меня из за бага при запуске моей игры просто логотип unuty белый и фон белый. И получается ,что просто белый экран ,а понять то что игра на unity сложно
@МинМин-о8т
@МинМин-о8т 3 жыл бұрын
Измени цвет надписи unity на чёрный. Или фон свой нарисуй
@vasyljrorshak7455
@vasyljrorshak7455 2 жыл бұрын
Ололо, не надо снимать о том о чем вы не понимаете либо не договариваете. Всем непонятливым читать справку про статический батчинг, и что будет если включить в него густой лес или приведи господи траву. Оно работает при целом ряде условий, если условия не те что надо, то вместо оптимизации получите окирпичивание, что собственно можно наблюдать в Planeta Nomad, это раз. 2 это то, что пока у вас стабильный нормальный фпс не насилуйте рабочую игру оптимизацией. Хотите оптимизировать, прикрутите к объекту лод, Выключите нпс которые далеко от персонажа.
@gameplaystories4130
@gameplaystories4130 4 жыл бұрын
До твоего видео - 500 фпс, после - 350, спасибо блен
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Если недостаточно разобраться в вопросе и не такое может быть)
@gameplaystories4130
@gameplaystories4130 4 жыл бұрын
Insane One - Разработка игр Друг мой, у тебя у самого фас увеличился лишь на 10
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Конечно, это пример с простыми моделями, на которых нет материалов с несколькими видами текстур, как в любой хоть сколько-то серьёзной игре. Принимай это во внимание.
@gameplaystories4130
@gameplaystories4130 4 жыл бұрын
@@insaneone-7220 Просто у меня почему-то 400 фпс вместо 1600 и я никак не могу понять, почему
@insaneone-7220
@insaneone-7220 4 жыл бұрын
@@gameplaystories4130 если у тебя было 1600 до оптимизации, то вероятно, что пока в проекте ничего оптимизировать и не надо) Любой алгоритм оптимизации ведь тоже требует вычислительных ресурсов на свою работу.
@vg-vovagatova289
@vg-vovagatova289 Жыл бұрын
У меня очень сильно грузит процесс: semaphore.waitforsignal У меня игра для пк, как мне исправить это? Потому что-то больше 30%+
Оптимизация игры на Unity, часть 2. Terrain
5:23
Insane One - Разработка игр
Рет қаралды 50 М.
Как ОПТИМИЗИРУЮТ ИГРЫ
11:00
Atix
Рет қаралды 385 М.
We Attempted The Impossible 😱
00:54
Topper Guild
Рет қаралды 56 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
Unity Performance Tips: Draw Calls
4:24
Lofi Dev
Рет қаралды 206 М.
Как наука победила религию
17:02
СОЗДАЛ ИГРУ ИСПОЛЬЗУЯ ТОЛЬКО ChatGPT
6:01
Robert Sergeev
Рет қаралды 264 М.
Оптимизация игры на Unity, часть 3 - Код. Profiler
6:37
Insane One - Разработка игр
Рет қаралды 38 М.
Оптимизация игр на unity. Material instancing
8:19
Максим Крюков
Рет қаралды 19 М.
Всё про корутины в Unity 3D
13:18
Emerald Powder
Рет қаралды 105 М.
We Attempted The Impossible 😱
00:54
Topper Guild
Рет қаралды 56 МЛН