Алгоритм Boids в юнити. Практическое применение Job System

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 57

  • @gaitavr1992
    @gaitavr1992  3 роки тому +33

    Ставь лайк, если Schedule произнес нормально в этот раз ))

    • @Dimetroc
      @Dimetroc 3 роки тому

      не в этот раз ) но за видео лайк )

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Пора создавать секту свидетелей произношения))

    • @Veyron104
      @Veyron104 3 роки тому

      шкедул ?)

    • @Nightmareinfos
      @Nightmareinfos 3 роки тому

      Есть британское и английское произношение.
      Американское: skeh
      -jool - ˈskejəl - скеджул
      Британское: sheh
      -jool - шеджул
      Так что вы в прошлый раз правильно произносили, а в этот намешали обеих)

    • @horrest790
      @horrest790 3 роки тому

      Да нормально, мощно

  • @Bushido_Cat
    @Bushido_Cat 11 місяців тому

    Пример конечно довольно сложный, но общий принцип понятен. Краса!

  • @ИгрушкиИльюшки
    @ИгрушкиИльюшки 3 роки тому +9

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

  • @katarsis6541
    @katarsis6541 Рік тому

    Великое видео, спасибо за контент!

  • @shyxiaolong
    @shyxiaolong 2 роки тому

    Максим, требуем еще больше алгоритмов как Boids, это потрясающе!) Спасибо вам!

  • @skarabeydm
    @skarabeydm 3 роки тому +3

    Я в шоке! 10000 капсул и 40 фпс)))
    Ну, это конечно, ДО добавления им стайного интеллекта, но всё равно впечатляет)
    Спасибо за урок!

  • @evggg
    @evggg 8 місяців тому

    А что производительнее для данного алгоритма - джобы или компьют шейдеры?

  • @МихаилИонов-г2ж
    @МихаилИонов-г2ж 10 місяців тому

    7:00 если у вас тоже нихрена не разворачиваются капсулы - на главном скрипте поменяйте Destination Threshold с нуля на другие значения.

  • @МихаилГорбунов-н5м
    @МихаилГорбунов-н5м 3 роки тому +1

    В AccelerationJob делить нужно не на count, а на количество совпадений. В противном случае если отслеживаемая дальность не покрывает все элементы, они будут улетать в 0 (что нигде не оговаривалось). В уроке это не сильно заметно, т.к. коробка маленькая и с центром в нуле.

    • @dmitrybaltin6612
      @dmitrybaltin6612 18 днів тому

      И это не единственная ошибка в этом коде.
      Слагаемое averageSpread рассчитывается неверно, оно должно зависеть от дистанции обратно пропорционально.
      Плюс можно избежать вычисления квадратного корня.

  • @AlexStraga
    @AlexStraga 3 роки тому

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

    • @gaitavr1992
      @gaitavr1992  3 роки тому

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

    • @AlexStraga
      @AlexStraga 3 роки тому

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

    • @JackFastGame
      @JackFastGame 3 роки тому

      Мой препод по программированию C# называет «си шейп».

  • @lord_vampire
    @lord_vampire 3 роки тому +1

    Пришел за джобы разобраться, ушел гуглить как произносится schedule -_-

  • @romich9865
    @romich9865 3 роки тому +1

    А разве при расчёте кол-ва юнитов надо вычитать 1, ведь тогда мы не считаем последнего юнита. Оператора continue при своем индексе будет достаточно

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Ну мы ж делим на этот count. Получается, что делимое считалось без учета одного элемента, а делитель содержит все количество. Поэтому отнимается 1.

    • @mypaxa003
      @mypaxa003 3 роки тому +1

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

    • @Nightmareinfos
      @Nightmareinfos 3 роки тому

      @@mypaxa003 видео пока не смотрел и не знаю что у вас там за Count, но обычно Length и Count показывают кол-во обьектов, но индекс последнего [Count-1]

    • @mypaxa003
      @mypaxa003 3 роки тому

      @@Nightmareinfos Обычно, если речь о коллекциях - да. А тут я уже и сам не помню.

    • @Nightmareinfos
      @Nightmareinfos 3 роки тому +1

      @@mypaxa003 Да, все правильно вы подметили, автор пропускает последний элемент.

  • @gulyaevw
    @gulyaevw 3 роки тому

    А в сравнении с компьют шейдерами будет видео? Как я понимаю в многопоточности выигрыш только в разветвлённом коде? А в данной ситуации можно было обойтись компьют.

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Сравнение может и будет, если условий нет то компьют хорошо себя показывает. В 2020 юнити можно результат из шейдера сразу в native array получить для работы в джобе

    • @gulyaevw
      @gulyaevw 3 роки тому

      @@gaitavr1992 хотелось бы видео про компьют шейдер.

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Одно видео я снимал летом, про рейтрейсинг

  • @kirillsviderski4739
    @kirillsviderski4739 3 роки тому

    Мелкое замечание, но я слишком нудный. Надо чуть донастроить гитигнор, разве на Райдере(верно ж?) работаешь, а не вс. А так, крутые уроки!

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Гитигнор со старого проекте взял, который на vc был, все верно

  • @DeMoZyou
    @DeMoZyou 3 роки тому

    А почему капсулы не энтитисы?

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Не совсем понял вопрос

    • @DeMoZyou
      @DeMoZyou 3 роки тому

      @@gaitavr1992 каждая капсула - это гейм обжект на сцене. И в иерархии он виден. Я просто думал, рас уж с жобами что то делать, то можно и объекты на сцене создавать как Entity. Конечно, в рамках видео по жобам, это будет лишним усложнением.

    • @gaitavr1992
      @gaitavr1992  3 роки тому +1

      А ну я рассматриваю только job систему без ecs на данный момент

    • @DeMoZyou
      @DeMoZyou 3 роки тому +1

      @@gaitavr1992 до твоего видео и не подозревал, что job систему можно использовать отдельно от ECS =)

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Ну это одна из трех составляющих dots

  • @МаксКузнец-п1б
    @МаксКузнец-п1б 3 роки тому +2

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

    • @gaitavr1992
      @gaitavr1992  3 роки тому

      Задавайте вопросы)

    • @МаксКузнец-п1б
      @МаксКузнец-п1б 3 роки тому

      @@gaitavr1992 Спасибо, я теперь понимаю что я лох. Буду продолжать обучаться. Сложно понять какой у тебя уровень когда ты занимаешься разработкой один по вечерам под пивко) А сколько лет вы занимаетесь геймдевом?

    • @gaitavr1992
      @gaitavr1992  3 роки тому +1

      7

    • @МаксКузнец-п1б
      @МаксКузнец-п1б 3 роки тому

      @@gaitavr1992 а ну у меня тогда ещё всё впереди, я ток где то с полгода занимаюсь)

    • @JackFastGame
      @JackFastGame 3 роки тому +1

      Многопоточность непростая тема, ничего страшного, что ты ничего не понял.

  • @ИгрушкиИльюшки
    @ИгрушкиИльюшки 3 роки тому

    А можно ссылку на гит.

    • @gaitavr1992
      @gaitavr1992  3 роки тому +3

      github.com/gaitavr/UnityJobSystem.git