Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Подкиньте несложный алгоритм построения локаций...

Подкиньте несложный алгоритм построения локаций...

joubПостоялецwww17 окт. 201715:55#0
Всем доброго для, ищу адекватный, не сложный (без наворотов) алгоритм (пример) построения локаций.
По сути нужно генерировать карту

1. 2 уровня высот (море/земля)
2. На земле могут встречаться лесные массивы, горы(заградительный элемент)
3. Всякого рода шахты с голдой, "заброшенные" каменоломни....
4. Реки, озера...

желательно масштабировать это все до бесконечности ))

nesПостоялецwww17 окт. 201716:20#1
+ Показать
joubПостоялецwww17 окт. 201716:22#2
смешно.
gudleifrЗабаненwww17 окт. 201716:29#3
joub
> желательно масштабировать это все до бесконечности
Вот и ответ. Фрактал, однако...

ВасянУчастникwww17 окт. 201716:44#4
joub
> Всем доброго для, ищу адекватный, не сложный (без наворотов) алгоритм (пример)
> построения локаций.
> По сути нужно генерировать карту
> 1. 2 уровня высот (море/земля)
> 2. На земле могут встречаться лесные массивы, горы(заградительный элемент)
> 3. Всякого рода шахты с голдой, "заброшенные" каменоломни....
> 4. Реки, озера...
>
> желательно масштабировать это все до бесконечности ))

Если нужна карта планеты (квадратной, не шарообразной и не тороидальной), то вот мой вариант.
Делал без масштабирования до бесконечности, без рек, озёр и шахт с голдой. Крайне геморный вариант.
1. Карта высот алгоритмом Diamond Square (сойдёт любой другой). Опционально сглаживание.
2. Карта материков и океанов с разными глубинами и высотами.
3. Карта влажности в зависимости от высоты над уровнем моря и чего-то там ещё. Уже не помню как делал. Посмотрел карты нашей земли и попытался сделать похоже.
4. Карта температур в зависимости от высоты над уровнем моря и влажности. Так же посмотрел карты и сделал, чтобы генерировало похоже.
5. Карта биомов. Тоже открывал атлас, играл с цифрами и пытался сделать как на земле.

В результате получается плоская карта биомов с 2-мя уровнями высот. Она используется. Остальные карты выкидываются

Вот такой результат даёт генератор.
Карта высот:

+ Показать

Раздельно суша и океаны:
+ Показать

Карта влажности
+ Показать

Карта температур:
+ Показать

Биомы:
+ Показать

Если надо, могу скинуть исходник или рабочую прогу (если найду незапоротую версию). Исходник на Lua.

ВасянУчастникwww17 окт. 201716:49#5
Алгоритм на Lua (да, говнокод. Сорян)
+ Показать
+ Показать
+ Показать
ВасянУчастникwww17 окт. 201716:50#6
Продолжение
+ Показать
joubПостоялецwww17 окт. 201718:08#7
Васян
мысль уловил ))) буду копаться в этом направлении, а какие алгоритмы карт высот еще бывают ?: )
ВасянУчастникwww17 окт. 201719:25#8
joub
> а какие алгоритмы карт высот еще бывают ?
Perlin Noise

Правка: 17 окт. 2017 19:33

joubПостоялецwww4 дек. 20170:17#9
Ура, немного получилось сгенерировать то что нужно ))

Теперь встал вопрос с более мелкими деталями, имеет ли смысл генерировать этим же алгоритмом более мелкие детали, такие как биомы леса, пустынь, скал...

Тут пример генератора на Java

+ Показать

joubПостоялецwww4 дек. 201711:16#10
Вот пример карты из как мне кажется - удачного...

карта | Подкиньте несложный алгоритм построения локаций...

joubПостоялецwww4 дек. 201712:44#11
Может стоит попросту процентно задать столько хотим воды, песка, зелени и гор ? :)
UriПостоялецwww28 дек. 201715:53#12
Генератор миров (в разных проекциях) http://topps.diku.dk/torbenm/maps.msp на простом С.
ИзображениеИзображение

/ Форум / Программирование игр / Игровая логика и ИИ

2001—2018 © GameDev.ru — Разработка игр