Переписал игру Гоши Дударя на Unity | Она стала в 10 раз лучше!

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ธ.ค. 2024

ความคิดเห็น • 96

  • @rsakutin
    @rsakutin  4 ปีที่แล้ว +5

    Отвечаю на ваши вопросы в нашем тик-токе - www.tiktok.com/@rsakutin?lang=en
    Снова открыли продажи нового курса, залетайте пока не кончились места - ijunior.ru/hypecasual-intro?

    • @vityusha5339
      @vityusha5339 4 ปีที่แล้ว +1

      Кликбейтное привью

    • @nikolaynikolaev7339
      @nikolaynikolaev7339 4 ปีที่แล้ว +1

      Зделайте возможность оплаты не через сервисы яндекса для жителейУкраины, я уже трижды пытаюсь купить ваши курсы и всё никак

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว

      @@nikolaynikolaev7339 напишите мне на почту - romaan27@gmail.com
      Попробуем другим способом

    • @gibberlinger6246
      @gibberlinger6246 3 ปีที่แล้ว

      @@rsakutin проверьте сайт по ссылке, у вас там какая то дичь творится. Хотя наверное вы вкурсе

    • @rsakutin
      @rsakutin  3 ปีที่แล้ว

      @@gibberlinger6246 да вроде все ок

  • @anatoliydingo2200
    @anatoliydingo2200 4 ปีที่แล้ว +96

    Вчера начал учить C#, пойду переписывать говнокод Романа Сакутина.

    • @turboboy8049
      @turboboy8049 4 ปีที่แล้ว +1

      Что тебя смутило в его коде?

    • @funk6248
      @funk6248 4 ปีที่แล้ว +8

      @@turboboy8049 шутит

    • @ButterflyEsophagus
      @ButterflyEsophagus 3 ปีที่แล้ว

      @@turboboy8049 он рофлил

    • @turboboy8049
      @turboboy8049 3 ปีที่แล้ว

      @@ButterflyEsophagus 🗿

    • @yehor43
      @yehor43 2 ปีที่แล้ว

      @@ButterflyEsophagus не думаю.........

  • @bodfxua7698
    @bodfxua7698 3 ปีที่แล้ว +14

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

    • @alexescape7559
      @alexescape7559 3 ปีที่แล้ว +5

      Ты маленько не прав. Он знает все языки вселенной))!

  • @gaitavr1992
    @gaitavr1992 4 ปีที่แล้ว +17

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

  • @someawesome4573
    @someawesome4573 4 ปีที่แล้ว +25

    Ну наконец-то решил написать комментарий. Давай-ка покритикуем твой код тоже.
    Класс Tower:
    Вопрос первый - что он делает? Почему он называется Tower? Разве название класса не должно отображать его поведение? И что за проверка перед добавлением сегмента, разумнее было бы убрать эту проверку потому, что случаев, когда выбрасывается этот эксепшн быть не должно. Либо вынести этот эксепшн в тот класс, который добавляет сегмент.
    Тот же класс 30 строка: "new Vector3(1, 1, 1)" - создание одного и того же объекта при каждом вызове плюс магические числа. А если потребуется не 1,1,1, а допустим 3,1,0? Лезть в код и менять там значения?
    Класс VariantGenerator:
    Те же магические числа. Почему бы не сделать SerializeField с массивом Vector3 и оттуда брать значения... Корутина, ты наверняка в курсе того, что при каждом запуске корутины создаешь объект, который можно создать один раз в Awake. И почему там 1f, а если захочешь задержку в полторы секунды? Опять лезть в код? while(true) можно заменить на более понятную строку. _tower.HasSegment == false? Для себя определил такой стиль говоришь? А если я определю для себя объявлять переменную ЗАГЛАВНЫМИ буквами, то при ревью ты не будешь меня хейтить? Ведь я для себя определил такой стиль. Мне так более понятно же.
    Методы OnSegmentCreated(), OnSegmentChanged можно назвать по другому, то есть в названии отобразить их действие. То, что они подписаны на какой то ивент не раскрывает то, что они делают. Для тебя может понятно, а для других нет.
    Брать у камеры компонент аниматор и воспроизводить какую-то анимацию, название которой вбита в скрипт - это мощно. Я понимаю, стеб, все дела, но ты показываешь это своей аудитории перед которыми ты каждый день утверждаешь какой ты невъебенный прогер и проектировщик.
    Резюмируя могу сказать, что код да, простой, понятный и как ты говоришь состоит из несложных компонентов, которые в сумме составляют сложную систему. Но! Такой код в нормальных проектах нахуй не нужен. Если применять такой стиль кодирования, то в итоге в проекте будет хуева туча непонятных скриптов, которые используются только в одном месте. Нет универсальности, нет абстракции, проблемы с неймингом, ответственностью классов, что то сделано через события, а что то вызывается напрямую и в общем беда. Нет интерфейсов! Это как в проекте, хоть и небольшом нет интерфейсов? Но есть простота. Твой код тоже никуда не годится. Раунд!
    З.Ы. Забыл еще добавить: порядок private, public нарушен в некоторых местах. Неужели тебе настолько похуй...

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว +11

      Эх, рано тебе ещё критиковать :)
      1. Нет, название не должно описывать поведение, оно может описывать роль или просто предметное название, иначе все бы классы были с конкатенацией глагола + er.
      2. Это тип структуры, он в любом случае у тебя будет новый создаваться ;)
      Но да, это хардкод.
      3. Не понял про массив. Предлагаешь давать вектора направления настраиваемыми? Зачем? Это только усложнит эксплуатацию и нет никаких предпосылок. В данном случае это не магические числа а запрограммированная конфигурация, это разные вещи.
      4) " Для себя определил такой стиль говоришь? А если я определю для себя объявлять переменную ЗАГЛАВНЫМИ буквами, то при ревью ты не будешь меня хейтить?" - Да, если ты выбрал такой стиль и придерживаешься то он проходит ревью, я всегда об этом говорю ;)
      5) "Нет интерфейсов!" - Полиморфного поведения тоже нет :D
      Через события сделано то, что не должно затепливаться.
      Напрямую связано то, что имеет чёткую иерархию.
      Всё просто ;)
      >Забыл еще добавить: порядок private, public нарушен в некоторых местах. Неужели тебе настолько похуй...
      Методы сообщений Unity имеют приоритет выше остальных методов компонента, обычно такую тактику везде выбирают, собственно как и я тут, и я ей стараюсь придерживаться. А в остальных случаях я руководствуюсь Style Cop, где регламинтируются такие вещи. Сначала разбивается по типу члена, потом по модификаторам, в том числе и доступности.

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว +10

      >Брать у камеры компонент аниматор и воспроизводить какую-то анимацию, название которой вбита в скрипт - это мощно. Я понимаю, стеб, все дела, но ты показываешь это своей аудитории перед которыми ты каждый день утверждаешь какой ты невъебенный прогер и проектировщик.
      Какой же ты душнила :)

  • @kevinparker7874
    @kevinparker7874 4 ปีที่แล้ว +3

    Лайк. Перешёл от слов к делу. Моё уважение.

  • @ИльнурАминев-ю9п
    @ИльнурАминев-ю9п 2 ปีที่แล้ว +3

    Роман, видно, что ты лучше знаешь Unity. И я согласен, что лучше сразу учиться писать хороший код. Но как новичок, твои объяснения, в отличии от объяснения Гоши, я не понимаю. Почти половину твоих слов я не понимаю. Твои видео больше для джунов, нежели для новичков. Представим, что я куплю твои курс, если там будет так же, мне очень сильно не понравится.

  • @korobejnikoffdaniil8960
    @korobejnikoffdaniil8960 4 ปีที่แล้ว +3

    Спасибо, отличное видео! 👍

  • @ЄвгенСухоставець
    @ЄвгенСухоставець 4 ปีที่แล้ว +10

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

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว +7

      Я не занимаюсь такой хернёй)
      Самый действенный способ это писать на ходу, но в таком контексте чтобы можно было быстро поменять то, что ты уже натворил.

    • @MrJakut88
      @MrJakut88 3 ปีที่แล้ว

      А за чем ему это делать если у него есть платные курсы для этого?

  • @fullboarduck5491
    @fullboarduck5491 4 ปีที่แล้ว +2

    Я изучаю C# и смотрю разные каналы на youtub'е, в том числе и заглядывал к Гоше Дударю. Изучаю язык заточенный под программы для windows, мне бы хотелось начать изучать Unity, но видел "хороший" до поры до времени курс на youtube только у Гоши. Теперь не знаю кого смотреть, а денежку тратить не хочется.

  • @Cleannetcode
    @Cleannetcode 3 ปีที่แล้ว +1

    Спасибо за такой видео обзор, приятно что кто то пытается склонить людей писать нормальный код. В проекте есть еще почва для обсуждения, моя личная боль. Это названия. В частности интересует входящий параметр position и переменная target (таймкод: 11:20). Мне кажется название параметра position лучше конкретизировать, какая это позиция, к примеру currentSegmentPosition. Либо написать summary для данного параметра. Также переменная target, лучше написать targetSegmentPosition. _buildingDirections лучше переименовать как _possibleBuildingDirections Но это все под вопросом, пока кода сложного кода в методе немного и всем в целом можно разобраться.

  • @mvaddlu
    @mvaddlu 4 ปีที่แล้ว +2

    Отличное видео! Спасибо!

  • @unknxwnuser5845
    @unknxwnuser5845 4 ปีที่แล้ว +4

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

  • @ОлегТимофеев-щ3ш
    @ОлегТимофеев-щ3ш 3 ปีที่แล้ว +1

    9:28, можно каждую позицию назвать по человечески и использовать её в данном массиве. Например так Position.Front.TopRight()
    Position.Middle.Right()
    Чтобы каждый раз не учитываться в 1 и -1 и позицию

  • @uso2484
    @uso2484 4 ปีที่แล้ว +30

    Первый) Кст новая рубрика переписывание игр

  • @kvokacyamba
    @kvokacyamba ปีที่แล้ว +1

    честно, игра гоши дударя намного лучше и приятней для глаз, камера нормально установлена

  • @CobyVVW
    @CobyVVW 4 ปีที่แล้ว +2

    Роман можете посоветовать книги для изучения языка C#?

    • @kawakami_idv
      @kawakami_idv 3 ปีที่แล้ว

      Google и MSDN, книги можешь под пиво почитать)

  • @НиколайСеренович
    @НиколайСеренович 4 ปีที่แล้ว +1

    Роман, доброго времени суток! Подскажите, чем все-таки отличаются курсы интенсива(гарантия выпуска своей игры) от курсов с гарантией трудоустройства? Не вижу четкую разницу между ними. Если в этих курсах дается один и тот же материал, получается разница в стоимости только за гарантию трудоустройства или как? Объясните пожалуйста. Заранее спасибо!

  • @DobleFun
    @DobleFun 4 ปีที่แล้ว +5

    Конечно искать камеру по тегу, а потом ещё и получать у неё Аниматор и ещё вызывать Play со стрингой в параметрах это сильно)

    • @DobleFun
      @DobleFun 4 ปีที่แล้ว +1

      Уже писали это в комментах, грустно

  • @Alexandr_Kakoi-Takoi
    @Alexandr_Kakoi-Takoi 2 ปีที่แล้ว

    Цена вопроса курса? Очень интересна

  • @alexandershvyrkov
    @alexandershvyrkov 4 ปีที่แล้ว +1

    Роман, в скрипте VariantGenerator на 43 строке, не допущена ли ошибка? Ведь Random.Range не возвращает максимальное указанное целое число, а у вас там Count - 1. Если не ошибаюсь, то вы делали акцент на этом, когда разбирали код Дударя

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว +2

      - 1 потому, что мы из перечисления убрали 1 элемент :)

  • @any3develop282
    @any3develop282 4 ปีที่แล้ว

    Роман, все про код и код и только код. Вы будучи преподавателем, могли бы записать видео рекомендации например : Как будучи новичком не выгореть когда перед ним стоит сложная задача. Как вести образ жизни сидя у ПК и тд.. Это очень полезно. Конечно у вас уже был подобный обзор на Прокрастинацию, но этого маловато, я думаю это было бы актуально.

    • @deckards6288
      @deckards6288 3 ปีที่แล้ว

      Зачем? Таких видео куча

    • @any3develop282
      @any3develop282 3 ปีที่แล้ว

      @@deckards6288 так он же себя преподносит как преподаватель онлайн курсов. То его рекомендации гораздо лучше чем Аля какие совсюду.

  • @capyvlad
    @capyvlad 4 ปีที่แล้ว

    Продолжай!

  • @alib7619
    @alib7619 4 ปีที่แล้ว

    Ты в Android Studio не писал случайно ? У меня просто есть проект с овнокодом , было бы интересно посмотреть , что из этого выйдет )

  • @oliv-eagd884
    @oliv-eagd884 3 ปีที่แล้ว

    а курс( ваш ) подойдёт для того кто неделю назад скачал юнити?

  • @stas_etc
    @stas_etc 4 ปีที่แล้ว +8

    Зачем писать так "if (_tower.HasSegment(position) == false)"?
    Так типа понятнее, чем поставить "!", или это отголоски Дударя?

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว +6

      Я для себя такой стиль определил и придерживаюсь ему.
      По-моему так читабельней и чище

    • @nooftube2541
      @nooftube2541 4 ปีที่แล้ว +2

      @@rsakutin я бы тогда хотя бы использовал "is false", так хотябы по английски.

    • @kelranaltrein
      @kelranaltrein 4 ปีที่แล้ว +5

      Прямое сравнение убирает неопределенность и улучшает читабельность. Мозгу человека проще разрешать четкие сравнения, чем включать блок логического анализа.
      Гораздо легче воспринимать == true / false, чем короткую запить if (! something). На небольших кусках кода и при минимальном анализе этого не заметить, но на серьезной структуре постоянное чтение вот таких "сокращений" постепенно утомляет организм и человек гораздо быстрее устаёт, а значит менее продуктивен.

    • @stanislavsh6582
      @stanislavsh6582 4 ปีที่แล้ว +2

      ​@@kelranaltrein Глупость какая-то.
      Любой человек, который знает что такое bool - знает какие значения оно принимает и для него нет проблем понять запись. А со стороны это смотрится убого и избыдточно. Все равно что в private-методе проверять бесконечно на null. При этом ведет к ошибкам, потому что как мы все помним, чем больше символов в коде - тем больше потенциальных ошибок и больше времени требуется на их устранение.
      Плюс, если ошибка в бизнес-логике, другой программист в любом случае должен будет вникнуть в то что это условие делает, и избыточность его только запутает.

  • @zenox6914
    @zenox6914 3 ปีที่แล้ว

    На сайте курса ошибка "После релиза *вы* приведём в вашу игру 1000 живых игроков, которые оставят своё реально мнение об игре" мне кажется *мы* там будет лучше.

  • @ІванДобра-ц3г
    @ІванДобра-ц3г 4 ปีที่แล้ว

    Почему вы прикрыли medium курсы? Я только узнал о них, а они уже закрыты(

  • @daniilparokonnyy7980
    @daniilparokonnyy7980 4 ปีที่แล้ว

    Зачем каротины, если можно делать через FunctionalPeriodic от CodeMonkey?

    • @rsakutin
      @rsakutin  4 ปีที่แล้ว +2

      Зачем за собой таскать все это дерьмо из проекта в проект?

    • @sharpes4253
      @sharpes4253 4 ปีที่แล้ว

      Зачем помидор, когда есть огурец?

  • @richblessbigsmoke9781
    @richblessbigsmoke9781 4 ปีที่แล้ว +1

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

  • @nextgen1670
    @nextgen1670 4 ปีที่แล้ว +8

    лично я нихуя не понял, хоть бы ссылку на гит оставил

  • @user-tz3zw2ho7h
    @user-tz3zw2ho7h 4 ปีที่แล้ว +5

    Гоша кстати украл игру у какого-то индуса с 400к+ инсталлами, называется Frantic Tower по-моему

    • @likehottea5139
      @likehottea5139 4 ปีที่แล้ว +1

      Игра Frantic Architect, разраб азиат Will Kwan, у него видос про то как издатель кинул его на бабки с этой игрой

    • @user-tz3zw2ho7h
      @user-tz3zw2ho7h 4 ปีที่แล้ว

      @@likehottea5139 Точно! Недавно наткнулся на это видео в ленте

  • @monterio1234
    @monterio1234 4 ปีที่แล้ว

    th-cam.com/video/zkCfbNHqxN8/w-d-xo.html почему не public Bounds Bounds{ get; private set; } ? вроде в шарпе есть такой синтаксический сахар

    • @Cleannetcode
      @Cleannetcode 3 ปีที่แล้ว

      Можно и так :)
      Это в данном случае разница будет небольшой и выбор какой вариант использовать в программе будет за командой

  • @rasalghul2435
    @rasalghul2435 4 ปีที่แล้ว

    А где найти твой курс с 99% скидкой? 😉

    • @MrJakut88
      @MrJakut88 3 ปีที่แล้ว

      🤣🤣🤣 иди к Дударю, он бесплатно обучает. Но если честно, то я так и делаю. Просто всегда приходится код допиливать и додумывать, но все же

  • @maxblanq8982
    @maxblanq8982 4 ปีที่แล้ว

    Дударь, тот человек, который пытается усидеть на всех стульях одновременно. Он и веб-разработчик, и игры пишет, и на шпагат сводится, и в космос летает. Что-то начинает, какой то курс, сделает 5-7 видео и все, забил.

    • @Cleannetcode
      @Cleannetcode 3 ปีที่แล้ว

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

    • @maxblanq8982
      @maxblanq8982 3 ปีที่แล้ว +1

      @@Cleannetcode )
      Салам, просмотрел два первых видео про приложение, сложно пока даётся вся эта структура. Контент хороший!

  • @orcan377
    @orcan377 4 ปีที่แล้ว +1

    Роман сделай пожалуйста видео "Как подписаться на события изменения переменной" чет не нашел нормального и элегантного способа

    • @ievgenk.8991
      @ievgenk.8991 4 ปีที่แล้ว

      Просто юзай геттеры и сеттеры

    • @orcan377
      @orcan377 4 ปีที่แล้ว

      @@ievgenk.8991 да нет когда переменная меняется она должна влиять на подписчиков без их запросов

  • @ИльяИльич-ш4г
    @ИльяИльич-ш4г 4 ปีที่แล้ว +7

    Здравствуйте Роман, я подписался на Гошу Дударя. Я стану успешным?

    • @syoritohatsuki
      @syoritohatsuki 4 ปีที่แล้ว

      ноуп, это я тебе как джун с 7 лет опыта говорю)

    • @ИльяИльич-ш4г
      @ИльяИльич-ш4г 4 ปีที่แล้ว

      @@syoritohatsuki без рофла?

    • @syoritohatsuki
      @syoritohatsuki 4 ปีที่แล้ว

      @@ИльяИльич-ш4г без, учился по Дударь и просрал пару лет в пустую. Потом нашёл нормальные уроки хоть и с плохим качеством звука, зато подача и объяснения норм

    • @MegaAlexprim
      @MegaAlexprim 4 ปีที่แล้ว

      Ну так заделился бы ссылкой на автора с плохим звуком -) многим думаю будет полезно посмотреть уроки с хорошим объяснением и подачей -)

    • @syoritohatsuki
      @syoritohatsuki 4 ปีที่แล้ว

      @@MegaAlexprim в моей соучае пишешь Java Уроки и там плейлист 300+ серий

  • @ode2877
    @ode2877 ปีที่แล้ว

    если бы код не стал лучше после переписывания, то ты был бы хуже дударя в 10 раз))

  • @СтепанЗреющий
    @СтепанЗреющий 4 ปีที่แล้ว

    3к,ну надеюсь

  • @РикоШет-м9ж
    @РикоШет-м9ж 2 ปีที่แล้ว

    Юзинги не почистил, говнокод написал, всё по стандарту профессионального программирования!)

  • @EzyGames
    @EzyGames 3 ปีที่แล้ว +1

    Я дела не увидел. Нет идеального кода, каждый пишет по своему. Где результат?

  • @dytynyk
    @dytynyk 4 ปีที่แล้ว +1

    ну, или посмотри код Sebastian Lague у него вообще проекты 80lvl

    • @WanP1su
      @WanP1su 3 ปีที่แล้ว

      талантливый чел, он походу кодил с пелёнок

  • @Malryni
    @Malryni 4 ปีที่แล้ว

    Добрый день, смотрю вас уже давно, канал очень нравится, ведь он познавательный.
    Опыта в разработке в компании у меня нет, но если хотите (на самом деле мне будет приятно и очень познавательно) - можете разобрать мой код, жанр игры - hyper casual
    github.com/Maryni/FlowBall

  • @Xbszidos
    @Xbszidos 2 ปีที่แล้ว

    меня одного рубит от нудности? вроде бы и нужно это, раз он говорит что лучше дударя, но бля так в сон клонит от его видео..

  • @user-hv8rh8nk9d
    @user-hv8rh8nk9d 4 ปีที่แล้ว +1

    Передай привет гоше на том свете теперь

  • @BestMusic-vf6yg
    @BestMusic-vf6yg 4 ปีที่แล้ว

    Аххахах ладно давай я объясню ты этим давно занимаешься а Гоша просто пытается научить тому что он понимает и как понимает

  • @The_Mavrik
    @The_Mavrik 4 ปีที่แล้ว +1

    Говорит чем проще - тем лучше... и начинает нести какую то никому не понятную хрень!!! Гоша хоть всё по человечески делал и рассказывал для новичков!!!

    • @DobleFun
      @DobleFun 4 ปีที่แล้ว +5

      Это как урок стрельбы , Роман показывает как целится и стрелять по противникам (слишком сложно ) , а Гоша показывает как максимально просто выстрелить себе в ногу

  • @b4Vibe
    @b4Vibe 3 ปีที่แล้ว

    на всякий случай поставил диз

  • @Philipp3334
    @Philipp3334 4 ปีที่แล้ว +1

    как человек обсирается и уже дрожащим голоском презентует свой код, а не обсирает чужой

    • @Philipp3334
      @Philipp3334 4 ปีที่แล้ว

      @@lekretka ну допустим, я про другое говорю

  • @Netry27
    @Netry27 4 ปีที่แล้ว

    Подписывайтесь на меня в Инстаграм!
    Свежайшие новости, интересные факты и крышесносные моменты из игровой индустрии - всё что тебе необходимо чтобы быть "на волне" с целым миром🌊
    Также я являюсь разработчиком игр и периодически публикую полезные советы и лайфхаки💻
    instagram.com/illya_liebiediev - тут всё что тебе нужно для отличного и полезного времяпровождения. Все вопросы в Direct📲