Я играю с написанием генератора случайных карт и не совсем уверен, как случайным образом создавать реалистичные ландшафты. Я работаю с этими видами локальных карт, представляющих некоторые интересные проблемы.
Одним из простейших случаев является forest:
Sparse Medium Dense
Typical trees 50% 70% 80%
Massive trees — 10% 20%
Light undergrowth 50% 70% 50%
Heavy undergrowth — 20% 50%
Деревья и подлесок могут существовать в одном и том же пространстве, поэтому средний разреженный лес имеет 25% типичных деревьев и легкий подлесок, 25% типичных деревьев, 25% светлого подлеска и 25% открытого пространства. Средние и густые леса будут немного больше думать, но это не то место, где лежит моя проблема, так как все это равномерно рассеивается.
Моя проблема заключается в создании кластеров и путей, сохраняя процентные ограничения. Болота являются хорошим примером:
Moor Swamp
Shallow bog 20% 40%
Deep bog 5% 20%
Light undergrowth 30% 20%
Heavy undergrowth 10% 20%
Квадраты глубоких болот обычно группируются вместе и окружены нерегулярным кольцом мелких квадратов болота.
Также может присутствовать дополнительный элемент карты, изгороди, а также путь открытой земли, проносящийся через болото. Оба эти типа элементов карты (кластеры и пути) представляют проблемы, так как общий состав карты должен содержать X% элемента, но он не равномерно распределен. Другие элементы, такие как потоки, пруды и зыбучие станции, также нуждаются в генерации кластера или типа пути.
Какую технику я могу использовать для создания реалистичных карт с учетом этих ограничений?
Я использую С#, FYI (но это не вопрос С#).