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

Поділитися
Вставка
  • Опубліковано 29 вер 2024

КОМЕНТАРІ • 76

  • @-it394
    @-it394  6 місяців тому +1

    ⚡⚡⚡ Полезные ссылки ⚡⚡⚡
    🔎 t.me/yakovlev_advanced_bot - бот с информацией о вебинаре и подарками для обучения
    🔎 yakovlevgamedev.ru - курс по архитектуре игр в Unity
    🔎 t.me/yakovlev_gamedev - ссылка на мой telegram канал

    • @skryidoov3951
      @skryidoov3951 6 місяців тому

      А как поставить больше 1 лайка, а то вторую часть уже охота)

    • @-it394
      @-it394  6 місяців тому

      @@skryidoov3951 С двух аккаунтов:)

    • @skryidoov3951
      @skryidoov3951 6 місяців тому

      @@-it394 О точно!

    • @playmarket8605
      @playmarket8605 5 місяців тому

      ​@@-it394Приветствую есть вопрос. Регистрация на яндекс маркете как физ лицо для продажи инди продуктов, сейчас как обстоит дело с этим? Требуют фото с паспортом как в средние века или все цивильнее стало?

    • @Тарас_Бульба
      @Тарас_Бульба 2 дні тому

      а какие игры тебе приходилось выпускать?
      вот бы поиграть.
      интересуют и удачные и неудачные релизы,
      и интересует разбор причин удачных игры и причин неудачных,

  • @Speed-Run-Facts
    @Speed-Run-Facts 5 місяців тому +13

    Нужно БОЛЬШЕ, БОЛЬШЕ ТАКОГО КОНТЕНТА, СЛИШКОМ МАЛО! ИЛЬЯ ГОНИ НОВУЮ ПАРТИЮ ВИДОСИКОВ. Ребят знаю многим обычно лень, но пишите комментарии и ставьте лайки, помогите продвигать канал.

  • @AzDzelo
    @AzDzelo 2 місяці тому

    Класс! Я узнал из видео пару моментов, о которых не знал. Спасибо!

  • @Lokich
    @Lokich 6 місяців тому +22

    Крайне полезный ролик. Попал в точку)
    Ожидаю вторую часть

    • @ЖеняВовк-ж3и
      @ЖеняВовк-ж3и 6 місяців тому

      Ты даже не посмотрел

    • @alfamodik4917
      @alfamodik4917 6 місяців тому

      Как же вовремя вышел этот видос)

  • @Lucio11a
    @Lucio11a 6 місяців тому +9

    Правило 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. При этом она и весить будет значительно меньше, да и атласы из этих картинок так же будут попадать под это правило))
    Особенно если не хочется заморачиваться с сжатием и пр.

    • @EmilGolver
      @EmilGolver 5 місяців тому

      На самом деле все аббревиатуры указаны. Если ширина и высота текстуры делится на 4 (DXT1/BC1), то это совсем другой формат компрессии, нежели POT (ETC1 или ETC2, не помню). Картинка все еще NPOT, даже если скомпрессировалась в другом формате. Но замечание хорошее, иногда доводить до POT текстуры выходит дороже чем довести текстуру до делимости на 4 :)

  • @rox.3346
    @rox.3346 6 місяців тому +3

    Советую купить Build Report Tool с ассет стора, визуализирует и позволяет удобно сразу находить самые большие файлы в и вне билда.

  • @Some_kind_of_something
    @Some_kind_of_something 6 місяців тому +6

    Очень полезный ролик, редко встретишь настолько годные гайды, да ещё и с такой хорошей подачей

  • @DroidGame2023
    @DroidGame2023 2 дні тому

    расскажи про картинки в формате webp переименованные в png.
    не вредит ли такой подход общей производительности?

  • @kustek1600
    @kustek1600 7 днів тому

    С кнопками очень сильно сэкономил время. Я не знал о таком способе и в фотошопе вручную для каждой кнопки нового размера делал спрайт

  • @СеменМоисеев-л8в
    @СеменМоисеев-л8в 6 місяців тому +3

    Очень полезно, спасибо большое!) А вот что насчет fps на андроидах?
    Вот мой пример: Сделал счетчик fps для своей игрушки, посмотрев на stackoverflow. Включаю билд на андроиде, а он показывает не больше 30 кадров, иногда даже тоже показывает, хотя проект маленький и ничего не должно нагружать. А когда смотрю частоту кадров в самой юньке на пк, то там все отлично показывает. Я так понимаю надо как-то настраивать отдельно для андроида, чтобы частота кадров была больше. Такое чувство, что что-то ограничивает и не даёт больше 29-30 кадров. Или 30 это максимум, что можно сделать для андроида?
    Хотелось бы, чтобы все было хотя бы в 60 кадрах.
    Спасибо за такие познавательные ролики!)

    • @-it394
      @-it394  6 місяців тому +2

      Спасибо:)
      По поводу телефона:
      Фпс лочится на 30 по умолчанию.
      Попробуй прописать на старте что - то вроде этого:
      QualitySettings.vSyncCount = 0;
      Application.targetFrameRate = 60;
      Тут отключается вертикалка и фпс на 60 целевой выставляется

    • @СеменМоисеев-л8в
      @СеменМоисеев-л8в 6 місяців тому

      @@-it394 Прописывал и ничего не менялось. Все так же 30 кадров было.
      Спасибо за ответ!

    • @-it394
      @-it394  6 місяців тому +2

      @@СеменМоисеев-л8в Попробуй чистый проект собрать и этими строчками прописанными и протестить на телефоне

    • @playmarket8605
      @playmarket8605 6 місяців тому +1

      Для андроида 60 фпс предел и то такая возможность не во всех телефонах вроде работает. А по умолчанию 30.

    • @Bald_Panther
      @Bald_Panther 6 місяців тому

      @@СеменМоисеев-л8в это в первую очередь зависит от телефона. Бюджетный телефон с частотой экрана 30, не может выдавать 60 кадров! На хороших телефонах с 120, можно разлачивать через Application.targetFrameRate, все будет ок

  • @theRealArtyomkar
    @theRealArtyomkar 6 місяців тому +5

    Не нужно бежать переделывать все звуки в ogg так как юнити переделывает аудио в wav, чтобы применить компрессию. Если у вас есть длинные аудио, то лучше сначала подумать и выбрать между весом билда и скоростью загрузки игры\оптимизаций

    • @hopperlopip
      @hopperlopip 5 місяців тому

      Разве? На уровне билда он вообще все звуки в FSB упаковывает.

    • @theRealArtyomkar
      @theRealArtyomkar 5 місяців тому +2

      @@hopperlopip Я перепроверил инфу, действительно, немного неправильно помнил, но в целом смысл тот же - импортировать в wav, вот текст из статьи:
      При импорте файлов в Unity они всегда должны быть в несжатом формате, например в WAVE (.wav) или AIFF (.aiff). Многие сжатые форматы являются форматами с потерями, то есть при их кодировании информация теряется. Если импортировать в Unity сжатый файл, например MP3 или Vorbis, то Unity сначала декодирует его в несжатый формат, а затем повторно закодирует в выбранный вами формат, даже если этот тот же формат, с которого вы начинали. Это может добавлять новые артефакты сжатия, что в общем случае нежелательно.

  • @rickloyd8208
    @rickloyd8208 5 місяців тому +1

    Спасибо за интересный совет с возможность создавать круглые спрайты прямо в Юнити! (лайк + подписка)

  • @ПавелЮ-р5э
    @ПавелЮ-р5э 6 місяців тому +2

    Имба хочу продолжение ))

  • @Mulat-p1y
    @Mulat-p1y 4 місяці тому

    7:23 Достаточно просто не указывать спрайт в компоненте image, и не нужен спрайт 1х1 пиксель.

  • @Tulopex
    @Tulopex 6 місяців тому +2

    Спасибо!

  • @Алексей-и5д3в
    @Алексей-и5д3в 4 місяці тому

    Спасибо за труд. Такой вопрос: в Build Report есть такое чудо Other Assets. Занимает 20%. Что это такое и можно ли это сократить. Заранее спасибо за ответ

  • @nekto8585
    @nekto8585 5 місяців тому

    Очень Крутой канал надеюсь ты не остановишься!
    Ребят не ленитесь пишите комментарии!

  • @Екатерина-о5л3ч
    @Екатерина-о5л3ч 5 місяців тому +1

    Спасибо! Точно сказал про "сражаемся за каждый байт"

  • @FIGHTERSANOYK
    @FIGHTERSANOYK 5 місяців тому

    Правило POT необязательно, как я понимаю. Так размер текстурки должен делиться на 4 и необязательно быть POT

  • @Knuckles2761
    @Knuckles2761 5 місяців тому

    Контент нормальный, но надо отучиться мельтешить мышкой.
    И в куске про NPOT у слитков компрессия была разная.

  • @KollegaTV13
    @KollegaTV13 6 місяців тому +3

    🤗 Годнота😁

  • @Sultan69996
    @Sultan69996 6 місяців тому +1

    Б з р (5 символов)
    (Благодарю за ролик 18 символов)
    18÷5= 3.6 оптимизация
    😂😂😂😂😂😂😂😂

    • @-it394
      @-it394  6 місяців тому

      Аахахахах:)

  • @mikhailgorokhov3255
    @mikhailgorokhov3255 6 місяців тому

    Может кто поможет. Вот в атласы загнал спрайты. Атлас сам меньше весит, но в нем же ссылки на эти спрайты все равно есть. Почему будет меньше весить тогда?

  • @eloreneloreneloreneloreneloren
    @eloreneloreneloreneloreneloren 6 місяців тому

    У тебя в эдитор логе куча больших текстур от URP Post Processing (grain), в итоге ничего про это не сказал

  • @LexaSt86
    @LexaSt86 6 місяців тому +1

    Отличный гайд, как его мне не хватало пару месяцев назад. Не знаю, может у меня такой глюк, но бывает, что при создании повторного билда не создаётся новый файл с результатами билда. И приходится выходить из Юньки.

  • @TheFenix717
    @TheFenix717 4 місяці тому

    Привет! Подскажи пожалуйста, уровень твоих знаний - это сеньер?

  • @praisethesun2612
    @praisethesun2612 3 місяці тому

    Больше видео по оптимизации, это довольно редкий контент!

  • @titanovsky
    @titanovsky 6 місяців тому +2

    Было интересно, спасибо)

  • @MaksimBk
    @MaksimBk 6 місяців тому

    Сверхполезное видео. Вторую точно надо делать.

  • @nobice1
    @nobice1 6 місяців тому +1

    Про сжатие текстур до байтов огромнейшее спасибо просто. Про правило сжатия ни разу не слышал, но при этом постоянно делаю спрайты кратные 2
    Не тех работников юнитеки всё нанимают)

  • @boarband_official
    @boarband_official 4 місяці тому

    Будут ролики про ECS? Было бы интересно посмотреть

  • @ильдар-з7н
    @ильдар-з7н 5 місяців тому

    Покланяюсь и подписываюсь

  • @vvvfff400
    @vvvfff400 5 місяців тому +1

    Видос пушка!

  • @dmitryzolkin7904
    @dmitryzolkin7904 6 місяців тому +1

    Кмнт дл прдвжн

    • @quane209
      @quane209 6 місяців тому

      Цена за коммисию

  • @MRSHERMAN-id4fx
    @MRSHERMAN-id4fx 6 місяців тому +6

    Имбааа, крайне годно, глоток качественного контента. Нужно больше.
    Ждемс ледующую частИ.

  • @bob3ik
    @bob3ik 6 місяців тому +1

    Очень рад новости о мероприятие 6-го апреля! Но возможности прийти не будет в связи с большой разницей во времени... Подскажите, останется ли это мероприятие в записи?

    • @-it394
      @-it394  6 місяців тому +1

      Думаю в течении нескольких дней запись останется:)

    • @bob3ik
      @bob3ik 6 місяців тому

      @@-it394, рад слышать)

  • @danya2326
    @danya2326 6 місяців тому +5

    Очень годно! Было бы интересно узнать про Addressables, как в их используете в проектах, бест практиклс) Так же про что нибудь более низкоуровневое было бы интересно послушать, аля замена компилятора)

  • @krivodeling7925
    @krivodeling7925 6 місяців тому

    +

  • @Sultan69996
    @Sultan69996 6 місяців тому

    250÷50= 50 МБ
    Бзр (3 символа)
    18÷3= 6 эффективности
    У тебя эффективность = 5 а у меня 6. 😂😂😂😂😂. Я написал новый комментарий и оптемизировал его. Я победил 🤣🤣🤣🤣🤣. 🎖️🎖️🎖️🎖️🎖️ )))))

  • @Lucio11a
    @Lucio11a 6 місяців тому

    Кстати на счет шейдеров:
    Юнити меня бесит в этом плане :D Если проект под URP, 80% гайдов и пр. материала по шейдерам можно выкидывать, в зависимости от версии движка.
    Пытался, помню, сделать эффект мокрого стекла для панельки UI. Чтобы когда игрок открывал настройки звука, в приложении, игра красиво "оттенялсь" и блюрилась ЗА настройками.
    Убил неделю и для конкретного проекта ничего сделать не смог. Пытался и шейдерами сделать, и постэффектами - нифига. Мучил ChatGPT и его аналоги :D глухо...
    т.е. открываю новый проект, чистый, на др. версии движка - получается. А в готовом проекте - нет. А менять настройки, профили и пр. я в нем не могу, т.к. проект чужой. Да и, если честно, на знаю, что именно надо менять, чтоб все заработало... :"(

  • @urgodhead
    @urgodhead 6 місяців тому

    Правило POT обязательно только для некоторых вариантов компрессий. Есть хорошие, проверенные варианты сжатия, которые принимают NPOT текстуры (например ETC2 для андроид и очень крутой ASTC для iOS). Либо не использовать сжатие вообще, но и вес соответствующим будет. Если не ошибаюсь, то POT текстуры быстрее обрабатываются GPU

  • @playmarket8605
    @playmarket8605 6 місяців тому +1

    Интересно хватит ли 1,5Гб на системном диске для установки Unity 2022.3 на SSD... Интересно какая там версия C#

    • @quane209
      @quane209 6 місяців тому

      1,5 гб не хватит, это уж точно.

    • @playmarket8605
      @playmarket8605 6 місяців тому

      @@quane209 2020.0.f1 установил, но версия 202x.3 позволяет перенести глобальный кэш юнити с системного диска на любой другой. А занимает этот кэш, не мало места (несколько гигов).

  • @Vorono4ka
    @Vorono4ka 6 місяців тому

    Интересное видео! Мне понравился совет с атласом и POT, не знал, что так работает. Интересно, как это достигается с программной точки зрения.
    Если уже был на курсе, то получится выиграть доступ ещё раз?) Уж очень хочется повторить 😅

  • @laxlai_-_6406
    @laxlai_-_6406 6 місяців тому

    Спасибо

  • @yusupab3377
    @yusupab3377 6 місяців тому

    Ураааа🎉🎉🎉🎉

  • @TreeHundredBucks
    @TreeHundredBucks 6 місяців тому

    Наконец то 😊🎉

  • @Nikita-os6om
    @Nikita-os6om 6 місяців тому

    4:32 это же не первоапрельская шутка?

    • @-it394
      @-it394  6 місяців тому

      Нет:)

  • @kelafac6261
    @kelafac6261 6 місяців тому

    У меня вопрос есть по instantiate, разница между instantiate(gameobject) и instantiate(resources.Load), на сколько знаю это очень разное под капотом

    • @-it394
      @-it394  6 місяців тому +1

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

    • @ИванДонских-з3б
      @ИванДонских-з3б 6 місяців тому

      Первое просто создает еще один экземпляр указанного объекта, а второе тоже самое, только он этот объект загружает из папки ассетов Resources

    • @kelafac6261
      @kelafac6261 6 місяців тому

      @@-it394 Это всё понятно, это база, но мне интересно как это работает на более низком уровне, дело в том что на работе мой коллега рассказывал что создание экземпляра когда у тебя он хранится в инспекторе - это одно и там используется вычислительная память.
      А когда ты подгружаешь его через Resources - это уже загрузка с жесткого диска.
      Не знаю так ли это но профайлер показывает более благоприятные показания при загрузке через Resources.

    • @kelafac6261
      @kelafac6261 6 місяців тому

      Ведь есть же разница когда ты указываешь камере RenderTexture и когда ты её подгружаешь из ресурсов, там прям хорошая разница в оптимизации@@-it394