В настоящее время я работаю над плиточным 2D-платформером, в чем-то похожим на Terraria, хотя у меня возникают трудности с генерацией ландшафта. У меня есть некоторые основы, хотя они не приносят ничего полезного.
Я пробовал несколько разных техник, таких как Perlin Noise, и читал о некоторых других, таких как Midpoint Displacement, хотя я не уверен, какой из них будет лучше, или сочетание разных техник для создания разных областей. (Например, смещение средней точки для общей формы местности и шум Перлина для пещер.)
Я нашел отличное объяснение того, как я мог бы наслоить его с помощью библиотеки случайных шумов , хотя это на C ++, и я не знаю достаточно C ++, чтобы скомпилировать его в DLL, которую я могу использовать из C #. Я пытался скопировать это в C #, хотя я не знаю, как я могу объединить два эффекта вместе (градиент для общей базы, а затем фрактал для деталей).
В настоящее время я использую плазменный фрактал, и результаты чрезвычайно разнообразны. Например, он может генерировать ландшафт там, где практически нет поверхности, или он может генерировать ландшафт там, где вообще нет поверхности.
Пример хорошей карты, хотя лучше с некоторыми улучшениями. (Черный сплошной, белый воздушный):
И пример ужасной карты. (Черный сплошной, белый воздушный):
По сути, я спрашиваю, что было бы лучшим способом создания ландшафта или принуждения его обеспечить достаточную площадь поверхности с минимальным временем генерации. Или, в качестве альтернативы, как я мог бы достичь того же результата, что и библиотека случайных шумов, но в C #.
Любые примеры будут очень цениться.