Как работает процедурная генерация миров в играх - Minecraft, No Man's Sky и X-COM
Вставка
- Опубліковано 23 вер 2024
- Курс по эффектам в Houdini: bit.ly/2CJW5EP
По промокоду XYZ10 скидка 10% на любой курс: www.school-xyz...
Больше контента в нашем паблике: xyz_gam...
или телеграм-канале: t.me/xyz_cg
2 футажа для монтажа мы взяли из ролика DigiDigger: • How does procedural ge...
Предыдущее видео «Генерация открытых миров в играх»: • Как создают открытые м...
Иногда совсем не хочется тратить силы на левел-дизайн и детализацию уровней - вот бы просто нажать на кнопку, чтобы сразу было красиво. И так действительно бывает!
На примере Minecraft, No Man's Sky и других игр наш выпускающий редактор Артём Калеев рассказал, как процедурной генерации удаётся создавать целые вселенные при помощи каких-то сотен килобайт кода.
Текст: Артём Калеев
Голос: Алексей Луцай, Игорь Максимов, Дмитрий Борисов
Монтаж: Саша Уэйн
Курсы XYZ: bit.ly/36UpnKW
Заработай на партнёрской программе: bit.ly/3cKGswI
Подкаст:
🎧 iTunes - apple.co/2xZAcPe
🔊 Я.Музыка - bit.ly/2V25w7Q
📻 SoundCloud - bit.ly/2wqenrC
Instagram: / xyz.school
Вконтакте: xyz_gam...
Facebook: / gamedev.xyz
Telegram: tlgg.ru/xyz_po...
Сценарий написал Артемий, смонтировал Александр... а я - Алексей Луцай. Чем Алексей занимается - не важно, достаточно, что он есть в этом ролике XD
Мне кажется это такая отдельная профессия быть Алексеем Луцаем XD
Алексей Луцай в роли Алексея Луцая
Очевидно же что это диктор.
@@danielall9910 но всё равно найдутся не довольные, что скажут:"Не похож!"
АХАХХА
Я думала у меня глюк в мозгу и я не услышала, что он делает, но нет Х)
А потом люди говорят " Я поступал чтобы писать игры, а меня тут математике учат"
Как немного программист подтверждаю, что математика - это вторая по необходимости программисту вещь после знания синтаксиса и языка
@@stayhome6482 программирование = математика
Ноль математики, она ток в играх и в искусственном интеллекте
"Математика программисту как третья рука типо круто но большой пользы нет" Хауди хо
если ты не знаешь математику то в гейм деве тебе делать абсолютно нечего. Говорю как программист.
Вы когда-нибудь в Майнкрафте просто наслаждались пейзажами мира
Что-то прям хочется поиграть ещё раз в этот шедевр
Бывало. Ещё домики с хорошим видом строили многие.
Я подрубал средние настройки шейдеров и втыкал на красоту.
Нет
Квадратный мир так прекрасен.
Самое прикольное, что я давно задумывался над тем что random на самом деле не генерирует рандомное число, а использует какую-то заготовку. Потом мне в голову пришли иррациональные числа, и что можно было бы использовать числа после запятой для такого рандома. Потом забыл за это и тут на - ваше видео) Спасибо за интересный материал
Предлагаю тему "Оптимизация в играх: что такое и как работает"
Так по сути все сведется к обсуждению программирования
@@Dmytro-Tsymbaliuk Ну не факт, я думаю там кроме банальной оптимизации потоковых ресурсов ещё и есть такие аспекты, как :
Оптимизирование ключевых объектов в поле внимания игрока (то есть подчистка либо понижение ресурсных затрат на те объекты, которые не попадают в поле внимания) и как такие объекты выявлять
Алгоритм прорисовки объектов (не просто программно, а и визуально), то есть используют ли в методах прогрузки в открытых мирах какие-либо принципы, которые выявляют куда падает первый взгляд игрока и что нужно отрисовать в первую очередь
Как выявить оптимальное количество частиц в эффектах (то есть чтобы и выглядело хорошо, но при этом не перегружало систему), и очень интересно рассмотреть этот процесс на конкретных примерах
Это вот то что мне в голову пришло, я сам вообще отношения к разработке и работе с движками не имею )
Но кроме вышеупомянутой оптимизации, думаю есть и некая геймплейная оптимизация (быстрое перемещение, автосортировка инвентаря и т.п.), про которую интересно было бы послушать, ибо я допустим играю далеко не во всё что выходит, и может где-то внедрили интересные и полезные фишки, о которых стоило бы узнать не только нам, но и именно что разработчикам, которые 100% смотрят эти видео, даже если их малое количество )
@@Точтоявижу Гугли LOD’ы. По поводу отрисовки, в играх и так отрисовывается лишь то, что попадает в область зрения. То, что не попадает в камеру и не отрисовывается. Поэтому тут все просто и элементарно. Одна из основных задач - чтобы в кадр не попадало слишком много геометрии. Чем меньше полигонов, тем лучше. То есть даже левел дизайн крайне важен для оптимизации. В играх, где это не учитывается, fps может плясать в разы. В одной сцене 100 кадров, в другой 20. В остальном оптимизация ничем не отличается от оптимизации в любой другой программе. То есть выбор наиболее подходящих структур данных, написание эффективных алгоритмов, замена честного просчета аппроксимацией.
@@phat80 Спасибо за разъяснение, но тем не менее всё равно было бы интересно развёрнуто послушать )
@@phat80 гта 3 грузила весь город сразу
Обожаю, когда голос в видосе довольно громкий, тише всегда можно сделать, а вот пытаться услышать там хоть что то, неприятно. Спасибо!
Хочу сказать большое спасибо вашему каналу! Монтажерам в частности!
Столько игр крутых для себя открыл, которые вы показываете на примере той или иной технологии!
Вы очень крутые! Продолжайте в том же духе!
согл
Вот бы еще узнать точнее в какое время нужно создавать миры в майне, чтобы генерация сида выдавала мир с деревней и лавовым озером на спавне, крепостью в аду на спавне и ближайшей крепости в обычном мире =))
Разве спидранерские силы не об этом?
А разве, в нем нет функции задания "зерна" мира? Что как раз-таки и позволяет получать одинаковые карты.
Попробте в интернете поискать сайты где вводишь Сид и смотришь на расположение структур в измерениях вроде на некоторых можно даже примерные перепады высот посмотреть
И подбирать разные варианты
В майнкрафте для генерации пещер используется нечто более сложное, чем просто наслоенные друг на друга шумы пещер. Я пытался повторить - так и не разобрался. Получались просто несвязные дыры в земле, максимум кольцевое просттранство, но добиться пещер как в майне мне так и не удалось
Генерация пещер в Minecraft основана на использовании алгоритма voronoi этот алгоритм создает случайное распределение точек в пространстве.
Эти точки действуют как центры пещер... А далее алгоритм Пещер 3D соединяет точки voronoi линиями. Линии расширяются с помощью случайных шумов, создавая туннели и комнаты. Учитывается угловой момент, чтобы предотвратить создание прямых туннелей. И дальше Алгоритм заполнения пространства заполняет пространство вокруг линий 3D-пещеры блоками. Это создает стены пещеры и заполняет их блоками почвы.
Какой молодец этот Перлин, такой важный алгоритм создал.
Да, полезная штука)))
Майнкрафт - одновременно очень популярная и неодоценённая игра. Она одна из первых игр, в которой реализованна такая сложная генерация, да ещё и мир полностью разрушаемый, но при этом это ни какая-нибудь пустышка, а очень душевная игра, наполненная контентом. Вот реально гениальная игра, а не игры Кодзимы, которые до жути банальны и неинтересны, но везде и во всех деталях эти игры кричат, что они "нитакиекаквсе". Единственная сюжетная игра, которая реально была вышкой для сценаристов, это ведьмак 3, ибо без всякого пафоса она не орёт своим видом, что она очень оригинальная, но при этом реализованно в ней то, что сценаристам Кодзимы не дано:"очень интересно прописанный сюжет и персонажи, и во всё происходящее реально веришь"
Недооценённая?)) Одна из самых продаваемых игр в мире
Вот это топ тема, теперь давайте оптимизацию)
какие сложности в лодах и куллинге?
@@Growtolight я хочу подробное видео от профи, а не огрызки информации от ноунейма в комментах
@@user-looser-228 какие огрызки? Интернет свободен, если ты ленивый балбес тебе и сотня видео не поможет.
@@Growtolight
> определённый человек лучше усваивает информацию через подачу живым голосом на профессиональном языке в сопровождении видеоряда, желательно на знакомом юуб-канале, поэтому просто ждёт видео
> аррярряяя ти проста лентяй и балбес раз не хочешь читать тонны текста на десятках сторонних сайтов и тратить лишние часы своей жизни вместо ~15 минут на простой и понятный видеоролик ыыыыыы
@@Growtolight оптимизация в майнкрафте интересней так как там нет лодов и подобной фигни
Блин, ребят годноту делаете, что не ролик, то годный контент, моё уважение и превеликая благодарность)
У меня Ютуб вставил в видео вашу же рекламу
*HYPER*
*CASUAL*
бейсед
Также))
Чтобы ты мог смотреть рекламу, пока смотришь рекламу
@@МаксимФомин-у4ф в перерыве между просмотром рекламы
Если я напишу XYZ 90, я получу 90ю скидку?
@ZEGA XYZ 101 неплохой, но вот XYZ 314 намного лучше.
@@hibikidestroyer8264 кэшбэк на всё и на это и на то и на то о чём мечтаешь и на многое другое
ах ты, жулик!!!!
ачивку получишь))
Это так не работает братан 😂😂
Спасибо за видос!
Информативно
Расскажите ещё подробней про Воксели/полигоны итд. Про методы моделирования в играх
Как вам идея для ролика: Применение Data Science/Machine Learning в Геймдеве
О, мышинное облучение
@@faramozayw1654 лол
@@purplefoxmcbe7309 шо
Никакое
Отличная идея
На картинке фрактальный шум, а не шум Перлина, это разные вещи.
Да и про random() наврали - не генерирует он псевдослучайные числа, а возвращает очередное число из заранее сгенерированного списка . А seed - это не что иное, как первоначальное смещение в этом списке.
@@olegzorin3911 Что-за чушь ты написал про random()? Откуда ты вообще взял этот бред?
Ничего, что в различных языках реализация этой функции разная: от банального конгруэнтого линейного генератора до вихря Мерсенна и совсем экзотики, вроде одномерных клеточных автоматов?
@@wugu42 Вы точно мне пишите? Я разве что-то говорил, про то как генерируются таблицы случайных чисел? Я говорил про то как работает функция random(). Она ничего не генерит, она возвращает очередное число из уже сгенерированного списка - по сути это итератор по таблице. Переданное значение зерна - начальное смещение в этой таблице. Каждый раз вызывать метод ГПСЧ слишком накладно по ресурсам.
Сама же таблица генерится в большинстве случаев линейным конгруэнтным методом (и именно он входит в СТАНДАРТНЫЕ библиотеки / пакеты / реализации большинства языков), но можно и преложенным вами вихрем Мерсенна (даже если нет из коробки, то никто не запрещает поставить дополнительную библиотеку). Тут я спорить не буду.
Вся моя жизнь Шум Перлина, а ее производная равна 0
Надеюсь, вы попали в локальный максимум
Если вокруг шум, пусть так, не кипишуй
Твоя жизнь - плоская?
@@svkov42 Нейронными сетями запахло)
Могли бы про героев третьих упомянуть. Тот случай когда генератор карт продлил жизнь игры на десятки лет. А так хорошее видео, интересная тема👍
Абсолютно не разбираюсь в программировании и разработке игр, но всё равно постоянно с интересом смотрю ваши видео
Я один в детстве думал, что можно найти друга просто бродя по биомам майнкрафта 🤣
Мы ещё старались создать мир +/- в одно время, что бы шансы встречи повышались
Ещё ходили как дебилы сравнивали похожие места
На самом деле у XYZ нет дизлайков, просто это лайки от подписчиков из Австралии.
Ты от Руслана перешёл?
Чёт ты зачастил повторяться с комментариями🤔😐
Я ничего не собирался писать, так как всё настолько уж хорошо по примерам рассказано и продемонстрировано, но...
10:57 Этот момент заставил меня погуглить актёра озвучки. Не знал, что один и тот же чел, кроме Оптимуса Прайма, подарил свой голос ещё и другим персонажам в практически неизменённом виде (я не фанат Xcom). Это прикольно.
Доходчиво объясняется. Спасибо!
Слушаю голос Луцая и появляется ощущение что смотрю какую то документалку. Размеренно, спокойно и приятно, лул
1:46
Xn+1 =(Xn*a+b) mod c
А вот и та "сложная" математическая формула генератора случайных чисел
нужно только удачно коэфициенты подобрать
да, это самый простой генератор: "Линейный конгруэнтный метод"
но для всего, кроме криптографии сойдет
ru.m.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D0%B3%D1%80%D1%83%D1%8D%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4
Один из лучших генераторов -Space Engine.
Оооо! Теперь оптимизируй его под мой пентиум и 4 гига оперативки.
Вообще на Земле существует компьютер, который потянет Space Engine, или есть, только на одной планете, которую сгенерировал Space Engine?
@@jackpraid7710 вообще он не очень то и требовательный, на ноуте стоит 1050(урезанная) и райзен 5,в 1080 на высоких нормально все работает, конечно же во время прорисовки рельефа и около черных дыр фпс падает, но не критично
Спасибо. Интересно было узнать новые названия знакомых терминов. Генераторы псевдослучайных чисел изучали давным-давно, в институте в начале 90-х. Помню, они произвели впечатление именно повторяемостью ряда. Сколько идей возникало сразу, куда эту особенность можно прикрутить!
Смотрю это видео попутно выбирая мод на генерацию мира в minecraft...
о.
@@dmitriypavlovich7155 ахахаха
Поиграй в Noita. Игра мечты!
Biomes of plenty шикарный мод, очень круто меняющий генерацию и добавляющий очень много вещей в мир майна
Мб я его неправильно назвал
Он не меняет по дефолту генерацию, он добавляет свою, что лучше сочетается с новыми биомами
OTG зашёл. Там плагин есть и мод
6:46 мод на майнкрафт называется "TerraForged" если что.
Я ждал этой темы 5 лет
XYZ много чего взяли из видео DigiDigger «How does procedural generation work? | Bitwise» перевели, проработали и адаптировали. Думаю будет правильно оставить ссылку на него ua-cam.com/video/-POwgollFeY/v-deo.html
Спасибо,именно об этом я думал в 90тые,уже не актуально...
Очень интересный ролик, но было бы очень приятно услышать про генерацию карты и в Расте
Реклама ютуба: курс по эффектам Houdini
Реклама в видео: курс по эффектам Houdini
Я: Опять дежавю...
Наконец-то, я дождался этого ролика!
На сколько мне известно, в ведьмак 3 все ручками сделано. Возможно только лес сделан процедурной генерацией
Ребят, вы за мной следите? Неделю как начал интересоваться ПГ и на! Ролик про ПГ на XYZ! Спасибо!
Ребята, спасибо за ваш труд)
Процедурная генерация в Dwarf Fortress вот это классно
Когда-нибудь я обязательно запишусь на ваши курсы, сейчас же остается только мечтать о out block или game code(
Отличный контент!! Люблю ваши ролики, очень техничные и актуальные, спасибо)
1:16 можно взять температуру процессора. Хз, насколько она рандомна, но подстроить её явно сложно
Кристиан Бейн начал заниматься разработкой игр, научился профессионально говорить, чтобы сыграть роль Алексея Луцая
Кааааак каааааак? Ты прорекрамировал школу эфектов и ютуб позже тоже вкинул этуже реламу
Всю теорию знал, смотрел только ради xcom, а тут вторая ее версия. Печально, но лайк поставил, ибо рассказано все достаточно точно и более-менее нормально преподнесена сама теория, хоть я и считаю, что стоило уделить ей больше времени.
Хорошее видео! Как раз сейчас заканчиваю делать генератор уровней для своей игры
Ты на каком движке игру делаешь?
@@dollar7704 Unreal Engine 4
@@wi1dd0g_games Круто! А почему не Unity? Просто сейчас 95% инди на Unity,вот и интересно
@@dollar7704 Unity лучше подходит для не больших проектов (в т.ч. и для мобильных). Да и оптимизация для "средних" проектов получше . Ну и новый ЯП изучать не хотелось (С++ пользуюсь уже лет 5, а вот с С# сталкивался пару раз)
Господи спасибо я так этого ждал
Да, биндинг оф исак типичный классический рогалики
Одно из лучших видео на канале)
Позаимствую красивый текст для защиты своей дипломной по этой теме )
Где учишься? На кого?
Где ты учишься?
Я выбрал тему разработки собственного мобильного приложения. Нет дикого интереса к играм и их созданию
Для дипломной работы не научно, текст довольно поверхностный и расчитан на мамкиных разрабов, вся сколь-нибудь значимая математика оставлена за кадром.
@@Andgell0 Тыж любитель читать инфу в тексте, а не "смотреть видео с разжеванной инфой для дэбилов", что ты тут забыл ? xD
5:50 Александр “West” Рыбаков доволен
Я вспомнил про ключи генерации в Minecraft (они же seeds). Удобно когда хочешь получить один и тот же и мир. 20.11.2020
В основном в 2д играх используют псп + метод волнового коллапса, по нему же кстати и делаются судоку :)
Благодарю за видео! Спасибо!
первая игруха где я заметил генерацию карты это вормс армагеддон 20 лет назад )
Мне одному стало интересно, как работают лутбоксы в играх? Если кому тоже интересно, поддержите
Хотел пойти в геймдев. Посмотрел как это сложно и пошел дальше перепроходить Ведьмак 3
Присоединяйся ко мне и программируй новеллы х)
Так и будешь чмошником всю жизнь
опять классное видео, вот что молодым игрокам надо показывать да и не только молодым
00:36 "Вот список людей, которые работали, а я просто Алексей Луцай" :)
Если не ошибаюсь там ещё была игра Space Ingeneries, по крайней мере ну оооочень на нее похожая
30 секунд после выхода ролика и нет лайков ?
Нужно исправлять !
Надо было про entombed рассказать.
Очень итересно.
Луцая приятно слушать.
1:05 возникает после 1к часов(но это я 1,6к часов в терке провел)
3к в Айзеке, не возникает)
Топ видос посмотрел 3 раза 👍 советую
Скорость воспроизведения: х83747195628582
Какое же кайфовое видео. Спасибо, ребятки))
Блестяще!
Подождите, как это всё? А как же Crusader Kings III, очень интересно узнать по какому принципу работает там генерация сюжетов!
Всего 261 тысяч, с таким качественным контентом. Как же хорошо, эти фичи будем знать только мы!!! - А если честно обидно
Большое спасибо за труд !
Офигенный контент, смотрю и кайфую.👍 Лайк заслуженный
Они бафнули метеорит! (Террария 1.4)
Интересно было бы послушать ещё про Dead Cells
Кому интересно узнать подробнее про процедурную генерацию, советую посмотреть видео "Делаю процедурную генерацию в Unity" на канале "Onigiri
". Узнаете, почему в майнкрафте все реки закольцованы.
2:36 В етг не процедурная генерация насколько я знаю , там лвла не случайные , я оооочень часто одинаковые встречал
уже видел генератор миров на просторах интернета. Там вроде бы конечное количество миров, но их реально миллионы
Смотря как запрограммировать
@@alanoperate6982 как не программируй а количество комбинаций ограничено, но на наш век хватит, а дам гляди еще какой нибуть объект добавят в мир и длина сида увеличится, а с ним и добавится 100500 лярдов новых комбинаций.
Всегда интересно вас смотреть, спасибо!)
Очень интересно! Большое спасибо. : )
Божественная работа!
Забыли добавить ссылку на XYZ Media в описании. Исправляйтесь)
Спасибо за видео вам
Рекомендую посмотреть Жака Фреско, Василия Садонина
Такой принцип используется в дед бай дейлайт 8:45
Это ж каким нужно быть гением чтоб создавать такие игры. Преклоняюсь перед инди разрабами)
Не так это и сложно!
Спасибо за ролик! Разобрался сделал "рандомную" генерацию на основе шума Мерлина майнкравт эдишн
До титров я думал: Алексей Аутсайд
насчет айзека в ней есть то что не зависит даже от сида например комната дьявола или ангела они генерируется рандомно
Как то слишком поверхносно... но желание сделай свой генератор появилось
Воксели или бунд!!! И снимите что нибудь про Арму или Тарков или Дейзи крч какой то сложный военный симулятор
Почему этого диктора приятнее всего слушать? 😵😵😵
Очень крутое видео, посмотрел 20 раз.
За минуту
@@АлёфкаАлёфкавиф да
@@АлёфкаАлёфкавиф с 20 устройств запустил
в ролике есть фрагменты с канала sebastian lague, крайне рекомендую! Очень интересные coding adventure, приятный голос и объясняет понятным языком что делает.
Странно, что ни слова про Dwarf Fortress, который умеет генерировать не только статичный ландшафт, но и историю мира до начала игры.
да, настоящие генераторы случайных чисел позволяют себе только дорогие онлайн казино итд.
не смешите, во всех онлайн казино есть магнит и управляемый шарик
@@СерхиоБускетс-ф7я я о генераторе чисел, а не о рулетках. Например раздача карт в онлайн покер румах.
1:23 думал все серьезно ,но не тут-то было
Благодарю за видео
3:14 что за мод, плагин (может gui интерфейс) или что-то другое используется? Очень долго ищу, не могу найти
5:21 это мне напомнило как я карты в Вормикс 2д делал