⛏️Оптимизируем Minecraft на Unity3D (часть 7)

Поделиться
HTML-код
  • Опубликовано: 1 июн 2024
  • Сегодня мы на примере клона Minecraft рассмотрим как можно оптимизировать иргу в Unity 3D. В этих видео мы разбираемся с генерацией 3D моделей из кода, шейдерами, оптимизацией, и ещё множеством аспектов разработки игр
    Плейлист со всеми сериями: • ⛏️ Minecraft на Unity
    Содержание:
    0:00 - Введение
    1:37 - Специфика нашей игры
    2:15 - Как замерять
    3:14 - Замеряем первую версию
    5:30 - Создаём табличку
    6:02 - Оптимизация массива
    8:58 - Оптимизация соседних чанков
    12:05 - Оптимизация массива треугольников
    16:48 - Неполучившаяся оптимизация
    18:11 - Mesh bounds
    20:54 - Оптимизация нижней грани
    22:17 - Оптимизация боковых стенок
    27:40 - Заключение
    На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
    Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео
    Поддержать канал:
    btc: bc1q5mycq8x9jr7s0r63xx00xt50tjepflyhlzc09q
    eth/usdt(erc20): 0xa30F22fb9898fdc8801703723cd77BE7E678ee13
    Другие сопосбы: emeraldpowder.github.io/ru/do...

