Я очень рад, что нам удалось сдвинуть GameDev образование с определённой точки. После моих обзоров на говно-курсы наконец-то подобная движуха началась в других сферах. А также обозреваемые курсы потихоньку начали улучшать качество своего кода. Вы можете меня любить или ненавидеть но я сделал этот мир лучше, хоть мне и пришлось разораться со всем миром. И именно по этому я не уважаю всех этих кастрированных интервьюеров и прочих пересказывателей общего течения.
@@afd2441 Как по мне абсолютно бесполезное занятие. Когда не понимаешь о чём идёт разговор в книге - в один момент просто начинаешь путаться и это как снежный ком накапливается итогово приходишь к тому, что нихрена не понял. Взял пару курсов по C#. Закупился тетрадочкой, ручками и пошёл конспектировать информацию. Чутка на одном курсе информации сохранилось, появилось понимание. Пошел взял другой курс - сел с тетрадочкой, прошел повторил, что-то новое узнал и так по крупинке...когда разобрался в основах и пришло понимание хотя бы на элементарном уровне что к чему - уже можно брать скучные и сухие книги и просто читать.
@@afd2441 наверно в том, что когда тебе рассказывают информацию через уши и показывают предметно - она лучше воспринимается чем сухое чтиво. Ну и книги по программированию я лично пытался читать по дороге на работу и обратно, особо не по конспектируешь.
@@afd2441 нет не пробывал😀 по ходу дела у меня информация получаемая через видео в виде лекций лучше усваивается... Увы так бывает. И в лекциях все же более свободное общение
Чисто ради прикола решил посмотреть сайт, а там так написано, что я сразу перехотел покупать курсы. Походу, верстальщики разучились правильно линии рисовать.
Спорно на самом деле. LSP подразумевает, что метод дочернего объекта должен делать именно то, что делает метод базового класса, без дополнительных побочных эффектов Классический пример, это класс Rectangle с setWidth и setHeight, а так же его интуитивно понятный наследник Square. Вроде с точки зрения математики все правильно, но что делать со Square? У него же стороны должны быть одинаковые... Ну и возвращаясь к примеру, в данном случае Start играет роль инициализации или конструктора, так что если не вызвать его родительский Start, это может привести к сильному изменению результата и нарушить LSP. Логичнее было бы сделать protected abstract Init(); и вызвать его в private void Start(); базового класса, после остальных инициализаций P.S. Виртуализация и даже просто protected у Unity методов в принципе не очень красиво выглядит. А что если дочерний класс его сам вызовет где-нибудь? Как это контролировать?
Вообще мы радоваться должны что живем в России. У них интернет стоит больше 100 долларов и скорость проводки не состовляет даже 20 . А скорость интернета на телефоне хоть и 4 но как 2 . И стоит 79 доллларов . У нас скорость и цены просто супер!!!!
ну это странно серелизованное поле для инспектора делать протектед, нафига ? и вобще все что сетается с инспектора не должно использоваться в коде кроме этого класса
немного поздно, но видосу вообще 2 года. find game object плох именно по тэгу, потому что мы передаём туда строку, и если напишем её неправильно, тогда это будет сложно отследить, нужно искать по компоненту. в данном случае мы ищем игрока, и у него есть соответствующий компонент Player который есть только у него, по нему мы и ищем : FindObjectOfType()
В Unity иногда пишут публичные поля с большой буквы, это норма (главное чтобы стиль соблюдали). Давняя не любовь разработчиков движка к свойствам сказывается. Хотя меня лично публичные поля в принципе триггерят, ибо грубо нарушают инкапсуляцию
5:51 Стратегия ок. А вот шаблоный метод, если я правильно понял, то это Factory Method. А это как бы уже не ок. А вот почему это описал уже Егор в статье "Constructors or Static Factory Methods?" на .yegor256. Так же ссылка на ту статью есть из другой статьи - "Design Patterns and Anti-Patterns, Love and Hate ".
@@rsakutin Тогда приношу извинения, ошибся c переводом. Но про template method Егор так же написал => Статья про паттерны => предпоследний патерн и там ещё ссылка будет на "Inheritance Is a Procedural Technique for Code Reuse"
Вот я смотрю и думаю а чего тебе не сделать тоже БЕСПЛАТНЫЙ обучающий курс для новичков но не на стримах а в отдельных видео если ты думаешь что кто-то неправильно преподносит материал
@@SaniaIvash Ну я бы не стал его покупать. Все курсы от ЯЮНИОР уже есть в сети. И по шарпу и по юнити. Курс стоит овер дохера, но по факту там материала часов 10 от силы. Думаешь Роман говорит в своих видео тонкости типа как сделан лист, про модификаторы доступа, ООП разжевывает? Конечно нет. Так же вводная вода которой полно везде. Вопрос тогда, а нахера на других гнать, если твой продукт отличается не сильно. Не понятно короче.
7:05 смотрю видосы на ютубчике почти через один говорят не делать поиск по тегу. Вообще не вкуриваю почему, зачем и куда, т.к. не кодер. Но действительно странно если со всей этой движухой это попадается в курсе :)
Не забывайте , он делает это потому что ему заплатили. Поэтому вскоре ты замечаешь что он противоречит себе много раз . Но не волнуйтесь я ему об этом сообщаю в коменте ))) . Пусть не думает что раз он в Канаде то здесь все идиоты.
Конечно круто что разоблачения говно курсов, примеры никудышные и т.п. Заинтересовался курсами iJunior, в отзывах пишут теория хорошая, но примеров очень мало, понять тяжело.
Когда ты скрипт с полем [SerializedField] playerSpeed (допустим это будет скорость игрока) - закидываешь на сам объект игрока, то в инспекторе это поле появляется как новый компонент. Напрямую в инспекторе ты также можешь менять значение этого поля, (редактируя тем самым любое значение, к примеру, скорость игрока). Оно одновременно будет изменяться в скрипте.
А вообще, я сам многое не понимал довольно долго, пока не зашёл, и не поковырялся ручкам пару часиков в удовольствие, всем советую, станешь щёлкать термины и суть роликов, а не смотреть с умным видом, делая вид, что понимаешь что к чему ;D
Наверное ты уже понял, но всё равно скажу. Это для того что приватное поле в коде можно было редактировать через инспектор в юнити. Например чтобы изменить скорость игрока с 10f на 15f
Раз тебе сразу 4 человека ответили, тогда уже и пятый ответ лови от меня: [SerializedField] private float _speed - приватное поле, но будет отображаться в редакторе юньки так же, как и public float Speed. Надеюсь, потомки продолжат эту славную традицию с ответами на твой вопрос )
16-18 лет Возраст, в котором надо уже понимать, что "научим всему и вся" реклама и не больше. Ещё и вредная. И вселять в них уверенность в "продвинутости" обретенных знаний так себе выбор. Сразу в бой кодить шлак, а потом разгребать, где плохо, где ещё хуже, а что вообще никогда больше не использовать и на переучивание убить больше, чем на освоение с нуля 👍
Ну изначально веб, щас начал игры делать для себя и заливать на ютубчик. Возможно я чё то попутал, но в каком то видосе он говорил, что зарабатывал на том, что делал сайты.
Неужели нету чекеров в си-решётке, на которые вы настраиваете ide и она подчеркивает красненьким какие-то ошибки и варнинги? Я понимаю, чекером всего не предусмотришь, но какие-то поля с большой или маленькой буквы, не юзать протектед - это же элементарчина, которую надо доверить иде?
Есть, все есть. Студия обычно следует базовой конвенции майков + подтягивает особенности Unity (например не ругается на приватный Start) А еще она прекрасно прописывает свои данные в editorconfig, если нужно более тонко указать особенности стиля. Например ругаться на отсутсвие _ у приватных полей. И даже можно настроить, чтобы варнинги стиля считались ошибками и оно вообще не компилилось)))
10:31 а вот эти set get. я где то слышал, что по хорошему нужно обходиться конструкторами, если есть set get то что то уже не так, это что за мысль я где то услышал?
Непонятно, тип говорят, что поля должны быть закрытыми, все, но при создании полей делаем их через автосвойства. Думаю тут можно делать как хочешь, но поля делать приватными все
Роман, они тебя больше не будут блокировать. Они выбрали другой путь. Они купили твои уроки C# и Unity.Junior уровень (сам отметил эту версию в этом видео) и слили их в сеть, чтобы ты на этих уроках больше не зарабатывал. Вот-так. Лайкните, чтобы автор увидел.
Я очень рад, что нам удалось сдвинуть GameDev образование с определённой точки.
После моих обзоров на говно-курсы наконец-то подобная движуха началась в других сферах.
А также обозреваемые курсы потихоньку начали улучшать качество своего кода.
Вы можете меня любить или ненавидеть но я сделал этот мир лучше, хоть мне и пришлось разораться со всем миром. И именно по этому я не уважаю всех этих кастрированных интервьюеров и прочих пересказывателей общего течения.
@Full Noob у нас месячный оборот больше чем у них за три года
@@user-ok8bt3wu7b Будет повышение
@@rsakutin повышение уровня твоей дикции?
14:18 не segregation but substitution. Но разбор охеренный думаю просто оговорка
@@rsakutin Да пашол ти, со своими повешениями. Тогда кто буде его покупать? Я точно небуду. 165 000 руб. Золотой блять
мне нравится кнопка "в корзину" на их сайте покупки курса - сразу понятно - куда девать эти курсы
Рома по стандартной схеме: обосри говнокурс, порекламируй свой говнокурс.
это другое, понимать надо
@@afd2441 Как по мне абсолютно бесполезное занятие. Когда не понимаешь о чём идёт разговор в книге - в один момент просто начинаешь путаться и это как снежный ком накапливается итогово приходишь к тому, что нихрена не понял.
Взял пару курсов по C#. Закупился тетрадочкой, ручками и пошёл конспектировать информацию. Чутка на одном курсе информации сохранилось, появилось понимание. Пошел взял другой курс - сел с тетрадочкой, прошел повторил, что-то новое узнал и так по крупинке...когда разобрался в основах и пришло понимание хотя бы на элементарном уровне что к чему - уже можно брать скучные и сухие книги и просто читать.
@@afd2441 наверно в том, что когда тебе рассказывают информацию через уши и показывают предметно - она лучше воспринимается чем сухое чтиво.
Ну и книги по программированию я лично пытался читать по дороге на работу и обратно, особо не по конспектируешь.
@@afd2441 не. Есть курсы который по дороге домой смотрю, но большую часть дома за компом шерстю повторно и более углубленно
@@afd2441 нет не пробывал😀 по ходу дела у меня информация получаемая через видео в виде лекций лучше усваивается... Увы так бывает. И в лекциях все же более свободное общение
Так вот чем я занимаюсь последние пару лет... Трогаю свой js за яички!
предлагаю вызвать полицию
Ура, всеми любимый Хавдий Хох!
хабиб хо
Хуюди ху#
Хаха хах
Клавдий Кок
до сих пор его голос в голове "деньги, это плохая мотивация для верстальщика"
Надеюсь свои курсы не ты записываешь иначе это бормотание под нос невозможно слушать.
Попахивает личной обидой...
Я все ещо жду беспланый курс от тебя)
Чисто ради прикола решил посмотреть сайт, а там так написано, что я сразу перехотел покупать курсы. Походу, верстальщики разучились правильно линии рисовать.
Или у них просто нет нормальных верстальщиков
по поводу base.Start() и тому подобных цепочек вызовов - не ошибка, и это нормальная практика
Спорно на самом деле. LSP подразумевает, что метод дочернего объекта должен делать именно то, что делает метод базового класса, без дополнительных побочных эффектов
Классический пример, это класс Rectangle с setWidth и setHeight, а так же его интуитивно понятный наследник Square. Вроде с точки зрения математики все правильно, но что делать со Square? У него же стороны должны быть одинаковые...
Ну и возвращаясь к примеру, в данном случае Start играет роль инициализации или конструктора, так что если не вызвать его родительский Start, это может привести к сильному изменению результата и нарушить LSP. Логичнее было бы сделать protected abstract Init(); и вызвать его в private void Start(); базового класса, после остальных инициализаций
P.S. Виртуализация и даже просто protected у Unity методов в принципе не очень красиво выглядит. А что если дочерний класс его сам вызовет где-нибудь? Как это контролировать?
Это понятно, но когда будет закупка рекламы у Хауди Хо? А то рекламит гавно, когда может рекламить норм курсы 🤠👍🏻
Энжл ввёл меня в ступор и я пошёл гуглить, все же это энгл.
Зато человек, цитирую, работал в USA
@@cadfoot568 он работал на компанию, которая в Америке, но не в самой Америке
так мне что курс с торента этот не качать? :)
А он есть слитый?
UPD: Если есть, то скинешь ссылочку?)
@@d3stiii все курсы с unity 3d school лежат в свободном доступе в инете. Стоит лишь поискать) Особо ушлые перепродают их за 200- 300 деревянных :D
@@clutchmeisteryo9831 находил только платформер 2д
@@d3stiii завтра скину ссылку если найду
@@clutchmeisteryo9831 благодарю, жду
Посмотри K-Syndicate курс. Единственное, он не дешёвый. И там запускается обучение потоками, не получится купить и сразу весь курс посмотреть.
Но это уже намного лучше
Когда путаешь liskov substitution и interface segregation👍
Спонсор этого кринжа мой английский
У тебя голос чисто как у Крюка в что где когда ))
Когда хочется что то понять, а курсы ху-юрсы
Так в гайде же вроде с помощью FindWithTag подтягивает компонент с Player на танк, или танк это и есть Player?
Доброе время суток мистер Сакутин, обучают ли на ваших курсах по юнити применению ECS, если да, то на каком фреймворк'е? Или вы чисто по ООП?
Нет, херне всякой не учим
@@rsakutin весь твой курс херня, васек, ничем не лучше той шляпы, о которой ты тут высказывался в видосе ;)
@@rsakutin ECS - херня? Сильно.
А почему такое отношение к весьма популярному паттерну?
Вообще мы радоваться должны что живем в России. У них интернет стоит больше 100 долларов и скорость проводки не состовляет даже 20 . А скорость интернета на телефоне хоть и 4 но как 2 . И стоит 79 доллларов . У нас скорость и цены просто супер!!!!
18:02 полностью cпизжено с метанита. И картинки оттуда же. Божественно
14:17 Liskov SUBSTITUTION principle, подстановка, а не разделение
Смотреть тебя интресно, но ничего не понятно мне, к сожалению(
Интересно ты мог бы на изи примере, мб даже на этом. Написать код, который бы отражал SOLID
Сделай обзор курсов от скилл бокс и гигбреинс
Пов хейтер Хауди Хо записал целый ролик, но никто из стада не понял что это бизнес, реклама куплена, и каждый зарабатывает как может.
ну это странно серелизованное поле для инспектора делать протектед, нафига ? и вобще все что сетается с инспектора не должно использоваться в коде кроме этого класса
хорошие курсы за свои деньги тебя атрибут))))
POV: Ты ищешь комментарий Хауди
Liskov SUBSTITUTION principle!
Хауди Хо это ж человек мотиватор
Он красавчик, мотивировать умеет... Молодец
У меня возник такой вопрос, что тогда лучше использовать вместо FindGameObject в методе Start?
немного поздно, но видосу вообще 2 года. find game object плох именно по тэгу, потому что мы передаём туда строку, и если напишем её неправильно, тогда это будет сложно отследить, нужно искать по компоненту. в данном случае мы ищем игрока, и у него есть соответствующий компонент Player который есть только у него, по нему мы и ищем : FindObjectOfType()
@@madara8241 понял, спасибо)
1:17 может, как крепостной крестьянин? Типа код это раб разработчика. Только вот чем это плохо?
Разве в C# нет соглашения о наименовании полей (как public, так и private) с маленькой буквы?
Конечно есть
В Unity иногда пишут публичные поля с большой буквы, это норма (главное чтобы стиль соблюдали). Давняя не любовь разработчиков движка к свойствам сказывается. Хотя меня лично публичные поля в принципе триггерят, ибо грубо нарушают инкапсуляцию
5:51
Стратегия ок.
А вот шаблоный метод, если я правильно понял, то это Factory Method. А это как бы уже не ок. А вот почему это описал уже Егор в статье "Constructors or Static Factory Methods?" на .yegor256. Так же ссылка на ту статью есть из другой статьи - "Design Patterns and Anti-Patterns, Love and Hate
".
Нет, шаблонный метод это Template method
@@rsakutin Тогда приношу извинения, ошибся c переводом.
Но про template method Егор так же написал => Статья про паттерны => предпоследний патерн и там ещё ссылка будет на "Inheritance Is a Procedural Technique for Code Reuse"
@@mao3193 Template Method можно реализовывать без наследования :)
Ну, тут лайк не жалко
энгл, энджел на небесах...
Вот я смотрю и думаю а чего тебе не сделать тоже БЕСПЛАТНЫЙ обучающий курс для новичков но не на стримах а в отдельных видео если ты думаешь что кто-то неправильно преподносит материал
Так он у них не бесплатный
я имел ввиду что бы ты сделал на своем канале бесплатный курс для новичков но не стримах а в отдельных видео
@@BLGamesChannel мда :-\
одни говорят что покупай этот курс другие нет этот другие всех критикуют так и не понятно кому верить
@@SaniaIvash Ну я бы не стал его покупать. Все курсы от ЯЮНИОР уже есть в сети. И по шарпу и по юнити. Курс стоит овер дохера, но по факту там материала часов 10 от силы.
Думаешь Роман говорит в своих видео тонкости типа как сделан лист, про модификаторы доступа, ООП разжевывает? Конечно нет. Так же вводная вода которой полно везде. Вопрос тогда, а нахера на других гнать, если твой продукт отличается не сильно. Не понятно короче.
7:05 смотрю видосы на ютубчике почти через один говорят не делать поиск по тегу. Вообще не вкуриваю почему, зачем и куда, т.к. не кодер. Но действительно странно если со всей этой движухой это попадается в курсе :)
@@limur5а нахера его менять-то вообще?) :D Поставил и забыл, с чего бы вдруг ему меняться?
ОН ПОХВАЛИЛ НЕ СВОЙ КУРС. ВЫЗЫВАЙТЕ ПОЛИЦИЮ
:)
ништяк
Не забывайте , он делает это потому что ему заплатили. Поэтому вскоре ты замечаешь что он противоречит себе много раз .
Но не волнуйтесь я ему об этом сообщаю в коменте ))) . Пусть не думает что раз он в Канаде то здесь все идиоты.
Обсирает одни курсы, чтобы прорекламировать свои)
Вот вот
Собрались как-то 3 инфоцигана: rsakutin, itproger и хаудиХо и один двум другим говорит...
Роман Сакутин и есть Инфацыган который рекламирует свои говно курсы
25к рублей в месяц... У меня зп - 30к(держу в курсе). Мне жить то на что, если я буду платить за твои курсы с "гарантией"?...
На оставшиеся 5к
Работай дальше за свою 30-ку. Тебе не нужно всё это.
@@yksi2883 почему ему не нужно?
жалею, что о ваших курсах узнала так поздно, пошла бы к вам)
Ура блять. Я думал не доживу
Но я должен был это сделать
Конечно круто что разоблачения говно курсов, примеры никудышные и т.п.
Заинтересовался курсами iJunior, в отзывах пишут теория хорошая, но примеров очень мало, понять тяжело.
Скачай на торрентах
Видео показывает как Рома, делает благое дело, чтобы цена сотвествовала преподносимым знаниям. :)
Чёт не понял какая стоимость ваших курсов?
Дохуя
@@rsakutin больше 100к?
@@unity3dsimplesolutions309 Конечно
@@rsakutin обидно, по ходу придётся учить программирование по бесплатным видео (
@@unity3dsimplesolutions309 metanit, ulearn и "C# для маленьких и тупых" тебе в помощь.
Ребят, может кто объяснить, что такое [serializefield]? Смотрел во многих источниках, но понять не смог(
Это для приватного поля, чтобы оно небыло доступно в других классах, но его можно было менять из редактора юнити
Когда ты скрипт с полем [SerializedField] playerSpeed (допустим это будет скорость игрока) - закидываешь на сам объект игрока, то в инспекторе это поле появляется как новый компонент. Напрямую в инспекторе ты также можешь менять значение этого поля, (редактируя тем самым любое значение, к примеру, скорость игрока). Оно одновременно будет изменяться в скрипте.
А вообще, я сам многое не понимал довольно долго, пока не зашёл, и не поковырялся ручкам пару часиков в удовольствие, всем советую, станешь щёлкать термины и суть роликов, а не смотреть с умным видом, делая вид, что понимаешь что к чему ;D
Наверное ты уже понял, но всё равно скажу. Это для того что приватное поле в коде можно было редактировать через инспектор в юнити. Например чтобы изменить скорость игрока с 10f на 15f
Раз тебе сразу 4 человека ответили, тогда уже и пятый ответ лови от меня: [SerializedField] private float _speed - приватное поле, но будет отображаться в редакторе юньки так же, как и public float Speed. Надеюсь, потомки продолжат эту славную традицию с ответами на твой вопрос )
Мужик. Это курсы для детей от 12 лет. Они хотя бы так должны для начала говнокодить
16-18 лет
Возраст, в котором надо уже понимать, что "научим всему и вся" реклама и не больше. Ещё и вредная. И вселять в них уверенность в "продвинутости" обретенных знаний так себе выбор. Сразу в бой кодить шлак, а потом разгребать, где плохо, где ещё хуже, а что вообще никогда больше не использовать и на переучивание убить больше, чем на освоение с нуля 👍
ХаудиХо это веб разработчик ? Документацию и я могу пилить на свой канал...Хм так и сделаю)
Ну изначально веб, щас начал игры делать для себя и заливать на ютубчик. Возможно я чё то попутал, но в каком то видосе он говорил, что зарабатывал на том, что делал сайты.
@@zerix8771 Он работает на фрилансе, сначала на сайты теперь игры впр почему бы и нет если есть желания
чел всё не так просто нужно понять и обьяснить эту документацию перед тем как пилить на своём канале
Нудно и скучно.
Чего бубнишь себе под нос? Говори чётко. Смотреть не интересно.
Не любишь Хабиби Хо? Удаляй страничку!
Давно отписался от этого дурачка.
от Романа сакутина?
Неужели нету чекеров в си-решётке, на которые вы настраиваете ide и она подчеркивает красненьким какие-то ошибки и варнинги? Я понимаю, чекером всего не предусмотришь, но какие-то поля с большой или маленькой буквы, не юзать протектед - это же элементарчина, которую надо доверить иде?
Как ни странно, оно есть. Серым подчёркивается то, что названо не по стандарту
Может мало где работает или стандарты другие🤷♂️
@@russianpokemon2484 обычно чекер вешается на хук гита и даже закоммитить нестандарт не дает
Есть, все есть. Студия обычно следует базовой конвенции майков + подтягивает особенности Unity (например не ругается на приватный Start)
А еще она прекрасно прописывает свои данные в editorconfig, если нужно более тонко указать особенности стиля. Например ругаться на отсутсвие _ у приватных полей. И даже можно настроить, чтобы варнинги стиля считались ошибками и оно вообще не компилилось)))
понятно, у них курс говно
а у нас нет
не хуя не понял, но очень интересно))))
10:31 а вот эти set get. я где то слышал, что по хорошему нужно обходиться конструкторами, если есть set get то что то уже не так, это что за мысль я где то услышал?
Непонятно, тип говорят, что поля должны быть закрытыми, все, но при создании полей делаем их через автосвойства. Думаю тут можно делать как хочешь, но поля делать приватными все
Сори
Роман, они тебя больше не будут блокировать. Они выбрали другой путь. Они купили твои уроки C# и Unity.Junior уровень (сам отметил эту версию в этом видео) и слили их в сеть, чтобы ты на этих уроках больше не зарабатывал. Вот-так. Лайкните, чтобы автор увидел.
Да пусть сливают
смысл в слитых курсах если нет домашки и ее не проверяют, без фида нихрена не поймешь как следует.
@@nickleb2216 да, поэтому курсы я покупаю, даже если они есть на торентах
Телегу то дайте где курс качать xD
Нашел?
Согласен, отстой полный
Все эти "курсы" - сплошное зло... Задолбали зарабатывать ничего не делая!
Если их кто-то покупает, значит они кому то нужны
Хауди хо лучшее чем ты 1000000000 раз.
Он хоть что-то умеет в отличий от тебе
Бля, адепты хауди хо Реал существуют
@@mrflygx2565 Ты втираешь мне какую-то дичь
@@Кейро-д3ц самолайк залог успеха))
такое впечатление, будто это я писала=D что-то жесть какая-то для обучения))
Первый