Video není dostupné.
Omlouváme se.

Зачем разделять модель игры и визуал? Что такое модель игры?

Sdílet
Vložit
  • čas přidán 28. 08. 2024
  • Понравилось видео? Поддержи Лавку Разработчика!
    www.donational...
    boosty.to/game...
    paypal.me/game...
    Для понимания паттернов программирования, мало их просто знать, важно еще понимать, зачем их вообще применять. То есть не в плане конкретной задачи, а глобально. Зачем это все? Все эти правила, ООП, SOLID? В видео я отвечаю на вопрос: зачем разделять модель игры от визуала. Конечно, предварительно мы разберемся, что это вообще такое - модель игры? С визуалом-то более-менее понятно. В общем, если хотите задержаться в геймдеве надолго - очень рекомендую"
    Отсылки:
    t.me/gamedevlavka - телеграм канал Лавки Разработчика
    t.me/gamedevta... - ламповый чат
    / discord - дискорд

Komentáře • 74

  • @user-rp4yt9kb4l
    @user-rp4yt9kb4l Před 7 měsíci +17

    Было бы интересно глянуть этот же материал тока с наложением на небольшой проект. К примеру пусть игрок может только стрелять по одной мишени и за каждое попадание ему начисляются очки которые отображаются на экране, или что то схожее но где объясняться будет не только на UI или куске геймплея а сразу на всем. И уже на этом примере показать как реализуются model и view а так же как они соединяются. Видосов с объяснением разных паттернов много, но там зачастую всё сводится к конкретному паттерну и локальному примеру, от чего все еще не достает понимание как в целом проект строить (тобишь мне надо сделать по одной здоровой модели и вьюхе на весь проект, или делать их отдельно на разные логические сущности такие как игрок, мишень, пуля, строчка со счетом и т.д.?).

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci +8

      Отличный комментарий с хорошим примером того, что хотелось бы увидеть. Звучит как не бесконечное количество работы. Обязательно сделаю подобное видео!

    • @igorgrischenko6518
      @igorgrischenko6518 Před 7 měsíci

      Соглы. Включил видео, думал щас на примерах раскидает как батя, в итоге очередное фуфло на схемах.

    • @nikotinStudio
      @nikotinStudio Před 7 měsíci +2

      Поддерживаю, не совсем понятно, что представляет из себя view в unity, просто ui или модели персонажей, или же это monobehavior'ы. Как, допустим, отделять логику передвижения от модели персонажа, если логика исполняется в update в monobehavior, а monobehavior должен висеть на моделе, получается что логика висит на view? Хотелось бы увидеть это на примере.

  • @xagent
    @xagent Před 7 měsíci +12

    Когда начинаешь работать на реальных масштабных коммерческих проектах, то понимаешь что все эти архитектурные вещи придумали не с бухты-барахты.

    • @igorgrischenko6518
      @igorgrischenko6518 Před 7 měsíci +6

      Я думал ты напишешь "Когда начинаешь работать на реальных масштабных коммерческих проектах, то понимаешь что все эти архитектурные вещи тебе не всрались"

    • @AqVadPlay
      @AqVadPlay Před 7 měsíci

      ​@@igorgrischenko6518неее, причём все эти правила применяются не только в играх, но и в разработках на других языках.

    • @--.--
      @--.-- Před 7 měsíci +1

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

    • @igorgrischenko6518
      @igorgrischenko6518 Před 7 měsíci +1

      @@--.-- чел, я уже больше 10 лет в геймдеве, ни разу не использовал эти паттерны и удивительным образом чувствую себя комфортно. Мне обещали, что в геймдеве я долго не задержусь, но сейчас это моя основная работа.

    • @igorgrischenko6518
      @igorgrischenko6518 Před 7 měsíci +1

      @@--.-- я просто всё жду, когда же наступит тот момент, когда мне понадобится применить хотя бы один из этих паттернов.

  • @andreiraketa6300
    @andreiraketa6300 Před 7 měsíci +4

    Самый лучший контект по Unity здесь! Как всегда!

  • @happytablo
    @happytablo Před 7 měsíci +4

    Огонь инфа!❤‍🔥
    Было бы супер видеть примеры с кодом.. можно бегло и в кратце☺

  • @user-vg8xf6xy4s
    @user-vg8xf6xy4s Před 7 měsíci +9

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

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci +2

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

    • @vanchette1040
      @vanchette1040 Před 7 měsíci

      @@gamedevlavka Можно на квадратиках кружочках)

    • @user-vg8xf6xy4s
      @user-vg8xf6xy4s Před 7 měsíci +1

      @@gamedevlavka ну понг или арканойд примитивные для видимости игры сделать можно, или кликер который собирает монетки в вакууме)

  • @aleksey2793
    @aleksey2793 Před 7 měsíci +3

    Хотелось бы видео о разных вариантах хранения конфигов. SO, JSON, таблицы с реализацией вложенности данных типа конфига одного вида врага с разным оружием.

  • @nikitalisitsyn
    @nikitalisitsyn Před 7 měsíci +3

    Теория класс, осталось в Юнити показать)
    P.S. будет время, расскажи про Дефолд, сам стал использовать, на первый взгляд классный и простой (пока на первый взгляд). Только нужно язык Lua знать.

  • @user-kr5mh2vd3v
    @user-kr5mh2vd3v Před 7 měsíci +1

    Топчик. Ждем курс)

  • @MsWital
    @MsWital Před 6 měsíci

    Сложно))) но общий смысл понятен. Так то все логично и правильно, осталось только понять как это для себя применить))

  • @RimuruDev
    @RimuruDev Před 7 měsíci +1

    Классный материал. Теперь буду его пересылать вместо долгих объяснений. Так как тут все по факту как есть. особенно понравилось в конце объяснения о том что это для нас (разработчиков нам же удобнее) + о том что бизнесу порой это выгодно.

  • @StratoCatster
    @StratoCatster Před 7 měsíci +1

    Помогло, помогает и еще поможет!)

  • @metal_burn
    @metal_burn Před 7 měsíci +2

    эта тема будет актуальна всегда

  • @Khellvayz
    @Khellvayz Před 2 měsíci

    И еще вопрос, как правильно связать модель с визуальной составляющей (допустим с интерфейсом), какие варианты есть? допустим при выборе объекта (юнита, здания или еще чего нибудь) отобразить его данные на интерфейсе или по нажатию кнопки прокачки в интерфейсе, изменить данные?

  • @kamen583
    @kamen583 Před 7 měsíci +1

    Допустим, мне нужно переключать анимации в логике игры, но как я понял, анимация - это визуал. Можно примерное объяснение, как это сделать, при условии, что скрипты модели игры должны работать отдельно от визуала

  • @RimuruDev
    @RimuruDev Před 7 měsíci +2

    Опа годнота подъехала🔥

  • @zuzuBoba
    @zuzuBoba Před 7 měsíci +1

    Ура новое видео🎉🎉🎉

  • @Khellvayz
    @Khellvayz Před 2 měsíci

    А можно вкраце описать, как правильно разделять логику и данные в Unity. Допустим у меня есть скрипты с логикой передвижения, атаки, здоровья и т.д., эти скрипты висят на юните, и в этих скриптах есть есть переменные, такие как скорость, здоровье, урон, скорость атаки, тип атаки и так далее. То есть правильно бы было вынести эти данные из скриптов с локикой и занести в отдельный SO или файл? А в файлах с логикий при инициализации считывать эти данные?

  • @npve4312
    @npve4312 Před 7 měsíci +1

    Спасибо большое за информацию!
    Скажи пожалуйста, а может в одном проекте быть и MVO и MVP и PM, к примеру?
    К примеру, если у меня View должна только отображать, мне нужен один паттерн, а если на другой View у меня есть инпут, то мне надо менять данные?

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci

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

  • @Veles017
    @Veles017 Před 7 měsíci +1

    Было бы очень круто, если ты запишешь курс!

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci +2

      Каждый день в зеркало себе это повторяю)

  • @alopar181
    @alopar181 Před 7 měsíci +11

    Автор видимо много перечитал теории но вообще не шарит за практику, все объяснения просто сферический конь в вакууме. Модель это не статик дата и данные прогресса. Модель это вообще вся игра и данные этой модели например в Юнити будут разбросаны вообще по всему проекту. Потому что например физические показатели объекта это тоже модель, или например состояние анимации если на ее ключах завязана логика это тоже модель, по этому выделить это вот так просто в квадратик просто не реально. Тоже самое касается и Визуала, исходя из видео так визуал это только HUD и UI, но визуал это все, это меши или спрайты, это их анимации, это их физика, это работа навмешей которая неразрывна с объектами которые являются носителями Модели. По этому вообще не реально просто взять и заменить Визуал, это возможно на каком то крайне простом проекте типо крестики нолики или морской бой, где сама игра, ее дата и логика влезает в один скрипт, да тогда можно это все вывести в отдельную абстракцию и писать к этому только какой то визуал на юнити, или анриале или просто на хтмл. А про франщизу лего и ГОНОЧКИ в СИТИ БИЛДЕР, вообще просто шиза, причем тут визуал?! Визуал который (View) это не набор моделек это ЛОГИЧЕСКИЙ СЛОЙ программы! Сожалею, но автор просто насыпал мусора в голову и так мало что понимающим людям.

    • @GameManagerController
      @GameManagerController Před 7 měsíci

      браво

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci +2

      Мне очень жаль, что у меня не вышло донести ту информацию, что я пытался донести. Возможно, потому что я явно не объявил, что под визуалом я понимаю картинки, модельки, звуки и др + логику их обработки. Предположение об отсутствии практики у меня не отражает действительность. Мне грустно, от того, что существуют уверенные утверждения типа "например состояние анимации если на ее ключах завязана логика это тоже модель", или "не реально просто взять и заменить Визуал, это возможно на каком то крайне простом проекте типа крестики нолики". Анимация - это лишь вариант инпута, если на ее ключах завязана логика. А про нереальность замены движка/визуала я вообще молчу. На моем опыте свап движка на мидкорной игре, где модель игры сохраняется, и меняется только движок. Если у автора комментария был неудачный опыт с подобными задачами, это не значит, что это невозможно.
      Ну, и скажу так: если бы ко мне в команду разработки просился кандидат с подобными самоуверенными заявлениями про модель игры, то предложение о работе он навряд ли получил бы.

    • @igorgrischenko6518
      @igorgrischenko6518 Před 7 měsíci

      Поддерживаю @alopar181. Автор видео кринж вообще. Рескин игры, а модель не трогать. Ага, ну да, очень смешно. А то, что в коммерческих проектах нельзя сделать просто рескин, потому что где-то отличается логика автор не знает.

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci

      @@igorgrischenko6518 видимо, вы не сталкивались с задачами на рескин, это объясняет ваш некомпетентный ответ

    • @igorgrischenko6518
      @igorgrischenko6518 Před 7 měsíci

      @@gamedevlavka ага, ищи оправдания, пытаясь опустить разработчика с 10 летним стажем.

  • @GbyGRus
    @GbyGRus Před 7 měsíci +3

    Ты не хочешь записать серию туториалов по Cocos creator вижу он у тебя установлен. На данный момент он стал очень популярен, но каких то обучающих материалов на русском фактически нет в отличие от юнити по которому у тебя достаточно много роликов и не проблема все это найти в различных и видеокурсах и просто в открытом доступе. Думаю если бы ты снял туториал по кокосу то сделал бы много для комьюнити так как на доанный момент только один канал я нашел который записывает какие то туториалы и то не нормальный курс от начала и до конца а просто какие-то фишки типа как сделать это например управление.

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci

      Да, по кокосу мало материалов, катастрофически мало. У меня на опыте пока только один проект, надо еще один развернуть (хотя бы развернуть), чтобы можно было запускать что-то по кокосу. Материал очень востребован, это я как человек, который только что через все это дер** прошел, подтверждаю)

    • @GbyGRus
      @GbyGRus Před 7 měsíci +1

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

  • @Blin_Blinskii
    @Blin_Blinskii Před 7 měsíci +1

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

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci +2

      Все последовательно, положили в голову абстракцию, перейдем и к реализации. Если бы я объяснял на движке сразу, то зрители бы подумали, что это часть разработки конкретно на юнити. А это часть вообще разработки, независимо от движка, независимо даже от того, делаешь ты игру в электронном виде или на картонке.
      Следующий этап - как раз объяснение, что это значит на примере в юнити

    • @Blin_Blinskii
      @Blin_Blinskii Před 7 měsíci +2

      @@gamedevlavka Отлично! Ждём!

  • @mrgoodpeople
    @mrgoodpeople Před 5 měsíci

    Нужно еще было уточнить, что состояния бывают двух видов: зависящие от предыдущих шагов и независящие. Это очень важно, нужно нам хранить историю игры (в том или ином виде) или нет.

  • @TheZibx
    @TheZibx Před 6 měsíci +1

    Про автоматическое тестирование ещё можно было накинуть. При разделении - сильно проще обвесить.

  • @IllidanZur
    @IllidanZur Před 7 měsíci

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

  • @user-qe2tx7ox1g
    @user-qe2tx7ox1g Před 3 měsíci

    Нужны примеры кода.

  • @alopar181
    @alopar181 Před 7 měsíci +1

    Хотя в целом видео да данном канале весьма не плохи, и какие то отдельные темы рассматривают очень даже не плохо. Но вот с общей теорией что то не пошло.

  • @shepa4208
    @shepa4208 Před 7 měsíci

    Привет лавка. Сделай видео пожалуйста о том как стать разработчиком игр и научиться программировать или может курс для от новичка до хорошего специалиста 🥹

  • @user-sn6xn1zx1v
    @user-sn6xn1zx1v Před 7 měsíci +1

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

  • @maksymz6695
    @maksymz6695 Před 7 měsíci +1

    В кружке контрооллер ?

    • @gamedevlavka
      @gamedevlavka  Před 7 měsíci +1

      В кружке "вставьте свой вариант перемычки", контроллер - в случае использования MVC, вьюмодель для MVVM и так далее

  • @igor_mutny
    @igor_mutny Před 7 měsíci

    Только мне непонятно, как в Юнити всё это разделить на слои, если там в один GameObject условного персонажа напиханы и его логика, и данные о его состоянии, и его вьюшка.

  • @morkovkazet666
    @morkovkazet666 Před 7 měsíci +1

    Гарне відео. На рахунок інвентарю, у одному зі своїх проектів(Explore to Survive) використовував scriptable object для нього(Є безліч переваг та недоліків такого методу), зараз же намагаюся створити іншим способом, де кожен предмет буде більш гнучким до змін, маючи можливість задавати більш випадкові значення одного типу

  • @cx717cx717
    @cx717cx717 Před 5 měsíci

    Спасибо за урок.
    Присоединяюсь к @user-rp4yt9kb4l. Хотелось бы увидеть как выглядит применение этого урока на каком-нибудь элементарном проекте, но уже не с Debug.Log, а с простеньким визуалом.
    Еще вопрос: Вы сказали, что кружок по сути - это контроллер. Тогда получается, что это не MV архитектура, а MVC. Разве не так?

    • @gamedevlavka
      @gamedevlavka  Před 5 měsíci +2

      Когда говорят MV* архитектура, то имеют ввиду обобщенно любую из них: MVC, MVP, MVVM