State Pattern - Advanced C# in Unity

  Рет қаралды 39,320

Insane One - Разработка игр

Insane One - Разработка игр

Күн бұрын

Рассказываю про шаблон проектирования Состояние (State) и о том, как его можно применить при разработке игры на Unity.
Поддержать канал на русскоязычном Boosty: boosty.to/insa...
Или на Patreon: / insaneone
Discord-сервер канала: / discord
Группа VK: insaneo...
#Unity #РазработкаИгр
У меня на канале регулярно выходят новые видео с уроками по Unity и разработке игр, а так же другими интересными темами, связанными с геймдевом. Подписывайся!
Не забывай оставлять комментарий, если у тебя появились вопросы или предложения по видео :)

Пікірлер: 128
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Изучая многие шаблоны проектирования, часто видишь в интернете примеры для использования в каких-либо приложениях, но про игры почти никогда не пишут, и не очень понятно, как перенести на игровую логику какой-либо из этих паттернов. В этом и в следующих роликах на данную тему, если они будут, я буду рассказывать, как я сам это вижу. Паттерны, возможно, будут несколько адаптированы под игровую разработку, что иногда может исказить их основную суть. Поэтому, если вы несогласны с правильностью применения - пишите в комментарии, обсудим. :)
@AlexStraga
@AlexStraga 4 жыл бұрын
Да, да и еще раз да! ) На каких нидь стрингах примеры показывают и хз че с этим ваще делать ) Вообще попадалась в электронном виде вроде эта книга: www.litres.ru/elizabet-robson/head-first-patterny-proektirovaniya-39123671/otzivi/ Вроде Java там, но на полуигровых примерах было. Неудобно было читать, поэтому хз насколько хорошо в итоге рассказывается.
@insaneone-7220
@insaneone-7220 4 жыл бұрын
@@AlexStraga интересная информация по книге, спасибо. Сам бы я ничего с такой обложкой никогда не купил, правда :D
@AlexStraga
@AlexStraga 4 жыл бұрын
@@insaneone-7220 "Не суди книжку по обложке" ) ну глянешь потом расскажешь че как) В принципе даже джаву то знать не надо, на шарп издалека похоже, а принцип понять не сложно уже будет. Я вот купил теплякова, там как раз дотнет, но там именно стринги, логи и прочая хрень. Надо было брать другую)
@eugenekrutoy1475
@eugenekrutoy1475 4 жыл бұрын
С нетерпением жду подобных видео, очень хорошо заходят на родном языке! Спасибо!
@artUSUN
@artUSUN 4 жыл бұрын
Есть ещё книга "Шаблоны Игрового Программирования" Роберта Найстрома. Рассказывает о применении популярных шаблонов на примерах из геймдева, а не на примере банковских счетов)
@seldemirov
@seldemirov 4 жыл бұрын
Архитектура игр одна из самых плохо освещённых тем в рунете. Спасибо больше за ролик!
@erickmanciny1352
@erickmanciny1352 3 жыл бұрын
Автор, ты лучший. Канал - глоток свежего воздуха.
@unitynavigator3328
@unitynavigator3328 4 жыл бұрын
Наконец-то архитектурные темы в ру сегменте ))
@ivanlemming5821
@ivanlemming5821 3 жыл бұрын
Конечно продолжайте, где Вы раньше то были) на самообучении я это как раз не проморгал, будет интересно что то еще в этом духе))
@call_me_ondreo
@call_me_ondreo 4 жыл бұрын
Brackeys ушел, но в этот город приходят новые герои.
@call_me_ondreo
@call_me_ondreo 3 жыл бұрын
Немного иронично вышло, раз уж я написал этот комментарий. Ты куда делся?
@Digildon
@Digildon 2 жыл бұрын
@@call_me_ondreo лол, мужик, ты что наделал
@call_me_ondreo
@call_me_ondreo 2 жыл бұрын
@@Digildon ну я типо как Танос, щелкнул пальцами чтобы мир стал лучше, но чет не пошло.
@Digildon
@Digildon 2 жыл бұрын
@@call_me_ondreo просто не ту половину
@aleksandercross5936
@aleksandercross5936 3 жыл бұрын
На данный момент, мне это очень интересно было увидеть) Спасибо
@trell_7842
@trell_7842 4 жыл бұрын
Очень крутой урок, какраз изучаю патерны)
@ИгорьСавранский-ш8ф
@ИгорьСавранский-ш8ф 4 жыл бұрын
интересно кк, давай больше про патерны, тяжело найти простые коротткие видосы на эту тему.
@mykytataranovskyi7488
@mykytataranovskyi7488 3 жыл бұрын
Словно Brackeys и не уходил, а просто выучил русский) паттерны очень полезная тема, спасибо за интересный кейс использования паттерна, жду больше такого контента)
@gameviewer5693
@gameviewer5693 4 жыл бұрын
Спасибо, очень интересный канал, много уникального контента, продолжай в том же духе, не забрасывай.
@АльбертАвагян-м9т
@АльбертАвагян-м9т 4 жыл бұрын
Спасибо за контент, снимай больше про паттерны в юнити
@walson4708
@walson4708 3 жыл бұрын
Альберт, как твои симуляторы кейсов поживают?
@psy_gamer
@psy_gamer 4 жыл бұрын
Действительно крутые темы разбираются на канале! Начал тебя смотреть, когда было 200 подписчиков, а уже 1.5к, это говорит о том, что твой контент очень важен, спасибо за ролики!)
@pianoplay4191
@pianoplay4191 4 жыл бұрын
Спасибо большое за видео. Не смотря на свой 7 месячный опыт разработки игр я не смог понять для чего это, просмотрев ролик 3 раза и постоянно перематывая. Возможно я очень глуп, но я думаю, что это для более опытных разработчиков
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Упрощённая версия подобного алгоритма на основе Switch + какого-нибудь Enum в принципе очень хорошо может лечь в основу какого-нибудь простого ИИ врагов, которые должны перемещаться, перепрыгивать через препятствия или стрелять в игрока. Тут сразу видно как минимум 3 состояния, которые можно описать через Enum и затем переключать в зависимости от условий. Может, так будет понятнее)
@pianoplay4191
@pianoplay4191 4 жыл бұрын
@@insaneone-7220 спасибо большое за ответ! Делайте больше подобных видеоурок
@drunkmantis2485
@drunkmantis2485 3 жыл бұрын
Классный контент, автор молодчага!
@vitaliySobakinson
@vitaliySobakinson 2 жыл бұрын
1:03 - описание моей жизни
@leonidlebedinskij88
@leonidlebedinskij88 3 жыл бұрын
спасибо, очень полезный и лаконичный урок про паттерны в gamedev.
@castadudes
@castadudes 3 жыл бұрын
Очень жду ролик по векторам, спасибо за ваш труд!
@igorshlyakov9321
@igorshlyakov9321 3 жыл бұрын
Тема огонь, давай больше про шаблоны проектирования видосов
@alexandr_sirota
@alexandr_sirota 4 жыл бұрын
очень крутой шаблон проектирования, почти как год уже в своих проекте использую его, с опытом понял что так намного удобней делать многие вещи, кстати под прошлым виде в нашем диалоге scriptableObject vs json я говорил, что в игре над которой я работаю все юниты формируются из json данных и они как раз работают по этому шаблону)
@Fenneig
@Fenneig 3 жыл бұрын
Спасибо за крутой ролик, буду ждать еще паттернов ну и вообще каких-либо роликов
@РоманКривжа
@РоманКривжа 4 жыл бұрын
Очень информативно, ни одного видео не пропускаю))
@ooDEFENDERoo
@ooDEFENDERoo 4 жыл бұрын
Один из самых лучших каналов по Unity! Большое спасибо за подробные уроки! Жду с нетерпением новых видео :)
@arionpaul6208
@arionpaul6208 3 жыл бұрын
Один из лучших каналов по юинити на русском ютубе
@theoctan8569
@theoctan8569 4 жыл бұрын
Очень хочется услышать про тему StateMachuneBehaviour, так что продолжай в том же духе! А с меня лайк. X_X
@GameDev55
@GameDev55 3 жыл бұрын
Супер! Хотелось бы про Ваше видение на Visitor в Game Dev посмотреть!!!
@mechmedved
@mechmedved 3 жыл бұрын
Спасибо за ролик. Очень полезно.
@Skorpiontracer
@Skorpiontracer 4 жыл бұрын
Нужно Больше подобных видео:) Ещё про математику было познавательно, можно что-то наподобие, но с конкретными примерами.
@Blackdarkbro
@Blackdarkbro 4 жыл бұрын
Спасибо за видео, доходчивое и понятное!
@firerun8599
@firerun8599 4 жыл бұрын
Отличные уроки!
@internetuser804
@internetuser804 3 жыл бұрын
жду продолжение, хороший формат
@PavelStr-x5w
@PavelStr-x5w 2 жыл бұрын
спасибо за урок!!
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
Слушай, а можешь посоветовать годные книги по c#, паттернам и юнити?
@Андрей-в7и6ь
@Андрей-в7и6ь 3 жыл бұрын
Так лучше когда готовый код показываешь а не набираешь, ато итак темп высокий, я бы не успел улавливать смысл если бы ещё смотрел на набираемый код. Спасибо большое, полезные вещи рассказываешь!
@headlightschool
@headlightschool 4 жыл бұрын
Крутой ролик! 👍
@eugenekrutoy1475
@eugenekrutoy1475 4 жыл бұрын
От души, душевно!!!!!
@arionpaul6208
@arionpaul6208 3 жыл бұрын
Твоё видео про ESC получилось отличным! Можешь сделать ещё видео про то как сделать так что бы код работал в Multi Thread
@Catkinddesign
@Catkinddesign 3 жыл бұрын
Надеюсь ещё увидим тебя. Особенно интересно развитие темы с ECS и более углубленный подход в этом направлении т.к. очень мало курсов и туторов. Возможно какой-то анализ плюсов и минусов встроенной системы Unity и других систем. Как исходя из особенностей хранения данных выбрать необходимый подход и построить правила кода в зависимости от ситуации. Приятно было бы увидеть подобный анализ, который мог бы быть полезен людям на старте проекта.
@russianhotell
@russianhotell 3 жыл бұрын
Супер интересная тематика
@zippomode
@zippomode 3 жыл бұрын
спасибо, крайне ценно
@gaitavr1992
@gaitavr1992 4 жыл бұрын
Очень важно еще, чтобы ни одна сущность системы не спрашивала у стейт машины что-то типо if(_currentState == someState). К сожалению, часто такое вижу, очень грубое нарушение ООП и паттерна в целом. Со scriptable objects хорошо придумал)
@egyplant
@egyplant 3 жыл бұрын
Оно конечно так, но у вас гораздо лучше и грамотнее описан данный паттерн :D
@archon7th
@archon7th Жыл бұрын
Разве реализация получилась хорошая? Плюсы конечно есть, но хотя бы енумами переключаться. А-то получается что бы сменить стейт мы ссылаемся на паблик метод и передаем паблик поле для инстантиатора. Не говоря уже о том что можно отправить SetState(null) и получить ошибку
@greennebo3503
@greennebo3503 4 жыл бұрын
Очень круто У тебя должно быть больше просмотров
@unitynavigator3328
@unitynavigator3328 4 жыл бұрын
Кстати прикольная книжка Швец А. - Погружение в паттерны проектирования... Читается довольно легко новичком в программировании.
@АнтонБличенков
@АнтонБличенков 4 жыл бұрын
как всегда лайк не глядя
@hewaki_merci
@hewaki_merci 4 жыл бұрын
Чувак, классно объясняешь
@minayevRoman
@minayevRoman 4 жыл бұрын
Привет. А сам игры делаешь свои? Или на заказ?
@elsee8865
@elsee8865 4 жыл бұрын
Спасибо! Реально помог
@kwicot
@kwicot 4 жыл бұрын
Почти 2к просмотров и всего 200 лайков. Блин ребят камон, лайк вам ничего не сделает но парень будет стараться и помогать вам в первую очередь
@gameviewer5693
@gameviewer5693 4 жыл бұрын
Тема очень интересна,спасибо,когда продолжение? Так же про StateMachine очень интересно глянуть
@user-zd7qb5zs3h
@user-zd7qb5zs3h 4 жыл бұрын
Давай ещё паттернов для разработки игр!
@kroniecraft8339
@kroniecraft8339 4 жыл бұрын
не видел на руЮтубе видосов на такие темы, так держать)
@Senshi_theFirstKatana
@Senshi_theFirstKatana 5 ай бұрын
Возмлжно ли как то заменить проверку на ввполненность состояния в Update на событие? Чтобы не проверять каждый апдейт
@seldemirov
@seldemirov 4 жыл бұрын
Такой вопросик. Может быть ты(или кто-то) знаешь как делают игры вроде Civilization или Plague Inc. где есть обширные ветви прокачки разных сущностей и взаимодействие между ними? Может быть, у этого есть какое-то специальное название что бы загугнить? И может это все делается на определённом паттерне?
@kirgirdev
@kirgirdev 4 жыл бұрын
спасибо за урок, интересная тема! лайк поставил, а подписан уже давно)
@AlexStraga
@AlexStraga 4 жыл бұрын
о. Таки есть какая та встроенная стейтМашин в Юньке? Норм, надо будет изучить. Спасибо. Пиши "исчо")
@uzgamedev
@uzgamedev Жыл бұрын
Напоминает стэйт машину... xD эти и есть FSM (Finite State Machine)
@НикитаМарибор
@НикитаМарибор 3 жыл бұрын
Нам нужно больше паттернов!
@madkoala2880
@madkoala2880 3 жыл бұрын
Куда ты пропал, мужик, у тебя был самый высококачественный контент в ру сегменте по юнити!
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Не пропал и надеюсь выпускать видео и дальше, но пока что не было возможности это делать. :(
@romaklassman9924
@romaklassman9924 4 жыл бұрын
Классно)
@davidhops3952
@davidhops3952 4 жыл бұрын
Круто!Спасибо за ролик, но это количество ифов и элсов немного пугает)
@insaneone-7220
@insaneone-7220 4 жыл бұрын
Это сделано исключительно для наибольшей понятности примера, разумеется такой хардкод в реальном проекте использовать нежелательно)
@davidhops3952
@davidhops3952 4 жыл бұрын
@@insaneone-7220 Спасибо) Меня тимлид по лицу бьёт за каждый if, потому они немного бросаются уже в глаза
@bazonixru5288
@bazonixru5288 3 жыл бұрын
мм, а как на счет CurrentState = Instantiate(state) - это разве не "забъет" память?
@TitikUniverse
@TitikUniverse 4 жыл бұрын
Пушка
@flugenkehhannen
@flugenkehhannen 10 ай бұрын
Класс
@Ярил
@Ярил 4 жыл бұрын
Хотелось бы гайд как сделать реалестичную физику воды как в Halo 3
@alexvolkov6269
@alexvolkov6269 4 жыл бұрын
Жду стэйт машину от unity.)))
@tazermeg
@tazermeg 3 жыл бұрын
Очень жаль, что на канале перестали выходить видео.
@ThePirateHistory
@ThePirateHistory 3 жыл бұрын
Был пацан, и нет пацана(
@danilpauli2569
@danilpauli2569 4 жыл бұрын
Ты используешь ScriptableObject для организации состояния. Но разве используя один и тот-же ScriptableObject несколькими GameObject на сцене, не сломает их поведение? Ведь они оба будут использовать и влиять на его параметры.
@insaneone-7220
@insaneone-7220 4 жыл бұрын
В видео упоминаю, что нужно клонировать из через Instantiate в таком случае. Тогда всё будет в порядке.
@nightyonetwothree
@nightyonetwothree 2 жыл бұрын
@@insaneone-7220 тогда лучше использовать обычный класс, разве нет?
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
бро ты куда исчез? (((
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Пока нет возможности записывать новые ролики. Но я надеюсь, она появится)
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
@@insaneone-7220 Понимаю))) Приятно знать, что с тобой ничего не случилось
@antonpashkevich5061
@antonpashkevich5061 2 жыл бұрын
Все очень интересно, но ничего не понятно. Но думаю дело во мне)
@java198626
@java198626 3 жыл бұрын
Не мне лично легко заходит, когда когд заранее написан, я и сам так записываю видео. КОД пишу заранее, потом освещаю, да и так короче. Плюс я всегда скидываю ссылку на демонстрационный проект из видео под описание.
@ilyaronzhin
@ilyaronzhin 4 жыл бұрын
Как называется плагин для райдера, который отображает справа от текстового редактора код широкой полосой и позволяет проще скроллить?
@insaneone-7220
@insaneone-7220 4 жыл бұрын
CodeGlance
@bibyter6451
@bibyter6451 3 жыл бұрын
У тебя переходы разбросаны и в стейте и в переходах у Character, лучше наверное когда стейт какой-то результат возвращает как в bt
@MrGoldorange
@MrGoldorange 3 жыл бұрын
Можно ли обойтись без такого количества ифов в апдейте?
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Да, в видео - лишь пример реализации. Это всё при желании можно гораздо более компактно и эффективно сделать. В данном случае таким способом было проще показать суть подхода.
@ScrewY0UguyS
@ScrewY0UguyS 3 жыл бұрын
Привет. Отличные видео! Сделай плиз видосы по внедрению геймменеджера/аудиоменеджера и диалоговой системы в игру! Или хоть чего-то из этого) Нормальной информации на эту тему нет не только в русском ютубе, а практически нигде! И я не про очевидный способ с условным добавлением аудиосорса, с последующим проигрыванием из скрипта, я про способ, который не сломается при масштабировании. Так сказать, хорошие привычки. Например, у Brackeys есть видеоролик про диалоговую систему. В принципе, все нормально, но в комментариях заметили, что при локализации переводить каждый фрагмент текста по отдельности будет адово. Интересно все-таки узнать такие базовые вещи, но реализованные опытным разработчиком, а не контент мейкером. Надеюсь, оценишь.
@cassinid8843
@cassinid8843 3 жыл бұрын
Дружок-пирожок, ну и куда ты пропал?
@Donny_Scottina
@Donny_Scottina 11 ай бұрын
Ну ребят,ну выложите вы код на гит пожалуйста, ну сложно что ль?)
@luen6019
@luen6019 3 жыл бұрын
Где новые видео
@АнатолийИванов-ь4ь7ъ
@АнатолийИванов-ь4ь7ъ 4 жыл бұрын
@needflow6792
@needflow6792 4 жыл бұрын
я тебе одно скажу, ты - гениален! Жду новых роликов ;)
@gameviewer5693
@gameviewer5693 3 жыл бұрын
Канал R.I.P?
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Нет)
@gameviewer5693
@gameviewer5693 3 жыл бұрын
@@insaneone-7220 Походу все же да(
@insaneone-7220
@insaneone-7220 3 жыл бұрын
@@gameviewer5693 нет) Даже видео есть в работе :D
@gameviewer5693
@gameviewer5693 Жыл бұрын
@@insaneone-7220 теперь то точно да
@peterpashchenko301
@peterpashchenko301 3 жыл бұрын
Кошерный паттерн. Понятная подача лектора
@АртурБруховецкий-ч7к
@АртурБруховецкий-ч7к 3 жыл бұрын
Если честно, даже на примере игры ничерта не понял. Ну, возможно я просто хлебушек
@omoloni
@omoloni 3 жыл бұрын
Что не понятно?
@mastervolodsobeck5176
@mastervolodsobeck5176 3 жыл бұрын
Благодарю, полезно и доходчиво.
@SergeyMurin
@SergeyMurin 3 жыл бұрын
Очень интересно, спасибо.
How to Program in Unity: State Machines Explained
18:56
iHeartGameDev
Рет қаралды 229 М.
Wait for it 😂
00:19
ILYA BORZOV
Рет қаралды 11 МЛН
amazing#devil #lilith #funny #shorts
00:15
Devil Lilith
Рет қаралды 18 МЛН
the balloon deflated while it was flying #tiktok
00:19
Анастасия Тарасова
Рет қаралды 35 МЛН
Code Class - Build your own State Machines!
36:42
AdamCYounis
Рет қаралды 53 М.
Паттерн состояние в unity 3D
12:40
Максим Крюков
Рет қаралды 21 М.
Build a Better Finite State Machine in Unity
20:58
git-amend
Рет қаралды 25 М.
CLRium #6: async/await. Машина состояний (Дмитрий Тихонов).
50:50
Мини-конференции CLRium
Рет қаралды 9 М.