УМЕНЬШИ ВЕС СВОЕЙ ИГРЫ! Оптимизация веса игры Unity. Как уменьшить вес игры на Unity. Ч.1

  Рет қаралды 11,363

Яковлев Илья - IT и игры

Яковлев Илья - IT и игры

Күн бұрын

📝Всем шарп! Сегодня я расскажу о лучших практиках оптимизации веса игры в Unity. Я отобрал самые крутые советы, которые дают наибольший буст для веса итогового билда игры и при этом их довольно просто соблюдать. Разберем как сами практики, так и нюансы, о которых вы могли не знать. Вопрос оптимизации веса игры - крайне важная вещь, ведь от веса итогового билда напрямую зависит то, будет ли пользователь играть в ваш проект или нет, т.к. чем дольше он грузит игру, тем меньше шанс, что он дождется окончания и запустит ее) На самом деле у меня накопилось оооочень много советов, поэтому я разделил видос на две части, так что подписывайтесь, чтобы не пропустить следующую!) В этой займемся оптимизацией текстур и звуков в игре - будет очень полезно!
⚡️⚡️⚡️ Полезные ссылки ⚡️⚡️⚡️
🔎 t.me/yakovlev_advanced_bot - бот с информацией о вебинаре и подарками для обучения
🔎 yakovlevgamedev.ru - курс по архитектуре игр в Unity
🔎 t.me/yakovlev_gamedev - ссылка на мой telegram канал
🕒Тайм-коды:
➜ 00:00 - Вступление
➜ 00:32 - Как понять что оптимизировать?
➜ 01:38 - Оптимизация текстур. Правильное сжатие
➜ 02:39 - Лайфхаки при оптимизации текстур
➜ 04:08 - Особое мероприятие для всех подписчиков
➜ 05:19 - Дополнительные настройки сжатия
➜ 05:57 - Создавай UI правильно
➜ 08:21 - Что делать с градиентами?
➜ 09:37 - Одна текстура для всех моделей:)
➜ 10:29 - Оптимизация звуков - лучшие практики
➜ 12:19 - Заключение:)
🔥🔥🔥 На этом канале вы найдете множество уроков по Unity и C#, а так же различных видео на тему разработки игр, так что не стесняйтесь, заглядывайте на канал и вы обязательно найдете что-то по душе!🔥🔥🔥
#Unity#ЯковлевИлья#оптимизация#весигры

