State Pattern - Advanced C# in Unity

Поделиться
HTML-код
  • Опубликовано: 7 ноя 2024

Комментарии • 128

  • @insaneone-7220
    @insaneone-7220  4 года назад +27

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

    • @AlexStraga
      @AlexStraga 4 года назад +1

      Да, да и еще раз да! ) На каких нидь стрингах примеры показывают и хз че с этим ваще делать )
      Вообще попадалась в электронном виде вроде эта книга:
      www.litres.ru/elizabet-robson/head-first-patterny-proektirovaniya-39123671/otzivi/
      Вроде Java там, но на полуигровых примерах было. Неудобно было читать, поэтому хз насколько хорошо в итоге рассказывается.

    • @insaneone-7220
      @insaneone-7220  4 года назад +1

      @@AlexStraga интересная информация по книге, спасибо. Сам бы я ничего с такой обложкой никогда не купил, правда :D

    • @AlexStraga
      @AlexStraga 4 года назад

      @@insaneone-7220 "Не суди книжку по обложке" ) ну глянешь потом расскажешь че как) В принципе даже джаву то знать не надо, на шарп издалека похоже, а принцип понять не сложно уже будет. Я вот купил теплякова, там как раз дотнет, но там именно стринги, логи и прочая хрень. Надо было брать другую)

    • @eugenekrutoy1475
      @eugenekrutoy1475 4 года назад

      С нетерпением жду подобных видео, очень хорошо заходят на родном языке! Спасибо!

    • @artUSUN
      @artUSUN 4 года назад +2

      Есть ещё книга "Шаблоны Игрового Программирования" Роберта Найстрома. Рассказывает о применении популярных шаблонов на примерах из геймдева, а не на примере банковских счетов)

  • @seldemirov
    @seldemirov 4 года назад +67

    Архитектура игр одна из самых плохо освещённых тем в рунете. Спасибо больше за ролик!

  • @unitynavigator3328
    @unitynavigator3328 4 года назад +13

    Наконец-то архитектурные темы в ру сегменте ))

  • @ivanlemming5821
    @ivanlemming5821 3 года назад +1

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

  • @erickmanciny1352
    @erickmanciny1352 3 года назад +2

    Автор, ты лучший. Канал - глоток свежего воздуха.

  • @aleksandercross5936
    @aleksandercross5936 3 года назад +1

    На данный момент, мне это очень интересно было увидеть) Спасибо

  • @ИгорьСавранский-ш8ф
    @ИгорьСавранский-ш8ф 4 года назад +8

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

  • @trell_7842
    @trell_7842 4 года назад +4

    Очень крутой урок, какраз изучаю патерны)

  • @gameviewer5693
    @gameviewer5693 4 года назад +2

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

  • @АльбертАвагян-м9т
    @АльбертАвагян-м9т 4 года назад +2

    Спасибо за контент, снимай больше про паттерны в юнити

    • @walson4708
      @walson4708 3 года назад

      Альберт, как твои симуляторы кейсов поживают?

  • @psy_gamer
    @psy_gamer 4 года назад

    Действительно крутые темы разбираются на канале!
    Начал тебя смотреть, когда было 200 подписчиков, а уже 1.5к, это говорит о том, что твой контент очень важен, спасибо за ролики!)

  • @castadudes
    @castadudes 3 года назад +1

    Очень жду ролик по векторам, спасибо за ваш труд!

  • @mykytataranovskyi7488
    @mykytataranovskyi7488 3 года назад +1

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

  • @drunkmantis2485
    @drunkmantis2485 3 года назад +1

    Классный контент, автор молодчага!

  • @igorshlyakov9321
    @igorshlyakov9321 3 года назад

    Тема огонь, давай больше про шаблоны проектирования видосов

  • @leonidlebedinskij88
    @leonidlebedinskij88 3 года назад

    спасибо, очень полезный и лаконичный урок про паттерны в gamedev.

  • @ooDEFENDERoo
    @ooDEFENDERoo 4 года назад

    Один из самых лучших каналов по Unity! Большое спасибо за подробные уроки! Жду с нетерпением новых видео :)

  • @theoctan8569
    @theoctan8569 4 года назад +1

    Очень хочется услышать про тему StateMachuneBehaviour, так что продолжай в том же духе! А с меня лайк. X_X

  • @call_me_ondreo
    @call_me_ondreo 4 года назад +32

    Brackeys ушел, но в этот город приходят новые герои.

    • @call_me_ondreo
      @call_me_ondreo 3 года назад +5

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

    • @Digildon
      @Digildon 2 года назад

      @@call_me_ondreo лол, мужик, ты что наделал

    • @call_me_ondreo
      @call_me_ondreo 2 года назад +1

      @@Digildon ну я типо как Танос, щелкнул пальцами чтобы мир стал лучше, но чет не пошло.

    • @Digildon
      @Digildon 2 года назад

      @@call_me_ondreo просто не ту половину

  • @Fenneig
    @Fenneig 3 года назад

    Спасибо за крутой ролик, буду ждать еще паттернов ну и вообще каких-либо роликов

  • @pianoplay4191
    @pianoplay4191 4 года назад +1

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

    • @insaneone-7220
      @insaneone-7220  4 года назад +4

      Упрощённая версия подобного алгоритма на основе Switch + какого-нибудь Enum в принципе очень хорошо может лечь в основу какого-нибудь простого ИИ врагов, которые должны перемещаться, перепрыгивать через препятствия или стрелять в игрока. Тут сразу видно как минимум 3 состояния, которые можно описать через Enum и затем переключать в зависимости от условий. Может, так будет понятнее)

    • @pianoplay4191
      @pianoplay4191 4 года назад

      @@insaneone-7220 спасибо большое за ответ! Делайте больше подобных видеоурок

  • @alexandr_sirota
    @alexandr_sirota 4 года назад

    очень крутой шаблон проектирования, почти как год уже в своих проекте использую его, с опытом понял что так намного удобней делать многие вещи, кстати под прошлым виде в нашем диалоге scriptableObject vs json я говорил, что в игре над которой я работаю все юниты формируются из json данных и они как раз работают по этому шаблону)

  • @vitaliySobakinson
    @vitaliySobakinson 2 года назад +2

    1:03 - описание моей жизни

  • @РоманКривжа
    @РоманКривжа 4 года назад

    Очень информативно, ни одного видео не пропускаю))

  • @mechmedved
    @mechmedved 3 года назад +1

    Спасибо за ролик. Очень полезно.

  • @Skorpiontracer
    @Skorpiontracer 4 года назад

    Нужно Больше подобных видео:) Ещё про математику было познавательно, можно что-то наподобие, но с конкретными примерами.

  • @Catkinddesign
    @Catkinddesign 3 года назад

    Надеюсь ещё увидим тебя. Особенно интересно развитие темы с ECS и более углубленный подход в этом направлении т.к. очень мало курсов и туторов.
    Возможно какой-то анализ плюсов и минусов встроенной системы Unity и других систем.
    Как исходя из особенностей хранения данных выбрать необходимый подход и построить правила кода в зависимости от ситуации.
    Приятно было бы увидеть подобный анализ, который мог бы быть полезен людям на старте проекта.

  • @Blackdarkbro
    @Blackdarkbro 4 года назад

    Спасибо за видео, доходчивое и понятное!

  • @GameDev55
    @GameDev55 3 года назад

    Супер! Хотелось бы про Ваше видение на Visitor в Game Dev посмотреть!!!

  • @arionpaul6208
    @arionpaul6208 3 года назад

    Один из лучших каналов по юинити на русском ютубе

  • @PavelStr-x5w
    @PavelStr-x5w 2 года назад

    спасибо за урок!!

  • @internetuser804
    @internetuser804 3 года назад

    жду продолжение, хороший формат

  • @firerun8599
    @firerun8599 4 года назад

    Отличные уроки!

  • @eugenekrutoy1475
    @eugenekrutoy1475 4 года назад

    От души, душевно!!!!!

  • @arionpaul6208
    @arionpaul6208 3 года назад

    Твоё видео про ESC получилось отличным! Можешь сделать ещё видео про то как сделать так что бы код работал в Multi Thread

  • @headlightschool
    @headlightschool 4 года назад +1

    Крутой ролик! 👍

  • @Андрей-в7и6ь
    @Андрей-в7и6ь 3 года назад

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

  • @russianhotell
    @russianhotell 3 года назад

    Супер интересная тематика

  • @zippomode
    @zippomode 3 года назад

    спасибо, крайне ценно

  • @unitynavigator3328
    @unitynavigator3328 4 года назад

    Кстати прикольная книжка Швец А. - Погружение в паттерны проектирования... Читается довольно легко новичком в программировании.

  • @greennebo3503
    @greennebo3503 4 года назад

    Очень круто
    У тебя должно быть больше просмотров

  • @АнтонБличенков
    @АнтонБличенков 4 года назад

    как всегда лайк не глядя

  • @hewaki_merci
    @hewaki_merci 4 года назад

    Чувак, классно объясняешь

  • @elsee8865
    @elsee8865 4 года назад

    Спасибо! Реально помог

  • @gameviewer5693
    @gameviewer5693 4 года назад

    Тема очень интересна,спасибо,когда продолжение? Так же про StateMachine очень интересно глянуть

  • @user-zd7qb5zs3h
    @user-zd7qb5zs3h 4 года назад

    Давай ещё паттернов для разработки игр!

  • @kirgirdev
    @kirgirdev 4 года назад

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

  • @gaitavr1992
    @gaitavr1992 4 года назад +1

    Очень важно еще, чтобы ни одна сущность системы не спрашивала у стейт машины что-то типо if(_currentState == someState). К сожалению, часто такое вижу, очень грубое нарушение ООП и паттерна в целом. Со scriptable objects хорошо придумал)

    • @egyplant
      @egyplant 3 года назад

      Оно конечно так, но у вас гораздо лучше и грамотнее описан данный паттерн :D

    • @archon7th
      @archon7th Год назад

      Разве реализация получилась хорошая?
      Плюсы конечно есть, но хотя бы енумами переключаться.
      А-то получается что бы сменить стейт мы ссылаемся на паблик метод и передаем паблик поле для инстантиатора.
      Не говоря уже о том что можно отправить SetState(null) и получить ошибку

  • @НикитаМарибор
    @НикитаМарибор 3 года назад

    Нам нужно больше паттернов!

  • @kwicot
    @kwicot 4 года назад

    Почти 2к просмотров и всего 200 лайков. Блин ребят камон, лайк вам ничего не сделает но парень будет стараться и помогать вам в первую очередь

  • @madkoala2880
    @madkoala2880 3 года назад

    Куда ты пропал, мужик, у тебя был самый высококачественный контент в ру сегменте по юнити!

    • @insaneone-7220
      @insaneone-7220  3 года назад +1

      Не пропал и надеюсь выпускать видео и дальше, но пока что не было возможности это делать. :(

  • @davidhops3952
    @davidhops3952 4 года назад

    Круто!Спасибо за ролик, но это количество ифов и элсов немного пугает)

    • @insaneone-7220
      @insaneone-7220  4 года назад

      Это сделано исключительно для наибольшей понятности примера, разумеется такой хардкод в реальном проекте использовать нежелательно)

    • @davidhops3952
      @davidhops3952 4 года назад

      @@insaneone-7220 Спасибо) Меня тимлид по лицу бьёт за каждый if, потому они немного бросаются уже в глаза

  • @kroniecraft8339
    @kroniecraft8339 4 года назад +1

    не видел на руЮтубе видосов на такие темы, так держать)

  • @kroniecraft8339
    @kroniecraft8339 3 года назад +1

    Слушай, а можешь посоветовать годные книги по c#, паттернам и юнити?

  • @romaklassman9924
    @romaklassman9924 4 года назад

    Классно)

  • @uzgamedev
    @uzgamedev Год назад

    Напоминает стэйт машину... xD эти и есть FSM (Finite State Machine)

  • @flugenkehhannen
    @flugenkehhannen 10 месяцев назад

    Класс

  • @AlexStraga
    @AlexStraga 4 года назад +2

    о. Таки есть какая та встроенная стейтМашин в Юньке? Норм, надо будет изучить. Спасибо. Пиши "исчо")

  • @TitikUniverse
    @TitikUniverse 4 года назад

    Пушка

  • @seldemirov
    @seldemirov 4 года назад

    Такой вопросик. Может быть ты(или кто-то) знаешь как делают игры вроде Civilization или Plague Inc. где есть обширные ветви прокачки разных сущностей и взаимодействие между ними? Может быть, у этого есть какое-то специальное название что бы загугнить? И может это все делается на определённом паттерне?

  • @needflow6792
    @needflow6792 4 года назад

    я тебе одно скажу, ты - гениален!
    Жду новых роликов ;)

  • @alexvolkov6269
    @alexvolkov6269 4 года назад

    Жду стэйт машину от unity.)))

  • @minayevRoman
    @minayevRoman 4 года назад

    Привет. А сам игры делаешь свои? Или на заказ?

  • @Senshi_theFirstKatana
    @Senshi_theFirstKatana 5 месяцев назад

    Возмлжно ли как то заменить проверку на ввполненность состояния в Update на событие? Чтобы не проверять каждый апдейт

  • @ScrewY0UguyS
    @ScrewY0UguyS 3 года назад

    Привет. Отличные видео! Сделай плиз видосы по внедрению геймменеджера/аудиоменеджера и диалоговой системы в игру! Или хоть чего-то из этого) Нормальной информации на эту тему нет не только в русском ютубе, а практически нигде! И я не про очевидный способ с условным добавлением аудиосорса, с последующим проигрыванием из скрипта, я про способ, который не сломается при масштабировании. Так сказать, хорошие привычки. Например, у Brackeys есть видеоролик про диалоговую систему. В принципе, все нормально, но в комментариях заметили, что при локализации переводить каждый фрагмент текста по отдельности будет адово. Интересно все-таки узнать такие базовые вещи, но реализованные опытным разработчиком, а не контент мейкером. Надеюсь, оценишь.

  • @ThePirateHistory
    @ThePirateHistory 3 года назад +1

    Был пацан, и нет пацана(

  • @Ярил
    @Ярил 4 года назад

    Хотелось бы гайд как сделать реалестичную физику воды как в Halo 3

  • @java198626
    @java198626 3 года назад

    Не мне лично легко заходит, когда когд заранее написан, я и сам так записываю видео.
    КОД пишу заранее, потом освещаю, да и так короче. Плюс я всегда скидываю ссылку на демонстрационный проект из видео под описание.

  • @antonpashkevich5061
    @antonpashkevich5061 2 года назад

    Все очень интересно, но ничего не понятно. Но думаю дело во мне)

  • @bazonixru5288
    @bazonixru5288 3 года назад

    мм, а как на счет CurrentState = Instantiate(state) - это разве не "забъет" память?

  • @bibyter6451
    @bibyter6451 3 года назад

    У тебя переходы разбросаны и в стейте и в переходах у Character, лучше наверное когда стейт какой-то результат возвращает как в bt

  • @danilpauli2569
    @danilpauli2569 4 года назад

    Ты используешь ScriptableObject для организации состояния. Но разве используя один и тот-же ScriptableObject несколькими GameObject на сцене, не сломает их поведение? Ведь они оба будут использовать и влиять на его параметры.

    • @insaneone-7220
      @insaneone-7220  4 года назад +2

      В видео упоминаю, что нужно клонировать из через Instantiate в таком случае. Тогда всё будет в порядке.

    • @nightyonetwothree
      @nightyonetwothree 2 года назад

      @@insaneone-7220 тогда лучше использовать обычный класс, разве нет?

  • @ilyaronzhin
    @ilyaronzhin 4 года назад

    Как называется плагин для райдера, который отображает справа от текстового редактора код широкой полосой и позволяет проще скроллить?

  • @tazermeg
    @tazermeg 3 года назад

    Очень жаль, что на канале перестали выходить видео.

  • @cassinid8843
    @cassinid8843 3 года назад

    Дружок-пирожок, ну и куда ты пропал?

  • @kroniecraft8339
    @kroniecraft8339 3 года назад +3

    бро ты куда исчез? (((

    • @insaneone-7220
      @insaneone-7220  3 года назад +2

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

    • @kroniecraft8339
      @kroniecraft8339 3 года назад +1

      @@insaneone-7220 Понимаю))) Приятно знать, что с тобой ничего не случилось

  • @MrGoldorange
    @MrGoldorange 3 года назад

    Можно ли обойтись без такого количества ифов в апдейте?

    • @insaneone-7220
      @insaneone-7220  3 года назад +1

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

  • @Donny_Scottina
    @Donny_Scottina 11 месяцев назад

    Ну ребят,ну выложите вы код на гит пожалуйста, ну сложно что ль?)

  • @peterpashchenko301
    @peterpashchenko301 3 года назад

    Кошерный паттерн. Понятная подача лектора

  • @luen6019
    @luen6019 3 года назад

    Где новые видео

  • @АртурБруховецкий-ч7к

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

    • @omoloni
      @omoloni 3 года назад

      Что не понятно?

  • @gameviewer5693
    @gameviewer5693 3 года назад

    Канал R.I.P?

    • @insaneone-7220
      @insaneone-7220  3 года назад +1

      Нет)

    • @gameviewer5693
      @gameviewer5693 3 года назад

      @@insaneone-7220 Походу все же да(

    • @insaneone-7220
      @insaneone-7220  3 года назад

      @@gameviewer5693 нет) Даже видео есть в работе :D

    • @gameviewer5693
      @gameviewer5693 Год назад

      @@insaneone-7220 теперь то точно да

  • @mastervolodsobeck5176
    @mastervolodsobeck5176 3 года назад

    Благодарю, полезно и доходчиво.

  • @SergeyMurin
    @SergeyMurin 3 года назад

    Очень интересно, спасибо.