Mapgen2 — волшебная палочка для генерации игровых карт

07 May, 2025

Репозиторий давно не обновлялся

Последнее обновление было 1 год назад.

1,365
🔱 211
👥 107

Когда в последний раз вы задумывались, как создаются реалистичные карты в стратегиях или RPG? Оказывается, за красивыми островами с извилистыми реками и живописными горами стоит не художник, а алгоритмы — например, такие как в проекте Mapgen2.

Почему это интересно?

Разработчик Amit Patel создал этот инструмент после неудачного опыта с Perlin-шумом. Его цель — генерировать континенты и острова с тремя ключевыми элементами:

  1. Естественные береговые линии
  2. Горы (чем дальше от побережья — тем выше)
  3. Реки, текущие по долинам к океану

Ключевые фишки:

  • Полигоны вместо тайлов — всего около 1000 полигонов вместо миллионов тайлов, что идеально для:
    • Зон с уникальной историей
    • Локаций для городов и квестов
    • Территорий для захвата
  • Готовые игровые объекты — реки становятся границами полигонов, между полигонами можно прокладывать дороги
  • 11 типов местности: от океанов до саванн

Как это работает технически

Вместо физического моделирования эрозии (что сложно и ресурсоемко), Mapgen2 использует элегантный подход:

  1. Создает контур берега
  2. Задает высоту как расстояние от берега
  3. Добавляет реки, которые «стекают» вниз по склонам

Основные технологии:

  • ActionScript (хотя планировался C++)
  • Voronoi для разбиения карты на полигоны
  • as3delaunay и as3corelib для визуализации
# Команда для сборки:
mxmlc -source-path+=third-party/PM_PRNG \
      -source-path+=third-party/as3delaunay/src \
      -source-path+=third-party/as3corelib/src \
      mapgen2.as -static-link-runtime-shared-libraries

Где это применить?

  • Инди-разработчикам — быстрый старт для игр жанра 4X или стратегий
  • Гейм-дизайнерам — прототипирование игровых миров
  • Для настолок — генерация уникальных карт для Dungeons & Dragons

Проект хоть и помечен как «не поддерживаемый», но полностью работоспособен. Главное — его концепции (особенно подход с полигонами) актуальны даже спустя годы.

Реклама

Стоит ли пробовать?

Если вам нужно:

  • Быстро создать прототип игрового мира
  • Понять принципы процедурной генерации
  • Получить вдохновение для своего генератора карт

...то Mapgen2 — отличная отправная точка. Для production лучше взять идеи, а не код (ActionScript уже редкость).

Полное описание алгоритма: Polygon Map Generation

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.