TGViewer
Dev Math Dev Math @easy_dev_math · 615 subscribers
Post #19 365
🏰 Процедурная генерация: рандом с правилами

«Процедурная генерация» — не просто случайные числа. Это рандом,
ограниченный правилами так, чтобы результат был играбелен.

Простейший пример — комнатный dungeon:

Шаг 1. Создай сетку N×M, заполни стенами (1).
Шаг 2. Попробуй разместить K случайных прямоугольников-комнат.
Если прямоугольник не пересекается с уже размещёнными — добавь.
Шаг 3. Соедини центры соседних комнат коридорами (L-образный тоннель).
Шаг 4. Поставь старт в первую комнату, выход — в последнюю.


void GenerateDungeon(int seed)
{
var rng = new SeededRandom(seed);
var rooms = new List<RectInt>();

for (int i = 0; i < MAX_ROOMS; i++)
{
int w = rng.Next(MIN_SIZE, MAX_SIZE);
int h = rng.Next(MIN_SIZE, MAX_SIZE);
int x = rng.Next(1, width - w - 1);
int y = rng.Next(1, height - h - 1);
var room = new RectInt(x, y, w, h);

if (!rooms.Any(r => r.Overlaps(room)))
{
CarveRoom(room);
if (rooms.Count > 0)
CarveCorridors(rooms.Last(), room, rng);
rooms.Add(room);
}
}
}


Секрет «не сломанного» уровня: правила ограничивают, рандом заполняет.
Именно это делает Spelunky, Enter the Gungeon, Dead Cells — каждый запуск свой,
но всегда проходимый.

#мат_геймдев #МатРазбор #процедурнаяГенерация
  • 🔥 5
  • ❤ 1
More from @easy_dev_math
  1. Sep 28, 2026🤔 Как проверить свою идею? Сделал небольшое видео о том, как проверить свою идею. Самый п…
  2. Sep 28, 2026🤔 Почему так важен онбординг в игре? По следам разбора давайте на этой неделе разберем те…
  3. Sep 26, 2026🤨 Разбор игры — «Алхимик: магазин волшебных зелий» https://yandex.ru/games/#app=582380 Чт…
  4. Sep 25, 2026🥴 Кина не будет (сегодня) У меня техническая накладка. Форсмажор. Поэтому прошу понять и…
  5. Sep 24, 2026😁 Почему игроки фармят пиксели https://dev-math.ru/articles/grind/ Дописал статью про воп…
  6. Sep 23, 2026⚡️ Как сделать игру? Подумал что интересного можно сделать и придумал. Решил описать больш…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →