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

  Рет қаралды 46,175

Emerald Powder

Emerald Powder

5 жыл бұрын

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

Пікірлер: 125
@npoctobblpogok3730
@npoctobblpogok3730 5 ай бұрын
По-моему единственный чел который объясняет норм генерацию. Я искал для UE5, но думаю тут похожая схема, на плюсах разберусь. Главное логику понять. А ты ее объясняешь. Спасибо.
@alexeyrival
@alexeyrival 5 жыл бұрын
Отличный видос! Всё понятно, без воды и со всем самым нужным! Жду следующий видос в этой серии!)
@vegas5955
@vegas5955 4 жыл бұрын
Процедурная генерация очень интересная тема! Хорошие ролики пилишь, гуд джоб!
@arterium2564
@arterium2564 4 жыл бұрын
Супер! Дальнейшего развития.
@krutetskiy
@krutetskiy 5 жыл бұрын
Невероятно интересно. Большое спасибо.
@Fantom-4512
@Fantom-4512 2 жыл бұрын
Автор, спасибо за труды! Низкий поклон!)
@slava7522
@slava7522 4 жыл бұрын
Автор, огромное спасибо за твои труды, очень годный контент) Взял за основу твой код из видео и перевел немного в другую механику +2д, объясняешь очень понятно, так что проблем даже не появилось)
@who_am_i3901
@who_am_i3901 4 жыл бұрын
Привет, а у вас случайно не остался исходник с генерацией подземелья?
@bubbletop1135
@bubbletop1135 5 жыл бұрын
Отличный формат видео, без программистически-математических терминов. Про процедурную генерацию видео заходят! Хотелось бы услышать про генерацию на основе шума Перлина, спасибо за видос!
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Спасибо! Да, как раз думаю об этом в следующей серии, ладшафты на основе какого-нибудь шума, если у самого получится классный генератор
@user-tw9oz4ee9v
@user-tw9oz4ee9v 3 жыл бұрын
Видео отличное.) Очень полезная инфа. У кого не работает ElementAt, нужно подключить System.Linq. Потому как на видео она вроде не подключена, но этот метод вроде лежит там.
@user-sw3hq3sf9c
@user-sw3hq3sf9c 3 жыл бұрын
Дай бог тебе здоровья за эту подсказку
@niklasxxx1
@niklasxxx1 4 жыл бұрын
очень крутой гайд, можно продолжить тему)))
@egorkorotaev6848
@egorkorotaev6848 3 жыл бұрын
Огонь как круто!) Чувак, ты бомба!)
@ZmastaZz
@ZmastaZz 4 жыл бұрын
огромное спасибо. Игра выходит на новый уровень)
@mdayzz
@mdayzz 5 жыл бұрын
Прекрасное видео. Подписка и лайк
@KoliaBoroda
@KoliaBoroda 2 жыл бұрын
по вашим роликам на вид все просто, за вечер все сделать можно
@TheDzhikser
@TheDzhikser 4 жыл бұрын
Качественные уроки спасиб
@TypicalRabbit
@TypicalRabbit 5 жыл бұрын
Слишком мало подписчиков для такого качества видео....
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Спасибо! Надеюсь дальше будет больше с:
@andrewmolotkoff4231
@andrewmolotkoff4231 4 жыл бұрын
Оно же и к лучшему, от автора не требуют постоянного выпуска контента, что в свою очередь положительно отражается на качестве!
@vindastris4982
@vindastris4982 4 жыл бұрын
@@EmeraldPowder может ребрендинг? Название канала тяжело запоминать. Хотя не уверен, что это значимо. Но то, что на слуху, проще запоминать.
@ShrekPNG
@ShrekPNG 3 жыл бұрын
@@vindastris4982 я тот человек, который два месяца думал, что название канала "Emerald power"
@stasaleksandrovich7770
@stasaleksandrovich7770 3 жыл бұрын
@@ShrekPNG +++
@unity4025
@unity4025 3 жыл бұрын
Либо после python сложно переварить, либо я тупой, но со второго раза понял схему. Осталось только усовершенствовать для комнат разных размеров и частоты появления комнат. Спасибо большое:))))
@TheDaroxeRig
@TheDaroxeRig 4 жыл бұрын
Лайк Было бы интересно увидеть сложный вариант генерации
@user-im1in2bn8o
@user-im1in2bn8o 4 жыл бұрын
Насколько сложный?
@pivovar7992
@pivovar7992 4 жыл бұрын
Спасибо! ))))))))
@rentil_ld
@rentil_ld 2 жыл бұрын
Для тех кто взял этот код для 2д проекта и у кого проблема с спавном комнат друг в друге,тут прикол в том что надо в скрипте поменять Vector3 на Vector2 и тогда комнаты будут спавниться нормально,еще данная функция поворота комнат не корректно работает в 2д,лично я ее убрал и добавив больше вариантов комнат работает +- как и надо
@user-rs8he3ty4d
@user-rs8he3ty4d 3 ай бұрын
На осознание и реализацию данной схемы у меня ушло 6 часов. Сейчас сижу довольный, генерирую данжи. Возьму, пожалуй данный метод для своего дипломного проекта, вы ведь не против?)
@unityrututorials1327
@unityrututorials1327 4 жыл бұрын
лайков мало, не благодарные, на халяву такой контент, а им пальцем кликнуть жалко! Видосы хорошие! Очень много для себя нового в C# подчерпнул. Спасибо!
@dcat1832
@dcat1832 3 жыл бұрын
Чел ты просто лудшый
@gardencorpse8114
@gardencorpse8114 4 жыл бұрын
Супер круто, особенно, когда на фоне тихо играли треки из OST Skyrim. Как я понимаю спавн предметов, осуществляется по той же системе как и с фонарями в комнатах, или там есть свои "подводные камни"?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Да, всякие монетки/лут/сундуки можно теми же скриптами спаунить. Если нужна какая-то хитрая логика то можно конечно много вариантов ещё придумать, просто спаунить и искать им рандомное положение, или смотреть на какие-то другие параметры и подстраивать шанс спауна, тут уже от игры зависит
@360cl3
@360cl3 4 жыл бұрын
Я посмотрел видос и мне понравилось, но как можно сделать коридоры между комнатами как в Enter the gungeon? Буду благодарен если ответишь :D А и ещё! Этот код подходит под 2д игры?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Для 2д игры - да, подходит практически без изменений Этот алгоритм в основном для комнат одинакового размера, как в первом Айзеке скорее. Можно туда вкрутить ещё комнаты в два раза длиннее/шире, но если хочется ещё коридоры наверное лучше придумать что-нибудь другое, где у комнат может быть любой размер
@_________5287
@_________5287 4 жыл бұрын
0 дизов уважение! Очень интересно
@cross6922
@cross6922 2 жыл бұрын
подписываюсь
@Obelardos2
@Obelardos2 5 жыл бұрын
Интересно будет про генерацию не по сетке
@The_Mavrik
@The_Mavrik 4 жыл бұрын
них не понятно, но очень интересно =)
@qNighthockp
@qNighthockp 3 жыл бұрын
А можно генерацию для комнат разных размеров?)
@lifeteo2846
@lifeteo2846 4 жыл бұрын
А можно видео про генерацию более сложного "мира" для FPS ? :) или оно делается +- так же?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Генерацию можно тысячей разных способов сделать, зависит от геймплея и визуального сеттинга какой лучше. Вот такой с чанками для небольших уровней в помещении подходит и для FPS, думаю, а если там всякие горы да пустоши, то уже лучше зайдёт подход со всякими шумами и ландшафтами. Ну, и куча всяких ещё вариантов какой может быть игра, чтобы пришлось что-нибудь оригинальное придумывать, хоть круглые планеты в космосе, хоть многоуровневые пещеры
@xakristl8736
@xakristl8736 4 жыл бұрын
вау русскоязычное видео с генерацией
@user-de9nu7gb8o
@user-de9nu7gb8o 3 жыл бұрын
А как быть например если комнаты разного размера. У них ведь не выйдет задать определённый вектор
@user-ht9ef2xq6b
@user-ht9ef2xq6b 3 жыл бұрын
Круто, спасибо. С размещением комнат правда не очень понятно.. много ифов. Запутывают
@Alexey_Pe
@Alexey_Pe 3 жыл бұрын
Забавно, я использую ue4, а не Unity, но всё равно смог чему то научиться, вообще не знал про префабы (ну в ue4 их и нет, у нас по другому))
@traderslick9763
@traderslick9763 5 жыл бұрын
Может, это упоминалось ранее, но можно ли в юнити прогружать небольшие локации мгновенно, примерно как в antichamber?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Смотря как локация сохранена - если как у меня префаб, то да, просто Instantiate работает почти мгновенно, если конечно не очень большой префаб. Но если большой то на несколько можно разбить. А если локация в отдельной сцене - то можно вызывать SceneManager.LoadSceneAsync, он не создаёт фриза при переключении
@traderslick9763
@traderslick9763 5 жыл бұрын
@@EmeraldPowder, спасибо! =)
@wave1249
@wave1249 2 жыл бұрын
этот код работает для 2д юнити и работы со спрайтами?
@merekgrimaldus4497
@merekgrimaldus4497 4 жыл бұрын
Добрый день! У меня есть префабы комнат размером 10х10 по x и z соответственно, одна с 4-мя дверьми, одна только с одной(принципиально, точно так же, как и у вас в видео). Использовал ваш код, изменив только RoomsPlacer: поменял множитель в 57-й строке с 12 на 10. Но у меня комнаты генерируются не по сетке, а как-то случайно, накладываются друг-на-друга или находятся на расстоянии друг от друга. Можете подсказать, в чем может быть проблема?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Добрый. По идее всё правильно, может быть внутри префабов сами комнаты как-то сдвинуты? Если поставить префаб в (0,0,0) то комната должна быть прямо по центру сцены
@merekgrimaldus4497
@merekgrimaldus4497 4 жыл бұрын
@@EmeraldPowder Спасибо за ответ, помогло. Разобрался и понял, что важно, чтоб и pivot point объекта был по центру :)
@qterrian4118
@qterrian4118 3 жыл бұрын
Вопрос наверное глупый , но из-за чего префабы комнат не хотят/не могут попасть в "RoomPrefabs" и "StartingRoom" в инспекторе? Код такой же, как у вас.
@albertmikhalev8931
@albertmikhalev8931 3 жыл бұрын
На префаб повесьте скрипт Room, тогда все будет ок, если еще актуально)
@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 Большое спасибо!!!
@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 уроке
@_Dreamer
@_Dreamer 5 жыл бұрын
Привет! Как тебе такая идея, сделать видео уроки болт?
@timetimer6429
@timetimer6429 2 жыл бұрын
как сделать так, чтобы комната с боссом спавнилась ровно 1 раз?
@_lucky_8851
@_lucky_8851 4 жыл бұрын
ссылку на ассеты пж
@LIMONCHIK948
@LIMONCHIK948 Жыл бұрын
Видео топ но у меня при открытее проекта ничего не работает
@Tezla0
@Tezla0 5 жыл бұрын
Предлагаю в следующий раз сделать генерацию лабиринта с входом и выходом (должна быть возможность выйти из лабиринта, а не просто тупая генерация).
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Да, думаю про генерацию лабиринтов видео тоже зайдёт в эту серию, как раз недавно делал игру с лабиринтами
@ivanryabinin6975
@ivanryabinin6975 3 жыл бұрын
а что делать если комнаты спавнятся только по горизонтали и накладываются друг на друга?
@ZkeeeRus
@ZkeeeRus 2 жыл бұрын
Незнаю, нужна ли тебе эта информация, но я столкнулся с этой проблемой тоже. Тк я не смог ввиду ограничения версии юнити использовать ?. я кинул try{}catch{}, возможно как и ты, мне помогло 4 таких конструкции на каждую проверку. Но! Возможно также проблему вызывало что (как мне показалось) сначала создается дверь для соседа, а только после комната ложится в массив комнат.
@risve_gliato7239
@risve_gliato7239 4 ай бұрын
А что делать если у меня комнаты спавняться в друг друге
@zloykaktus2729
@zloykaktus2729 2 жыл бұрын
Автору респект. А подскажите кто-нибудь, как сделать чтоб одна из комнат заспавнилась только один раз а остальные рандомно?
@user-ls7oo8mk6k
@user-ls7oo8mk6k 2 жыл бұрын
Сделай переменную булевую. Когда спавнишь комнату - меняешь ее. Если изменена, то ее больше не спавнишь. При сппвне ее проверяй
@user-ti6bd7wy7g
@user-ti6bd7wy7g 5 жыл бұрын
А что за тип переменной, или хз что: Room. Как я понял это скрипт, есть видео где этот Room?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Это просто скрипт, который висит на каждой комнате-чанке. Он на 1:33 появляется, там немного кода из прошлого туториала, цикл который рандомно вращает кирпичики, чтобы смотрелось интереснее. А потом где-то на 8:40 ещё туда добавляем переменные со ссылками на двери этой комнаты, чтобы их было легко из скрипты получить
@user-ti6bd7wy7g
@user-ti6bd7wy7g 5 жыл бұрын
@@EmeraldPowder Спасибо :) Автору канала респект, дружелюбный :)
@user-ti6bd7wy7g
@user-ti6bd7wy7g 5 жыл бұрын
@@EmeraldPowder Что делать если ошибка с ElementAt? "HashSet" Не содержит определения для "ElementAt"
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
@@user-ti6bd7wy7g Надо using System.Linq; написать, или в студии на лампочку нажать, чтобы библиотеку подключить
@user-ti6bd7wy7g
@user-ti6bd7wy7g 5 жыл бұрын
@@EmeraldPowder Спасибо :) Пытаюсь учится...
@EvsBeat
@EvsBeat 4 жыл бұрын
Не могу перетянуть префабы в массив в инспекторе. В чем может быть проблема?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Значит тип объекта не совпадает с типом поля куда перетаскиваешь. Скорее всего на объектах не висит компонент Room, или тип переменной не тот
@EvsBeat
@EvsBeat 4 жыл бұрын
@@EmeraldPowder Большое спасибо!)) Помогло, кинул скрипт на уровни и заработало. Теперь мучаюсь с другой проблемой генерация только горизонтальная и комнаты одна на другую накладываются. Видимо с vacantPlaces накосячил)
@EvsBeat
@EvsBeat 4 жыл бұрын
Все разобрался это я дурной) у меня 2д а комнаты спавнились по оси z))
@The_Mavrik
@The_Mavrik 4 жыл бұрын
У меня всё работает, но выскакивает 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 4 жыл бұрын
Странно, на 44 строчке вроде бы ничего нет, если ничего не менял в скрипте то не должно такого быть
@The_Mavrik
@The_Mavrik 4 жыл бұрын
@@EmeraldPowder всё работает =)
@OvoshnoeRagu
@OvoshnoeRagu 2 жыл бұрын
гайд отличный, но толи я наркоман, толи движок долбанутый, я не знаю почему, но у меня все двери перепутаны верх это низ, лево это право и так далее, в целом всё работает правда некоторые двери заблокированы и это создаёт вид лабиринта, но мне это даже нравится)
@terraider7314
@terraider7314 4 жыл бұрын
хороший гайд но не черта не понятно
@GameWorldMrKIller
@GameWorldMrKIller 4 жыл бұрын
Боже мой, а делать комнату уровня из таких блоков, это же жесть, типо оптимизация херовая же, я бы просто смоделил в бленедре комнаты, и текстуры рамдомизировал через шумы
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Согласен, комнаты совсем не оптимизированные, как и в прошлом видео чанки из этих же блоков. Но эти блоки у меня уже были готовые, чтобы на их примере рассказать про генерацию, а с серыми кубами не хотелось видео снимать, так что это просто для примера
@lgsmdlgsmdn2581
@lgsmdlgsmdn2581 Жыл бұрын
8:04
@axil3910
@axil3910 4 жыл бұрын
Это все конечно хорошо, но такое количество GameObject на каждый кубик - это плохо. Если у тебя стенки или пол комнаты не меняются - слей все кубики в один mesh. Кроме того если рисовать весь кубик у тебя будет бешеный Ower Draw.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Да, у меня там совсем не оптимально это всё, так в продакшен не надо выкладывать. По хорошему если бы я планировал релизить эту игру то надо было бы эти комнаты собрать либо в 3д редакторе, чтобы весь пол и плоские стены были одним полигоном, или с помощью какого-нибудь ProBuilder. Есть ещё плагины которые прямо одним кликом все меши в один склеивают, но не уверен насколько они хорошо работают. Но так как туториал не про это, позволил себе на уровне прототипа сделать
@blettualet3567
@blettualet3567 4 жыл бұрын
*не скачивается оставь норм ссылку пж*
@itshcolnik4627
@itshcolnik4627 4 жыл бұрын
а нет все норм качается (мой 2 акк)
@blettualet3567
@blettualet3567 4 жыл бұрын
Как сцену в юнити вставить котоуюю скачал
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Там не сцена по ссылке, а проект целиком, в Unity жми Add и указывай путь к скачаной папке
@bonbuasan
@bonbuasan 4 жыл бұрын
Можна такой же урок но для unreal ?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
В нём я особо не разбираюсь, пару раз садился разобраться, но через несколько дней возвращался к удобной и привычной Unity
@bonbuasan
@bonbuasan 4 жыл бұрын
@@EmeraldPowder Жаль ,что такой чудесный контент доступен только для разработчиков на Unity)
@philainel
@philainel 3 жыл бұрын
@@bonbuasan в разработке ведь важна логика, просто открываешь доки и сопоставляешь по каждой строчке
@yarichi
@yarichi 5 жыл бұрын
Сделай пожалуйста генератор ландшафта
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Думаю скоро сделаю видео, как раз сейчас пытаюсь сделать красивый генератор
@rafik5179
@rafik5179 3 жыл бұрын
1 Диз, впервые я вижу такую силу
@artemzh27
@artemzh27 3 жыл бұрын
Братан, не пропадай! У тебя на видео один (!!!) дизлайк =)))
@njaab5097
@njaab5097 4 жыл бұрын
Некоторые операторы и методы не работают так же, как и у тебя.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Какие?
@njaab5097
@njaab5097 4 жыл бұрын
@@EmeraldPowder Как минимум ElementAt(), другие не помню, увы. Пришлось делать через костыль - сделал обычный массив, куда через цикл перекинул все значения и от туда уже брал нужное.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Для неё нужно подключить библиотеку System.Linq. В ней многие функции для списков и массивов, которые я иногда использую
@The_Mavrik
@The_Mavrik 4 жыл бұрын
пипец как интересно и познавательно, но сука мозг плавиться, как ты сам в этом не запутался?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Спасибо. Со временем большие объёмы кода начинают пугать всё меньше, привыкаешь)
@GluukyBoii
@GluukyBoii 4 жыл бұрын
Раньше тоже плавился))
THEY WANTED TO TAKE ALL HIS GOODIES 🍫🥤🍟😂
00:17
OKUNJATA
Рет қаралды 2,2 МЛН
小女孩把路人当成离世的妈妈,太感人了.#short #angel #clown
00:53
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 46 МЛН
3 wheeler new bike fitting
00:19
Ruhul Shorts
Рет қаралды 48 МЛН
Делаю процедурную генерацию в Unity
13:15
Полная теория процедурной генерации
18:51
Создавать Игры ПРОЩЕ, чем ты думаешь
9:56
Daru - Разработка игр
Рет қаралды 153 М.
Procedurally Generated 3D Dungeons
9:42
Vazgriz
Рет қаралды 277 М.
Лучшие моменты в Истории Minecraft
14:37
dren
Рет қаралды 1,3 МЛН
THEY WANTED TO TAKE ALL HIS GOODIES 🍫🥤🍟😂
00:17
OKUNJATA
Рет қаралды 2,2 МЛН