State Pattern - Advanced C# in Unity

  Рет қаралды 38,087

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

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

3 жыл бұрын

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

Пікірлер: 128
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Изучая многие шаблоны проектирования, часто видишь в интернете примеры для использования в каких-либо приложениях, но про игры почти никогда не пишут, и не очень понятно, как перенести на игровую логику какой-либо из этих паттернов. В этом и в следующих роликах на данную тему, если они будут, я буду рассказывать, как я сам это вижу. Паттерны, возможно, будут несколько адаптированы под игровую разработку, что иногда может исказить их основную суть. Поэтому, если вы несогласны с правильностью применения - пишите в комментарии, обсудим. :)
@AlexStraga
@AlexStraga 3 жыл бұрын
Да, да и еще раз да! ) На каких нидь стрингах примеры показывают и хз че с этим ваще делать ) Вообще попадалась в электронном виде вроде эта книга: www.litres.ru/elizabet-robson/head-first-patterny-proektirovaniya-39123671/otzivi/ Вроде Java там, но на полуигровых примерах было. Неудобно было читать, поэтому хз насколько хорошо в итоге рассказывается.
@insaneone-7220
@insaneone-7220 3 жыл бұрын
@@AlexStraga интересная информация по книге, спасибо. Сам бы я ничего с такой обложкой никогда не купил, правда :D
@AlexStraga
@AlexStraga 3 жыл бұрын
@@insaneone-7220 "Не суди книжку по обложке" ) ну глянешь потом расскажешь че как) В принципе даже джаву то знать не надо, на шарп издалека похоже, а принцип понять не сложно уже будет. Я вот купил теплякова, там как раз дотнет, но там именно стринги, логи и прочая хрень. Надо было брать другую)
@eugenekrutoy1475
@eugenekrutoy1475 3 жыл бұрын
С нетерпением жду подобных видео, очень хорошо заходят на родном языке! Спасибо!
@artUSUN
@artUSUN 3 жыл бұрын
Есть ещё книга "Шаблоны Игрового Программирования" Роберта Найстрома. Рассказывает о применении популярных шаблонов на примерах из геймдева, а не на примере банковских счетов)
@seldemirov
@seldemirov 3 жыл бұрын
Архитектура игр одна из самых плохо освещённых тем в рунете. Спасибо больше за ролик!
@psy_gamer
@psy_gamer 3 жыл бұрын
Действительно крутые темы разбираются на канале! Начал тебя смотреть, когда было 200 подписчиков, а уже 1.5к, это говорит о том, что твой контент очень важен, спасибо за ролики!)
@ivanlemming5821
@ivanlemming5821 3 жыл бұрын
Конечно продолжайте, где Вы раньше то были) на самообучении я это как раз не проморгал, будет интересно что то еще в этом духе))
@ooDEFENDERoo
@ooDEFENDERoo 3 жыл бұрын
Один из самых лучших каналов по Unity! Большое спасибо за подробные уроки! Жду с нетерпением новых видео :)
@gameviewer5693
@gameviewer5693 3 жыл бұрын
Спасибо, очень интересный канал, много уникального контента, продолжай в том же духе, не забрасывай.
@castadudes
@castadudes 3 жыл бұрын
Очень жду ролик по векторам, спасибо за ваш труд!
@call_me_ondreo
@call_me_ondreo 3 жыл бұрын
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 просто не ту половину
@unitynavigator3328
@unitynavigator3328 3 жыл бұрын
Наконец-то архитектурные темы в ру сегменте ))
@aleksandercross5936
@aleksandercross5936 3 жыл бұрын
На данный момент, мне это очень интересно было увидеть) Спасибо
@Skorpiontracer
@Skorpiontracer 3 жыл бұрын
Нужно Больше подобных видео:) Ещё про математику было познавательно, можно что-то наподобие, но с конкретными примерами.
@erickmanciny1352
@erickmanciny1352 3 жыл бұрын
Автор, ты лучший. Канал - глоток свежего воздуха.
@theoctan8569
@theoctan8569 3 жыл бұрын
Очень хочется услышать про тему StateMachuneBehaviour, так что продолжай в том же духе! А с меня лайк. X_X
@user-su7yd6og7y
@user-su7yd6og7y 3 жыл бұрын
Очень информативно, ни одного видео не пропускаю))
@trell_7842
@trell_7842 3 жыл бұрын
Очень крутой урок, какраз изучаю патерны)
@user-de1wo4xd4j
@user-de1wo4xd4j 2 жыл бұрын
Спасибо за крутой ролик, буду ждать еще паттернов ну и вообще каких-либо роликов
@user-on6dr9mh5t
@user-on6dr9mh5t 3 жыл бұрын
интересно кк, давай больше про патерны, тяжело найти простые коротткие видосы на эту тему.
@leonidlebedinskij88
@leonidlebedinskij88 3 жыл бұрын
спасибо, очень полезный и лаконичный урок про паттерны в gamedev.
@kirgirdev
@kirgirdev 3 жыл бұрын
спасибо за урок, интересная тема! лайк поставил, а подписан уже давно)
@drunkmantis2485
@drunkmantis2485 3 жыл бұрын
Классный контент, автор молодчага!
@mykytataranovskyi7488
@mykytataranovskyi7488 3 жыл бұрын
Словно Brackeys и не уходил, а просто выучил русский) паттерны очень полезная тема, спасибо за интересный кейс использования паттерна, жду больше такого контента)
@Blackdarkbro
@Blackdarkbro 3 жыл бұрын
Спасибо за видео, доходчивое и понятное!
@mechmedved
@mechmedved 3 жыл бұрын
Спасибо за ролик. Очень полезно.
@igorshlyakov9321
@igorshlyakov9321 2 жыл бұрын
Тема огонь, давай больше про шаблоны проектирования видосов
@eugenekrutoy1475
@eugenekrutoy1475 3 жыл бұрын
От души, душевно!!!!!
@Catkinddesign
@Catkinddesign 3 жыл бұрын
Надеюсь ещё увидим тебя. Особенно интересно развитие темы с ECS и более углубленный подход в этом направлении т.к. очень мало курсов и туторов. Возможно какой-то анализ плюсов и минусов встроенной системы Unity и других систем. Как исходя из особенностей хранения данных выбрать необходимый подход и построить правила кода в зависимости от ситуации. Приятно было бы увидеть подобный анализ, который мог бы быть полезен людям на старте проекта.
@internetuser804
@internetuser804 3 жыл бұрын
жду продолжение, хороший формат
@firerun8599
@firerun8599 3 жыл бұрын
Отличные уроки!
@gameviewer5693
@gameviewer5693 3 жыл бұрын
Тема очень интересна,спасибо,когда продолжение? Так же про StateMachine очень интересно глянуть
@user-bc4me5kz7j
@user-bc4me5kz7j 3 жыл бұрын
Спасибо за контент, снимай больше про паттерны в юнити
@walson4708
@walson4708 2 жыл бұрын
Альберт, как твои симуляторы кейсов поживают?
@headlightschool
@headlightschool 3 жыл бұрын
Крутой ролик! 👍
@greennebo3503
@greennebo3503 3 жыл бұрын
Очень круто У тебя должно быть больше просмотров
@GameDev55
@GameDev55 3 жыл бұрын
Супер! Хотелось бы про Ваше видение на Visitor в Game Dev посмотреть!!!
@SergeyMurin
@SergeyMurin 3 жыл бұрын
Очень интересно, спасибо.
@mastervolodsobeck5176
@mastervolodsobeck5176 2 жыл бұрын
Благодарю, полезно и доходчиво.
@elsee8865
@elsee8865 3 жыл бұрын
Спасибо! Реально помог
@user-ee3jb9bb9j
@user-ee3jb9bb9j 3 жыл бұрын
как всегда лайк не глядя
@arionpaul6208
@arionpaul6208 3 жыл бұрын
Твоё видео про ESC получилось отличным! Можешь сделать ещё видео про то как сделать так что бы код работал в Multi Thread
@alexandr_sirota
@alexandr_sirota 3 жыл бұрын
очень крутой шаблон проектирования, почти как год уже в своих проекте использую его, с опытом понял что так намного удобней делать многие вещи, кстати под прошлым виде в нашем диалоге scriptableObject vs json я говорил, что в игре над которой я работаю все юниты формируются из json данных и они как раз работают по этому шаблону)
@user-we6si4mi3x
@user-we6si4mi3x 2 жыл бұрын
спасибо за урок!!
@zippomode
@zippomode 3 жыл бұрын
спасибо, крайне ценно
@hewaki_merci
@hewaki_merci 3 жыл бұрын
Чувак, классно объясняешь
@romaklassman9924
@romaklassman9924 3 жыл бұрын
Классно)
@russianhotell
@russianhotell 3 жыл бұрын
Супер интересная тематика
@arionpaul6208
@arionpaul6208 3 жыл бұрын
Один из лучших каналов по юинити на русском ютубе
@user-th9nj3dn2y
@user-th9nj3dn2y 3 жыл бұрын
Нам нужно больше паттернов!
@user-zd7qb5zs3h
@user-zd7qb5zs3h 3 жыл бұрын
Давай ещё паттернов для разработки игр!
@TitikUniverse
@TitikUniverse 3 жыл бұрын
Пушка
@pianoplay4191
@pianoplay4191 3 жыл бұрын
Спасибо большое за видео. Не смотря на свой 7 месячный опыт разработки игр я не смог понять для чего это, просмотрев ролик 3 раза и постоянно перематывая. Возможно я очень глуп, но я думаю, что это для более опытных разработчиков
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Упрощённая версия подобного алгоритма на основе Switch + какого-нибудь Enum в принципе очень хорошо может лечь в основу какого-нибудь простого ИИ врагов, которые должны перемещаться, перепрыгивать через препятствия или стрелять в игрока. Тут сразу видно как минимум 3 состояния, которые можно описать через Enum и затем переключать в зависимости от условий. Может, так будет понятнее)
@pianoplay4191
@pianoplay4191 3 жыл бұрын
@@insaneone-7220 спасибо большое за ответ! Делайте больше подобных видеоурок
@ScrewY0UguyS
@ScrewY0UguyS 3 жыл бұрын
Привет. Отличные видео! Сделай плиз видосы по внедрению геймменеджера/аудиоменеджера и диалоговой системы в игру! Или хоть чего-то из этого) Нормальной информации на эту тему нет не только в русском ютубе, а практически нигде! И я не про очевидный способ с условным добавлением аудиосорса, с последующим проигрыванием из скрипта, я про способ, который не сломается при масштабировании. Так сказать, хорошие привычки. Например, у Brackeys есть видеоролик про диалоговую систему. В принципе, все нормально, но в комментариях заметили, что при локализации переводить каждый фрагмент текста по отдельности будет адово. Интересно все-таки узнать такие базовые вещи, но реализованные опытным разработчиком, а не контент мейкером. Надеюсь, оценишь.
@kwicot
@kwicot 3 жыл бұрын
Почти 2к просмотров и всего 200 лайков. Блин ребят камон, лайк вам ничего не сделает но парень будет стараться и помогать вам в первую очередь
@flugenkehhannen
@flugenkehhannen 7 ай бұрын
Класс
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
не видел на руЮтубе видосов на такие темы, так держать)
@unitynavigator3328
@unitynavigator3328 3 жыл бұрын
Кстати прикольная книжка Швец А. - Погружение в паттерны проектирования... Читается довольно легко новичком в программировании.
@user-kf4ye7zy4z
@user-kf4ye7zy4z 3 жыл бұрын
Так лучше когда готовый код показываешь а не набираешь, ато итак темп высокий, я бы не успел улавливать смысл если бы ещё смотрел на набираемый код. Спасибо большое, полезные вещи рассказываешь!
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
Слушай, а можешь посоветовать годные книги по c#, паттернам и юнити?
@minayevRoman
@minayevRoman 3 жыл бұрын
Привет. А сам игры делаешь свои? Или на заказ?
@AlexStraga
@AlexStraga 3 жыл бұрын
о. Таки есть какая та встроенная стейтМашин в Юньке? Норм, надо будет изучить. Спасибо. Пиши "исчо")
@seldemirov
@seldemirov 3 жыл бұрын
Такой вопросик. Может быть ты(или кто-то) знаешь как делают игры вроде Civilization или Plague Inc. где есть обширные ветви прокачки разных сущностей и взаимодействие между ними? Может быть, у этого есть какое-то специальное название что бы загугнить? И может это все делается на определённом паттерне?
@vitaliySobakinson
@vitaliySobakinson 2 жыл бұрын
1:03 - описание моей жизни
@davidhops3952
@davidhops3952 3 жыл бұрын
Круто!Спасибо за ролик, но это количество ифов и элсов немного пугает)
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Это сделано исключительно для наибольшей понятности примера, разумеется такой хардкод в реальном проекте использовать нежелательно)
@davidhops3952
@davidhops3952 3 жыл бұрын
@@insaneone-7220 Спасибо) Меня тимлид по лицу бьёт за каждый if, потому они немного бросаются уже в глаза
@Senshi_theFirstKatana
@Senshi_theFirstKatana 2 ай бұрын
Возмлжно ли как то заменить проверку на ввполненность состояния в Update на событие? Чтобы не проверять каждый апдейт
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Очень важно еще, чтобы ни одна сущность системы не спрашивала у стейт машины что-то типо if(_currentState == someState). К сожалению, часто такое вижу, очень грубое нарушение ООП и паттерна в целом. Со scriptable objects хорошо придумал)
@lesha2529
@lesha2529 2 жыл бұрын
Оно конечно так, но у вас гораздо лучше и грамотнее описан данный паттерн :D
@archon7th
@archon7th 9 ай бұрын
Разве реализация получилась хорошая? Плюсы конечно есть, но хотя бы енумами переключаться. А-то получается что бы сменить стейт мы ссылаемся на паблик метод и передаем паблик поле для инстантиатора. Не говоря уже о том что можно отправить SetState(null) и получить ошибку
@needflow6792
@needflow6792 3 жыл бұрын
я тебе одно скажу, ты - гениален! Жду новых роликов ;)
@alexvolkov6269
@alexvolkov6269 3 жыл бұрын
Жду стэйт машину от unity.)))
@uzgamedev
@uzgamedev Жыл бұрын
Напоминает стэйт машину... xD эти и есть FSM (Finite State Machine)
@bazonixru5288
@bazonixru5288 3 жыл бұрын
мм, а как на счет CurrentState = Instantiate(state) - это разве не "забъет" память?
@ilyaronzhin
@ilyaronzhin 3 жыл бұрын
Как называется плагин для райдера, который отображает справа от текстового редактора код широкой полосой и позволяет проще скроллить?
@insaneone-7220
@insaneone-7220 3 жыл бұрын
CodeGlance
@madkoala2880
@madkoala2880 3 жыл бұрын
Куда ты пропал, мужик, у тебя был самый высококачественный контент в ру сегменте по юнити!
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Не пропал и надеюсь выпускать видео и дальше, но пока что не было возможности это делать. :(
@user-qq1gx7ek2u
@user-qq1gx7ek2u 3 жыл бұрын
Хотелось бы гайд как сделать реалестичную физику воды как в Halo 3
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
бро ты куда исчез? (((
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Пока нет возможности записывать новые ролики. Но я надеюсь, она появится)
@kroniecraft8339
@kroniecraft8339 3 жыл бұрын
@@insaneone-7220 Понимаю))) Приятно знать, что с тобой ничего не случилось
@java198626
@java198626 2 жыл бұрын
Не мне лично легко заходит, когда когд заранее написан, я и сам так записываю видео. КОД пишу заранее, потом освещаю, да и так короче. Плюс я всегда скидываю ссылку на демонстрационный проект из видео под описание.
@user-br4wt4yq9v
@user-br4wt4yq9v 3 жыл бұрын
@thebiggestdick69
@thebiggestdick69 Жыл бұрын
как понять стейт похож на стейт машину? Это не одно и тоже разве
@bibyter6451
@bibyter6451 3 жыл бұрын
У тебя переходы разбросаны и в стейте и в переходах у Character, лучше наверное когда стейт какой-то результат возвращает как в bt
@tazermeg
@tazermeg 3 жыл бұрын
Очень жаль, что на канале перестали выходить видео.
@danilpauli2569
@danilpauli2569 3 жыл бұрын
Ты используешь ScriptableObject для организации состояния. Но разве используя один и тот-же ScriptableObject несколькими GameObject на сцене, не сломает их поведение? Ведь они оба будут использовать и влиять на его параметры.
@insaneone-7220
@insaneone-7220 3 жыл бұрын
В видео упоминаю, что нужно клонировать из через Instantiate в таком случае. Тогда всё будет в порядке.
@nightyonetwothree
@nightyonetwothree Жыл бұрын
@@insaneone-7220 тогда лучше использовать обычный класс, разве нет?
@antonpashkevich5061
@antonpashkevich5061 2 жыл бұрын
Все очень интересно, но ничего не понятно. Но думаю дело во мне)
@ThePirateHistory
@ThePirateHistory 3 жыл бұрын
Был пацан, и нет пацана(
@Donny_Scottina
@Donny_Scottina 8 ай бұрын
Ну ребят,ну выложите вы код на гит пожалуйста, ну сложно что ль?)
@MrGoldorange
@MrGoldorange 3 жыл бұрын
Можно ли обойтись без такого количества ифов в апдейте?
@insaneone-7220
@insaneone-7220 3 жыл бұрын
Да, в видео - лишь пример реализации. Это всё при желании можно гораздо более компактно и эффективно сделать. В данном случае таким способом было проще показать суть подхода.
@cassinid8843
@cassinid8843 3 жыл бұрын
Дружок-пирожок, ну и куда ты пропал?
@luen6019
@luen6019 3 жыл бұрын
Где новые видео
@thebiggestdick69
@thebiggestdick69 Жыл бұрын
Может надо было показать сначала скрипт SOшника а уже потом персонажа? Только путаницы больше
@peterpashchenko301
@peterpashchenko301 3 жыл бұрын
Кошерный паттерн. Понятная подача лектора
@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 теперь то точно да
@user-it4zd1su4f
@user-it4zd1su4f 3 жыл бұрын
Если честно, даже на примере игры ничерта не понял. Ну, возможно я просто хлебушек
@omoloni
@omoloni 3 жыл бұрын
Что не понятно?
Improving graphics in Unity in a 3 minutes
3:19
Insane One - Разработка игр
Рет қаралды 53 М.
Gym belt !! 😂😂  @kauermotta
00:10
Tibo InShape
Рет қаралды 18 МЛН
哈莉奎因以为小丑不爱她了#joker #cosplay #Harriet Quinn
00:22
佐助与鸣人
Рет қаралды 9 МЛН
I'm Excited To see If Kelly Can Meet This Challenge!
00:16
Mini Katana
Рет қаралды 30 МЛН
Каха заблудился в горах
00:57
К-Media
Рет қаралды 10 МЛН
Event Bus, Паттерны на практике, Unity, C#
15:33
Sergey Kazantsev
Рет қаралды 8 М.
Математика в играх на Unity. Библиотека Mathf
5:45
Insane One - Разработка игр
Рет қаралды 24 М.
Gym belt !! 😂😂  @kauermotta
00:10
Tibo InShape
Рет қаралды 18 МЛН