Процедурный генератор подземелий, лабиринтов, пещер и островов (для игр)




Внешняя обработка для процедурной генерации подземелий, лабиринтов, пещер и островов (управляемые и обычные формы)

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

Настройки генерации:

  1. Зерно: возможность указывать определенное «зерно» для генератора случайных чисел.
  2. Вид генерируемой карты: подземелье (лабиринт), пещера или остров.
  3. Заполнять карту: заполнять оставшееся пространство карты стенами или водой (для острова).

Подземелье:

  1. Неправильные комнаты: если этот флаг не установлен все комнаты будут прямоугольными.
  2. Максимум комнат: лимитируется количество создаваемых комнат. При установке количества в «0» будет создан только лабиринт.
  3. Расстояние: минимальное расстояние между создаваемыми комнатами.
  4. Дополнительные двери: по умолчанию создается «идеальное» подземелье, т.е., каждая область (комната) имеет одно и только одно соединение (дверь) с другой областью. Таким образом, из любой комнаты в любую другую можно попасть одним единственным путем. Добавление дополнительных дверей может облегчить прохождение лабиринта.
  5. Извилистость: чем меньше это значение, тем более длинными будут рукава коридоров.
  6. Тупики: процент тупиков, которые останутся после генерации уровня. Может использоваться для создания тупиковых коридоров в подземельях.
  7. Сквозные проходы: то же самое, что и п.4, только для стенок лабиринта.

Пещера:

  1. Минимальный размер: будут удалены участки пещеры площадью меньше, чем указанное значение.
  2. Разреженность: чем выше это значение, тем более просторной будет пещера.

Остров:

  1. Детализация: чем выше значение, тем более детальней получается остров, но и тем дольшебудет длиться генерация.
  2. Шероховатость: влияние эррозии.
  3. Деформация: влияет на форму острова.
  4. Вода: уровень моря. Чем выше значение, тем больше участков острова будет скрыто под водой.

 Новое в версии 1.1:

  1. Добавлено «зерно» для генератора случайных чисел.
  2. Возможность генерировать комнаты неправильной формы для подземелий.
  3. Возможность указывать минимальное расстояние между комнатами.
  4. Добавлена генерация пещер.
  5. Добавлена генерация островов.
  6. Изменено масштабирование.

6 Comments

  1. Sanya2049

    Хотя бы двери входа и выхода нарисовал, что была цель какаета

    Reply
  2. MherArsh

    (1) Sanya2049, Согласен, не хватает входа-выхода, когда то решал задачу поиска пути в таком лабирине ))

    Reply
  3. Caliban

    (1) Sanya2049, (2) MherArsh, не вижу смысла. Входы и выходы каждый определяет самостоятельно — кому то они нужны в комнатах, другим — в стенках или тупиках лабиринта.

    Reply
  4. Lok`Tar

    Жаль, что код закрыт:(

    Reply
  5. Caliban

    (4) Lok`Tar, извините, но я закрываю свой код, если планирую использовать обработку в дальнейшем. Подробное описание этого алгоритма с картинками можете посмотреть здесь. Там же есть ссылки и на исходники. Правда, они на языке dart, но разобраться можно.

    Reply
  6. Tatitutu

    (4) открытый код )

    Игра: Лабиринт для 1С (теперь и для 8.0-8.2) 24.09.10 16:53

    http://infostart.ru/public/75987/

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *