⛏️Minecraft на Unity3D. Часть 5
HTML-код
- Опубликовано: 10 июн 2024
- Пятое видео из плейлиста по созданию клона Minecraft в Unity 3D. В этом проекте мы разберёмся с генерацией 3D моделей из кода, шейдерами, оптимизацией, и ещё множеством аспектов разработки игр. В этом видео сделаем систему загрузки чанков на ходу, сделаем генератор мира на основе библиотеки FastNoiseLite, добавив её в Unity проект. Разберёмся с разными типами шумов, Perlin Noise, Simplex Noise, добавим к генератору Domain Warp, и ещё и успеем пофиксить баг в шейдере из прошлого видео
Плейлист со всеми сериями: • ⛏️ Minecraft на Unity
Следующая серия: • 📜Scriptable Object (Mi...
Содержание:
0:00 - Вступление
0:23 - Фиксим баг в шейдере
1:39 - Загрузка чанков на ходу
6:53 - Переходим на FastNoiseLite
14:11 - Настраиваем шумы
17:35 - Domain warp
20:04 - Заключение
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео
Поддержать канал:
ltc: ltc1qylp2xnj8v6hwhclr9ju59ppse0nllcf0qqmy3q
trc20 usdt/trx: TCfLyJZJ67Q99QbLNqny9YLXpqTpD7SHcC
Другие сопосбы: emeraldpowder.github.io/ru/do...
После фразы "многопоточность" - жду отдельное видео по многопоточности в Unity
Отличный урок про jobs от максима крюкова
@@afonia3573 спасибо!
@@afonia3573 Спасибо большое!
Серия таких видео лучше всяких ит курсов! спасибо
Почему только 71к. Подписчиков? Ты стараешься, объясняешь как все правильно сделать, и все отлично понятно. Ты заслуживаешь большего!
Скучно для тех, кто вообще ничего не понимает в программирование. Мне кажется там средняя длина просмотра вообще меньше 10 минут
Очень жду продолжение. Заметил что когда Z координата нас, как персонажа становится меньше 0, то копать уже нельзя. Пишет, что выход за границу массива.
Спасибо, лайк за внимательность, в начале следующего видео поправим баг) Там похожая ошибка на шейдер, что при отрицательных числах не в ту сторону целочисленное деление округляет в функции получения чанка по координатам блока
@@EmeraldPowder когда следующая серия?
Мне очень нравятся твои видео и идеи в целом. Спасибо.
Новая часть. Новый лайк. Новый комент. Спасибо за видео!
Каждая серия выглядит интересно, ждём продолжение!
Да познавательно
Мне при просмотре вспомнилась буфферизация. Можно также создавать блоки последовательно из корутины, но спавнить их неактивными, когда всё заспавниться отобразить разом. Создаст иллюзию одновременной загрузки)
Лайк однозначно.
Всегда жду с нетерпением выход новой части.
Может блоки больше сделать? Просто при добычи их будет ощущение пинцета, но можно и радиусом их ломать но тогда при построенных блоках будет не очень, ну можно тогда другой инструмент который ломает по одному, и если подумать то сколько уйдет времени на один дом или другую постройку, подумай
Стоп, твой канал создан 7 месяца назад, подписчиков 7, коммент написал 7 минут назад
@@madness_a 777 фортуна
Ага, я примерно так и думал, что если из этого делать реальную игру, а не демку, то можно разные инструменты добавить. Которые копают большими кривыми радиусами, и точные которые по одному или линией убирают или строят. Но про это видео наверное не особо интересное получится, там просто будут всякие циклы по блокам, так что пока про это не снимал
@@madness_a а ты 7 часов назад
для строительства стен и полов (всего протяжённого) можно сделать специальный инструмент, похожий на прямоугольное выделение
если запариться, можно даже добавить рандома используемых блоков (типа чтобы были вкрапления других блоков, для красоты)
Лайк за продолжение!
Интересно, и познавательно, спасибо за видео
тот самый майнкрафт которого мы так ждали, через пару лет будет человеческий майнкрафт на нормальном движке, а не какой-то там Джаве)
А там вроде рендер майнкрафта написан на какой-то смеси самописного движка Blaze3D и библиотеки GLFW. Это просто скомпилированный код на плюсах, а на Джаве там просто *дергают* нужные функции из dll-шек.
Интересно глянуть на подход к освещению всей этой штуки, потому что с динамическим светом, как мне кажется, далеко не уедешь)
После просмотра, прям чувствую как становлюсь умнее
Я прям чувсвтвую продолжение
Продолжай в том-же духе, надеюсь ты сделаешь майнкрафт гораздо лучше, не бросай проэкт
С генерацией мешей офигенно помогает Burst, обычно даёт ускорение построения меша раз в 100.
Лайкос от меня. Очень много узнал.
Продолжение той части где вы делаете игру, спасибо
Хорошая работа👍
Безумно круто получается! Я как раз делаю игру, и только столкнулся с вопросом генерации, и тут твоё видео) всё очень доходчиво и понятно!
Думаю многим не понятно, но очень интересно!
Я рад, твоему возвращению! Давно ждал новые видеоролики.
ЭТО ВЕЛИКИЙ КАНАЛ...
крутой бедрок в виде досок
Ооо я ждал
Очень интересно
Неплохо)
Круто!
при генерации нового чанка надо регенерить его соседей, потому что внутренние стенки остаются
У вас есть пример кода, до самого как-то не доходит как сделать.
Классая превьюха у видео
Классные видео мужик продолжай , если честно изза таких маленьких блоков кажется что либо мир и биом очень маленькие либо человек гигантский, идея со сторительством в виде маленьких блоков отличная, но я бы на твоем месте бы сделал как в оригинальном майне большие блоки, но с возможностью строить еще и такими маленькими блоками, т.е я хочу сказать что для дополнения к игре они очень классные но как основа лучше взять стандартные блоки
В цикл генерации чанков можно добавить условие, что бы чанки вокруг создавались не квадратом 10х10, а аккуратным кругом:
if (Vector2.Distance(currentPlayerChunk, chunkPosition) >= ViewRadius) continue;
Спасибо!
Спасибо)
Хах думал то что это старые какие то видео а потом увидел дату выхода..
Всем Привет ! Мира и добра всем !
Расскажи про базы данных для хранения информаций о блоке, думаю будет очень полезно
Настало время напрячь свой мозг по полной)
Возможно, я что-то пропустил, но как вы убрали стенки между чанками? Когда добавляется новый чанк, нужно ведь обновлять соседние, иначе останутся их стенки, которые они создавали, когда нынешний чанк отсутствовал.
Урааа
👍👍
Гайд зачётный! Автору респект.
Повторил, получилось хорошо.
Можно правда некоторые детали доработать:
1. пофиксить артефакты "пустующих сегментов" (обычно возникают в самом низу или самом верху склонов и от них распространяются). смотреть сквозь эти отверстия во внутреннее устройство чанка - не хорошо, проваливаться сквозь них персонажу не хорошо совсем. Подбором значений констант почти нивелируется, но всё же.
2. между чанками стенки. в том числе при до-создании примыкающих новых чанков.
3. копать мелкие блоки по 1 муторно, что легко исправляется карутиной с задержкой в 0,2сек на удержание кнопки мыши -- if (Input.GetMouseButton(1)) StartCoroutine(ModBlock(true));
Касаемо выбора способа (например, тайлмапу проще нарезать мультиплом и выбирать готовое обрезанное изображение) - это дело Автора (возможно, на выбор повлияли иные факторы, например, простота последующей оптимизации)...
дождался
еще интересно как хранить выгруженные чанки затем возобновлять их если мы туда возвращаемся, сохранение всей карты
Можно сделать доп. сетку для добычи блоков (добывается более крупными и именно по крупной сетке, а выпадаемый ресурс, если как в игре смотреть, будет высчитываться из количества маленьких блоков)
жду оптимизацию, интересная тема когда ты допустим убираешь то что не видит игрок, так чтобы это было незаметно
Оптимизация обязательно будет в следующих сериях
Это называется Frustrum Culling
как же он хорош
ничего себе.. 2070 супер загрузил на 100%.. есть какой то вариант ограничить фпс в редакторе?
Как сделать так, чтобы изменения сохранились в юнити?? Например ты уничтожил немколько блоков и видишь изменения в окне юнити
хм а если собрать билд под винду то спавнБлок и дестройБлок не работают. только перемещение персонажа и генерация мира. хотя нет. работают, но в определённом диапазоне координат.
А она когда нибудь в будущем выйдет в открытый доступ?
Жду видео про многопоточность
Впрочем как и другие видео
а теперь тоже самое с мультиплеером на dedicated server хех
1:08 я думаю легче было бы offset закинуть в функцию abs
Когда будет открыт исходный код?
Можешь тогда ещё модинг вкрутить?
Здравствуйте, хотелось бы задать вопрос как у проффесионал в гейм деве, дело в том что я начинаю программировать свои игры и хотелось бы подобрать ноутбук для программирования, что бы вы посоветовали? И чем пользуетесь сами?
Привет. На самом деле любой ноутбук на винде подойдёт, но конечно лучшее на самый слабый. Мне на компе с i5-2550 и 16ГБ оперативки было довольно комфортно, но это прямо примерно
Ноутбуки от Хуавей или Xiaomi смотри
Они прям шикарные
Сам такой хочу
как на счет растительности ? Слой травы захардкожен, как быть с пустыней либо зимой либо биомами где нет травы ?
Можно вынести поле с типом блока в генератор, в следующем видел про это немного будет упоминаться. Но разные переходящие друг в друга биомы не уверен что в этих видел будем делать, это уже не так просто
Сделай генерацию пещер и руд под землей
На вид просто, но это пока сам не начал что-то делать
комментарий для продвижения канала
Для продвижения
Я считаю топ главно оставь пж персонажа такова размера это очень много возможностей даст творить прям из пикселей
Спасибо, да, наверное пока такой размер оставлю, выглядит как раз как то что я хотел. И геймплейно тут можно придумать прикольных вещей, вроде разных инструментов с разными радиусами и формами, и хитрых блоков с текстурой на несколько тайлов
Вспоминаю как делал свой генератор, во были деньки, я тогда написал свой "шум", ибо угарал в оптимизацию. Перегорел на инструментах редактирования, всё таки размер вокселя я взял слишком малый для своей первой работы, мой ноут не выдерживал, я не выдерживал, юнити нафиг слал... И теперь я в анриле, мдя xD
Такие штуки как шум наверное хорошо могут работать в анриале, если там написать всё на плюсах, должно быстрее быть чем эта либа. Но будем дальше в видосах оптимизацией заниматься, посмотрим)
Как вам идея сделать простенький редстоун?
Идея хорошая, но думаю если и сделаю, то не в этом Майнкрафте, а на примере отдельной игры
а когда я успел пропустить 4-тую часть....
да сделай уже блоки по больше...
++
почему ты перестал показывать изменения кода, теперь нечего нельзя повторить. С 4 видео в конце когда добавил верх как траву. И почему не выложишь не гитхаб или подобное если это обучающий материал
Такие генерации мешей лучше делать через ComputeShader. Это будет быстрее чем многопоточность. Почему ты не использовал это?
Возможно можно как-то через него, но я с ними особо не разбирался, так что пока сделал просто через многопоточность
@@EmeraldPowderак в новой FNL нету WarpNoiseX и Y, что делать...
Фига, много просмотров, вторую часть даже обогнали.
блоки не ставятся в отрицательных координатах и выдает ошибку
Если из генерации меша и коллайдера убрать list'ы, то скорость генерации увеличится в сотни раз. И не нужны будут игры с бубном.
А как ты это без листов реализуешь?
@@user-yg5xm3ct7p Основное для чего нужен лист, это потому что длина массива неизвестна заранее. Поэтому создаем две функции, первая рассчитывает конечную длину массива, а вторая собственно заполняет массивы вертексов и треугольников уже известной длины. И даже учитывая что это две функции, они будут работать во много сотен раз быстрее, чем одна функция с листами делающая тоже самое.
Ну он же сказал займемся оптимизацией позже, чтож, будем поглядеть.
писать код оказывается довольно легко, вон я вижу какие то public, for, var, private, float
Когда релиз?))
а где часть 6? BibleThump
горы прикольные но по сравнению с персонажем они не большие либо игрока уменьшить надо либо горы больше сделать
У меня у одного в этом видео звук только в правом ухе?
🙃
Сделай лучше человека типа чтоб он был как в Minecraft с размером 2 блока
Я задам несколько вопросов 1) Если игра выйдет то будет в нём онлайн 2)И как сделать онлайн в игре?
Пока онлайн сюда точно не планирую добавлять, и так хватает сложных идей что ещё можно сделать. У меня есть старенький плейлист про онлайн, хоть он и устарел морально, но основные идеи там описаны
Разработчики делают обновление целый год.
Парень который решил создать Майнкрафт с нуля:
Путин: отечественный Майнкрафт!
спасибо кринжанул
@@user-um4ve8cz6t так в этом и смысл коммента)
Мне, как разработчику плагинов и многих утилит в оригинальном Майнкрафт, очень больно смотреть на такой код.
Само ядро крайне неоптимизировано, но даже там нет таких "детских ошибок" как у тебя.
В целом прикольно, но жду глобального реворка кода.
А какие "детские ошибки" здесь есть?
Что за ошибки тут такие ужасные?
@@illia8783 как минимум дублирование кода, не соблюдение ООП
А ты говорил в видео о карутине, что она не повышает производительность. А оно вон как. Ждумс следующие видео про производительность.
Так она и не повышает производительность. Просто то, что выполнялось за один кадр, теперь выполняется за несколько кадров
fps < 60 ? fps = 60 : fps
Я написал оптимизацию, пользуйтесь
Datas? У слова данные как в русском так и в английском есть только множественное число. Так что datas на русском будет "данныеы".
Может быть и не совсем корректно с точки зрения английского, но зато понятно по названию сразу что это список или массив
Когда новая часть? )
Тоже хочется знать
В ближайшие выходные выйдет)
Почему это выглядит лучше оригинального Майнкрафта?
А понял, потому что на С#
Это не лучше
@@rubiks7196 это его мнение
@@baTapeR а это моё мнение)
что за IDE
Jetbrains Rider
Lol, 4 days and 1 years a the video
Я 3 дня качал игры, вчера решил поиграть. Много игр оказались на Юнити, все они тормозили нереально. Остальные игры быстрые (без юнити), это радует. Юнити и раньше тормозил, сейчас правда стал побыстрее, но все равно фризит заметно. И эти люди хотят продавать свои игры, ну-ну... Так что фигня это все, ужос...
У вас огромная проблема с логикой, принципами построения кода, он небрежен, малооптимизирован и глуп. Вам бы теоритических знаний, птмучт на умении презентовать себя далеко не уедешь...
По КД ставлю дизы ибо нефиг Стим говном заполнять
я создал фан версию Evil Nun TheBrokenMask на unreal
дождался