Руслан Смирнов • Game Development
Руслан Смирнов • Game Development
  • 59
  • 158 839
Делегаты в C# и Gamedev. Понятное объяснение
Что такое делегаты, зачем они нужны, как применяются в C#, Unity, Gamedev - в этом видео. Ты узнаешь как применять принципы ООП, используя делегаты, и придерживаться лучших практик программирования
00:00 - О чем это видео?
00:45 - Зачем нужны делегаты?
06:17 - Как применять делегаты?
08:45 - Еще один способ применения делегатов
11:40 - Встроенные делегаты C#
มุมมอง: 460

วีดีโอ

Как нейросети и ИИ помогают создавать крутые игры?
มุมมอง 1.1K5 หลายเดือนก่อน
Узнай как работают нейросети в играх, и как ИИ создает самый качественный контент. Способно ли машинное обучение заменить настоящего человека? Могут ли NPC быть умными, а боты обыгрывать человека? 00:00 - Главное про нейросети и ИИ 01:34 - Умные NPC и ботов 03:48 - Максимальное качество картинки 06:14 - Может ли ИИ написать историю? 08:07 - Отлов багов от нейросети
Главные ошибки поиска работы в 2024 - советы от опытного сеньора #поискработы #работа_it #gamedev
มุมมอง 7406 หลายเดือนก่อน
Как найти работу в наше трудное время - советы и практика от опытного разработчика. Дам советы по поиску работы в Украине и за рубежом. Что ни в коем случае нельзя делать, а что наоборот - обязательно делать когда ищешь работу в IT и геймдеве. 00:00 - Ты (не) найдешь работу 00:51 - Не подходишь для рынка - до свидания 03:19 - Как всем угодить 04:57 - Точно ты это умеешь? 07:32 - А что если вооб...
MVC в Unity - разбор тестового с рефакторингом и рекоммендациями
มุมมอง 9186 หลายเดือนก่อน
MVC в Unity - разбор тестового с рефакторингом и рекоммендациями
Насколько оптимально использовать MonoBehaviour? Подробности реализации
มุมมอง 9357 หลายเดือนก่อน
Насколько оптимально использовать MonoBehaviour? Подробности реализации
Первая игра на Unity (Survivor.io) / Часть 5 / Эффекты
มุมมอง 58410 หลายเดือนก่อน
Первая игра на Unity (Survivor.io) / Часть 5 / Эффекты
Первая игра на Unity (Survivor.io) / Часть 4 / UI
มุมมอง 50111 หลายเดือนก่อน
Первая игра на Unity (Survivor.io) / Часть 4 / UI
Полный разбор и рефакторинг тестового - рисовалка / Unity C# / Ультимативный рефакторинг
มุมมอง 55211 หลายเดือนก่อน
Полный разбор и рефакторинг тестового - рисовалка / Unity C# / Ультимативный рефакторинг
Универсальное использование корутин / Часть 2 / Циклы и последовательности
มุมมอง 312ปีที่แล้ว
Универсальное использование корутин / Часть 2 / Циклы и последовательности
Универсальное использование корутин / Часть 1 / Отложенный вызов
มุมมอง 614ปีที่แล้ว
Универсальное использование корутин / Часть 1 / Отложенный вызов
Разбор тестового задания Unity / Создание инвентаря / Принципы ООП
มุมมอง 751ปีที่แล้ว
Разбор тестового задания Unity / Создание инвентаря / Принципы ООП
Мифы о разработчиках игр
มุมมอง 409ปีที่แล้ว
Мифы о разработчиках игр
Как учиться эффективно программированию?
มุมมอง 619ปีที่แล้ว
Как учиться эффективно программированию?
Анимация в Unity: Скелетная анимация. Часть 3
มุมมอง 1.2Kปีที่แล้ว
Анимация в Unity: Скелетная анимация. Часть 3
Анимация в Unity: покадровое движение (Часть 2)
มุมมอง 525ปีที่แล้ว
Анимация в Unity: покадровое движение (Часть 2)
Анимация в Unity: Основы (Часть 1)
มุมมอง 805ปีที่แล้ว
Анимация в Unity: Основы (Часть 1)
Что такое корутины в Unity и как их использовать?
มุมมอง 873ปีที่แล้ว
Что такое корутины в Unity и как их использовать?
Как войти в GameDev? Путь к профессионалу индустрии
มุมมอง 1.1Kปีที่แล้ว
Как войти в GameDev? Путь к профессионалу индустрии
Первая игра на Unity (как Survivor io) / Принципы ООП для модуля апгрейдов / Часть 3
มุมมอง 1.5Kปีที่แล้ว
Первая игра на Unity (как Survivor io) / Принципы ООП для модуля апгрейдов / Часть 3
Создаем первую игру на Unity (как Survivor io). Часть 2
มุมมอง 2Kปีที่แล้ว
Создаем первую игру на Unity (как Survivor io). Часть 2
Разбор кода тестового задания Unity / Принципы SOLID
มุมมอง 2.3Kปีที่แล้ว
Разбор кода тестового задания Unity / Принципы SOLID
MonoBehaviour и ScriptableObject. Для чего нужны и как использовать?
มุมมอง 9Kปีที่แล้ว
MonoBehaviour и ScriptableObject. Для чего нужны и как использовать?
Простой способ создать РПГ в Unity (создание игры на основе ассета)
มุมมอง 1Kปีที่แล้ว
Простой способ создать РПГ в Unity (создание игры на основе ассета)
Ссылочные и значимые типы в C#. Понятное объяснение
มุมมอง 2.9Kปีที่แล้ว
Ссылочные и значимые типы в C#. Понятное объяснение
Критичные ошибки при обучении программиста
มุมมอง 1.3Kปีที่แล้ว
Критичные ошибки при обучении программиста
Как использовать ChatGPT в геймдеве? Анализ кода ИИ в Unity на пригодность
มุมมอง 474ปีที่แล้ว
Как использовать ChatGPT в геймдеве? Анализ кода ИИ в Unity на пригодность
Создаем первую игру на Unity (как Survivor io). Часть 1
มุมมอง 7Kปีที่แล้ว
Создаем первую игру на Unity (как Survivor io). Часть 1
ТОП 5 навыков в Unity для НОВИЧКА разработчика
มุมมอง 2.1Kปีที่แล้ว
ТОП 5 навыков в Unity для НОВИЧКА разработчика
Как правильно составить РЕЗЮМЕ в 2024 году? Чем заменить отсутствие ОПЫТА РАБОТЫ?
มุมมอง 371ปีที่แล้ว
Как правильно составить РЕЗЮМЕ в 2024 году? Чем заменить отсутствие ОПЫТА РАБОТЫ?
Как создать ПОРТФОЛИО программиста в GameDev чтобы НАЙТИ РАБОТУ в 2024
มุมมอง 1.6Kปีที่แล้ว
Как создать ПОРТФОЛИО программиста в GameDev чтобы НАЙТИ РАБОТУ в 2024

