Recientemente me han fascinado las cosas que se pueden hacer con el terreno procesal y he comenzado a experimentar un poco con la construcción del mundo. Me gustaría poder hacer mundos como la fortaleza enana con biomas creados a partir de la combinación de varios mapas.
Así que el primer paso ya está hecho. Usando el algoritmo de diamante cuadrado, he creado algunos buenos mapas de altura. El siguiente paso es que me gustaría agregar algunas características del agua y hacer que se generen de manera realista con la lluvia. He leído acerca de algunos enfoques diferentes, como comenzar en los puntos más altos del mapa y "bajar" al punto vecino más bajo, agruparse / erosionarse a medida que avanza hacia el nivel del mar.
¿Hay algún algoritmo documentado con esto o están más fuera del alcance?
Me encantaría cualquier consejo / pensamiento.
fuente
Respuestas:
Amit Patel, un usuario de este sitio, ha creado un recurso maravilloso de información sobre la generación mundial aleatoria que sin duda será de utilidad para usted.
Además, hay algunas excelentes preguntas / respuestas sobre la generación de procedimientos en este sitio.
Generación de carreteras / ríos en un mapa de cuadrícula 2D
Generación procesal mundial orientada a características de juego
¿Cómo puedo generar lagos y ríos al azar en mi juego?
Generación aleatoria de mapas
fuente
Cuando experimenté con este tipo de cosas (fines de la década de 1990), leí algunos documentos y libros para aprender sobre el flujo de agua, pero no llevé un registro de cuáles miraba. Terminé haciendo lo mío porque quería manejar la erosión. Quería que los ríos produjeran cañones y llanuras aluviales. Quería que los embalses de las presas se llenaran de sedimento. Quería que los ríos produjeran efectos como serpenteantes y lagos oxbow. Quería canales para riego y desviación de agua. Quería inundaciones para dañar granjas y casas en llanuras aluviales.
Mantuve algunas notas (enlaces) en la sección de Geografía de esta página . Hay un documento de Jos Stam que es una lectura obligada. Lamentablemente nunca organicé las notas. También desafortunadamente, el juego era para OS / 2, así que no puedo darte fácilmente un ejecutable ejecutable para jugar. Y también, desafortunadamente, mi código es terrible, pero si quieres echarle un vistazo, mira water.cpp en el código fuente (zip).
Cosas con las que jugué en mi simulación (no todas realistas):
En general, mi experiencia fue que todo esto fue bastante divertido para jugar, pero se necesitaron muchas heurísticas y ajustes para que funcionara. Nunca llegué a un punto en el que podría decir que la creación del río se sintió natural e inevitable sin modificar. Fue tan divertido (tanto como programador como jugador) que pasé años en él y nunca terminé el resto del juego. :)
fuente
La mayoría de las implementaciones que he visto han estado combinando un "mapa del río" (usando una banda estrecha del ruido de Perlin o algún enfoque similar) o el método de "gota de lluvia" que mencionas.
Aquí hay algunos puntos de partida:
fuente