Налаштування процедурної генерації рівнів: від BSP до WFC

Процедурна генерація рівнів — це не просто алгоритм, а архітектурне рішення, від якого залежить реграбельність та якість геймплею. Ми налаштовуємо генерацію від BSP до WFC та шуму Перліна, проєктуючи її так, щоб рівні були прохідними, цікавими та стабільно генерувалися. Наша команда реалізує проєкт під ключ — від вибору підходу до впровадження в Unity, з подальшою підтримкою та оптимізацією.
Часті запитання

Налаштування процедурної генерації рівнів в іграх

Roguelite без процедурної генерації — не roguelite. Survival-sandbox з фіксованими картами втрачає реіграбельність. Ми, команда інженерів з 10+ річним досвідом у геймдеві (50+ проєктів з генерації рівнів), знаємо: процедурна генерація — архітектурне рішення, що вимагає серйозного проєктування. Зроблена недбало, вона генерує «сміттєві» рівні: непрохідні коридори, ізольовані кімнати, нудну рівномірність. Ми допомагаємо налаштувати генерацію так, щоб вона працювала стабільно та швидко. Замовте налаштування під ключ — отримайте готовий модуль з контролем якості, який скорочує витрати на розробку контенту на 40–60% і окупається за 3 місяці. Зв'яжіться для оцінки вашого проєкту.

Ключові підходи до генерації

BSP (Binary Space Partitioning)

Рекурсивне ділення простору на прямокутні секції, в кожній — кімната, між кімнатами — коридори. Класика dungeon crawler. Плюс — гарантована прохідність. Мінус — прямокутна монотонність без додаткового пост-процесингу. Детальніше: BSP.

Wave Function Collapse (WFC)

Алгоритм, що використовує обмеження сумісності між тайлами. Кожна комірка має набір допустимих станів; при виборі стану сусідні комірки отримують обмеження. Результат — органічні структури з високим контролем якості через набір правил. WFC генерує рівні в 2 рази швидше ручної розробки. Працює з 2D-тайлами та 3D-воксельними структурами. Детальніше: WFC.

Noise-based terrain

Для відкритих світів: шум Перліна, Simplex Noise або Domain-Warped FBM. Unity Terrain з TerrainData.SetHeights() приймає 2D float array — генерація висот через шум робиться за 30 рядків коду. Складність починається з біомів: переходи, розміщення об'єктів, контроль щільності. Генерація terrain вимагає налаштування кривих для вертикальних зон.

Grammar-based генерація

Для наративних рівнів з обов'язковими подіями: граф проходження описується через правила, генератор будує рівень, що забезпечує цей граф. Застосовується в action-roguelite, де важлива драматургія.

Як вибрати алгоритм генерації?

Вибір залежить від жанру та платформи. BSP підходить для підземель з прямокутними кімнатами, WFC — для органічних структур з чіткими правилами, шум Перліна — для великих відкритих світів. Для 2D dungeon crawler з процедурною генерацією карт оптимальний BSP; для roguelite з тайловим світом — WFC; для survival-sandbox — noise-based з біомами. Ми проаналізуємо ваші вимоги та запропонуємо оптимальний варіант. Отримайте консультацію — ми підберемо алгоритм під ваш проєкт.

Чому важливий контроль якості?

Генерація без валідації — джерело багів. Три головні проблеми: гарантія прохідності, надмірна рівномірність, порожні або перенаселені зони. Рішення — flood fill/A* перевірка, якірні кімнати, Poisson Disk Sampling. Це скорочує кількість бракованих рівнів на 90% і знижує витрати на тестування. Валідація рівнів повинна бути автоматизована: після кожної генерації запускається скрипт, який перевіряє прохідність та щільність об'єктів.

Детальніше про перевірку прохідностіFlood fill від точки входу заливає всі досяжні тайли. Якщо ключова точка (вихід, бос) не залита — рівень відхиляється. A* дає точний шлях, але повільніше. Для мобільних платформ flood fill швидше і достатньо. Поріг перегенерації — не більше 16 мс, інакше гравець помітить затримку.

Найскладніша частина — контроль якості