ความคิดเห็น

  • @dmovski1
    @dmovski1 5 วันที่ผ่านมา

    Есть ли полное видео по теме?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 16 ชั่วโมงที่ผ่านมา

      Да, вот: th-cam.com/video/UBpo2E5V0s4/w-d-xo.html

  • @MELONFY322
    @MELONFY322 หลายเดือนก่อน

    было полезно спасибо

  • @ДенисСаранин-м1и
    @ДенисСаранин-м1и หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev หลายเดือนก่อน

      Ее совсем к какой части видео это относится (все уже не помню), но если речь про то, чтобы вместо создания монобехаов создавать обычный классы - да, норм, но полностью избавиться от монобехов не получится. Если нам нужно управлять объектом на сцене, то все равно же нужен скрипт, который бы связывал GameObject с кодом.

  • @Perezzist
    @Perezzist 2 หลายเดือนก่อน

    Понравилось

  • @tovkats
    @tovkats 2 หลายเดือนก่อน

    У меня вы гостинной такие же обои))) Были

  • @antegros
    @antegros 2 หลายเดือนก่อน

    Плохое объяснение, нужно было еще показать ref, out

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 2 หลายเดือนก่อน

      все в одно видео не впихнешь

  • @karasgaming3231
    @karasgaming3231 3 หลายเดือนก่อน

    А FixedUpdate?

    • @Kuversay
      @Kuversay 3 หลายเดือนก่อน

      Для физики

  • @BattlebornSons
    @BattlebornSons 3 หลายเดือนก่อน

    Ого, а можно подробнее про это? Не нашёл подобное видео на ютубе, а ведь казалось бы.

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 3 หลายเดือนก่อน

      да, вот полное видео: th-cam.com/video/t9lkekE4_vk/w-d-xo.html

  • @Бетостасослав
    @Бетостасослав 3 หลายเดือนก่อน

    знатно сокращает работу, спасибо!

  • @TheYa2000
    @TheYa2000 3 หลายเดือนก่อน

    Не знал об этом! Спасибо!

  • @bur-mq1mq
    @bur-mq1mq 3 หลายเดือนก่อน

    Спасибо, всё понятно!

  • @qwekid9419
    @qwekid9419 4 หลายเดือนก่อน

    Все супермега понятно, жаль всего два видоса по урокам шарпика :(

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 4 หลายเดือนก่อน

      Спасибо. Постепенно буду делать еще ;)

  • @dilent8266
    @dilent8266 4 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 4 หลายเดือนก่อน

      Спасибо за комментарий и фидбек, будем улучшать)

  • @serdar6318
    @serdar6318 4 หลายเดือนก่อน

    Наконец то хоть кто то обьяснил правильно, а не смешал все в кучу.

  • @apofex
    @apofex 4 หลายเดือนก่อน

    Написал так и теперь делю на классы 😂

  • @tor_del
    @tor_del 5 หลายเดือนก่อน

    А зачем "ManualBehaviourRenderUpdate" в примере наследуется от "MonoBehaviour"? Для инспектора?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

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

  • @ВалерийКазаков-ж5х
    @ВалерийКазаков-ж5х 5 หลายเดือนก่อน

    Интересно, насколько правильно с точки зрения инкапсуляции делать делегат параметром для метода, ведь технически мы можем передать любой метод подходящей сигнатуры, есть ли возможность, скажем разрешить передачу ссылки на метод одного конкретного класса, допустим я создаю публичный метод с делегатом в параметрах, и хочу чтобы конкретный класс вызвал этот метод, но у меня в параметрах делегат, но если кто-то возьмёт этот метод и передаст в параметры делегат подходящий по сигнатуре, мой метод будет работать некорректно, или вызовет ошибку, надеюсь понятно объяснил, если на примере допустим у меня есть метод который делит константу на результат который мне предоставит делегат с возвращаемым типом и я ожидаю что делегат будет давать ссылку на метод который суммирует два числа,которые будут больше 0, но гарантировать я это никак не могу, или всё же есть такая возможность? Спасибо за ответ, и за видео которые выходят, они очень полезные)

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

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

    • @ВалерийКазаков-ж5х
      @ВалерийКазаков-ж5х 5 หลายเดือนก่อน

      @@RuslanSmirnovGameDev Спасибо за ответ, интересно а есть вариант добавить что-то вроде where только для параметра делегата, я создал метод с делегатом для использование его только таймерами, я могу как-то более явно заявить о своих намерениях, я так понимаю в целом очень важно чтобы код был максимально предсказуемым,для этого ведь многие конструкции и придуманы(readonly, const и тд)

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

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

  • @АндрейПрокофьев-е7д
    @АндрейПрокофьев-е7д 5 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

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

    • @АндрейПрокофьев-е7д
      @АндрейПрокофьев-е7д 5 หลายเดือนก่อน

      @@RuslanSmirnovGameDev делегаты,события,лямбды-это все букварь,пусть и его финальные страницы..Не зная этого вообще нечего лезть в архитектуру(в смысле читать книжки по паттернам). Это мое мнение. Спасибо.

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

      нет проблем) просто ООП штука такая, что можно без знания чего-то одного обойтись другим, и все равно получится неплохая архитектура. Вот как раз ситуация с делегатами - заменяем на интерфейсы (то что и делали в джаве), и получаем почти то же самое с точки зрения функционала.

  • @ДмитрийАнтипанов-п8т
    @ДмитрийАнтипанов-п8т 5 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

      планирую сделать уроки по паттернам, как появится больше времени. по поводу вопроса - как вариант хранить интерактивные объекты как коллекцию в какой-то сущности, с доступом по ключу (мб строке-имена). И при создании объектов состояния давать им ссылку (если организован DI), либо через синглтон напрямую обращаться.

  • @uroborian3896
    @uroborian3896 5 หลายเดือนก่อน

    А можно пожалуйста пару роликов по UI Builder сделать? Нигде качественного контента в ру сегменте не смог найти

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

      да, надо бы сделать, возьму на заметку

  • @88MakapoB88
    @88MakapoB88 5 หลายเดือนก่อน

    Но ты продолжай

  • @88MakapoB88
    @88MakapoB88 5 หลายเดือนก่อน

    Очень интересно, но абсолютно нихрена непонятно

  • @ПетроБушманов
    @ПетроБушманов 5 หลายเดือนก่อน

    Не как не помогают

  • @ymckondo1810
    @ymckondo1810 5 หลายเดือนก่อน

    Есть какие-то примеры, подтверждающие твои слова, касательно контента и QA, либо это спекуляция?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

      да, есть полно примеров, которые я в том числе приводил и в видео. вот еще: news.ubisoft.com/en-us/article/61RI3EnTzPx29I0q4NtN5m/how-ubisoft-is-using-ai-to-make-its-games-and-the-real-world-better aibusiness.com/ml/how-ubisoft-is-using-ai-in-game-development news.ubisoft.com/en-gb/article/6Mv4hZqUMJoY1xpf1yiQPi/ubisoft-la-forge-pushing-stateoftheart-ai-in-games-to-create-the-next-generation-of-npcs

  • @konstantinmikhaylov8837
    @konstantinmikhaylov8837 5 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

      да, и кто знает сколько таких циклов симуляции на самом деле :)

    • @FlashTomson-h7p
      @FlashTomson-h7p 5 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

      @user-lc6lf5wn7p звучит стремно)

  • @ЕгорРура
    @ЕгорРура 5 หลายเดือนก่อน

    Спасибо за ролик! С теперешними достижениями в нейросетях действительно может начаться настоящая революция в создании игр!

  • @WeLoveCreatingGames
    @WeLoveCreatingGames 5 หลายเดือนก่อน

    Привет! Я что-то не понимаю. У меня есть в планах создать на сцене 100 врагов и если он будут брать данные о своем здоровье из скриптбобжекта, то тогда, получается что если я одного врага уничтожу , то и все тоже уничтожатся? Или нужно иметь поле со здоровьем у врага и присваивать ему при создании параметры из скриптбобжекта и тогда получается каждый враг будет не зависим друг от друга, но в итоге ведь получается все равно память кушают? Или нет? Или я что-то не так понял?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 5 หลายเดือนก่อน

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

  • @djiexn
    @djiexn 6 หลายเดือนก่อน

    Просто под мобилку» пытался экспортировать билд с компа на Андройд и на iOs -ничего не получилось Пс ГоДат

  • @bazzpro3946
    @bazzpro3946 6 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      тоже как вариант) правда думаю все же сложнее продвинуться до такого уровня, чем в It

    • @bazzpro3946
      @bazzpro3946 6 หลายเดือนก่อน

      @@RuslanSmirnovGameDev сложнее? На сварщика уходят после 9 класса и к 19 годам уже заканчивают техникумы, 50-70к уже будут получать. Если также уйти после 9го, то может тоже до таких зарплат дойдёшь к 19. А если через вышку, то начинают обычно подрабатывать по специальности на 3-4 курсе, обычно там 70к и не пахнет, ибо нам нужен специалист с законченными проектами, с опытом от 3х лет, умеющий и в код и в железо, с высшим образованием и всё это за 50к)) И в целом, как ты вы с этим самосовершенствованием в IT всё демпингуете и демпингуете оплату труда. У нас взносы по ипотеке сейчас для провинциального города 100-150к если брать на 30 лет, какие ещё джуновские зарплаты в 50-100к? Не, это было бы нормально, если бы брали вообще без опыта и образования, как курьеров, сами всему научим, но нет, туда ещё нужно пробиться

  • @Valet_Kresti
    @Valet_Kresti 6 หลายเดือนก่อน

    Руслан, приветствую! Очень хорошие все выпуски, большое спасибо за передачу опыта. Я всего полгода в разработке в Unity. Посоветуйте, пожалуйста, что делать гуманитарию, когда уже готов серьёзный 3d проект в качестве собственного техн. документа, и поняты основные игровые механики (на курсах), но самое главное - кодинг, никак не даётся. Пробовал прибегать к chat gpt, но он только по частям скриптами помогает, и такие объёмы программирования механик реализовать не поможет. А проект пока не разглашаю. Остаётся только создать второй тех. документ без оригиналов основных материалов (спрайтов, текстов, изображений) для стороннего разработчика и договориться о программировании всех механик кого-то ответственного?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      Спасибо за отзыв! Не совсем понял правда что имеется ввиду под техническим документом - это про ГДД речь, или про тех задание?) И какая у вас цель - научиться кодить или более общее : создать готовый продукт? Если 2е то в действительности не обязательно даже кодить - проще найти готовые ассеты на ассет сторе, там по и по контента, и по тулзам, в общем можно готовую игру склепать. А если речь про освоение программирования, то тут надо начинать наоборот с малого - нет смысла браться за супер-пупер проект мечты, так только выгорите) Попробуйте разделить ваш проект на отдельные части (например часть квестов, инвентаря, персонажа), и работать над ними как отдельными проектами, не смешивая. А в каждой части выделить ещё под-механики - для персонажа это может быть хождение, стрельба, управление. Для квестов - диалоги, прогресс, награды. И вот когда уже все это реализуете на более приемлемо уровне - тогда имеет смысл пытаться это все объединить в один большой проект

    • @Valet_Kresti
      @Valet_Kresti 6 หลายเดือนก่อน

      @@RuslanSmirnovGameDev @RuslanSmirnovGameDev Руслан, спасибо за ответ. Технический документ схож с диз. доком, только он не имеет маркетинговой составляющей. Тех. документ я написал очень лаконично в тетради, где по пунктам расписал от жанра и сюжета до всех игровых механик. Так я экономлю время на переработку проекта в самом Unity. Да, я понимаю, что надо разбить свой проект на отдельные части по реализации механик, не спешить всё сразу осуществить. Но в том-то и дело, что я уже использую свои 3d lowpoly объекты и 2d спрайты, большую часть объектов по плану будут мной созданные. Вы мне как блогер очень понравились в плане подачи материала, сейчас сложно найти такие понятные изложения материала. С Вами можно связаться в Telegram или WhatsApp? Я очень хочу набраться опыта, получить несколько советов, и вообще было бы здорово с Вами пообщаться в сфере 3d проектов на Unity.

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      Это хорошо что вы пытаетесь расписывать и планировать игру, но как бы это странно ни звучало - в каком то плане вредите себе) Штука в том, что у вас в голове идеальная игра, а на практике не получается, и это сильно демотивирует. Сам через такое проходил. Я думаю лучше все же создать другой документ для другой игры, взять ваши объекты и спрайты, но постараться придумать что-то попроще, реалистичнее. Пусть это будет самая простая казуалка. Зато на ней вы сможете отточить все базовые механики. Возможно сниму как-то видео даже на эту тему :) По поводу связи - как раз подумываю создать telegram канал или что-то вроде того, а пока можете писать на почту: rsmirnov.dev@gmail.com

    • @Valet_Kresti
      @Valet_Kresti 6 หลายเดือนก่อน

      @@RuslanSmirnovGameDev Руслан, спасибо большое! Да, соглашусь, я понимаю, что всё не реализую, буду делать по частям. Главное, что меня это очень увлекает, и есть необычные идеи, но и тем сложнее получается во всём разобраться. Не помогает особо TH-cam и документация Unity, так как там разбираются самые ходовые темы, а у меня же нюанс на нюансе. Зато так намного качественнее обрастаешь опытом, это как с новым городом, когда ты моментально запоминаешь незнакомые улицы, кварталы только если заблудился и спросил дорогу у местных, чем идти по карте в телефоне. Я Вам обязательно напишу, спасибо за контакт! (Яков Р.)

  • @fant468
    @fant468 6 หลายเดือนก่อน

    Спасибо за советы, это действительно важно

  • @faraway4256
    @faraway4256 6 หลายเดือนก่อน

    Как то грустно после этого видео стало.

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      все будет хорошо, не грусти 😉

    • @petros8204
      @petros8204 16 วันที่ผ่านมา

      @@RuslanSmirnovGameDev th-cam.com/video/wTCSwX5AuwQ/w-d-xo.html

  • @LhcohfFoyf-nt9uu
    @LhcohfFoyf-nt9uu 6 หลายเดือนก่อน

    СПАСИБО . ДА СОХРАНИТ ТЕБЯ ГОСПОДЬ. НЕ ДУМАЛ ЧТО ПОМОЩЬ ПРИЙДЁТ В ВИДЕ ТВОЕГО ВИДЕО . Я пытался связать между собой колёса в авто и кузов

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      рад что был полезен 😉

  • @TheFenix717
    @TheFenix717 6 หลายเดือนก่อน

    Спасибо за классный урок! Подскажи пожалуйста, каким уровнем обладать, чтобы написать этот код самомстотельно? Джун, мидл?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

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

  • @ВалерийКазаков-ж5х
    @ВалерийКазаков-ж5х 6 หลายเดือนก่อน

    А если не использовать встроенные методы даже пустые, в чём недостаток наследования от MonoBehaviour, кроме того что слот под наследование занят?)

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

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

    • @ВалерийКазаков-ж5х
      @ВалерийКазаков-ж5х 6 หลายเดือนก่อน

      @@RuslanSmirnovGameDev Понял, спасибо)

  • @vernoyakira3611
    @vernoyakira3611 6 หลายเดือนก่อน

    Это ж UI игра по сути, тут на MVVM написать кайфово было бы

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      можно было, но я так понял у автора было требование использовать MVC

  • @sergeypogorelov7059
    @sergeypogorelov7059 6 หลายเดือนก่อน

    А это разве не MVP? В MVC обработка ввода в controller должна быть, а у вас на картинке на View

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

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

    • @sergeypogorelov7059
      @sergeypogorelov7059 6 หลายเดือนก่อน

      @@RuslanSmirnovGameDev MVC классический был создан на основе философии компьютера, где controller это устройство ввода, view это устройство вывода, а model это бизнес модель. Но я согласен, что интерпретируют это все несколько по-разному сейчас.

    • @PragmaGames
      @PragmaGames 6 หลายเดือนก่อน

      @@sergeypogorelov7059 Разная интерпритация конректного паттерна от незнания кем и для чего "создавался" данный паттерн. Обычно такие люди не могут отличить MVC, MVP, MVVM, MVA. В особенности MVVM и MVA, так как у них "стрелочки почти одинаковые". Сейчас бы оригинальный MVC назвали сильно связанным, и любой di контаинер типо Zenject при попытке резолва такой зависимости выдал бы ошибку о "говнокоде" ) Да, перейти на события здравая идея (Как на схеме в начале видоса), но это уже и не MVC, тогда уж лучше пользоваться MVVM.

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 6 หลายเดือนก่อน

      @@PragmaGames это да, в MVC действительно слишком много зависимостей, это очень непрактично, ну и как результат - почти нигде не используется (если говорить сугубо про геймдев).

  • @MrGolovewkin
    @MrGolovewkin 6 หลายเดือนก่อน

    Спасибо, инфа полезная! Но склеек! это просто *опа.....

  • @Speed-Run-Facts
    @Speed-Run-Facts 7 หลายเดือนก่อน

    Физикс?) или может фиксет

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 7 หลายเดือนก่อน

      оговорился, да fixed update)

  • @zendaros4833
    @zendaros4833 7 หลายเดือนก่อน

    А почему ты используешь Transform для перемещения, а не Rigidbody ? Я слышал что это плохая практика. И почему Update, а не FixedUpdate ?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 7 หลายเดือนก่อน

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

  • @EugeneS88-RU
    @EugeneS88-RU 7 หลายเดือนก่อน

    Mono и ооп подход где 10000 юнитов - это а еще затея, надеюсь, ecs c устоявшимся api все таки вскоре релизнут

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 7 หลายเดือนก่อน

      может и релизнут, но думаю разработчики будут переходить на него еще лет 5 )

  • @dmitryzolkin7904
    @dmitryzolkin7904 7 หลายเดือนก่อน

    В каких проектах на твоей практике 50к объектам нужен Update, кроме стратегий? В чём преимущество мануального Update перед ECS, который изначально заточен на производительность с большим кол-вом сущностей?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 7 หลายเดือนก่อน

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

    • @PragmaGames
      @PragmaGames 7 หลายเดือนก่อน

      ​@@RuslanSmirnovGameDev Если проекты коммерческие, то ты сможешь назвать их, что бы мы посмотрели на них ) я на своей практике даже 5к не встречал... кроме того ты показал время вызова пустых методов, если эти методы заполнить чем-то, будет 10фпс что так, что так )

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 7 หลายเดือนก่อน

      @@PragmaGames чем-то могу поделиться, чем-то нет, из недавнего play.google.com/store/apps/details?id=com.swiftappskom.catsimulator2 естественно сейчас там много оптимизаций, и не 50к апдейтящихся монобехов, но вполне могло быть если втупую везде создавать монобехи. насчёт пустых методов - в том то и прикол, что затраты на логику далеко не всегда > затрат на оверхед. Можно создать монобех с какой-то минимаььной функциональностью в апдейте, например простым движением юнита - и навесив его на кучу объектов получить фризы из ничего. Как раз чаще всего так и происходит

  • @batyr6678
    @batyr6678 7 หลายเดือนก่อน

    Спасибо👍

  • @tte4enbe_
    @tte4enbe_ 7 หลายเดือนก่อน

    Большое спасибо за видео!

  • @payrgames
    @payrgames 7 หลายเดือนก่อน

    Рандомное направление через скрипт делать?

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 7 หลายเดือนก่อน

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

  • @slava_bro
    @slava_bro 8 หลายเดือนก่อน

    Лайк, подписка однозначно. Продолжай пилить такую годноту

  • @ЕвгенийНиколаев-й1ц
    @ЕвгенийНиколаев-й1ц 9 หลายเดือนก่อน

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

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 9 หลายเดือนก่อน

      добрый день. возможно в будущем запишу такие ролики)

  • @Artoreys
    @Artoreys 10 หลายเดือนก่อน

    Запиши сначала на листочек что хочешь сформулировать. Не совет а поток сознания

  • @Частныйсектор-х4я
    @Частныйсектор-х4я 10 หลายเดือนก่อน

    Ну значит игра простая

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 10 หลายเดือนก่อน

      хочешь сказать для сложной игры этот принцип не работает?

    • @Частныйсектор-х4я
      @Частныйсектор-х4я 10 หลายเดือนก่อน

      @@RuslanSmirnovGameDev деление на классы со своей ответственностью этот верный подход, но строить классы внутри класса не запрещенно, в том числе анонимные.

    • @RuslanSmirnovGameDev
      @RuslanSmirnovGameDev 9 หลายเดือนก่อน

      @@Частныйсектор-х4я а чем это поможет в этой ситуации?

    • @Частныйсектор-х4я
      @Частныйсектор-х4я 9 หลายเดือนก่อน

      @@RuslanSmirnovGameDev разработчику возможно пользуется поиском и ныряет в свой код как ему удобнее по поисковому запросу, а не по классам. Возможно он хотел простой код, а потом стал усложнять. Конечно поддерживать такой код тяжелее, чем зеленный на классы. Но раз код написан, работает, он сделал так к примеру ради отработки анонимных классов.