Лидеры года — новая категория на Workspace Digital Awards! Номинируйте вашу команду, продукты и проекты.
gds.dev
Система процедурной генерации мира для Unity
gds.dev
#Программирование игр

Система процедурной генерации мира для Unity

18 
gds.dev Россия, Новосибирск
Поделиться: 0 0 0
Система процедурной генерации мира для Unity
Сфера

Развлечение и спорт

Сдано

Июнь 2026

Задача

Клиент: собственная разработка

Задача: Строить окружения по повторяемым правилам вместо ручного размещения объектов.

Решение

  • Граф операторов. Визуальный редактор позволяет собирать генерацию из связанных блоков: получить поверхность, распределить точки, применить условия и разместить объекты. Изменяя параметры и связи, можно менять окружение без переписывания всей логики генератора.

  • PointData / AttributeSet. Разработана общая модель данных для операторов графа. PointData хранит точки будущего размещения объектов: позицию, поворот, масштаб, плотность и дополнительные свойства.

    AttributeSet представляет таблицы параметров без обязательной привязки к координатам — для настройки правил и обработки данных.

  • Spatial-источники. Генератор работает с пространственными источниками: рельефом, поверхностями моделей, сплайнами, объёмами и текстурами. Они позволяют учитывать геометрию сцены: размещать объекты на склонах, вдоль дорог или внутри заданных областей.

  • Sampling - распределение точек. Реализованы способы получения точек на поверхности рельефа и моделей, а также вдоль кривых. При распределении могут учитываться площадь поверхности, её наклон и направление. Фиксированный seed обеспечивает повторяемость генерации.

  • Фильтры. Точки размещения отбираются по заданным условиям: уклону, плотности, пользовательским атрибутам и принадлежности области. Например, можно исключить деревья на крутых склонах, проредить растительность или ограничить генерацию контуром поляны.

  • Spawn - размещение объектов. После обработки точек генератор размещает в сцене выбранные объекты, используя рассчитанные координаты, повороты и размеры. Это связывает правила графа с итоговым окружением: деревьями, камнями, элементами декора и другими префабами.

  • Биомы. Реализована система типов окружения со своими правилами и наборами объектов. Для каждого биома можно подключить отдельный подграф генерации, а на границах смешивать распределение объектов, формируя переходы между зонами.

  • HiGen - иерархическая генерация. Генерация разделяется на уровни с разным размером пространственных ячеек. Общие решения рассчитываются на крупном уровне, а локальные детали — на мелком, с передачей данных между уровнями и повторным использованием результатов.

  • Streaming - генерация мира по частям. Окружение организовано в ячейки, которые подготавливаются и отображаются вокруг заданной точки — например, игрока или камеры. Удалённые участки выгружаются, а при возвращении восстанавливаются с тем же результатом генерации.

Пример графа для одного из биомов
Смесь 2х биомов (равнина и горный, лиственные деревья переходят в хвойные. ландшафт, растения)
Применение при разработке сетевой игры

Результат

Как видно на изображениях - система успешно применена для повторяемый генерации окружения по установленным правилам.


Стек технологий

  • С# С# Язык программирования
  • Unity Unity Среда разработки

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

gds.dev с удовольствием обсудит вашу задачу

Оставить заявку