Генерация секретных комнат в играх работает на основе процедурной генерации. 3 Она подразумевает автоматическое создание наполнения игрового мира, к которому относятся уровни, комнаты, предметы, противники, инструменты игрока. 3 С помощью алгоритмов генерации задаются внешний вид и свойства этих объектов, их расположение и даже поведение. 3
Один из алгоритмов генерации секретных комнат включает следующие шаги: 1
- Генерация изначальной геометрии. 1 Создаётся прямоугольник размером со всё игровое поле. 1 Затем его рандомно делят на две части — либо горизонтально, либо вертикально. 1 Где будет проходить линия разделения, тоже выбирают случайным образом. 1
- Выбор комнат. 1 В каждом прямоугольнике выбирают «комнату» — прямоугольник такого же размера как исходный или меньшего (но не меньше, чем 3x3). 1 Комнаты перебираются по очереди, чтобы не было пересечений. 1
- Создание дверей и окон. 1 Для каждого сектора просматриваются все его соединения, и на каждом просмотренном соединении размещаются двери и окна. 1 Вначале выбирается точка на соединении, желательно ближе к центру. 1 Затем в этой точке размещается либо дверь, либо окно (а если это соединение к секретной комнате, то секретная стена). 1
Также при генерации секретных комнат учитываются следующие правила: 2
- Секретная комната может примыкать к 1–4 другим комнатам, в 95% случаев она будет иметь 2 или 3 входа. 2
- Все проходы в секретную комнату не должны быть загорожены камнями, пропастью или врагами. 2
- Секретная комната не может примыкать к комнате с боссом. 2