Генератор территорий

Материал из Клуб любителей рогаликов
Перейти к: навигация, поиск

Я экспериментировал со следующим алгоритмом:

  1. Решить диапазон значений высот земли (я думаю 0-255 - удобно)
  2. Инициализировать область земли значением 0. (Произвольно, Вы можете инициализировать со средним числом минимума и максимума высоты)
  3. Беспорядочно установить прямоугольник случайного размера со случайным значением (0-255) на карте, добавляя значение к каждой координате в прямоугольнике области. Произвольно значение может быть чем-нибудь между (-x..x). Если результат - меньше чем минимальная высота или больше чем максимальная высота, скорректировать значение.
  4. Повторить насколько необходимо.
  5. Применить процедуру сглаживания к каждой координате, таким образом моделируя эффект эрозии. Я использую простой метод урегулировать значения земли усреденением тайлов земли (центральный+южный+северный+восточный+западный).
  6. Установить значение уровня воды. Любое ниже этого будет водой.

Не осуществлен все же речной алгоритм. Хотя этот, кажется, работает прекрасно, но немного медленно (особенно процедура сглаживания).



Автор: Mixi Lauronen.
Источник: Terrain Generator.
Перевел: Сергей В. Ждановских [Alchemist], 21.07.2005.