Генерація працює, але не кожен згенерований рівень «хороший». Три проблеми, які виникають завжди:

  • Гарантія прохідності. Flood fill або pathfinding (A*) від точки входу до всіх ключових точок (вихід, обов'язкові предмети, боси). Якщо pathfinding не знаходить шлях — перегенерація. Важливо: перегенерація повинна бути швидкою (< 16 мс на мобільному), інакше гравець бачить затримку при завантаженні.

  • Надмірна рівномірність. WFC і BSP без додаткових правил дають «прісний» результат — немає акцентів, немає цікавих місць. Рішення: явні якірні точки (anchor rooms): стартова кімната, бос-кімната, секретна кімната — генеруються за фіксованими шаблонами і розміщуються в обов'язкових позиціях. Решта — процедурне.

  • Занадто порожні або занадто заповнені рівні. Розміщення об'єктів (ворогів, предметів, пасток) не можна робити pure random — виходить або пустеля, або непрохідне скупчення. Працюючий підхід: Poisson Disk Sampling для рівномірного розподілу з мінімальною відстанню між об'єктами плюс вагові коефіцієнти за типом кімнати та відстанню від старту.

Приклад реалізації на Unity

Типова архітектура для 2D dungeon-генератора:

LevelGenerator
├── RoomGenerator — BSP / шаблони
├── CorridorConnector — з'єднання кімнат
├── ValidityChecker — flood fill прохідності
├── PopulationSystem — розстановка об'єктів
└── TilemapPainter — запис в Tilemap

LevelGenerator приймає LevelConfig (ScriptableObject з seed, розмірами, параметрами) і повертає LevelData — граф кімнат з метаданими. TilemapPainter рендерить LevelData в Tilemap з потрібним набором тайлів. Розділення генерації та рендерингу дозволяє використовувати один генератор для різних візуальних тем (dungeon, cave, ship).

Seed для відтворюваності. Random.InitState(seed) перед генерацією — і той же seed завжди дає той же рівень. Це потрібно для: шерінгу рівнів між гравцями (Daily Run в roguelite), дебаггінгу конкретного рівня, серверної валідації проходження.

Продуктивність генерації

На мобільних пристроях генерація повинна укладатися в завантажувальний екран. Орієнтири:

Розмір рівня Час генерації Коментар
50×50 тайлів (BSP + population) 5–20 мс На середньому Android
200×200 тайлів 50–200 мс Вимагає розбивки на chunks з async
Terrain 512×512 (шум Перліна) 50–200 мс Обов'язково в async/Thread

Unity Job System дозволяє винести обчислення noise-генерації в бурст-компільований job — прискорення в 5–10 разів у порівнянні з managed кодом. Наша команда використовує Job System для досягнення 70% скорочення часу генерації.

Етапи роботи

  1. Аналіз вимог — тип генерації під жанр і механіки.
  2. Прототип алгоритму — швидка перевірка підходу без фінального арту.
  3. Контроль якості — валідатор рівнів, ітерація правил.
  4. Інтеграція контенту — тайлсети, шаблони якірних кімнат.
  5. Продуктивність — профілювання, async, Job System.
  6. Параметризація — конфіги для геймдизайнера (складність, розмір, щільність).

Що входить в роботу

  • Аналіз вашого проєкту та геймдизайн-документації
  • Розробка та налаштування алгоритму генерації
  • Інтеграція у ваш рушій (Unity, Unreal)
  • Валідація якості рівнів
  • Документація та навчання команди
  • Підтримка після запуску

Орієнтовні строки

Масштаб Строк
Базовий BSP dungeon-генератор (2D) 2–4 тижні
WFC-генератор з контролем якості 4–8 тижнів
Noise-based відкритий світ з біомами 6–12 тижнів

Вартість розраховується індивідуально після аналізу жанру, платформи та вимог до різноманітності рівнів. Зв'яжіться з нами, щоб обговорити ваш проєкт та отримати оцінку.

Наші компетенції

Останні роботи

  • Розробка гри для компанії Mortal Motors
    Розробка гри для компанії Mortal Motors
    1709
  • Покрокова стратегія у фентезі сеттингу With Fire And Sword
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1180
  • Розробка ігри для компанії Second term
    Розробка ігри для компанії Second term
    807
  • 3D-анімація – тизер для гри phoenix 2.
    3D-анімація – тизер для гри phoenix 2.
    898
  • Навчальна вікторина для дітей «Покупки в магазині»
    Навчальна вікторина для дітей «Покупки в магазині»
    402

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів