Особенности нативизации блюпринтов в Unreal Engine

Поділитися
Вставка
  • Опубліковано 20 вер 2024
  • Некоторые особенности нативизации блюпринтов в Unreal Engine :)
    🔵Twitter: / russiaunreal
    мой вк для связи: id16226278

КОМЕНТАРІ • 43

  • @_Zemlya
    @_Zemlya 3 місяці тому +1

    Автор этого канала разбирал такие темы в Анриле, которые не разбирал больше никто в русскоязычном сегменте. И эти темы крайне важны, особенно для начинающих разработчиков. Очень жаль, что автор забросил канал.

  • @alexeykulikov5661
    @alexeykulikov5661 3 роки тому +3

    Отличные краткие но по делу ролики на канале.

  • @StrannyiQuark
    @StrannyiQuark 3 роки тому

    Не программист, использую Анрил исключительно для прототипирования, и как приятно слушать и смотреть Ваши видео! Всё доступно и понятно излагаете даже для моего опыта! Спасибо!

  • @dos.x8674
    @dos.x8674 3 роки тому +3

    Не знал про эту функцию, спасибо

  • @cheburashkaspace22
    @cheburashkaspace22 3 роки тому +5

    Я думаю ты быстро наберешь аудиторию.)))

    • @neofit6437
      @neofit6437 3 роки тому

      Жаль что пранки-хуянки набирают в сотни раз быстрее ;(

    • @cheburashkaspace22
      @cheburashkaspace22 3 роки тому

      @@neofit6437 не сказал бы

    • @neofit6437
      @neofit6437 3 роки тому +1

      @@cheburashkaspace22 вряд-ли найдётся несколько миллионов школьников которые не только любят даунский контент, но и одновременно думают о будущем и желают развиваться в современных профессиях.

  • @alexanderplatonov1986
    @alexanderplatonov1986 3 роки тому +5

    У меня был прототип андроид игры с колёсными роботами на кастомной физике (физика колёс). Так вот, компонент движения имел прилично большую функцию в которой просчитывалась физика колёс (всего на все акторы около 150 вызовов в тик) - там по сути сфер трейс и куча расчётов, после чего 1-2 add force. На старом 650 снапе + графика игры это уже работало довольно хорошо, но после нативизации компонента движения фпс с 38 поднялся до 51 вроде. Нагрузка от этого компонента упала примерно в 2 раза. Но учитывая что вычислений там было довольно много и оно на компе работало вообще без проблем, я не согласен с автором насчёт того, что игры аля RTS нельзя делать на блупринтах. Я думаю вполне можно, и даже нужно, но периодически придётся неспеша переписывать высоконагруженные классы на плюсы... Или просто нативизировать. Я ещё не сравнивал производительность блупринтового нативизированного класса с переписанным вручную на с++, как-нибудь надо попробовать это провернуть.

    • @user-nu8ot6fy8c
      @user-nu8ot6fy8c 3 роки тому

      Можно еще попробовать вместо события Tick использовать таймеры. Так, например, код будет исполняться не каждый кадр, а 10 раз в секунду (если 0.1 в таймер указать). Хотя, это просчет физики и, возможно, после этого она будет просчитываться некорректно.

    • @alexanderplatonov1986
      @alexanderplatonov1986 3 роки тому

      ​@@user-nu8ot6fy8c Не, конкретно тут это не проканает ибо add force по любому каждый тик надо вызывать, чтобы объект не дёргался и не вибрировал... Либо мудрить что-то совсем извратное, но оно и так нормально работало. особенно если сферический трейс поменять на линейный - это ещё примерно на 40-50% снизило нагрузку от обработки этих компонентов.

    • @user-nu8ot6fy8c
      @user-nu8ot6fy8c 3 роки тому

      @@alexanderplatonov1986 Хорошо, буду знать.

    • @thebiggangstamouse1530
      @thebiggangstamouse1530 3 роки тому

      Странно, у меня на версии 4.25 нативизация под андроид вообще не работает, пришлось переписывать физику автомобиля на плюсы.
      Я так же сделал тесты, и выяснил что: нативизированные bp медленнее на 10% чем c++, а просто bp медленнее на 60% чем c++
      И по поводу оптимизации: попробуй отключить физику роботам, и перемещать их оффсетом (AddActorWorld/LocalOffset) когда они не рендерятся (WasActorRecentlyRendered)

    • @alexanderplatonov1986
      @alexanderplatonov1986 3 роки тому

      @@thebiggangstamouse1530 Я делал это на 4.23, с нативизацией всё было ОК, выше версию под андроид не пробовал. С движением через оффсет может быть и сработало бы, но пришлось бы запариться + этот проект уже как год отменён. Вообще интересно, 60% не так уж и много... я читал где-то что блупринты тормознее плюсов в 7 раз)) Видать это была производительность при "не правильном" использовании... Как если например в макрос foreach подать pure функцию формирующую массив, вместо переменной с массивом - в итоге весь массив будет пересобираться при каждом обращении к какому-либо элементу...

  • @imperitum3585
    @imperitum3585 3 роки тому +2

    Спасибо за ролик! Чётко и понятно

  • @DodgerEcho
    @DodgerEcho 2 роки тому

    Спасибо Ютюбу за рекомендацию этого канала👍👍👍

  • @yrussq
    @yrussq 3 роки тому +2

    Отлично! Только хочется в этой связи напомнить что оптимизация выполняется где-то далеко после тестов и рефакторинга и то если вы прямо упёрлись в какой-то дикий боттлнек, а не вовремя того как вы собираете прототипы и какие-то сырые наработки, которые ещё 1250 раз переделаются :)

  • @resproject1731
    @resproject1731 Рік тому

    Подписка. Легко доносишь)

  • @MikeDoubth
    @MikeDoubth 3 роки тому +2

    Есть ещё чекбокс с нативизацией внутри блюпринт класса, вопрос, в чём отличие если ставить галочку нативизации внутри BP, либо же в настройке проекта?

    • @alexeykulikov5661
      @alexeykulikov5661 3 роки тому

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

  • @StanislavPerekupenko
    @StanislavPerekupenko 3 роки тому +5

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

    • @alexanderplatonov1986
      @alexanderplatonov1986 3 роки тому +4

      Если пишешь на блупринтах, то по сути в "машинном коде" выполняется только среда обработки блупринта. Сам блупринт является чем-то типа последовательностью команд для среды обработки. Если блупринт "нативизируется", то его содержимое скомпилируется в "машинный код" и будут выполняться напрямую без использования "виртуалки"

  • @ЭскендерКараманов-м6д

    как всегда все четко и по делу , спс за инфу не знал что такое есть

  • @shadowzain
    @shadowzain 2 роки тому

    Спасибо за отличное объяснение!

  • @DenisBazhan
    @DenisBazhan 3 роки тому +2

    Вроде как рекомендуют вычисления в макросах делать. Или нет?

  • @Serega-Pupkin
    @Serega-Pupkin 3 роки тому

    Замечательно! Спасибо за видео.

  • @neofit6437
    @neofit6437 3 роки тому

    Отличный контент. Спасибо

  • @АНГЕЛ-р6д6л
    @АНГЕЛ-р6д6л 3 роки тому +2

    А можете по-больше рассказать про плюсы и блупринты, где что использовать?

    • @UNREALRUSSIA
      @UNREALRUSSIA  3 роки тому +3

      Надеюсь и до плюсов тоже когда-нибудь докатимся :)

    • @ruslandad365
      @ruslandad365 3 роки тому

      Если хотите по подробнее узнать. Про Плюсы
      Посоветую курс на Юдеми
      Learning C++ FOR MAKING games
      Ну или можно скачать там где лежит
      +Полностью на Русском Языке

  • @user-nu8ot6fy8c
    @user-nu8ot6fy8c 3 роки тому +3

    Расскажи пожалуйста про Interfaces в UE4. Сколько видеоуроков пересмотрел, все объясняют поверхностно. Буду благодарен. Что касается этого видео - просто бомба! Я раньше думал что весь код на BP стоит нативизировать, оказалось что нет. Спасибо за контент.

    • @UNREALRUSSIA
      @UNREALRUSSIA  3 роки тому +2

      спасибо :) blueprint interfaces - хорошая тема, интересная :) мне кажется, стоит по ней сделать видео :)

  • @Alex-hs8xj
    @Alex-hs8xj 3 роки тому +1

    это актуально только для работы в браузере? В билде же нет никаких блупринтов. Или после компияции там сохраняется какая-то прослойка между одним куском кода, который когда-то был былпринтом и другим, который был С++? Я думал что во время билда блупринт сначала в С++ переводится, а потом уже все в машинный. И нативизация нужно для оптимизации блупринтов, перед превращением в С++, типа убрать то что не используется и тд

    • @MrSmith01
      @MrSmith01 3 роки тому +1

      При билде движок блюпринты в с++ не переводит
      (только если сами укажем их нативизировать)

  • @HelenSchwieger
    @HelenSchwieger 3 роки тому +1

    А как именно может что-то поломаться? Собранный проект или блюпринт? То есть это может сломать блюпринт и его придётся доставать из бэкапа?

    • @UNREALRUSSIA
      @UNREALRUSSIA  3 роки тому

      Да всякое бывает ломается у людей. В каких-то (к счастью, редчайших) случаях проект может перестать открываться.

  • @aleksandrakimov5305
    @aleksandrakimov5305 3 роки тому

    Спасибо.

  • @ruslandad365
    @ruslandad365 3 роки тому

    Нативизированный код немного Грязненький
    Лучше его чуток подчистить
    Удалить Пару Инклюдов
    И Чутка Рефакторнуть

  • @shion1364
    @shion1364 11 днів тому

    В UE5 отключили её из за ошибок.

  • @multiupgame
    @multiupgame 3 роки тому

    Нашооооол😭😭😭😅😁

  • @kazuma_senpai7087
    @kazuma_senpai7087 2 роки тому

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

    • @barunovas
      @barunovas Рік тому

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