online mundos medieval mapas mapa geograficos generar generador fantasia espaƱol creador aleatorios aleatorio c# algorithm xna terrain procedural-generation

c# - mundos - Algoritmo generador de mapas aleatorios 2D



generar mapa aleatorio (3)

Muy a menudo, los mapas se dividen lógicamente en capas / superposiciones como "altura del terreno base", "nivel del agua", "tierras altas", "árboles", "alojamiento", etc.

Entonces para cada capa se ejecuta un tipo diferente de generador. Muy a menudo se usan fractales porque tienden a generar formas interesantes y difíciles de predecir. Pero solo se utiliza una parte del fractal. El uso de uno entero expondría instantáneamente la estructura (en los fractales de nivel superior son muy repetitivos) y los espectadores lo notarán. Por lo tanto, el fractal generado se distorsiona / modifica / filtra / corta para que no sea obvio. Por ejemplo, puede generar el nivel del terreno base con un simple oscilador trigonométrico XY, y luego resumirlo con una parte de su imagen fractal, limitada a algunos valores mínimo-máximo, y obtendría un terreno irregular con pendientes y pendientes notables. ..

Para todas las demás capas, por lo general no puede "resumir", porque las capas que no son del terreno no tienen que ver con "altura" o "densidad", sino que son 0/1: ¿colocar el árbol aquí o no para colocar el árbol aquí? Pero, una vez más, lo haces de manera similar: generas una imagen (tal vez otra vez un fractal), luego inspeccionas los números y estableces un valor de umbral: en todas partes, cuando el número es mayor / menor que X, colocas / no colocas la cosa. Además, puede filtrarlo o ramificarlo: por ejemplo, si un árbol golpea una posición debajo del agua, coloca un pez allí o no coloca el árbol en absoluto.

Estoy sorprendido de que no puedas encontrar recursos en él. ¡Hace algunos años, buscar en Google "algoritmos de generación de terreno" devolvería muchos éxitos!

¿Puede alguien decirme una manera de generar estructuras de islas o estructuras de colinas como en Minecraft?

Solo estoy buscando una TEORÍA adecuada para esa generación de formas aleatorias, pero debería mantener un patrón base definido ...

como: las islas deben ser redondeadas pero varían en forma y escala (mín. / máx. ancho y altura).

o: los ríos no deben ser líneas rectas, deben tener curvas y un ancho aleatorio.

o incluso: generar algún tipo de bosque, donde los árboles se colocan de manera que el usuario aún pueda caminar a través del bosque (creo que es simple, solo diga que algunos bloques alrededor de un árbol deben permanecer en blanco, si el código intenta colocarlos). más árboles alrededor del último)

¿Qué tipo de matemáticas puedo usar para hacer tales cosas?

Me alegraría tener algunos enlaces para tutoriales o referencias. He buscado por toda la web durante horas, pero todo lo que pude encontrar fueron algunos libros para comprar como "juegos matemáticos" o algo así, pero mi presupuesto está establecido en cero.

EDITAR:

En primer lugar, lo siento por mi mal inglés.

Secundaria quiero agradecerles a todos por sus respuestas. Estas son grandes referencias y voy a pasar mucho tiempo para profundizar en eso.


Recomiendo encarecidamente mirar la información de programación de juegos de Amit y otras publicaciones de blog de él. Tenía toda una serie sobre cómo crear mapas de aspecto realista con ríos, costas, etc.

Construyendo mundos

Aunque la generación de mapas de procedimientos se puede aplicar a mundos que no son de rejilla, la mayoría de las veces se utiliza con grillas. Visto en un solo punto en el tiempo, los mapas de juegos generados rara vez son tan bonitos como los mundos hechos a mano. Sin embargo, tienen tres ventajas: (1) menor costo por mundo si hay muchos mundos por realizar, (2) mayor valor de repetición porque la próxima vez que pasa por el mundo es diferente, y (3) potencial para que el mundo evolucione mientras que el juego progresa

  • Generador de mapas del mundo de Amit
  • Generación de contenidos procesales: generando terreno, ciudades, edificios.
  • Dungeon generation en Unangband
  • Generando mundos de juego con una estructura de bloqueo y llave para que ciertas habitaciones requieran objetos de otras habitaciones
  • Algoritmo para la construcción de ríos
  • Agregando ríos a terrenos generados al azar
  • El algoritmo original de Rogue para generar mazmorras
  • 11 Maze Generating Algorithms con demos y código
  • Uso de funciones de ruido para generar cavernas como las de Terraria y Minecraft.
  • Habitaciones de forma irregular, algoritmo simple.
  • Regiones interiores de tamaño variable
  • Algoritmo Tunneler para cavar mazmorras en DungeonMaker
  • Guía de técnicas aleatorias de generación de terreno.
  • Guía Wiki para la generación de contenido procesal.
  • Simulando grandes mundos virtuales

La Generación de mapas poligonales de Amit para juegos (primer artículo de la lista) es un artículo enormemente impresionante que habla sobre la lógica de generar costas, islas, ríos, montañas, etc. de formas sensibles. ¡Un poco de trabajo impresionante!

Un método para ''cultivar'' ríos en un mundo generado aleatoriamente [incluido en la lista anterior] un algoritmo bastante simple para generar la ruta de un río en función de los otros ''mosaicos'' en el mapa, por ejemplo, su tipo y elevación.


Una vez encontré un gran sitio para la teoría cuando hice un rougelike. Echar un vistazo