Actualmente estoy trabajando en un juego de plataformas 2D basado en mosaicos similar a Terraria de alguna manera, aunque tengo dificultades con la generación del terreno. Tengo algunos conceptos básicos, aunque no me parecen útiles.
He probado algunas técnicas diferentes, como Perlin Noise, y he leído sobre otras, como Midpoint Displacement, aunque no estoy seguro de cuál sería la mejor, o una combinación de diferentes técnicas para generar diferentes áreas. (Como el desplazamiento del punto medio para la forma general del terreno y el ruido de Perlin para las cuevas).
He encontrado una excelente explicación de cómo podría superponerlo con la Biblioteca de ruido accidental , aunque está en C ++, y no conozco suficiente C ++ para compilarlo en una DLL que puedo usar desde C #. He intentado copiar esto en C #, aunque no sé cómo puedo fusionar dos efectos (el gradiente para la base general y luego el fractal para el detalle).
Actualmente estoy usando un Plasma Fractal y los resultados son extremadamente variados. Por ejemplo, puede generar terreno donde casi no hay superficie, o puede generar terreno donde no hay superficie en absoluto.
Sin embargo, un ejemplo de un mapa correcto sería mejor con algunas mejoras más. (El negro es sólido, el blanco es aire):
Y un ejemplo de un mapa terrible. (El negro es sólido, el blanco es aire):
Básicamente, lo que pregunto es cuál sería una mejor manera de generar el terreno, o forzarlo a asegurarse de que haya una superficie razonable, con el tiempo de generación lo más rápido posible. O, alternativamente, cómo podría lograr el mismo resultado que la Biblioteca de ruido accidental, pero en C #.
Cualquier ejemplo sería muy apreciado.