Генератор уровней

Я решил что следующую игру буду делать с генерируемыми уровнями и сделал некоторые наброски алгоритма для рандомной генерации лабиринтов из связанных комнат разных размеров. Процесс генерации выглядит следующим образом:

Сам алгоритм проще описать картинками нежели кодом:

  1. В произвольном месте ставиться первая комната
    step1
  2. На границе каждой стенки рандомно генерируется от одной до двух (на самом деле это на ваше усмотрение) новых комнат, при этом если комната пересекает ранее созданные или выходит за границу области генерации, то её создание отменяется, а грань из которой производилась генерация, помечается как грань, из которой в следующей итерации не будут создаваться новые комнаты. Таким же «ярлыком» обозначаются все грани исходной комнаты из которых генерация  была произведена успешно, и те грани новых созданных комнат которыми они соприкасаются с исходной комнатой.
    step2
  3. Алгоритм является рекурсивным, и пункт второй повторяется до тех пор, пока все грани не будут отмечены как грани, из которых генерировать новые комнаты больше нельзя.
    step3
  4. Отмечу так же, что в алгоритм заложены минимальные ширина и высота генерируемых прямоугольников.
    step4
  5. Ещё одна итерация
    step5
  6. Последняя итерация
    step6

Не знаю приходило ли кому-то в голову генерировать уровни так же как я, думаю что приходило, но на глаза мне такие статьи не попадались. :)

Оставить комментарий

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

Капча * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.