Генерация подземелья как в Binding of Isaac [Unity 3D] [Tutorial]

  Рет қаралды 48,394

Emerald Powder

Emerald Powder

Күн бұрын

Как процедурно генерировать подземелье, или dungeon, для игры в стиле Rougelike, вроде The Binding of Isaac или Enter the Gungeon. В этом продолжении серии про процедурную генерацию я покажу как разнообразить создавать другой тип уровня - Rougelike подземелье. Это один из множества вариантов алгоритма генерации, и его можно улучшать, в том числе используя техники из прошлых видео
Содержание:
Расстановка комнат - 0:20
Соединение проходов - 8:24
Вращение комнат - 17:00
Ссылка на готовый проект: github.com/eme...
Прошлые видео:
• Процедурная генерация ...
• Процедурная генерация ...
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Пікірлер: 127
@npoctobblpogok3730
@npoctobblpogok3730 Жыл бұрын
По-моему единственный чел который объясняет норм генерацию. Я искал для UE5, но думаю тут похожая схема, на плюсах разберусь. Главное логику понять. А ты ее объясняешь. Спасибо.
@alexeyrival
@alexeyrival 5 жыл бұрын
Отличный видос! Всё понятно, без воды и со всем самым нужным! Жду следующий видос в этой серии!)
@bubbletop1135
@bubbletop1135 5 жыл бұрын
Отличный формат видео, без программистически-математических терминов. Про процедурную генерацию видео заходят! Хотелось бы услышать про генерацию на основе шума Перлина, спасибо за видос!
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Спасибо! Да, как раз думаю об этом в следующей серии, ладшафты на основе какого-нибудь шума, если у самого получится классный генератор
@МирославМалюсейко
@МирославМалюсейко 4 жыл бұрын
Видео отличное.) Очень полезная инфа. У кого не работает ElementAt, нужно подключить System.Linq. Потому как на видео она вроде не подключена, но этот метод вроде лежит там.
@ЮстинРибінский
@ЮстинРибінский 3 жыл бұрын
Дай бог тебе здоровья за эту подсказку
@slava7522
@slava7522 5 жыл бұрын
Автор, огромное спасибо за твои труды, очень годный контент) Взял за основу твой код из видео и перевел немного в другую механику +2д, объясняешь очень понятно, так что проблем даже не появилось)
@who_am_i3901
@who_am_i3901 5 жыл бұрын
Привет, а у вас случайно не остался исходник с генерацией подземелья?
5 жыл бұрын
Очень нравится, продолжай)
@vegas5955
@vegas5955 5 жыл бұрын
Процедурная генерация очень интересная тема! Хорошие ролики пилишь, гуд джоб!
@arterium2564
@arterium2564 5 жыл бұрын
Супер! Дальнейшего развития.
@KoliaBoroda
@KoliaBoroda 2 жыл бұрын
по вашим роликам на вид все просто, за вечер все сделать можно
@TypicalRabbit
@TypicalRabbit 5 жыл бұрын
Слишком мало подписчиков для такого качества видео....
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Спасибо! Надеюсь дальше будет больше с:
@andrewmolotkoff4231
@andrewmolotkoff4231 5 жыл бұрын
Оно же и к лучшему, от автора не требуют постоянного выпуска контента, что в свою очередь положительно отражается на качестве!
@vindastris4982
@vindastris4982 5 жыл бұрын
@@EmeraldPowder может ребрендинг? Название канала тяжело запоминать. Хотя не уверен, что это значимо. Но то, что на слуху, проще запоминать.
@ShrekPNG
@ShrekPNG 4 жыл бұрын
@@vindastris4982 я тот человек, который два месяца думал, что название канала "Emerald power"
@stasaleksandrovich7770
@stasaleksandrovich7770 4 жыл бұрын
@@ShrekPNG +++
@krutetskiy
@krutetskiy 5 жыл бұрын
Невероятно интересно. Большое спасибо.
@unity4025
@unity4025 3 жыл бұрын
Либо после python сложно переварить, либо я тупой, но со второго раза понял схему. Осталось только усовершенствовать для комнат разных размеров и частоты появления комнат. Спасибо большое:))))
@Fantom-4512
@Fantom-4512 3 жыл бұрын
Автор, спасибо за труды! Низкий поклон!)
@mdayzz
@mdayzz 5 жыл бұрын
Прекрасное видео. Подписка и лайк
@egorkorotaev6848
@egorkorotaev6848 4 жыл бұрын
Огонь как круто!) Чувак, ты бомба!)
@ZmastaZz
@ZmastaZz 4 жыл бұрын
огромное спасибо. Игра выходит на новый уровень)
@НикитаМакаров-ы2ъ6к
@НикитаМакаров-ы2ъ6к 10 ай бұрын
На осознание и реализацию данной схемы у меня ушло 6 часов. Сейчас сижу довольный, генерирую данжи. Возьму, пожалуй данный метод для своего дипломного проекта, вы ведь не против?)
@TheDzhikser
@TheDzhikser 5 жыл бұрын
Качественные уроки спасиб
@unityrututorials1327
@unityrututorials1327 4 жыл бұрын
лайков мало, не благодарные, на халяву такой контент, а им пальцем кликнуть жалко! Видосы хорошие! Очень много для себя нового в C# подчерпнул. Спасибо!
@TheDaroxeRig
@TheDaroxeRig 5 жыл бұрын
Лайк Было бы интересно увидеть сложный вариант генерации
@АлесьЖ-б8ж
@АлесьЖ-б8ж 4 жыл бұрын
Насколько сложный?
@rentil_ld
@rentil_ld 2 жыл бұрын
Для тех кто взял этот код для 2д проекта и у кого проблема с спавном комнат друг в друге,тут прикол в том что надо в скрипте поменять Vector3 на Vector2 и тогда комнаты будут спавниться нормально,еще данная функция поворота комнат не корректно работает в 2д,лично я ее убрал и добавив больше вариантов комнат работает +- как и надо
@dcat1832
@dcat1832 4 жыл бұрын
Чел ты просто лудшый
@pivovar7992
@pivovar7992 5 жыл бұрын
Спасибо! ))))))))
@The_Mavrik
@The_Mavrik 5 жыл бұрын
них не понятно, но очень интересно =)
@BigPapochka12
@BigPapochka12 4 жыл бұрын
0 дизов уважение! Очень интересно
@gardencorpse8114
@gardencorpse8114 5 жыл бұрын
Супер круто, особенно, когда на фоне тихо играли треки из OST Skyrim. Как я понимаю спавн предметов, осуществляется по той же системе как и с фонарями в комнатах, или там есть свои "подводные камни"?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Да, всякие монетки/лут/сундуки можно теми же скриптами спаунить. Если нужна какая-то хитрая логика то можно конечно много вариантов ещё придумать, просто спаунить и искать им рандомное положение, или смотреть на какие-то другие параметры и подстраивать шанс спауна, тут уже от игры зависит
@cross6922
@cross6922 3 жыл бұрын
подписываюсь
@xakristl8736
@xakristl8736 4 жыл бұрын
вау русскоязычное видео с генерацией
@Obelardos2
@Obelardos2 5 жыл бұрын
Интересно будет про генерацию не по сетке
@Alexey_Pe
@Alexey_Pe 4 жыл бұрын
Забавно, я использую ue4, а не Unity, но всё равно смог чему то научиться, вообще не знал про префабы (ну в ue4 их и нет, у нас по другому))
@360cl3
@360cl3 5 жыл бұрын
Я посмотрел видос и мне понравилось, но как можно сделать коридоры между комнатами как в Enter the gungeon? Буду благодарен если ответишь :D А и ещё! Этот код подходит под 2д игры?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Для 2д игры - да, подходит практически без изменений Этот алгоритм в основном для комнат одинакового размера, как в первом Айзеке скорее. Можно туда вкрутить ещё комнаты в два раза длиннее/шире, но если хочется ещё коридоры наверное лучше придумать что-нибудь другое, где у комнат может быть любой размер
@костантинденисов
@костантинденисов 4 жыл бұрын
А как быть например если комнаты разного размера. У них ведь не выйдет задать определённый вектор
@Tezla0
@Tezla0 5 жыл бұрын
Предлагаю в следующий раз сделать генерацию лабиринта с входом и выходом (должна быть возможность выйти из лабиринта, а не просто тупая генерация).
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Да, думаю про генерацию лабиринтов видео тоже зайдёт в эту серию, как раз недавно делал игру с лабиринтами
@ИльяАндреевичДиденко
@ИльяАндреевичДиденко 4 жыл бұрын
Круто, спасибо. С размещением комнат правда не очень понятно.. много ифов. Запутывают
@traderslick9763
@traderslick9763 5 жыл бұрын
Может, это упоминалось ранее, но можно ли в юнити прогружать небольшие локации мгновенно, примерно как в antichamber?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Смотря как локация сохранена - если как у меня префаб, то да, просто Instantiate работает почти мгновенно, если конечно не очень большой префаб. Но если большой то на несколько можно разбить. А если локация в отдельной сцене - то можно вызывать SceneManager.LoadSceneAsync, он не создаёт фриза при переключении
@traderslick9763
@traderslick9763 5 жыл бұрын
@@EmeraldPowder, спасибо! =)
@qNighthockp
@qNighthockp 4 жыл бұрын
А можно генерацию для комнат разных размеров?)
@LIMONCHIK948
@LIMONCHIK948 Жыл бұрын
Видео топ но у меня при открытее проекта ничего не работает
@qterrian4118
@qterrian4118 4 жыл бұрын
Вопрос наверное глупый , но из-за чего префабы комнат не хотят/не могут попасть в "RoomPrefabs" и "StartingRoom" в инспекторе? Код такой же, как у вас.
@chillcowgames
@chillcowgames 3 жыл бұрын
На префаб повесьте скрипт Room, тогда все будет ок, если еще актуально)
@lifeteo2846
@lifeteo2846 5 жыл бұрын
А можно видео про генерацию более сложного "мира" для FPS ? :) или оно делается +- так же?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Генерацию можно тысячей разных способов сделать, зависит от геймплея и визуального сеттинга какой лучше. Вот такой с чанками для небольших уровней в помещении подходит и для FPS, думаю, а если там всякие горы да пустоши, то уже лучше зайдёт подход со всякими шумами и ландшафтами. Ну, и куча всяких ещё вариантов какой может быть игра, чтобы пришлось что-нибудь оригинальное придумывать, хоть круглые планеты в космосе, хоть многоуровневые пещеры
@aanxis4241
@aanxis4241 4 жыл бұрын
Добрый день! Ответьте пожалуйста, если GetLength(0)(он же x) возвращает количество строк, то почему при проверки ячеек (комнат поблизости), например "if (x > 0 && SpawnedRooms[x - 1, y] == null)" он проверяет левую ячейку, хотя по факту, должен проверять верхнюю ячейку, так как получиться [4, 5], то есть 4 строка и 5 столбец, не могу понять!!Помогите! Если судить по координатам x и y, то в принципе логично, но тут массив и проверка ячеек происходит!
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Добрый. В двумерных массивах мы сами решаем первое число будет строчкой или столбцом, я тут решил что первая координата будет x, то есть по сути номер столбца, так что и когда создавал массив передавал туда ширину первым параметром, и когда обращаюсь первым идёт X, и соответственно GetLength(0), то есть максимальное число которое можно первым параметром в массив передать - количество столбцов у меня
@aanxis4241
@aanxis4241 4 жыл бұрын
@@EmeraldPowder Большое спасибо!!!
@ivanryabinin6975
@ivanryabinin6975 3 жыл бұрын
а что делать если комнаты спавнятся только по горизонтали и накладываются друг на друга?
@ZkeeeRus
@ZkeeeRus 2 жыл бұрын
Незнаю, нужна ли тебе эта информация, но я столкнулся с этой проблемой тоже. Тк я не смог ввиду ограничения версии юнити использовать ?. я кинул try{}catch{}, возможно как и ты, мне помогло 4 таких конструкции на каждую проверку. Но! Возможно также проблему вызывало что (как мне показалось) сначала создается дверь для соседа, а только после комната ложится в массив комнат.
@merekgrimaldus4497
@merekgrimaldus4497 5 жыл бұрын
Добрый день! У меня есть префабы комнат размером 10х10 по x и z соответственно, одна с 4-мя дверьми, одна только с одной(принципиально, точно так же, как и у вас в видео). Использовал ваш код, изменив только RoomsPlacer: поменял множитель в 57-й строке с 12 на 10. Но у меня комнаты генерируются не по сетке, а как-то случайно, накладываются друг-на-друга или находятся на расстоянии друг от друга. Можете подсказать, в чем может быть проблема?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Добрый. По идее всё правильно, может быть внутри префабов сами комнаты как-то сдвинуты? Если поставить префаб в (0,0,0) то комната должна быть прямо по центру сцены
@merekgrimaldus4497
@merekgrimaldus4497 5 жыл бұрын
@@EmeraldPowder Спасибо за ответ, помогло. Разобрался и понял, что важно, чтоб и pivot point объекта был по центру :)
@wave1249
@wave1249 3 жыл бұрын
этот код работает для 2д юнити и работы со спрайтами?
@zloy_kak_tus
@zloy_kak_tus 3 жыл бұрын
Автору респект. А подскажите кто-нибудь, как сделать чтоб одна из комнат заспавнилась только один раз а остальные рандомно?
@EnotoButerbrodo
@EnotoButerbrodo 3 жыл бұрын
Сделай переменную булевую. Когда спавнишь комнату - меняешь ее. Если изменена, то ее больше не спавнишь. При сппвне ее проверяй
@zombiHello
@zombiHello 5 жыл бұрын
а как быть в случае когда размеры чанков разные, как высчитать их положение то что-то не могу понять. надеюсь на ваш ответ
@sasha8409
@sasha8409 5 жыл бұрын
РазмерДлинногоЧанка - 12, лень описывать кодом но думаю тут и так понятно))
@zombiHello
@zombiHello 5 жыл бұрын
@@sasha8409 так а что мне это даст? конечно можно сделать чанки (комнаты они же) строго определенного размера, но не хотелось бы избавиться от этого ограничения. да и что мне даст РазмерДлинногоЧанка? типа на эту величину смещать?
@sasha8409
@sasha8409 5 жыл бұрын
@@zombiHello я сам не особо понял что написал, вроде логично, вроде не, ну для того что ты хочешь можно попробовать создавать каждому чанку на каждую сторону объект, потом по нему выравнивать другой чанк, но это уже другая история да и вообще заморочек куча будет
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Добавить конечно же в Room параметры "ширина" и "высота" в клеточках, где-нибудь после 56 строчки (в скрипте github.com/emeraldpowder/ProceduralGeneration/blob/master/Assets/RoomsPlacer.cs#L56), когда выбираем комнату которую туда вставить, проверять влезет ли она, если она больше одной клетки, и вместо 61 строчки засовывать эту комнату не в одну клетку массива, а в несколько. Сделать конечно не так просто как сказать, но по сути либо два цикла по размеру комнаты, либо пачка ifов, если размеров комнат не так много (2х1, 1х2, 2х2). А с дверьми вот придётся подумать, тут уже не хватит четырёх переменных, придётся какой-то список вести
@sasha8409
@sasha8409 5 жыл бұрын
@@EmeraldPowder а почему бы не выравнивать способом с пустыми обьектами? Как в 1 уроке
@OvoshnoeRagu
@OvoshnoeRagu 2 жыл бұрын
гайд отличный, но толи я наркоман, толи движок долбанутый, я не знаю почему, но у меня все двери перепутаны верх это низ, лево это право и так далее, в целом всё работает правда некоторые двери заблокированы и это создаёт вид лабиринта, но мне это даже нравится)
@risve_gliato7239
@risve_gliato7239 Жыл бұрын
А что делать если у меня комнаты спавняться в друг друге
@ИвановМаксим-ф8б
@ИвановМаксим-ф8б 5 жыл бұрын
А что за тип переменной, или хз что: Room. Как я понял это скрипт, есть видео где этот Room?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Это просто скрипт, который висит на каждой комнате-чанке. Он на 1:33 появляется, там немного кода из прошлого туториала, цикл который рандомно вращает кирпичики, чтобы смотрелось интереснее. А потом где-то на 8:40 ещё туда добавляем переменные со ссылками на двери этой комнаты, чтобы их было легко из скрипты получить
@ИвановМаксим-ф8б
@ИвановМаксим-ф8б 5 жыл бұрын
@@EmeraldPowder Спасибо :) Автору канала респект, дружелюбный :)
@ИвановМаксим-ф8б
@ИвановМаксим-ф8б 5 жыл бұрын
@@EmeraldPowder Что делать если ошибка с ElementAt? "HashSet" Не содержит определения для "ElementAt"
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
@@ИвановМаксим-ф8б Надо using System.Linq; написать, или в студии на лампочку нажать, чтобы библиотеку подключить
@ИвановМаксим-ф8б
@ИвановМаксим-ф8б 5 жыл бұрын
@@EmeraldPowder Спасибо :) Пытаюсь учится...
@timetimer6429
@timetimer6429 3 жыл бұрын
как сделать так, чтобы комната с боссом спавнилась ровно 1 раз?
@EvsBeat
@EvsBeat 5 жыл бұрын
Не могу перетянуть префабы в массив в инспекторе. В чем может быть проблема?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Значит тип объекта не совпадает с типом поля куда перетаскиваешь. Скорее всего на объектах не висит компонент Room, или тип переменной не тот
@EvsBeat
@EvsBeat 5 жыл бұрын
@@EmeraldPowder Большое спасибо!)) Помогло, кинул скрипт на уровни и заработало. Теперь мучаюсь с другой проблемой генерация только горизонтальная и комнаты одна на другую накладываются. Видимо с vacantPlaces накосячил)
@EvsBeat
@EvsBeat 5 жыл бұрын
Все разобрался это я дурной) у меня 2д а комнаты спавнились по оси z))
@GameWorldMrKIller
@GameWorldMrKIller 4 жыл бұрын
Боже мой, а делать комнату уровня из таких блоков, это же жесть, типо оптимизация херовая же, я бы просто смоделил в бленедре комнаты, и текстуры рамдомизировал через шумы
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Согласен, комнаты совсем не оптимизированные, как и в прошлом видео чанки из этих же блоков. Но эти блоки у меня уже были готовые, чтобы на их примере рассказать про генерацию, а с серыми кубами не хотелось видео снимать, так что это просто для примера
@_Dreamer
@_Dreamer 5 жыл бұрын
Привет! Как тебе такая идея, сделать видео уроки болт?
@The_Mavrik
@The_Mavrik 5 жыл бұрын
У меня всё работает, но выскакивает 1 раз ошибка IndexOutOfRangeException: Index was outside the bounds of the array. RoomPlacer.PlaceOneRoom () (at Assets/Scripts/RoomPlacer.cs:44) RoomPlacer+d__3.MoveNext () (at Assets/Scripts/RoomPlacer.cs:20)
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Странно, на 44 строчке вроде бы ничего нет, если ничего не менял в скрипте то не должно такого быть
@The_Mavrik
@The_Mavrik 5 жыл бұрын
@@EmeraldPowder всё работает =)
@Axil-ww
@Axil-ww 5 жыл бұрын
Это все конечно хорошо, но такое количество GameObject на каждый кубик - это плохо. Если у тебя стенки или пол комнаты не меняются - слей все кубики в один mesh. Кроме того если рисовать весь кубик у тебя будет бешеный Ower Draw.
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Да, у меня там совсем не оптимально это всё, так в продакшен не надо выкладывать. По хорошему если бы я планировал релизить эту игру то надо было бы эти комнаты собрать либо в 3д редакторе, чтобы весь пол и плоские стены были одним полигоном, или с помощью какого-нибудь ProBuilder. Есть ещё плагины которые прямо одним кликом все меши в один склеивают, но не уверен насколько они хорошо работают. Но так как туториал не про это, позволил себе на уровне прототипа сделать
@_lucky_8851
@_lucky_8851 4 жыл бұрын
ссылку на ассеты пж
@mebuckee
@mebuckee 9 күн бұрын
Всем привет, кто не знает как сделать чтобы были комнаты не квадраты, а прямоугольники то вот часть кода которую надо изменить она для 2D, но для 3D аналогично будет: if (ConnectToSomething(newRoom, position)) { newRoom.transform.position = new Vector3(position.x - 5, 0f, 0f) * 11.52f; // тут задаём для одной координаты длину, у меня это 11.52f newRoom.transform.position = new Vector3(newRoom.transform.position.x / 6.4f, position.y - 5, 0f) * 6.4f; // тут задаём для второй координаты высоту, у меня это 6,4f, но мы ссылаемся на уже заданную координату newRoom.transform.position.x и делим её на высоту 6,4f комнаты чтобы повторного умножения не было spawnedRooms[position.x, position.y] = newRoom; return; } Как-то так
@terraider7314
@terraider7314 5 жыл бұрын
хороший гайд но не черта не понятно
@blettualet3567
@blettualet3567 5 жыл бұрын
*не скачивается оставь норм ссылку пж*
@itshcolnik4627
@itshcolnik4627 5 жыл бұрын
а нет все норм качается (мой 2 акк)
@bonbuasan
@bonbuasan 4 жыл бұрын
Можна такой же урок но для unreal ?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
В нём я особо не разбираюсь, пару раз садился разобраться, но через несколько дней возвращался к удобной и привычной Unity
@bonbuasan
@bonbuasan 4 жыл бұрын
@@EmeraldPowder Жаль ,что такой чудесный контент доступен только для разработчиков на Unity)
@philainel
@philainel 3 жыл бұрын
@@bonbuasan в разработке ведь важна логика, просто открываешь доки и сопоставляешь по каждой строчке
@yarichi
@yarichi 5 жыл бұрын
Сделай пожалуйста генератор ландшафта
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Думаю скоро сделаю видео, как раз сейчас пытаюсь сделать красивый генератор
@blettualet3567
@blettualet3567 5 жыл бұрын
Как сцену в юнити вставить котоуюю скачал
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Там не сцена по ссылке, а проект целиком, в Unity жми Add и указывай путь к скачаной папке
@rafik5179
@rafik5179 3 жыл бұрын
1 Диз, впервые я вижу такую силу
@artemzh27
@artemzh27 3 жыл бұрын
Братан, не пропадай! У тебя на видео один (!!!) дизлайк =)))
@njaab5097
@njaab5097 5 жыл бұрын
Некоторые операторы и методы не работают так же, как и у тебя.
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Какие?
@njaab5097
@njaab5097 5 жыл бұрын
@@EmeraldPowder Как минимум ElementAt(), другие не помню, увы. Пришлось делать через костыль - сделал обычный массив, куда через цикл перекинул все значения и от туда уже брал нужное.
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Для неё нужно подключить библиотеку System.Linq. В ней многие функции для списков и массивов, которые я иногда использую
@lgsmdlgsmdn2581
@lgsmdlgsmdn2581 2 жыл бұрын
8:04
@The_Mavrik
@The_Mavrik 5 жыл бұрын
пипец как интересно и познавательно, но сука мозг плавиться, как ты сам в этом не запутался?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Спасибо. Со временем большие объёмы кода начинают пугать всё меньше, привыкаешь)
@GluukyBoii
@GluukyBoii 4 жыл бұрын
Раньше тоже плавился))
упс #aminkavitaminka #aminokka
00:12
Аминка Витаминка
Рет қаралды 2,2 МЛН
Banana vs Sword on a Conveyor Belt
01:00
Mini Katana
Рет қаралды 77 МЛН
Tilt 'n' Shout #boardgames #настольныеигры #games #игры #настолки #настольные_игры
00:24
Thank you 😅
00:15
Nadir Show
Рет қаралды 46 МЛН
Генерация мира из 3D тайлов: часть 2
22:01
Emerald Powder
Рет қаралды 33 М.
Полная теория процедурной генерации
18:51
Делаю процедурную генерацию в Unity
13:15
Как устроены швейные машинки? [Veritasium]
16:50
⚡ Всё про события в Unity 3D
21:38
Emerald Powder
Рет қаралды 111 М.
упс #aminkavitaminka #aminokka
00:12
Аминка Витаминка
Рет қаралды 2,2 МЛН