Добавлен lentinant,
опубликован
Создание новой версии игры я решил начать с пункта, который сделает ее существенно отличной от конкурсной версии, а именно - генерации уровней.
На этот момент мной были использованы два алгоритма. Но оба убогие, поскольку придуманы мною.
Первый - рекурсивная генерация комнат. То есть, в комнате есть скрипт, который, при создании оной, с определенным шансом создает на каждой грани комнаты (там, где это возможно) еще одну комнату, для нее в свою очередь запускается этот же скрипт, который создает определенным образом новые комнаты, и так далее.
Вот результаты
В результатах слишком много одиночных линий, как по мне.
Второй метод - рисование линиями. Мы рисуем прямую линию определенной длины. После этого выбирается один из трех вариантов - продолжение линии, или же поворот влево или вправо, выбирается новая длина, и рисуется следующая часть линии. И так пока не будет создано определенное количество комнат. Само собой, там, где новая линия пересекает уже существующие, новая комната не создается.
Вот результаты
Это уже ближе, однако, все равно что-то не то. Буду искать методы дальше.
Есть еще две идеи.
Первая - на основе часто встречающегося алгоритма, когда по уровню раскидываются комнаты, а потом соединяются коридорами. У меня немного другая идея - делаем прямоугольную комнату, генерируем соответственно алгоритму набор комнат, однако, вместо того, чтобы добавлять их на уровень, вырезаем пространство на пересечении первой крупной комнаты и сгенерированных маленьких комнат. Таким образом, получаем эдакий "голландский сыр".
Вторая идея - делаем квадратные префабы с комнатами и коридорами, в местах сочленений делаем "сокеты", спавним начальную комнату, и уже в зависимости от наличия в ней "сокетов" спавним рандомный элемент из набора, а дальше - по аналогии с первым алгоритмом.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован prog
из тех пресетов что я помню и что подходят под твой случай: