Страница 6 из 9

Re: Генерация мира

Добавлено: 20 апр 2009, 16:43
Чёрствый Рогалик
Максим Кич писал(а):
Чёрствый Рогалик писал(а):Такой алгорит хорошо идёт, когда нужно сделать "дикое" подземелье, но как мне кажется, будет очень сложно приделать к такому лабиринту внятную легенду. :?
Речь шла о простом алгоритме. Я предложил простой рабочий алгоритм, который можно запрограммировать с минимумом навыков.

Вообще, имхо, генератор лабиринтов надо делать обёрткой к графу, представляющему собой подземелье. Одним махом решаем массу задач, начиная с оптимизации поведения монстров и заканчивая «приделыванием легенды». Но что-то мне говорит, что начинать стоит не с этого.
Максим, пиши посты с поправкой на гуманитариев, что такое граф, не разумию. :oops:

Re: Генерация мира

Добавлено: 21 апр 2009, 00:22
BAHO
Чёрствый Рогалик писал(а):что такое граф, не разумию. :oops:
В математической теории графов и информатике граф — это совокупность объектов со связями между ними.

к примеру:
Комнаты(обьекты) представляются как вершины, или узлы графа, а каридоры (связи) — как дуги, или рёбра. Для разных областей применения виды графов могут различаться направленностью, ограничениями на количество связей и дополнительными данными о вершинах или рёбрах.

Эх теорию графов я в Обнинске здавал. Здал и забыл. Ктож знал что мне это потребуется в моём хоби.

Re: Генерация мира

Добавлено: 21 апр 2009, 06:42
Чёрствый Рогалик
Ага, понятно! Я тем же самым пользовался, только не знал, что это графы называется.

Re: Генерация мира

Добавлено: 22 апр 2009, 01:29
BAHO
ссылка по теме
мне нравится как работает
http://direpress.bin.sh/tools/dungeon.cgi

Re: Генерация мира

Добавлено: 22 авг 2012, 08:26
warchief
подскажите пожалуйста рогалики с исходным кодом в которых есть генерация континентов - очень хочу посмотреть на код, как такое делается. А то пытался свое написать, но получается такая фигня

Re: Генерация мира

Добавлено: 22 авг 2012, 09:20
Максим Кич
warchief писал(а):подскажите пожалуйста рогалики с исходным кодом в которых есть генерация континентов - очень хочу посмотреть на код, как такое делается. А то пытался свое написать, но получается такая фигня
А можно чуть точнее описать, что требуется от алгоритма? Потому что вряд ли есть рогалики, симулирующие движение материковых плит.

Re: Генерация мира

Добавлено: 22 авг 2012, 10:50
Jesus05
warchief писал(а):подскажите пожалуйста рогалики с исходным кодом в которых есть генерация континентов - очень хочу
посмотреть на код, как такое делается. А то пытался свое написать, но получается такая фигня
не исходный код конечно... но описание алгоритма который может быть сгодится.
http://habrahabr.ru/post/111538/
(я пытался его реализовать что-то не заладилось второй раз нет времени попробовать)

Re: Генерация мира

Добавлено: 22 авг 2012, 15:39
Frolik
Jesus05 писал(а):
warchief писал(а):подскажите пожалуйста рогалики с исходным кодом в которых есть генерация континентов - очень хочу
посмотреть на код, как такое делается. А то пытался свое написать, но получается такая фигня
не исходный код конечно... но описание алгоритма который может быть сгодится.
http://habrahabr.ru/post/111538/
(я пытался его реализовать что-то не заладилось второй раз нет времени попробовать)
я такое реализовывал
viewtopic.php?f=7&t=516
только исходники где-то посеял

Re: Генерация мира

Добавлено: 22 авг 2012, 23:30
warchief
Максим Кич писал(а):А можно чуть точнее описать, что требуется от алгоритма? Потому что вряд ли есть рогалики, симулирующие движение материковых плит.
хочу что-то такое:
Скрытый текст: ПОКАЗАТЬ
Изображение
Это из рогалика, но к сожалению автор не дает исходников

Re: Генерация мира

Добавлено: 23 авг 2012, 05:28
Jesus05
ну это похоже именно на тот алгоритм на который я давал ссылку, а Frolik реализовывал :)

Re: Генерация мира

Добавлено: 08 фев 2017, 16:50
altmax
Подошел и я к генерации подземелий, пока не определился с основными алгоритмами. Точнее говоря понравился этот алгоритм https://habrahabr.ru/post/275727/ но к реализации даже не приступал.
Для примера решил посмотреть, как генерируются подземелья в Dungeon Crawl - там 6800 строк кода только для генерации, и это наверно ещё не все. Не осилил.

Re: Генерация мира

Добавлено: 09 фев 2017, 11:52
kipar
Этот алгоритм я некоторое время реализовал на паскале для BearLibMG: viewtopic.php?f=26&t=607&start=240
ну и на первой странице там куча других менее изощренных алгоритмов. Но если dll библиотека не подходит то от кода на паскале наверное толку будет не больше чем от кода из статьи.

Re: Генерация мира

Добавлено: 09 фев 2017, 21:47
Darkness
altmax писал(а):
08 фев 2017, 16:50
Подошел и я к генерации подземелий, пока не определился с основными алгоритмами. Точнее говоря понравился этот алгоритм https://habrahabr.ru/post/275727/ но к реализации даже не приступал.
Для примера решил посмотреть, как генерируются подземелья в Dungeon Crawl - там 6800 строк кода только для генерации, и это наверно ещё не все. Не осилил.
Вы таки будете смеяться, но этот алгоритм даже тут на вике есть, Харука год назад перевела. Единственное, что страница с его описанием не выведена в общий список всего-всего-всего.

Re: Генерация мира

Добавлено: 10 фев 2017, 07:32
Jesus05
Darkness писал(а):
09 фев 2017, 21:47
Единственное, что страница с его описанием не выведена в общий список всего-всего-всего.
Так может ссылкой поделишься? ;)

Re: Генерация мира

Добавлено: 10 фев 2017, 08:05
kipar
на вики вот он: http://rlgclub.ru/wiki/Процедурная_гене ... в_TinyKeep
В любом случае я не очень понимаю что такого хорошего в этом алгоритме (ну кроме нереального количества обсуждений и красивых картинок генерации). Он позволяет делать широкие коридоры с кривыми стенками. Для чего-то похожего на диабло, что может эти коридоры густо забить статуями\дверями\колоннами\решетками и прочими предметами интерьера это неплохо, для большинства рогаликов - выглядит просто как странные коридоры из прямоугольников. Это тоже конечно можно использовать, но на универсальный алгоритм не тянет.

Из тех что на вики мне вот этот алгоритм понравился: http://rlgclub.ru/wiki/Алгоритм_построения_подземелий
Точнее даже не сам алгоритм а идея что надо привязывать генерацию к содержимому. Т.е. не сначала делать комнаты а потом генерировать для них содержимое, а сразу добавлять комнаты с конкретным смыслом (алтарь, казармы, бойня, сокровищница) и в зависимости от их роли генерить соседние проходы и комнаты. Но реализовывать я не пробовал.