Генерация 2D уровня.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Генерация 2D уровня.

Сообщение Колян 20 ноя 2017, 09:18

Подскажите как сделать генератор 2D уровня по типу Lode Runner, так чтоб соблюдалась определённая логика? Например, чтоб вода не соприкасалась с лавой, чтоб две лестницы не появлялись рядом, чтоб не было не досягаемых мест. Суть игры в том, что главный герой появляется на первом этаже, и бежит вверх по сгенерированным этажам, на крыше конец уровня.
Мне бы понять как вообще делаются подобные уровни, двумерным массивом или как-то ещё? Если из отдельных блоков-префабов, то не будет ли глючить, если на уровне будет 200 блоков каждый с отдельным коллайдером? Если тут объяснять влом, то буду рад, если скините ссылки на какие-нить уроки или напишите что именно нужно погуглить. Спасибо.
Изображение
Аватара пользователя
Колян
UNIт
 
Сообщения: 106
Зарегистрирован: 11 окт 2012, 20:45
Skype: Prick63

Re: Генерация 2D уровня.

Сообщение Cr0c 20 ноя 2017, 09:27

Типовое решение нетривиальной задачи? ))
Сначала напиши "правила идеального уровня"
Потом проверь на взаимоисключающие условия
Потом проверь на условия с шансом выполнения менее 2%
Ну и напоследок вручную прикинь построение уровня от каждой реперной точки (спавн героя, выход с уровня, etc)
Вот теперь тебе не меньше половины станет понятно.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Генерация 2D уровня.

Сообщение Колян 20 ноя 2017, 09:41

Cr0c писал(а):Типовое решение нетривиальной задачи? ))
Сначала напиши "правила идеального уровня"
Потом проверь на взаимоисключающие условия
Потом проверь на условия с шансом выполнения менее 2%
Ну и напоследок вручную прикинь построение уровня от каждой реперной точки (спавн героя, выход с уровня, etc)
Вот теперь тебе не меньше половины станет понятно.


А как это сделать? Что для этого нужно?
Вручную я могу на бумаге в клеточку набросать уровень.
Но как это в программном коде сделать?
Вот как проверку сделать, чтоб вода с лавой не соприкасалась?
От каждого объекта в соседние объекты лучи пускать, проверять чтоб не врезались в ненужный объект?
Аватара пользователя
Колян
UNIт
 
Сообщения: 106
Зарегистрирован: 11 окт 2012, 20:45
Skype: Prick63

Re: Генерация 2D уровня.

Сообщение Cr0c 20 ноя 2017, 10:05

Ну блин, формализуй условия генерации.
Тебе никакие лучи тут не нужны, генеришь массив, потом по нему строишь уровень.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Генерация 2D уровня.

Сообщение Колян 20 ноя 2017, 11:36

Cr0c писал(а):Ну блин, формализуй условия генерации.
Тебе никакие лучи тут не нужны, генеришь массив, потом по нему строишь уровень.

Мне бы ссылку на подобный пример. Или на более подробные описания.
Аватара пользователя
Колян
UNIт
 
Сообщения: 106
Зарегистрирован: 11 окт 2012, 20:45
Skype: Prick63

Re: Генерация 2D уровня.

Сообщение Cr0c 20 ноя 2017, 12:17

1. Уровень состоит из [3,6] этажей
2. Любой этаж имеет [1,3] соединений с другим
3. (Чото-там-с-водой/лавой-на-каждом-уровне)
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Генерация 2D уровня.

Сообщение Yaro 20 ноя 2017, 16:55

Колян писал(а):Подскажите как сделать генератор 2D уровня по типу Lode Runner, так чтоб соблюдалась определённая логика?

Методы описания логики...
Синтаксис:
Используется csharp
for (int x = 0; x < MapSize.x; x++) {
        for (int y = 0; y < MapSize.y; y++) {
                if ( ) {
                       
                } else if ( ) {
                       
                } else {

                }
        }
}

Никаких колладеров не нужно, движение персонажа по сетке можно описать и самому примитивными вычеслениями.
В интернете наверняка есть умопамрочительное множество обучающих материалов по созданию tile platformer.
Yaro
UNIт
 
Сообщения: 86
Зарегистрирован: 20 сен 2016, 21:44

Re: Генерация 2D уровня.

Сообщение ru66ssb 21 ноя 2017, 06:10

как вариант - если хорошее знание английского - глянуть сюда . у меня с англ не очень. но худо-бедно можно понять что происходит генерация уровня по шаблону с рандомным размещением блоков
Аватара пользователя
ru66ssb
UNIт
 
Сообщения: 107
Зарегистрирован: 27 июн 2015, 07:01

Re: Генерация 2D уровня.

Сообщение samana 21 ноя 2017, 07:40

ru66ssb писал(а):генерация уровня по шаблону с рандомным размещением блоков

Видео полезное, но автор темы хочет генерировать уровень динамически, не по заготовленным шаблонам.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Генерация 2D уровня.

Сообщение Колян 21 ноя 2017, 12:10

Вот что-то подобное хочу реализовать процедурной генерацией.
Изображение
Аватара пользователя
Колян
UNIт
 
Сообщения: 106
Зарегистрирован: 11 окт 2012, 20:45
Skype: Prick63

Re: Генерация 2D уровня.

Сообщение Tolking 21 ноя 2017, 13:00

Руками собирай уровни пока не поймешь как можно автоматизировать процесс...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 31