где ты был 5 лет назад с этим видосом. Мега полезное видео для начинающих!!!!
@Nereal_Dvigatel Жыл бұрын
Такую жизу в конце сказал 🤣 Разработка реально роскошь, которую не каждый может себе позволить. Если точнее, свободное время - это наша роскошь. Когда мы подростки, у нас много времени - но нет осознанности, когда взрослее - осознанность есть, но нет времени
@ЯрославМоккочинский4 жыл бұрын
Единственный кто такие неочевидные вещи для новичков рассказывает. Спасибо, продолжай в том же духе.
@bqpuc64643 жыл бұрын
1.Структура проэкта 2.Весь проэкт в отдельной папке в Content 3.Импорт ассетов в промежуточный проэкт 4.область видимости переменных и функций: Private Protected Public 5.Git. Таски
@fanisir9 ай бұрын
1. Единое правило именования.
@АлексейПарфёнов-ь9з4 жыл бұрын
Очень полезная информация, про приватность переменных банально не знал
@РУССКИЙ_СОЛДАТ Жыл бұрын
Добавлю и от себя: Обязательно, обводите и подписывайте свой код ! (Не ленитесь. ) Через пару месяцев, открывая "функцию или макрос", созданную ещё в начале работы над проектом. Будете смотреть на свои "спагетти", не понимая что это такое и кто всё это это сделал ?... 😅
@ruslandad3653 жыл бұрын
Очень качественно СПАСИБО!!!!
@f.artemenkov3 жыл бұрын
Еще добавлю: 6) Хорошая практика делать все переменные закрытыми и к тем, которые нужны извне давать доступ только через get- и set-функции. Это упростит переписывание внутренней логики блупринов без вероятности что-то сломать в других местах. 7) Постараться как можно реже использовать касты к конкретным классам. Это очень усложняет дальнейшее переписывание. Условно говоря, сделал ты везде касты на MyMegaCharacter и всё... С другим Character уже работать не будет, и в другой проект просто так не перенесешь. Решается это через интерфейсы часто. И наследование не панацея. 8) Реализовывать логику в компонентах.
@UNREALRUSSIA3 жыл бұрын
Спасибо за дополнение! P. S. По компонентам как раз надо будет как-нибудь пройтись :)
@gcomsu58193 жыл бұрын
Да и касты снижают производительность, т.к. при касте идет подгрузка всего того что ты кастишь, а это ох как много ресурсов жрет!!!
@f.artemenkov3 жыл бұрын
@@gcomsu5819 Каст, встроенный в UE, это не тот dynamic_cast, если что. То есть, не такой тяжелый в плане производительности, как нативная реализация в C++.
@gcomsu58193 жыл бұрын
@@f.artemenkov Я про блюпринты говорил, в них от кастов нужно по возможности совсем отказаться.
@ДмитрийАбрамов-о2ф3 жыл бұрын
Дополню про приватность. Сходу это не очень удобно смотреть. В секции MyBlueprint, где показанны наши переменные и функции можно в "глазике" поставить галку "Show access specifier in the My Blueprint View". Оно добавит перед каждой функцией и переменной подпись.
@UNREALRUSSIA3 жыл бұрын
Спасибо большое! "Show access specifier in the My Blueprint View" - это суперское дополнение!
@adacer3 жыл бұрын
Всё в точку. Единственное не проговорил в чем польза отдельной корневой папки, в моем случае я был вынужден её создать после того как мои собственные файлы смешивались с файлами которые мигрируешь с других проектов, часто из-за зависимостей поттягивается куча лишних папок даже если переносишь какой-нибудь партикл и твой проект который ты аккуратно вымащивал забивается левым мусором, становится тяжело находить то, что действительно важно.
@UNREALRUSSIA3 жыл бұрын
Полностью согласен, спасибо за дополнение!
@Risfild3 жыл бұрын
Кто ты? Где ты был? Просто нереально спасибо огромное. Пожалуйста, продолжай дальше выпускать видео! Особенно про паттеры
@alexphil90153 жыл бұрын
Стоит пересмотреть позже, после первых пунктов немного непонятно из-за отсутствия понимания движка.
@jahun7493 жыл бұрын
Благодарю, буду следить за вашими туториалами с огромным удовольствием
@farkasvilkas58393 жыл бұрын
все так и делаю, кроме импорта. Про импорт в отдельный проект это интересная придумка. Нужно ее потестить.
@Господя3 жыл бұрын
Ничего нового не услышал, но это очень очень важные базовые вещи! Приятно для себя недавно нашел твой канал, особенно как ТА послушать за оптимизацию просто приятно:)
@amdfx84763 жыл бұрын
Кратко !!! КРУТО и ПО ТЕМЕ !!!!
@d9kod9kod9ko4 жыл бұрын
Гайд по стилю очень полезен, раньше его не видел, благодарю! Помимо самого стиля именования, там еще немало полезных советов дают.
@fanisir9 ай бұрын
Про таска очень полезная фича
@multiupgame3 жыл бұрын
Ещё, ещё и ещё таких советоооооов!
@1984toxa3 жыл бұрын
Спасибо! Полезная инфа
@maus31283 жыл бұрын
Как программист - полностью со всем согласен!
@aleksandrakimov53054 жыл бұрын
А можно подробнее, зачем в проекте всё держать в именной папке? От каких подводных камней это избавит?
@WhiteWolfProject3 жыл бұрын
Во первых, не будут в общей куче с файлами движка - стартер киты и прочее. Во вторых, при импорте ассетов можно их закидывать сначала в другую папку, на потестить (в юнити авторы ассетов частенько держат их в корневом каталоге и при импорте все разбрасывается по папкам движка так, что замучаешься вылавливать, еще и перепишут шейдера и т.п.). В третьих, для удобства исключения неиспользуемого из билда.
@sanbait3 жыл бұрын
Шик развивай канал
@MikeDoubth3 жыл бұрын
Ещё очень важная штука это Get и Set методы, надо было и про них рассказать
@RPGMITRA Жыл бұрын
Мне стыдно за себя. Но за видео спасибо)
@Animamundi242 жыл бұрын
1:12 Есть один момент: есть некоторые группы ассетов, которые ОБЯЗАНЫ быть в папке Content, а не в дополнительной папке. Мне точно известно, что карты уровней (umap) обязаны лежать в Content/Levels, а видеоролики в Content/Movies, иначе они не будут включены в запакованный проект (то есть в саму игру) для использования через Level Streaming и Media Texture соответственно. Возможно есть что-то ещё, о чём я не в курсе, но на всякий случай держу папку Content/Music отдельно.
@Reunonen Жыл бұрын
Вот с Movies согласен, а вот чтоб уровни не запаковывались если они не в спец папке, такого еще не видел, хотя те же видеоролики можно настроить чтоб они запаковывались из любой папки
@silentman22844 жыл бұрын
еще
@StrannyiQuark3 жыл бұрын
Спасибо, очень полезно! А будет подробный ролик про настройку ассетов (к Правилу 3)?
@duxart4 жыл бұрын
Ништяк инфа!!!
@shmurdik3 жыл бұрын
Да уж. С пунктами 2 и 3 на себе ощутил. Использовал кучу ништяков из маркетплейса, и как и сказано, зачастую далеко не весь пак, а кусочек от туда, пару ассетов от сюда. В итоге крохотная игруля в запакованом виде 3-4 гига и геймплеем на полчаса-час раздула папку проекта аж до 80-и гигов... О_о Ну и понятно дело все это дело в одной куче. :)
@DrovalNaper3 жыл бұрын
Я бы ещё шестой добавил. Всё документировать. В Ворде, Екселе или ручкой в блокноте. Со временем проект разрастётся и какие бы понятные названия переменным и функциям ни давали, придётся сидеть и вспоминать, что за BP_melee и чем stoneroad отличается от brickroad
@amura_4 жыл бұрын
Спасибо большое
@ivan-_-85774 жыл бұрын
Совет - не нужно делать все переменные Private и вообще «обращаться к классу из других мест», если классы у вас общаются через интерфейсы. Жесткие ссылки в блупринтах это не всегда (почти никогда) хорошая идея.
@UNREALRUSSIA4 жыл бұрын
это оч.хорошая тема, на которую как-нибудь стоит сделать отдельный ролик :)
@TheMycoma2 жыл бұрын
@@UNREALRUSSIA так ты бы делал, а то говоришь до фига, а смысл не ясен. Зачем мне делать папку с названием проекта в корневой папке? Почему не привести примеры и показать, что это даёт в итоге? Мне проще кликать на контент и видеть весь контент сразу, не нажимая ещё один раз на папку. Зачем делать приватные переменные? Не понятно. Это размер изменит? Скорость загрузки? Это повышает фпс? Зачем это? Непонятно. Нужны были примеры. Таски для инди это тетрадь. Никаких отвлечений на другие программы и интернет браузер. Работаешь, пишешь, читаешь, все под рукой. Твои видео вроде и нужные, но без примеров они бесполезны. Приходится смотреть американцев
@crazy_tht3706 Жыл бұрын
@@TheMycomaриватные переменные не влияют ни на что в плане производительности. Это нужно с точки зрения код стайла Самая Крутая аналогия. Представьте, что вы садитесь за руль машины, а там кнопок как в кабине самолета. Любому пользователю понадобиться лишь несколько, но разработчик предоставил вообще все, включая флаги работы подушек безопасности. И вот вы мискликнув можете спокойно либо запустить их сразу и ввести в ступор вашу команду, либо отключить их неявно и вообще подвергнуть опасности пассажиров. А зачем вам вообще эти кнопки дали? И представьте насколько больше усилий нужно в большом проекте, чтоб разбираться, предназначена ли эта кнопка для работы, или разработчик просто не спрятал ее Или, в два слова, это говнокод
@wi1dd0g_games3 жыл бұрын
Пользуюсь Trello. Хорошая вещь. Можно работать как с веб-версией, так и с приложения на телефоне. Создание отдельной папки для проекта и область видимости - хорошие советы. Даже не задумывался о них
@UNREALRUSSIA3 жыл бұрын
Я оч.люблю Trello+Excel, всё никак не привыкну к более новомодным системам :)
@wi1dd0g_games3 жыл бұрын
@@UNREALRUSSIA Аналогично, но вместо Excel пользуюсь Google Docs. Он автоматически сохраняет изменения, к тому же доступ к нужным файлам можно получить откуда угодно
@Blade_Ruiner3 жыл бұрын
У меня при создании всегда есть черновик: проект со всеми механиками и основными объектами, без карты. Там я в первую очередь отрабатываю новый код, новые объекты, взаимодействия и т.д. И если все успешно - повторяю в чистовике, основном проекте. А вот то, что переносить не весь пак, а лишь то, что надо.. А как? Идея замечательная, но вот объект из пака, у него бп, меш, материалы, все это надо вычленить и перенести точечно?
@ArtAngelov6 ай бұрын
Тут не сложно - можно использовать мигрейт на объекте конкретном и всё то, что связано с ним склонируется в новый проект. С той же иерархией папок. Отчего важно правило 2 очень важно
@neofit64374 жыл бұрын
Америку не открыл, но другие видео очень ценные и полезные. Продолжай в том же духе. Спасибо
@GMTechArt4 жыл бұрын
К большей части озвученного пришёл самостоятельно, и про тесты в отдельном проекте и создании папки с названием проекта и к наименованию ассетов, опыт однако.
@ivanc861794 жыл бұрын
зачем отдельную папку создавать?
@GMTechArt4 жыл бұрын
@@ivanc86179 удобней во многих случаях, особенно если нужно в другой проект перенести, опять же так ты точно знаешь что всё твое в 1 папке.
@vachetorosyan72353 жыл бұрын
✌✌✌
@dimar76423 жыл бұрын
Сам прошло через это. ООО сколько нервов
@MrAwesomeChel4 жыл бұрын
Спасибо, очень полезно. Было бы интересно послушать про настройку среды разработки. Visual Studio или Visual Studio Code, или еще что-то? Меня просто если честно уже добивает это отвратный intellisence в 2019 VS. Пробовал ставить VS Assistant вроде лучше но пока дороговато, мб есть какие-то альтернативы?
@f.artemenkov3 жыл бұрын
А JetBrains Rider пробовали? Как по мне, Rider шустрее работает, чем MS Visual Studio. И intellisence не тупит так сильно.
@alexanderplatonov19863 жыл бұрын
По мне самое хорошее объяснение "привычке 2" - если не создавать подпапку проекта и начать закидывать ассеты с маркетплейса, то 4-5 ассетов и уже будет каша)))
@mike1pmov10 ай бұрын
Хорошая привычка: знать ооп
@Сма_йлик3 жыл бұрын
👍👏👍👏
@ORTyOW2 жыл бұрын
Капец ты шаришь
@cheburashkalive92114 жыл бұрын
Умоляю можно гайд по assets manager и как поделить ассеты на отледельные pak
@shion13643 ай бұрын
Совет: всегда закрывайте пины "world context". Причина: сборка роекта не пройдёт
@алешагордый Жыл бұрын
Стоит ли пытатся осилить после 35 лет если раньше вообще ничем подобным не интересовался?
@tpqz-w9z Жыл бұрын
Сделай очень маленькую игрушку, а потом поймешь, надо ли это тебе)
@cookingmom20673 жыл бұрын
Что такое такски?
@sansey53 жыл бұрын
Пропускать обновления черевато сложным переходом на новые версии.. кучи деприкейтед методов и т.п...