Генерирую Замки в Unity. Процедурная генерация.

Поділитися
Вставка
  • Опубліковано 4 лют 2025
  • Ігри

КОМЕНТАРІ • 50

  • @cubicworld01
    @cubicworld01 3 дні тому +22

    Чувак ты гений! Ты полюбому тогда должен знать кто такой Onigiri)

  • @ЕРЛАНЕРМЕКБАЙ-й1ф
    @ЕРЛАНЕРМЕКБАЙ-й1ф 3 години тому +1

    Привет всем камент за поддержку 😊 😁👍👌👍👍👍👍 ❤ за труды 👍👍👍👍👍🔥🔥🔥🔥🔥👌👌👌👌👌 за развитие 👌👍👍👍👍👍🔥🔥🔥🔥🔥😊 ты класс процедурное генератор в игре гре как не снимешь видео а 😊🤔

  • @Delhat-z9q
    @Delhat-z9q 2 дні тому +1

    Конечный результат с произвольными стенами выглядит как интересная фишка для какой-нить стратежки

    • @СульфодиесОвер-лорд
      @СульфодиесОвер-лорд 2 дні тому +1

      я даже знаю для какой *на заднем плане началось щибитание долгоносиков*

  • @OnigiriScience
    @OnigiriScience 2 дні тому +5

    7:05 Objective-c - это как c++, но только хуже)

    • @данилка2004
      @данилка2004  2 дні тому

      А про него как-то вообще ничего не слышал, учту 🌛

    • @JohnnyJoestar790
      @JohnnyJoestar790 11 годин тому

      Пайтон это хуже

  • @annymeow2777
    @annymeow2777 5 днів тому +3

    Шикарный видос, спасибо!

  • @Cr1cks0
    @Cr1cks0 3 дні тому +4

    Очень круто, продолжай!

  • @AlexSav-m2h
    @AlexSav-m2h День тому +1

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

  • @lev.bortov
    @lev.bortov 5 днів тому +1

    красавец, умница, гений
    мало того, что взял интересную и сложную тему, так ещё понятно всё объяснил и сделал видос, смотреть который одно удовольствие 🫀

  • @ДмитрийПоловков
    @ДмитрийПоловков 3 дні тому +1

    блин, мне это нафиг не нужно) но это было безумно интересно!) даже какая-то навязчивая идея повторить зародилась на задворках разума) СпасибО!

  • @DeadRabbitCanDance
    @DeadRabbitCanDance 4 дні тому +2

    В целом неплохо.
    Вот мои мыслишечки: В UE5.3 есть процедурная генерация PCG. Один из методов реализованных в UE 5.3 - это генерация по текстовому правилу вдоль сплайна безье кривой.
    Привила записываются в формате напоминающем регулярные выражения
    ну например [1,2,3](1-3)[1:10,2:1,3:1](*)[5](1)[6](1)[5](1)
    элементы 1,2,3 будут повторены (1-3) раза с равной вероятностью, далее
    элементы 1,2,3 будут повторены (*) бесконечное число раз с вероятностью по весам 1=10, 2=1,3=1
    и элементы 5, 6, 5 будут по одному разу в указанном порядке в конце пути
    Даже если кривая будет замкнута - у неё всё равно будет ведь начало и конец - так вот правило в соответствии с этим и сработает
    Но остается вопрос - как придумать язык правил, чтобы элементы воздействовали не только на выбор по пути (соседей справа и слева) а чтобы в этом текстовом паттерне можно было описать правило для более общих закономерностей или исключений. Тут у меня даже идеи как устроить сам формат записи - нет.
    Можно сделать что-то типа структур с ограничивающими условиями для соседей по краям, сверху и снизу или по признакам распространения на площадь
    в качестве контрольного, чисто для себя, чтобы продумать как можно сделать саму запись правил, я придумал такую тестовую задачу:
    рассматриваем генерацию стены с полом, потолком и пола вдоль стены.
    на стене могут быть развешаны картины или к стене может быть придвинут шкаф - картины за шкафом вешать по логике примера - нельзя. Также с потолка могут свисать лампы на проводах, они загораживают картины, но должны быть между картинами и там где свисают лампы - на полу могут быть низкие предметы (тумбочки, столики, вазы). картины не должны идти одна за другой без разрыва, расстояние между лампами должно быть от 5 до 15 юнитов. Ну это просто пример описывающий что в данном случае должна быть связь в правилах "на стене" "на полу у стены" и "на потолке у стены".

    • @данилка2004
      @данилка2004  4 дні тому +1

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

    • @DeadRabbitCanDance
      @DeadRabbitCanDance 4 дні тому +1

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

  • @Kamingos
    @Kamingos 6 днів тому

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

  • @limestoneMinecraft
    @limestoneMinecraft 4 дні тому

    Выше всяких похвал. Лайк.

  • @NikitchaEn
    @NikitchaEn 3 дні тому

    Кратко и понятно. Благодарю

  • @levinowak
    @levinowak 4 дні тому

    Годнота! Автор, пили еще)

  • @СульфодиесОвер-лорд

    замок построен!

  • @redlion2753
    @redlion2753 4 дні тому +2

    Ниуя непонятно, но очень интересно.
    Хотелось бы более подробно с объяснениями как и что, с примерами кода.

    • @novalue2741
      @novalue2741 3 дні тому

      Пожалуйста, не стоит. Автор сам отметил, что на UA-cam полно видео о Wave Function Collapse, и все это можно легко найти и понять. Что касается стен, это связано с геометрией: мы используем два вектора, чтобы найти третий, ортогональный, с помощью векторного произведения.
      Добавление большего количества кода может только навредить, ведь твое желание сводится к обсуждению реализации, а это, как правило, не так интересно.
      Такой контент может вдохновить на создание своей версии и помочь улучшить навыки. Превращать ознакомительный и развлекательный материал в учебный - звучит довольно скучно.

  • @vadimv1501
    @vadimv1501 2 дні тому

    мегахорош.( еще три слова)

  • @YarTom_
    @YarTom_ 4 дні тому

    Круто, просто реально круто

  • @YaYmsc
    @YaYmsc 3 дні тому

    Крутой 👍

  • @seeseeph
    @seeseeph 2 дні тому

    вау!

  • @DeAth_mech08
    @DeAth_mech08 9 днів тому

    Спасибо тебе огромное

  • @Tictac654
    @Tictac654 3 дні тому

    Мне кажется ты можешь сделать очень крутую игру

  • @farkasvilkas5839
    @farkasvilkas5839 День тому

    как я понял, процед генерация не способна сделать уровень интересным.
    Сначала нужно сделать крутую игру. А потом можно что то немного погенерировать. Чуточку.
    Опасность в том что результат мб настолько непредсказуемый, что игрок просто уткнется в тупик, как пример.
    Вообще, каждый уровень дб осмысленный. Учитывается даже положение Солнца.
    Но для простеньких по графону рогаликов это канает. В Диабло 1 мне тоже оч нравится генерация подземелий.
    В Торчлайте 1 и 2 тоже хорошо.

  • @lxHITMAN
    @lxHITMAN 3 дні тому +1

    А зАмки то где? Генерация стены какая-то

  • @Murrsik_
    @Murrsik_ 9 днів тому

    А ты шаришь в этой теме)

  • @denpro633
    @denpro633 3 дні тому

    Ну такое, я думал по ходу видео пойму, что ты хотел повторить из tiny glade, но в итоге ничего не понятно. Сначала генерацию с ограничениями делал, потом просто алгоритм построения стены реализовал.

  • @mygazer9855
    @mygazer9855 3 дні тому +2

    Контентно!!!!

  • @valad699
    @valad699 4 дні тому

    Привет, а ты не сохранял ссылки на источники? Хотел бы узнать их

    • @данилка2004
      @данилка2004  4 дні тому +1

      Не помню как ютуб к ссылкам в комментариях относится. Создал тгк @Empathy_danilka - там один единственный пост с этими ссылками

  • @yanwar6033
    @yanwar6033 3 дні тому

    а можно пж поподробнее как ты сделал класс Grid. Просто тоже думаю как мне сделать грид в UE5, там тоже только чисто для 2D встроенный функционал есть

    • @данилка2004
      @данилка2004  3 дні тому +1

      Получал дочерние объекты и сдвигал их в соответствии с тремя векторами: grid size, cell size, spacing size.
      1 - отвечает за то, сколько ячеек будет на каждой из осей
      2 - размер ячейки на каждой оси
      3 - промежуток между ячейками по каждой оси
      Сдвигал просто пробегаясь циклом по каждой ячейке
      У юнити есть атрибут [ExecuteInEditMode], который позволяет выполнять скрипт вне рантайма игры, есть ли подобие в анриале - не знаю

    • @yanwar6033
      @yanwar6033 3 дні тому

      @@данилка2004 спасибо большое!

  • @МарченкоТимофей-ж9н

    Ого

  • @Genorred
    @Genorred 2 дні тому

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

  • @narzaru
    @narzaru 4 дні тому

    1:58 Потому что программирование - развитие математики. Кажется вполне естественным описывать алгоритмы и идеи решения задач на этом самом математическом языке.

    • @mykhailo_yashchuk
      @mykhailo_yashchuk 3 дні тому +1

      Геймдев одно из самых сложных направлений, где математика основа для работы с графикой, физикой, AI и оптимизацией. Однако в условной веб-разработке, особенно в front-end`e или CRUD-приложениях, математика часто сводится к базовым операциям. Утверждать, что программирование - это развитие математики, слишком узко, так как программирование включает множество дисциплин, где математика может быть как ключевой, так и второстепенной. Это скорее инструмент, а не суть.

  • @Vitaliy-510
    @Vitaliy-510 3 дні тому

    Ауеть

  • @dimanicetry
    @dimanicetry 9 днів тому

    чиназус

  • @Tictac654
    @Tictac654 3 дні тому

    Мне кажется ты можешь сделать очень крутую игру