Пікірлер: 71
@-it394
@-it394 2 ай бұрын
⚡⚡⚡ Полезные ссылки ⚡⚡⚡ 🔎 t.me/yakovlev_advanced_bot - бот с информацией о вебинаре и подарками для обучения 🔎 yakovlevgamedev.ru - курс по архитектуре игр в Unity 🔎 t.me/yakovlev_gamedev - ссылка на мой telegram канал
@skryidoov3951
@skryidoov3951 2 ай бұрын
А как поставить больше 1 лайка, а то вторую часть уже охота)
@-it394
@-it394 2 ай бұрын
@@skryidoov3951 С двух аккаунтов:)
@skryidoov3951
@skryidoov3951 2 ай бұрын
@@-it394 О точно!
@playmarket8605
@playmarket8605 2 ай бұрын
​@@-it394Приветствую есть вопрос. Регистрация на яндекс маркете как физ лицо для продажи инди продуктов, сейчас как обстоит дело с этим? Требуют фото с паспортом как в средние века или все цивильнее стало?
@Speed-Run-Facts
@Speed-Run-Facts Ай бұрын
Нужно БОЛЬШЕ, БОЛЬШЕ ТАКОГО КОНТЕНТА, СЛИШКОМ МАЛО! ИЛЬЯ ГОНИ НОВУЮ ПАРТИЮ ВИДОСИКОВ. Ребят знаю многим обычно лень, но пишите комментарии и ставьте лайки, помогите продвигать канал.
@Lokich
@Lokich 2 ай бұрын
Крайне полезный ролик. Попал в точку) Ожидаю вторую часть
@user-tq3cw2mm1u
@user-tq3cw2mm1u 2 ай бұрын
Ты даже не посмотрел
@alfamodik4917
@alfamodik4917 2 ай бұрын
Как же вовремя вышел этот видос)
@Some_kind_of_something
@Some_kind_of_something 2 ай бұрын
Очень полезный ролик, редко встретишь настолько годные гайды, да ещё и с такой хорошей подачей
@user-mv4qh2jt7d
@user-mv4qh2jt7d Ай бұрын
Спасибо! Точно сказал про "сражаемся за каждый байт"
@Lucio11a
@Lucio11a 2 ай бұрын
Правило POT для оптимизации довольно условно. В плане того, что не обязательно размер картинки должен быть степенью двойки. Можете сами проверить: -картинка подходящая под "POT" размером 128х128 будет весить 16кб (чисто примерно). -картинка нарушающее правило размером 126х126 NPOT = 64кб. т.е. хоть картинка и меньше размером, но весит оно в 4 раза больше. Что ужасно! Однако: -картинка 132х132 - так же будет иметь аббревиатуру NPOT, но ее размер будет 17кб. И в Unity оно будет восприниматься движком именно как Pot (в плане оптимизации), а не как npot, даже не смотря на надпись. :D Почему? :)) Потому, что юнити не важно, будет ли картинка степенью двойки. Юнити важно, чтобы стороны картинки делились нацело на 4. Просто в эдиторе разрабы юнити схалтурили :)) Им лень добавлять новые аббревиатуры... менять устоявшиеся определения. Даже если они не совсем актуальны. К чему это я?.. Просто иногда тебе можно сделать 1 картинку 768х768, чем пихать ее в атлас или растягивать на 1024х1024 ради надписи pot. При этом она и весить будет значительно меньше, да и атласы из этих картинок так же будут попадать под это правило)) Особенно если не хочется заморачиваться с сжатием и пр.
@user-qu5jw6ds1i
@user-qu5jw6ds1i Ай бұрын
На самом деле все аббревиатуры указаны. Если ширина и высота текстуры делится на 4 (DXT1/BC1), то это совсем другой формат компрессии, нежели POT (ETC1 или ETC2, не помню). Картинка все еще NPOT, даже если скомпрессировалась в другом формате. Но замечание хорошее, иногда доводить до POT текстуры выходит дороже чем довести текстуру до делимости на 4 :)
@MRSHERMAN-id4fx
@MRSHERMAN-id4fx 2 ай бұрын
Имбааа, крайне годно, глоток качественного контента. Нужно больше. Ждемс ледующую частИ.
@rickloyd8208
@rickloyd8208 Ай бұрын
Спасибо за интересный совет с возможность создавать круглые спрайты прямо в Юнити! (лайк + подписка)
@rox.3346
@rox.3346 2 ай бұрын
Советую купить Build Report Tool с ассет стора, визуализирует и позволяет удобно сразу находить самые большие файлы в и вне билда.
@nobice1
@nobice1 2 ай бұрын
Про сжатие текстур до байтов огромнейшее спасибо просто. Про правило сжатия ни разу не слышал, но при этом постоянно делаю спрайты кратные 2 Не тех работников юнитеки всё нанимают)
@titanovsky
@titanovsky 2 ай бұрын
Было интересно, спасибо)
@user-fw4zu1kd2z
@user-fw4zu1kd2z 2 ай бұрын
Имба хочу продолжение ))
@vvvfff400
@vvvfff400 Ай бұрын
Видос пушка!
@Vorono4ka
@Vorono4ka 2 ай бұрын
Интересное видео! Мне понравился совет с атласом и POT, не знал, что так работает. Интересно, как это достигается с программной точки зрения. Если уже был на курсе, то получится выиграть доступ ещё раз?) Уж очень хочется повторить 😅
@danya2326
@danya2326 2 ай бұрын
Очень годно! Было бы интересно узнать про Addressables, как в их используете в проектах, бест практиклс) Так же про что нибудь более низкоуровневое было бы интересно послушать, аля замена компилятора)
@KollegaTV13
@KollegaTV13 2 ай бұрын
🤗 Годнота😁
@rubyapps4120
@rubyapps4120 23 күн бұрын
Будут ролики про ECS? Было бы интересно посмотреть
@Tulopex
@Tulopex 2 ай бұрын
Спасибо!
@LexaSt86
@LexaSt86 2 ай бұрын
Отличный гайд, как его мне не хватало пару месяцев назад. Не знаю, может у меня такой глюк, но бывает, что при создании повторного билда не создаётся новый файл с результатами билда. И приходится выходить из Юньки.
@TheFenix717
@TheFenix717 24 күн бұрын
Привет! Подскажи пожалуйста, уровень твоих знаний - это сеньер?
@nekto8585
@nekto8585 Ай бұрын
Очень Крутой канал надеюсь ты не остановишься! Ребят не ленитесь пишите комментарии!
@user-bl4te2kg8v
@user-bl4te2kg8v 6 күн бұрын
Спасибо за труд. Такой вопрос: в Build Report есть такое чудо Other Assets. Занимает 20%. Что это такое и можно ли это сократить. Заранее спасибо за ответ
@user-ur5gj1xe8n
@user-ur5gj1xe8n Ай бұрын
Покланяюсь и подписываюсь
@theRealArtyomkar
@theRealArtyomkar 2 ай бұрын
Не нужно бежать переделывать все звуки в ogg так как юнити переделывает аудио в wav, чтобы применить компрессию. Если у вас есть длинные аудио, то лучше сначала подумать и выбрать между весом билда и скоростью загрузки игры\оптимизаций
@hopperlopip
@hopperlopip 2 ай бұрын
Разве? На уровне билда он вообще все звуки в FSB упаковывает.
@theRealArtyomkar
@theRealArtyomkar Ай бұрын
@@hopperlopip Я перепроверил инфу, действительно, немного неправильно помнил, но в целом смысл тот же - импортировать в wav, вот текст из статьи: При импорте файлов в Unity они всегда должны быть в несжатом формате, например в WAVE (.wav) или AIFF (.aiff). Многие сжатые форматы являются форматами с потерями, то есть при их кодировании информация теряется. Если импортировать в Unity сжатый файл, например MP3 или Vorbis, то Unity сначала декодирует его в несжатый формат, а затем повторно закодирует в выбранный вами формат, даже если этот тот же формат, с которого вы начинали. Это может добавлять новые артефакты сжатия, что в общем случае нежелательно.
@TreeHundredBucks
@TreeHundredBucks 2 ай бұрын
Наконец то 😊🎉
@urgodhead
@urgodhead 2 ай бұрын
Правило POT обязательно только для некоторых вариантов компрессий. Есть хорошие, проверенные варианты сжатия, которые принимают NPOT текстуры (например ETC2 для андроид и очень крутой ASTC для iOS). Либо не использовать сжатие вообще, но и вес соответствующим будет. Если не ошибаюсь, то POT текстуры быстрее обрабатываются GPU
@user-cz7ts2zs2d
@user-cz7ts2zs2d 6 күн бұрын
7:23 Достаточно просто не указывать спрайт в компоненте image, и не нужен спрайт 1х1 пиксель.
@Lucio11a
@Lucio11a 2 ай бұрын
Кстати на счет шейдеров: Юнити меня бесит в этом плане :D Если проект под URP, 80% гайдов и пр. материала по шейдерам можно выкидывать, в зависимости от версии движка. Пытался, помню, сделать эффект мокрого стекла для панельки UI. Чтобы когда игрок открывал настройки звука, в приложении, игра красиво "оттенялсь" и блюрилась ЗА настройками. Убил неделю и для конкретного проекта ничего сделать не смог. Пытался и шейдерами сделать, и постэффектами - нифига. Мучил ChatGPT и его аналоги :D глухо... т.е. открываю новый проект, чистый, на др. версии движка - получается. А в готовом проекте - нет. А менять настройки, профили и пр. я в нем не могу, т.к. проект чужой. Да и, если честно, на знаю, что именно надо менять, чтоб все заработало... :"(
@bob3ik
@bob3ik 2 ай бұрын
Очень рад новости о мероприятие 6-го апреля! Но возможности прийти не будет в связи с большой разницей во времени... Подскажите, останется ли это мероприятие в записи?
@-it394
@-it394 2 ай бұрын
Думаю в течении нескольких дней запись останется:)
@bob3ik
@bob3ik 2 ай бұрын
@@-it394, рад слышать)
@laxlai_-_6406
@laxlai_-_6406 2 ай бұрын
Спасибо
@AlexSantrum
@AlexSantrum Ай бұрын
кайф!
@user-ov6jc2dx5y
@user-ov6jc2dx5y 2 ай бұрын
Очень полезно, спасибо большое!) А вот что насчет fps на андроидах? Вот мой пример: Сделал счетчик fps для своей игрушки, посмотрев на stackoverflow. Включаю билд на андроиде, а он показывает не больше 30 кадров, иногда даже тоже показывает, хотя проект маленький и ничего не должно нагружать. А когда смотрю частоту кадров в самой юньке на пк, то там все отлично показывает. Я так понимаю надо как-то настраивать отдельно для андроида, чтобы частота кадров была больше. Такое чувство, что что-то ограничивает и не даёт больше 29-30 кадров. Или 30 это максимум, что можно сделать для андроида? Хотелось бы, чтобы все было хотя бы в 60 кадрах. Спасибо за такие познавательные ролики!)
@-it394
@-it394 2 ай бұрын
Спасибо:) По поводу телефона: Фпс лочится на 30 по умолчанию. Попробуй прописать на старте что - то вроде этого: QualitySettings.vSyncCount = 0; Application.targetFrameRate = 60; Тут отключается вертикалка и фпс на 60 целевой выставляется
@user-ov6jc2dx5y
@user-ov6jc2dx5y 2 ай бұрын
@@-it394 Прописывал и ничего не менялось. Все так же 30 кадров было. Спасибо за ответ!
@-it394
@-it394 2 ай бұрын
@@user-ov6jc2dx5y Попробуй чистый проект собрать и этими строчками прописанными и протестить на телефоне
@playmarket8605
@playmarket8605 2 ай бұрын
Для андроида 60 фпс предел и то такая возможность не во всех телефонах вроде работает. А по умолчанию 30.
@Bald_Panther
@Bald_Panther 2 ай бұрын
@@user-ov6jc2dx5y это в первую очередь зависит от телефона. Бюджетный телефон с частотой экрана 30, не может выдавать 60 кадров! На хороших телефонах с 120, можно разлачивать через Application.targetFrameRate, все будет ок
@mikhailgorokhov3255
@mikhailgorokhov3255 2 ай бұрын
Может кто поможет. Вот в атласы загнал спрайты. Атлас сам меньше весит, но в нем же ссылки на эти спрайты все равно есть. Почему будет меньше весить тогда?
@yusupab3377
@yusupab3377 2 ай бұрын
Ураааа🎉🎉🎉🎉
@FIGHTERSANOYK
@FIGHTERSANOYK Ай бұрын
Правило POT необязательно, как я понимаю. Так размер текстурки должен делиться на 4 и необязательно быть POT
@kelafac6261
@kelafac6261 2 ай бұрын
У меня вопрос есть по instantiate, разница между instantiate(gameobject) и instantiate(resources.Load), на сколько знаю это очень разное под капотом
@-it394
@-it394 2 ай бұрын
Ну сам метод создания один и тот же, но в первом случае ты префаб сразу по ссылке берешь, а во втором ты префаб подгружаешь из ресурсов
@user-pc4ky5yl1f
@user-pc4ky5yl1f 2 ай бұрын
Первое просто создает еще один экземпляр указанного объекта, а второе тоже самое, только он этот объект загружает из папки ассетов Resources
@kelafac6261
@kelafac6261 2 ай бұрын
@@-it394 Это всё понятно, это база, но мне интересно как это работает на более низком уровне, дело в том что на работе мой коллега рассказывал что создание экземпляра когда у тебя он хранится в инспекторе - это одно и там используется вычислительная память. А когда ты подгружаешь его через Resources - это уже загрузка с жесткого диска. Не знаю так ли это но профайлер показывает более благоприятные показания при загрузке через Resources.
@kelafac6261
@kelafac6261 2 ай бұрын
Ведь есть же разница когда ты указываешь камере RenderTexture и когда ты её подгружаешь из ресурсов, там прям хорошая разница в оптимизации@@-it394
@playmarket8605
@playmarket8605 2 ай бұрын
Интересно хватит ли 1,5Гб на системном диске для установки Unity 2022.3 на SSD... Интересно какая там версия C#
@quane209
@quane209 2 ай бұрын
1,5 гб не хватит, это уж точно.
@playmarket8605
@playmarket8605 2 ай бұрын
@@quane209 2020.0.f1 установил, но версия 202x.3 позволяет перенести глобальный кэш юнити с системного диска на любой другой. А занимает этот кэш, не мало места (несколько гигов).
@krivodeling7925
@krivodeling7925 2 ай бұрын
+
@--.--
@--.-- 2 ай бұрын
У тебя в эдитор логе куча больших текстур от URP Post Processing (grain), в итоге ничего про это не сказал
@Knuckles2761
@Knuckles2761 Ай бұрын
Контент нормальный, но надо отучиться мельтешить мышкой. И в куске про NPOT у слитков компрессия была разная.
@Sultan69996
@Sultan69996 2 ай бұрын
Б з р (5 символов) (Благодарю за ролик 18 символов) 18÷5= 3.6 оптимизация 😂😂😂😂😂😂😂😂
@-it394
@-it394 2 ай бұрын
Аахахахах:)
@Nikita-os6om
@Nikita-os6om 2 ай бұрын
4:32 это же не первоапрельская шутка?
@-it394
@-it394 2 ай бұрын
Нет:)
@Sultan69996
@Sultan69996 2 ай бұрын
250÷50= 50 МБ Бзр (3 символа) 18÷3= 6 эффективности У тебя эффективность = 5 а у меня 6. 😂😂😂😂😂. Я написал новый комментарий и оптемизировал его. Я победил 🤣🤣🤣🤣🤣. 🎖️🎖️🎖️🎖️🎖️ )))))
@dmitryzolkin7904
@dmitryzolkin7904 2 ай бұрын
Кмнт дл прдвжн
@quane209
@quane209 2 ай бұрын
Цена за коммисию
@MaksimBk
@MaksimBk 2 ай бұрын
Сверхполезное видео. Вторую точно надо делать.
Can you beat this impossible game?
00:13
LOL
Рет қаралды 47 МЛН
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 20 МЛН
Como ela fez isso? 😲
00:12
Los Wagners
Рет қаралды 31 МЛН
Как ОПТИМИЗИРУЮТ ИГРЫ
11:00
Atix
Рет қаралды 355 М.
КРУПНЕЙШИЙ Мошенник в Истории Телевидения
12:42
Ваня Продюсер
Рет қаралды 1 МЛН
РАЗБОР собеседования на 4000$ - Unity Developer | Вопросы Hard и Soft, тестовое, livecoding
25:34
Мирошкин Олег | Состоятельный геймдев
Рет қаралды 5 М.
Динамическая оптимизация в UNITY! GPU instancing
7:40
Яковлев Илья - IT и игры
Рет қаралды 19 М.
Оптимизация игры на Unity. Звуки
8:41
Night Train Code
Рет қаралды 6 М.
Can you beat this impossible game?
00:13
LOL
Рет қаралды 47 МЛН