Комментарии • 200

  • @worldforgamedev
    @worldforgamedev Год назад +37

    Ооочень прошу продолжи, не бросай, это одна из лучших серий на тему.
    Уверен она со временем принесет очень много просмотров.
    продолжи!

    • @kk-ji5fo
      @kk-ji5fo Год назад +2

      Пхахаха, и чел вместо того чтобы забросить рубрику, забрасывает канал на два месяца)

    • @worldforgamedev
      @worldforgamedev Год назад +1

      @@kk-ji5fo а который раз блин

    • @alexanderprudko5396
      @alexanderprudko5396 Год назад

      Чувак на фронте походу

    • @lev431
      @lev431 10 месяцев назад

      @@alexanderprudko5396 он вернулся!Како фронт?Вдруг он не в России или укроине?

  • @Shineglow
    @Shineglow Год назад +48

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

  • @fralid95
    @fralid95 Год назад +12

    Так грустно, что ролики такие короткие))
    Хочется слушать бесконечно!
    Спасибо за ролики!

  • @kpekep7597
    @kpekep7597 Год назад +14

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

  • @mks3782
    @mks3782 Год назад +2

    Очень интересно, с нетерпением ждал как раз темы оптимизации. Спасибо!

  • @KaktusChannel1
    @KaktusChannel1 Год назад +1

    Ждем еще видео. Очень интересно наблюдать за развитием игры

  • @trufflefried
    @trufflefried Год назад +4

    Когда новое видео? Уже 2 недели жду)))

  • @JohnnyHazz
    @JohnnyHazz Год назад +38

    очень интересная тема, а ещё более интересно как далеко ты сможешь зайти в этой серии уроков)

    • @nicojam1493
      @nicojam1493 Год назад

      да уж, лишь бы не остановился на полпути

  • @jivoy8415
    @jivoy8415 Год назад +1

    Хорошая тема. На Ютубе много видео о разработке собственных игр, но про их оптимизацию, почему-то, все забывают. Автору респект.

  • @goldgold594
    @goldgold594 Год назад +1

    Тема с потоками очень интересна) Очень жду!

  • @user-ye9ux5xc7y
    @user-ye9ux5xc7y Год назад +1

    Супер! Ждём следующий ролик.

  • @sergei-fil
    @sergei-fil Год назад

    Очень интересно будет посмотреть на работу с разными потоками. Особенно в контексте юнити. С нетерпением жду следующую часть)

  • @valera924
    @valera924 Год назад +2

    огромный респект! За общее правило - замерять показатели до\после, и особенно за пример неудавшейся оптимизации

  • @user-ft2fd4ug6q
    @user-ft2fd4ug6q Год назад +2

    Отличные видео, одни из лучших по теме Unity на русском ютубе
    Серии отлично упорядочены и структурированы, очень хороший способ подачи информации
    Ждём новые серии)

  • @user-kc6uw7qw6j
    @user-kc6uw7qw6j 8 месяцев назад

    Это супер интересно, спасибо за эту серию видео!

  • @rptpv
    @rptpv Год назад +6

    ты просто гений, достоин уважения

  • @Slava.Hizhnyak
    @Slava.Hizhnyak Год назад +1

    Да, супер интересно, комментарий в поддержку рубрики

  • @mr.fatherofinsanity6274
    @mr.fatherofinsanity6274 Год назад +1

    Спасибо за то что вы делаете, вы помогаете новичкам и создаете очень качественный контент ! Спасибо вам огромное

  • @OdemGeek
    @OdemGeek Год назад +6

    Очень интересно делаешь контент, ты наверно единственный русский разработчик, которого я смотрю. Хоть и программирую 3 года, но просто интересно послушать :)

  • @Storm_VY
    @Storm_VY Год назад +1

    Спасибо за новые видосы!
    Пожалуйста не забрасывай эту идею!
    Скоро начну делать 😀

  • @vstuts
    @vstuts Год назад +22

    я бы ещё прогружал чанки не квадратом, а кругом. А то получается, что когда игрок смотрит не строго параллельно осям, то у него дальность прорисовки больше. Тогда бы количество прогруженных чанков стало бы на ≈ 22% меньше (1 - (pi * r²) / (2r)²), где r - дальность прорисовки

    • @AsdfgAsdfg12363
      @AsdfgAsdfg12363 Год назад +9

      А ещё лучше загружать только те чанки, которые в поле видимости игрока, в теории это должно оптимизировать ещё на 10-20%

    • @erofes3833
      @erofes3833 Год назад

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

    • @Adis2233
      @Adis2233 Год назад +8

      @@erofes3833 А ещё лучше не прогружать чанки. Тогда с оптимизацие проблем не будет

  • @alex_ra.
    @alex_ra. Год назад +1

    Спасибо автору за полезную тематику

  • @marksakhar1319
    @marksakhar1319 Год назад

    Надеюсь дойдешь до полной копии майна, очень интересно смотреть)

  • @darthsidiousfreenavalnynowar
    @darthsidiousfreenavalnynowar Год назад +5

    Продолжение будет? Мне нужно(

  • @grigoriyvs
    @grigoriyvs Год назад +1

    Спасибо! конечно интересно!

  • @uniowl2320
    @uniowl2320 Год назад +8

    Метод RecalculateNormals() для меша можно тоже заменить ручным просчётом на этапе его генерации. А так как мир кубический, нормали могут принимать всего шесть разных значений, по одному на каждую грань)
    Говоря о ushort, для мешей год назад или около того появился новый API, более сложный. Там нужно руками указывать типы данных для позиции, нормалей, индексов (здесь этот ushort). Однако с помощью этого там можно настроить в том числе какие проверки движок должен проводить (выходы за границы массива в буферах вершин и индексов), и если самому всё просчитать, эти проверки можно выключить.
    Также вместо потоков можно использовать C# Job System и Burst, но, вероятно, для серии туториалов такое не подойдёт, потому что он накладывает множество ограничений (например, вместо обычных массивов необходимо использовать NativeArray).
    Ещё есть алгоритм генерации меша Greedy Meshing. Опять же, он сложнее текущего и делает так, что соседние вертексы, которые находятся в одной плоскости, он объединяет в более крупный. Например, если у нас есть большой куб 16х16х16 (идеальный такой вариант) блоков, при стандартном подходе будет использовано ~6к вершин (или ~1.7к, если делить общие вершины для соседних блоков и не дублировать их). А этот Greedy Meshing эти большие плоские стороны объединит в один большой квадрат, и вершин станет 24. Конечно, это идеальный вариант, и время генерации меша, возможно станет больше, но можно в некоторых случаях выиграть в памяти и снизить нагрузку на рендеринг (особенно будет заметно на каких-нибудь равнинах, где малюсенькие блоки соединяются в +- плоский ландшафт)

    • @EmeraldPowder
      @EmeraldPowder  Год назад +10

      Прямо коммент-спойлер, новый API это следующая серия будет, потом ещё многопоточность и greedy meshing тоже уже сделал, надеюсь домонтирую в видео

    • @erofes3833
      @erofes3833 Год назад

      Если пойти еще дальше и затронуть освещение - самый тяжелый для чанков алгоритм
      То в худшем случае, всё превращается в бесконтрольную игру "жизнь"

    • @user-dy1zv3nb3b
      @user-dy1zv3nb3b Год назад

      @@EmeraldPowder а ігра на андройид

    • @DALBA4B
      @DALBA4B Год назад

      @@user-dy1zv3nb3b Нет

  • @Vorono4ka
    @Vorono4ka Год назад +19

    Забавно, только зашел посмотреть выпустил ли ты ролик, а ты его выпустил пару секунд назад.

  • @sg1976sg
    @sg1976sg Год назад +1

    Большое спасибо !

  • @pashafilenko1567
    @pashafilenko1567 Год назад +1

    Ждал видео

  • @slavaker
    @slavaker Год назад +2

    Когда следующая часть? Очень интересует альтернативный способ визуализации поставленного блока. Я по твоему гайду делаю, но на Godot

  • @makar_ts
    @makar_ts Год назад +2

    Привет! Давно смотрю твой канал и есть одна просьба: в этих ваших интернетах очень мало статей про взаимодействие с мешами (удаление/создание вершин/треугольников). Очень хотелось бы об этом видео.

  • @user-cp1sz4wx9z
    @user-cp1sz4wx9z Год назад +2

    Ааа! Я просто не могу!
    Сейчас 2 часа ночи, и я закончил пересматривать ваши старые видео
    Вы такой молодец! Невероятно интересная подача, а главное полезные видео!
    Спасибо вам огромное что делаете такой контент

  • @tox1cozZ
    @tox1cozZ Год назад +5

    В Minecraft "физические" чанки в генераторе как и тут (16х16х256), а вот "рендер" чанки разбиваются на кубики 16х16х16.
    Это даёт хороший прирост во время frustrum culling. Оно и логично: зачем рисовать весь огромный чанк до неба, если мы видим только пару блоков из него.

  • @chillcompany1028
    @chillcompany1028 Год назад +1

    Интересно было бы послушать про сохранение мира (и динамическую выгрузку в сохранение уже далёких чанков) и динамическую погрузку из сохранения ранее сгенерированных чанков

    • @Bushido_Cat
      @Bushido_Cat Год назад

      В Unity встроен JSON для сохранения и загрузки.

  • @J3ster1337
    @J3ster1337 Год назад +8

    из-за разделения текстуры у земли теперь не всегда появляется "челка" травы. на 27:54 видно, на вертикальных поверхностях трава только каждые 4 блока

    • @DoGGy1110
      @DoGGy1110 Год назад

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

    • @J3ster1337
      @J3ster1337 Год назад

      @@DoGGy1110 выглядит то неплохо, просто для вертикальных нужно поставить чтобы каждый раз бралась верхняя часть текстуры, а так идея хорошая

    • @mipselqq3133
      @mipselqq3133 Год назад

      Похоже на простое сжатие видео

  • @Dumkras_old
    @Dumkras_old Год назад +2

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

    • @Bushido_Cat
      @Bushido_Cat Год назад

      В Unity встроен JSON для сохранения и загрузки.

    • @Dumkras_old
      @Dumkras_old Год назад +1

      @@Bushido_Cat что он есть я знаю, как его правильно использовать))

  • @rar24
    @rar24 Год назад +1

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

  • @alreadyhyux
    @alreadyhyux Год назад

    Occulusion Culling ставить будешь?

  • @evgeny_54
    @evgeny_54 11 месяцев назад +4

    Куда делся автор? 🤔

    • @OleksiiDemanov
      @OleksiiDemanov 10 месяцев назад +2

      Автор видео перестал страдать херней и устроился на работу.

    • @user-dy1zv3nb3b
      @user-dy1zv3nb3b 10 месяцев назад +1

      Моболизовали😢😢

  • @yokunade
    @yokunade Год назад +2

    Здравствуй, герой, есть просьба. можешь записать видос по оптимизации с помощью мультитрединга? очень интересная и полезная, в больших проектах, вещь

  • @silverwolfkjstudio
    @silverwolfkjstudio Год назад +3

    @EmeraldPowder относительно оптимизации с int/ushort, такая оптимизация бессмыслена, так как CPU (ну вот так сложилось - подробнее в вики, еще можно посмотреть почему NTFS работает также с 4 байтами), работает с 32 битными значениями. Т.е. считывание и запись, происходит блоками по 32 бита. Для чтения ushort (2 byte), цпу считывает 4 байта и по маске отделяет 2 лишних.
    Где, оптимизация относительно меньших типов данных работает хорошо. В первую очередь это структуры, там можно указать, что размер структуры задается программистом и соответственно, очень удобно подбивать размер структуры к размеру кратному 4 байтам. По этой причине, в некоторых протоколах, используются типы значения гораздо большие чем требуется.
    Ну и как пример, можно оптимизацию производить, на основ MSIL/IL кода и юзая, что-то получше чем базовый профилировщик, к примеру, что-то по типу jetbrains .NET Memory & .NET Trace.

    • @andreyas44
      @andreyas44 Год назад

      Странно что никто больше это не писал, сам был в поиске этого коммента. Смысл использовать меньшие типы данных есть только в отправке по интернету и в структурах, а в остальном не надо заморачиваться тупо из-за того что всё оптимизировано под инт/флоат и выдумывать бессмысленно

  • @user-ck8mr2gc2b
    @user-ck8mr2gc2b Год назад +2

    новое видео когда?

  • @koganboss4874
    @koganboss4874 Год назад +3

    Этот канал успел за короткое время стать самым лучшим по юнити и внезапно перестал пополняться контентом... 😢 Вообще печалька. Надеялся выпросить серию видосов по ECS, потому что нормального материала по этой теме вообще нет... Сейчас уже доступна версия 1.0.10 и по ней ничего нет кроме калечной официальной документации..

  • @OnTheWayToTheDirection
    @OnTheWayToTheDirection 2 месяца назад

    Лучший

  • @valuee5298
    @valuee5298 Год назад +5

    Преобразование типов в c# довольно ресурсоёмко, поэтому неудивительно, что (ushort) привело к снижению быстродействия
    P.S. По идее лайков под видео будет больше, если в конце видео выдерживать небольшую паузу перед его завершением, оставив в кадре некую заставку с напоминанием о лайках, колокольцах и подписке. Секунд в 10, так у зрителя будет больше времени на то, чтобы поставить лайк, перед тем, как запустится следующий ролик, при включенном автовоспроизведении. Ведь, когда уже запустился следующий ролик, нужно свернуть окно воспроизведения и нажать "назад" в браузере, чтобы иметь возможность поставить лайк под только что просмотренным роликом, а делать это бывает неудобно или просто лень)

    • @eennou
      @eennou Год назад +1

      А ещё можно было бы int в некоторых for’ах заменить на какой-нибудь unsigned, где начинается с 0

    • @valuee5298
      @valuee5298 Год назад

      @@eennou для переменных цикла? Это как раз снизит, хоть и несущественно, быстродействие, т.к. если переменные цикла участвуют в вычислениях внутри цикла, то их значения будут неявно преобразовываться в int или float. А преобразование типов не есть хорошо для производительности. Аааа, дошло это был сарказм! )))
      Это был сарказм?

    • @eennou
      @eennou Год назад +1

      @@valuee5298 да)))

  • @t0xangames207
    @t0xangames207 Год назад

    Твои туториалы прекрасны, но не мог ли ты оставлять исходный код под каждым новым туториалом? Я в каком то месте допустил ошибку, и теперь у меня больштие проблемы с генерацией. А пересматривать всё видео и сравнивать по символу как то не сильно хочется👉👈

  • @erofes3833
    @erofes3833 Год назад +2

    Еще один супер читерный вариант оптимизации, который применим конкретно к текущей реализации - это генерировать только поверхность на уровне шума перлина, таким образом можно ускорить работу алгоритма генерации в "height" раз

    • @EmeraldPowder
      @EmeraldPowder  Год назад

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

    • @erofes3833
      @erofes3833 Год назад

      @@EmeraldPowder Есть ещё один интересный момент - если генерировать таким образом только нетронутые игроком чанки, то они генерируются очень быстро, а как только игрок ломает блок у этого чанка - то начинаем рендерить именно этот чанк "по честному"

  • @oygn2012
    @oygn2012 Год назад

    добрый вечер , есть предложение по моделированию , как связаться с вами изложить идею ?

  • @arkaim2534
    @arkaim2534 Год назад +4

    А можешь показать, как grid meshing делать? Типа чтобы одинаковые блоки, стоящие рядом "сливались" и тратили меньше полигонов

    • @eennou
      @eennou Год назад

      Оно в первой части было

    • @arkaim2534
      @arkaim2534 Год назад

      @@eennou разве? Я пересмотрю, не помню просто

    • @Kitulous
      @Kitulous Год назад

      @@eennou greedy meshing это когда несколько полигонов в одной плоскости сливаются в один, чтобы меньше треугольников рисовать. этого ещё не было в серии.

    • @eennou
      @eennou Год назад

      @@Kitulous а, всё, понял про что вы. Да, действительно интересная тема

  • @-Ibrahim72-
    @-Ibrahim72- 11 месяцев назад +2

    Сделай физика блока как песок или гравий из оригинала

  • @MTandi
    @MTandi Год назад

    Будешь переписывать под Entities?

  • @eTrutim
    @eTrutim Год назад +7

    Будет ли видос как сделать Geometry Dash? Желательно в 2D
    Кто хочет, просто лайк, и все)

  • @4esterNightLive
    @4esterNightLive Год назад +2

    Куда ты делся?) В майнкрафт на юнити ушел играть? Очень жду еще полезных видео!)

  • @_MaxyUM_
    @_MaxyUM_ Год назад

    Добрый вечер. Я решил создать игру, похожую на террарию и основанную на тайл мапах. Я столкнулся с проблемой реализации освещения (хотя бы, как в мобильной террарии 1.2). Тайл мап либо весь светлый, либо весь тëмный. Есть ли возможность реализовать освещение в тайл мапах, или нет?

    • @fortnitebestmoments368
      @fortnitebestmoments368 Год назад

      Можно, у ного даже видос есть про 2D освещение

  • @Soprotivlenie_Bespolezno
    @Soprotivlenie_Bespolezno Год назад +1

    Я надеюсь Mojang посмотрят этот ролик, им это сейчас ооочень нужно...

  • @nekokira5596
    @nekokira5596 Год назад +1

    👍👍👍

  • @theoctan8569
    @theoctan8569 Год назад

    Что что, а про многопоточность я с удовольствием послушаю. Надеюсь это не будет из разряда, что на каждый чанк создаём отдельный поток. Я так однажды добился того, что все потоки закончились, так как я их не подчищал и Unity просто зависла. А винда выдала ошибку, что больше не может выделить потоков. Я надеюсь эта тема будет хорошо освещена)

    • @hakyara5528
      @hakyara5528 Год назад

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

  • @Krass-Gold
    @Krass-Gold Год назад +1

    Ты топ

  • @Mostwonted7
    @Mostwonted7 Год назад

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

  • @DanHack
    @DanHack Год назад +1

    а игра будет выпущена или нет?

  • @bagman2020
    @bagman2020 Год назад

    В дальнейшем, было бы неплохо посмотреть какая бы была производительность при включенной gpu instance у материалов, чтобы вызывать отрисовку материала один раз

    • @EmeraldPowder
      @EmeraldPowder  Год назад +1

      Если я правильно помню, gpu instancing используется когда один и тот же меш несколько раз рисуется, а тут меши разные, так что не получится его использовать

  • @Anton-if7bv
    @Anton-if7bv Год назад +1

    Привет, стоит ли в 2023 годы врываться в геймдев? Как кодер. Актуально ли это и не потеряет ли актуальность? Возможно ли в перспективе иметь хороший доход в этом? Больше 3000$ например

  • @KrutaMan
    @KrutaMan Год назад

    ломка по новым видео

  • @LoneShadow-zn6yw
    @LoneShadow-zn6yw Год назад

    good one

  • @TTe4eHbke
    @TTe4eHbke Год назад +2

    где же новые видео? 😥

  • @uso2484
    @uso2484 Год назад +2

    комментарий для продвижения канала

  • @IAmSnowstom
    @IAmSnowstom Год назад

    Я предлагаю держать все блоки и описание к ним в json файле(лах) это упростит добавление разных блоков

  • @OXOTNIKZN
    @OXOTNIKZN 10 месяцев назад

    Эээ.. Нет.. Давай, продолжай выпускать видео. Не бросай всё на полпути. Сарафанное радио уже шикарно работает

  • @kxr3nn715
    @kxr3nn715 Год назад +3

    Я хочу продолжения! Но оно меня, похоже, не хочет..

  • @drift_rodina7252
    @drift_rodina7252 Год назад +2

    Где видео? Мы ждём!

  • @notforvideoschannel
    @notforvideoschannel Год назад

    Если переписать на C++, во сколько раз вырастет производительность?

  • @user-qq1xb6ic3l
    @user-qq1xb6ic3l Год назад +1

    Автор молодец!
    Ещё лучше бы было, если под видео размещался итоговый набор скриптов по нему (ссылка на ГИТ в соответствующем состоянии проекта, коммит) для сверки.
    а то так и не нашёл отчего спамятся ошибки генерации меша (Например, Failed setting triangles. Some indices are referencing out of bounds vertices. IndexCount: 98304, VertexCount: 8564
    UnityEngine.Mesh:set_triangles (int[])).
    вроде и размерность чанков такая как у Автора, и "волшебное число 65536)...

    • @OleksiiDemanov
      @OleksiiDemanov Год назад +1

      С твоими настроками меша может быть максимум 65536 вершин, так как ты, как и автор, используете 2 байтный индекс.

    • @user-qq1xb6ic3l
      @user-qq1xb6ic3l Год назад

      @@OleksiiDemanov не совсем понятно, как исправить - если сменить на long - то его не примет chunkMesh.SetTriangles (можно использовать int или ushort - а он ещё меньше). размер чанка меньше делать?... такое се6е

    • @OleksiiDemanov
      @OleksiiDemanov Год назад +2

      @@user-qq1xb6ic3l нужно изменить тип индекса на 4 байтный. chunkMesh.indexFormat = IndexFormat.UInt32

  • @viruseg
    @viruseg Год назад

    Оптимизацию того что в ролике надо было начинать в первую с отказа от устаревшего api для работы с мешем. Переход на jobs + burst. И уменьшение garbage до 0. А то, что показано в ролике конечно интересно для новичков, но это тупиковые действия пока не сделано, что я написал выше.

  • @user-ou9rm3hb4f
    @user-ou9rm3hb4f Год назад

    Возможно кому поможет. 1 создается биом и там уже идет провекра какие мобы и сущьности могут размеаться. Так же для каждого биома своя проверка какие декорации там размещаются.

  • @doffyso
    @doffyso Год назад +5

    эмеральд, идеи для след. видео:
    1. Моды (C#, Python, Java, JS, Lua, в общем, просто АПИ для модов сделать)
    2. Временнóе Изменение стейтов блоков (например у дёрна есть 2 вида, без травы и с травой, пусть земля под землёй с травой будет без травы)
    3. Инструменты (к дополнению к 2 пункту, лопатой можно будет выкапывать ПКМом подзол, а мотыгой грядку)
    4. Биомы и миры (снежный, саванна, пустыня и т.п., а также обычный мир, ад, энд)
    5. Персонаж и его скины

    • @Priboy313
      @Priboy313 Год назад

      Чувак... каждая из этих тем размером с ЦИКЛ... отдельный...

    • @doffyso
      @doffyso Год назад

      @@Priboy313 Я не говорю что всё это нужно сделать за одно видео. Смысл был таков: Идеи для следующих видео

    • @noelka8134
      @noelka8134 Год назад +1

      Ну, другие измерения, очевидно, будут просто отдельными сценами, а скины как в майнкрафте это на самом деле дико костыльная фигня, и лучше уж делать какой нибудь редактор персонажа, чтобы все возможные варианты внешности уже были встроены в игру, а не вот эти вот свистопляски с загрузкой картинки для каждого игрока который зашёл на сервер

    • @MrVoronaExtra
      @MrVoronaExtra Год назад

      Ты просто перечислил то, что есть в майнкрафте. С таким же успехом можно "посоветовать" ему добавить: крафт, деревья, мобы и т. д.

    • @doffyso
      @doffyso Год назад

      @@MrVoronaExtra тогда в чём смысл делать МАЙНКРАФТ в юнити, если не добавлять туда, то что есть в оригинальном?

  • @user-qf8ew3xr4i
    @user-qf8ew3xr4i Год назад

    Добрый день! Очень прошу вас о помощи, долго ищу и не могу найти информацию. У меня есть кубик созданный в блендере и налодаными текстурами. По задумке из таких кубов создаются локации в игре. Теребуется удалить грани, которые соприкасаются с другими кубами.

    • @chillcompany1028
      @chillcompany1028 Год назад +2

      Как по мне проще процедурно меш создавать, и для юнити написать расширение редактора для создания уровня

  • @gmp14
    @gmp14 Год назад +2

    Го продолжение

  • @MRtheLAGERAT
    @MRtheLAGERAT Год назад

    Это перезалив? У меня почему-то ощущуение, что я уже смотрел это видео, ну либо у меня очень странное дежавю

  • @anismaks
    @anismaks Год назад +1

    ничосе.. ещё и на pycharm! малоч 👍

    • @emimoky
      @emimoky Год назад

      где ты тут сишарп увидел, додик?))

  • @MeisterBoe
    @MeisterBoe Год назад

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

  • @TTe4eHbke
    @TTe4eHbke Год назад +1

    3 месяца без видосов :(

  • @scoolnik
    @scoolnik Год назад +1

    Удивительно, что смена размерности массива дала такое сильное снижение времени. Мне это обычно это дает кучу готовной боли и изменения на уровне погрешности.

  • @LDC7
    @LDC7 Год назад

    А мультиплеер будет?

  • @vaskrol
    @vaskrol Год назад +1

    Замена метода на SetTriangles(), скорее всего, на самом деле дала куда больший буст, чем виден в Экселе, потому, что убрала кучу мусора от .ToArray(). Я только не понимаю зачем ты не заменил все остальные методы и не сказал ничего про Garbage Collection в целом.

  • @uegamedev
    @uegamedev Год назад

    Когда будет оптимизационный переход на UE?)

    • @EmeraldPowder
      @EmeraldPowder  Год назад

      Такого пока не планируется)

  • @Unknownhatter
    @Unknownhatter Год назад +1

    Продолжение?

  • @user-qp5ou2kv8g
    @user-qp5ou2kv8g Год назад

    А следующая часть так и не вышла :(

  • @ilyuxa2261
    @ilyuxa2261 Год назад +1

    А в какой серии будут пещеры и руды?

    • @user-ou9rm3hb4f
      @user-ou9rm3hb4f Год назад +1

      Это создается в настройках шума путем создания функции трех мерного фрактального бруновского движения путем заменяя блоки воздухом. Тоесть из двух мерного шума перлина создаем трех мерный бруновский.

  • @imGof
    @imGof Год назад

    Сделай еще одно видео где ты создашь генерацию структур, по типу деревни

    • @user-ou9rm3hb4f
      @user-ou9rm3hb4f Год назад

      А это было бы кстати. Так как видео роликов про создания майкрафты куча а в итоге даже нет генерации биомов и размещения мобов и сущьностей.

  • @JoparezkinEMVI
    @JoparezkinEMVI Год назад

    Где же ты, бро?(

  • @user-lg9ok2jb7n
    @user-lg9ok2jb7n Год назад +1

    когда видео?

  • @safil747
    @safil747 Год назад

    А юнитевский Шарп не знает про статический конструктор (13:50) ?
    при первом обращении к класу - вызывается безусловно он. может, я фекалекодер и его использую ))
    про битовые сдвиги (int b = (int)a / 4 - то же самое что и int b = (int)a >> 2) - так оптимизатор в Визуал Студии (про Юнити не знаю) делает при Релиз-компиляции, конечно, как и константу 65536*6/4 предствляет в сразу вычесленном виде (но для красоты лучше на калькуляторе посчитать и законстачить). Битовая арифметика выполняется в памяти, гораздо быстрее, чем через "такты процессора", константы, которые лишний раз не высчитываются - рабочий вариант, но не проверял, отработает ли "const" быстрее. Я неуды на лабах за такие пропуски оптимизации получал )
    про юшорты - базовый тип у шарпа для вычислений - инт32 (уинт32), в него и так переводит, это не плюсы ) Так что - погрешность вычислений, Но при высвобождении памяти под большооооой массив Инт16 - быстрее работает, так как памяти в два раза меньше таскает влево-право при инициализации массива
    Еще из хитростей - ++i работает быстрее чем i++ у Си и Си++. У шарпа такой тенденции не встречал (либо визуалка меня поправляла) )

    • @kin4stat
      @kin4stat Год назад +1

      Битовые сдвиги шарп сам умеет оптимизировать
      Про юшорты - разницы с обычными интами нет. У всех команд латенси = 1. Там скорее всего какие-то специфичные микроптимизации для гпу при рендеринге на юшортах. Ну и памяти они меньше отъедают, в отличие от интов
      Компилятор не настолько тупой, чтобы не заметить, что результат i++ не используется, и оптимизирует это. ++i имеет смысл для составных типов в C++, для интов разницы нет. В шарпе я уверен - то же самое

  • @Storm_VY
    @Storm_VY Год назад +2

    Ну блин
    Последний видос был месяц назад 😒

  • @nedorozrab
    @nedorozrab Год назад +2

    чел вернись ми тебе любемо

  • @weilworld
    @weilworld Год назад

    А игра на телефоне будет?

  • @grigoriyvs
    @grigoriyvs Год назад +1

    Надеюсь отсутствие к еще более классному ролику продолжению

  • @kotdath1252
    @kotdath1252 Год назад +1

    Не сферическое в вакууме, а кубическое в вакууме)

  • @Flyen256
    @Flyen256 Год назад

    а ты не хочешь персонажа там поменьше сделать а то он слишком большой

  • @Mif678
    @Mif678 Год назад

    Ждём уроки unity ) Genshin Impact

  • @imGof
    @imGof Год назад

    Когда видео?