Зараз я працюю над 2D платформою на основі плитки, схожим на Terraria, певними способами, хоча у мене виникають труднощі з генерацією місцевості. У мене є деякі основи, хоча вони не виглядають як корисне.
Я спробував декілька різних методик, таких як Perlin Noise, і прочитав про деякі інші, такі як Midpoint Displacement, хоча я не впевнений, що було б найкращим, або комбінація різних методик для генерування різних областей. (Такі як зміщення середньої точки для загальної форми місцевості та шум Перліна для печер.)
Я знайшов чудове пояснення того, як я міг би розшаровувати його з Бібліотекою випадкових шумів , хоча він знаходиться в C ++, і я не знаю достатньо C ++, щоб скомпілювати його в DLL, який я можу використовувати з C #. Я спробував скопіювати це в C #, хоча я не знаю, як я можу об'єднати два ефекти разом (градієнт для загальної бази, а потім фрактал для деталей).
В даний час я використовую фрактал плазми, і результати надзвичайно різноманітні. Наприклад, він може створювати рельєф місцевості, де майже немає поверхні, або він може генерувати місцевість там, де зовсім немає поверхні.
Приклад нормальної карти, хоч краще з деякими вдосконаленнями. (Чорний твердий, білий - повітряний):
І приклад жахливої карти. (Чорний твердий, білий - повітряний):
В основному, я запитую, який би був кращий спосіб генерувати місцевість або змусити її переконатися в наявності розумної кількості поверхні, з тим, щоб час генерації був максимально швидким. Або, як альтернатива, як мені вдалося б досягти такого ж результату, як і бібліотека випадкових шумів, але в C #.
Будь-які приклади були б дуже вдячні.