Генератор территорий
Материал из RLGClub :: Клуб любителей рогаликов
Я экспериментировал со следующим алгоритмом:
- Решить диапазон значений высот земли (я думаю 0-255 - удобно)
- Инициализировать область земли значением 0. (Произвольно, Вы можете инициализировать со средним числом минимума и максимума высоты)
- Беспорядочно установить прямоугольник случайного размера со случайным значением (0-255) на карте, добавляя значение к каждой координате в прямоугольнике области. Произвольно значение может быть чем-нибудь между (-x..x). Если результат - меньше чем минимальная высота или больше чем максимальная высота, скорректировать значение.
- Повторить насколько необходимо.
- Применить процедуру сглаживания к каждой координате, таким образом моделируя эффект эрозии. Я использую простой метод урегулировать значения земли усреденением тайлов земли (центральный+южный+северный+восточный+западный).
- Установить значение уровня воды. Любое ниже этого будет водой.
Не осуществлен все же речной алгоритм. Хотя этот, кажется, работает прекрасно, но немного медленно (особенно процедура сглаживания).
Автор: Mixi Lauronen.
Источник: Terrain Generator.
Перевел: Сергей В. Ждановских [Alchemist], 21.07.2005.