5 хороших привычек для Unreal-разработчиков

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

КОМЕНТАРІ • 72

  • @Nereal_Dvigatel
    @Nereal_Dvigatel Рік тому +8

    Такую жизу в конце сказал 🤣 Разработка реально роскошь, которую не каждый может себе позволить. Если точнее, свободное время - это наша роскошь. Когда мы подростки, у нас много времени - но нет осознанности, когда взрослее - осознанность есть, но нет времени

  • @andrewsidokur6135
    @andrewsidokur6135 Рік тому +3

    где ты был 5 лет назад с этим видосом. Мега полезное видео для начинающих!!!!

  • @ЯрославМоккочинский

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

  • @РУССКИЙ_СОЛДАТ
    @РУССКИЙ_СОЛДАТ Рік тому +3

    Добавлю и от себя:
    Обязательно, обводите и подписывайте свой код ! (Не ленитесь. )
    Через пару месяцев, открывая "функцию или макрос", созданную ещё в начале работы над проектом.
    Будете смотреть на свои "спагетти", не понимая что это такое и кто всё это это сделал ?... 😅

  • @АлексейПарфёнов-ь9з
    @АлексейПарфёнов-ь9з 3 роки тому +22

    Очень полезная информация, про приватность переменных банально не знал

  • @bqpuc6464
    @bqpuc6464 3 роки тому +15

    1.Структура проэкта
    2.Весь проэкт в отдельной папке в Content
    3.Импорт ассетов в промежуточный проэкт
    4.область видимости переменных и функций: Private Protected Public
    5.Git. Таски

    • @fanisir
      @fanisir 7 місяців тому

      1. Единое правило именования.

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

    Кто ты? Где ты был? Просто нереально спасибо огромное. Пожалуйста, продолжай дальше выпускать видео! Особенно про паттеры

  • @f.artemenkov
    @f.artemenkov 3 роки тому +3

    Еще добавлю:
    6) Хорошая практика делать все переменные закрытыми и к тем, которые нужны извне давать доступ только через get- и set-функции. Это упростит переписывание внутренней логики блупринов без вероятности что-то сломать в других местах.
    7) Постараться как можно реже использовать касты к конкретным классам. Это очень усложняет дальнейшее переписывание. Условно говоря, сделал ты везде касты на MyMegaCharacter и всё... С другим Character уже работать не будет, и в другой проект просто так не перенесешь. Решается это через интерфейсы часто. И наследование не панацея.
    8) Реализовывать логику в компонентах.

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

      Спасибо за дополнение! P. S. По компонентам как раз надо будет как-нибудь пройтись :)

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

      Да и касты снижают производительность, т.к. при касте идет подгрузка всего того что ты кастишь, а это ох как много ресурсов жрет!!!

    • @f.artemenkov
      @f.artemenkov 3 роки тому

      @@gcomsu5819 Каст, встроенный в UE, это не тот dynamic_cast, если что. То есть, не такой тяжелый в плане производительности, как нативная реализация в C++.

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

      @@f.artemenkov Я про блюпринты говорил, в них от кастов нужно по возможности совсем отказаться.

  • @ДмитрийАбрамов-о2ф
    @ДмитрийАбрамов-о2ф 3 роки тому +11

    Дополню про приватность. Сходу это не очень удобно смотреть. В секции MyBlueprint, где показанны наши переменные и функции можно в "глазике" поставить галку "Show access specifier in the My Blueprint View". Оно добавит перед каждой функцией и переменной подпись.

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

      Спасибо большое! "Show access specifier in the My Blueprint View" - это суперское дополнение!

  • @fanisir
    @fanisir 7 місяців тому

    Про таска очень полезная фича

  • @Господя
    @Господя 3 роки тому

    Ничего нового не услышал, но это очень очень важные базовые вещи! Приятно для себя недавно нашел твой канал, особенно как ТА послушать за оптимизацию просто приятно:)

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

    Очень качественно
    СПАСИБО!!!!

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

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

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

      Полностью согласен, спасибо за дополнение!

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

    Гайд по стилю очень полезен, раньше его не видел, благодарю! Помимо самого стиля именования, там еще немало полезных советов дают.

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

    Стоит пересмотреть позже, после первых пунктов немного непонятно из-за отсутствия понимания движка.

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

    Благодарю, буду следить за вашими туториалами с огромным удовольствием

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

    все так и делаю, кроме импорта. Про импорт в отдельный проект это интересная придумка. Нужно ее потестить.

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

    Кратко !!! КРУТО и ПО ТЕМЕ !!!!

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

    Мне стыдно за себя. Но за видео спасибо)

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

    Спасибо, очень полезно!

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

    Шик развивай канал

  • @silentman2284
    @silentman2284 3 роки тому +9

    еще

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

    Спасибо, очень полезно! А будет подробный ролик про настройку ассетов (к Правилу 3)?

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

    Как программист - полностью со всем согласен!

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

    Ещё очень важная штука это Get и Set методы, надо было и про них рассказать

  • @ivan-_-8577
    @ivan-_-8577 3 роки тому +2

    Совет - не нужно делать все переменные Private и вообще «обращаться к классу из других мест», если классы у вас общаются через интерфейсы. Жесткие ссылки в блупринтах это не всегда (почти никогда) хорошая идея.

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

      это оч.хорошая тема, на которую как-нибудь стоит сделать отдельный ролик :)

    • @TheMycoma
      @TheMycoma 2 роки тому +2

      @@UNREALRUSSIA так ты бы делал, а то говоришь до фига, а смысл не ясен. Зачем мне делать папку с названием проекта в корневой папке?
      Почему не привести примеры и показать, что это даёт в итоге?
      Мне проще кликать на контент и видеть весь контент сразу, не нажимая ещё один раз на папку.
      Зачем делать приватные переменные? Не понятно. Это размер изменит? Скорость загрузки? Это повышает фпс?
      Зачем это? Непонятно. Нужны были примеры.
      Таски для инди это тетрадь. Никаких отвлечений на другие программы и интернет браузер. Работаешь, пишешь, читаешь, все под рукой.
      Твои видео вроде и нужные, но без примеров они бесполезны. Приходится смотреть американцев

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

      @@TheMycomaриватные переменные не влияют ни на что в плане производительности. Это нужно с точки зрения код стайла
      Самая Крутая аналогия. Представьте, что вы садитесь за руль машины, а там кнопок как в кабине самолета. Любому пользователю понадобиться лишь несколько, но разработчик предоставил вообще все, включая флаги работы подушек безопасности. И вот вы мискликнув можете спокойно либо запустить их сразу и ввести в ступор вашу команду, либо отключить их неявно и вообще подвергнуть опасности пассажиров. А зачем вам вообще эти кнопки дали? И представьте насколько больше усилий нужно в большом проекте, чтоб разбираться, предназначена ли эта кнопка для работы, или разработчик просто не спрятал ее
      Или, в два слова, это говнокод

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

    Я бы ещё шестой добавил. Всё документировать. В Ворде, Екселе или ручкой в блокноте. Со временем проект разрастётся и какие бы понятные названия переменным и функциям ни давали, придётся сидеть и вспоминать, что за BP_melee и чем stoneroad отличается от brickroad

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

    Ещё, ещё и ещё таких советоооооов!

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

    По мне самое хорошее объяснение "привычке 2" - если не создавать подпапку проекта и начать закидывать ассеты с маркетплейса, то 4-5 ассетов и уже будет каша)))

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

    Ништяк инфа!!!

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

    Совет: всегда закрывайте пины "world context".
    Причина: сборка роекта не пройдёт

  • @mike1pmov
    @mike1pmov 8 місяців тому

    Хорошая привычка: знать ооп

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

    Америку не открыл, но другие видео очень ценные и полезные. Продолжай в том же духе. Спасибо

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

    А можно подробнее, зачем в проекте всё держать в именной папке? От каких подводных камней это избавит?

    • @WhiteWolfProject
      @WhiteWolfProject 3 роки тому +7

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

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

    Спасибо большое

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

    ✌✌✌

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

    1:12 Есть один момент: есть некоторые группы ассетов, которые ОБЯЗАНЫ быть в папке Content, а не в дополнительной папке. Мне точно известно, что карты уровней (umap) обязаны лежать в Content/Levels, а видеоролики в Content/Movies, иначе они не будут включены в запакованный проект (то есть в саму игру) для использования через Level Streaming и Media Texture соответственно. Возможно есть что-то ещё, о чём я не в курсе, но на всякий случай держу папку Content/Music отдельно.

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

      Вот с Movies согласен, а вот чтоб уровни не запаковывались если они не в спец папке, такого еще не видел, хотя те же видеоролики можно настроить чтоб они запаковывались из любой папки

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

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

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

      зачем отдельную папку создавать?

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

      @@ivanc86179 удобней во многих случаях, особенно если нужно в другой проект перенести, опять же так ты точно знаешь что всё твое в 1 папке.

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

    Да уж. С пунктами 2 и 3 на себе ощутил. Использовал кучу ништяков из маркетплейса, и как и сказано, зачастую далеко не весь пак, а кусочек от туда, пару ассетов от сюда. В итоге крохотная игруля в запакованом виде 3-4 гига и геймплеем на полчаса-час раздула папку проекта аж до 80-и гигов... О_о Ну и понятно дело все это дело в одной куче. :)

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

    Сам прошло через это. ООО сколько нервов

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

    Пользуюсь Trello. Хорошая вещь. Можно работать как с веб-версией, так и с приложения на телефоне. Создание отдельной папки для проекта и область видимости - хорошие советы. Даже не задумывался о них

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

      Я оч.люблю Trello+Excel, всё никак не привыкну к более новомодным системам :)

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

      @@UNREALRUSSIA Аналогично, но вместо Excel пользуюсь Google Docs. Он автоматически сохраняет изменения, к тому же доступ к нужным файлам можно получить откуда угодно

  • @Blade_Ruiner
    @Blade_Ruiner 2 роки тому +2

    У меня при создании всегда есть черновик: проект со всеми механиками и основными объектами, без карты. Там я в первую очередь отрабатываю новый код, новые объекты, взаимодействия и т.д. И если все успешно - повторяю в чистовике, основном проекте. А вот то, что переносить не весь пак, а лишь то, что надо.. А как? Идея замечательная, но вот объект из пака, у него бп, меш, материалы, все это надо вычленить и перенести точечно?

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

      Тут не сложно - можно использовать мигрейт на объекте конкретном и всё то, что связано с ним склонируется в новый проект. С той же иерархией папок. Отчего важно правило 2 очень важно

  • @Сма_йлик
    @Сма_йлик 3 роки тому +1

    👍👏👍👏

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

    Спасибо, очень полезно. Было бы интересно послушать про настройку среды разработки. Visual Studio или Visual Studio Code, или еще что-то? Меня просто если честно уже добивает это отвратный intellisence в 2019 VS. Пробовал ставить VS Assistant вроде лучше но пока дороговато, мб есть какие-то альтернативы?

    • @f.artemenkov
      @f.artemenkov 3 роки тому +1

      А JetBrains Rider пробовали?
      Как по мне, Rider шустрее работает, чем MS Visual Studio. И intellisence не тупит так сильно.

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

    Капец ты шаришь

  • @алешагордый
    @алешагордый Рік тому

    Стоит ли пытатся осилить после 35 лет если раньше вообще ничем подобным не интересовался?

    • @tpqz-w9z
      @tpqz-w9z Рік тому

      Сделай очень маленькую игрушку, а потом поймешь, надо ли это тебе)

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

    Умоляю можно гайд по assets manager и как поделить ассеты на отледельные pak

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

    Пропускать обновления черевато сложным переходом на новые версии.. кучи деприкейтед методов и т.п...

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

      Согласен. :) Ну это опять же, по ситуации :)

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

    Что такое такски?

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

    с вторым пунктом не согласен.

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

    где перевод конвенции на русский?

  • @1984toxa
    @1984toxa 3 роки тому

    Спасибо! Полезная инфа