En los grandes juegos de paisajes procesales, la tierra parece aburrida, pero probablemente sea porque el mundo real es en gran medida aburrido, con solo lugares limitados donde el paisaje es dramático o táctico.
En cuanto a la generación mundial desde este punto de vista, un generador de paisajes para un juego (es decir, no por el paisaje, sino por el juego) no debe seguir las reglas del paisajismo, sino algunas reglas casadas con el juego. expectativas del jugador Por ejemplo, podría haber un generador de ruta / punto de estrangulamiento que cree colinas, barrancos, ríos y montañas entre ciudades, en lugar de la forma natural en que surgen las ciudades, dispersas en la tierra en función de los recursos o las condiciones generadas por las montañas y los patrones de lluvia.
¿Hay algún trabajo existente que se haga así? Comience con ciudades o centros de población y luego agregue terreno después.
La razón por la que pregunto es que previamente había considerado tomar mapas existentes de la ficción fantástica (la mía y la de otros), poner la información en el sistema como punto de partida y luego generar un buen mundo para jugar a partir de ella. Esto parece cubierto por la tecnología existente, es decir, donde el diseñador pone toda la información necesaria, como las poblaciones de la ciudad, los recursos, los biomas, las redes de carreteras y los ríos, y luego permite que el PCG llene los vacíos.
Pero ahora me pregunto si es posible que un generador de contenido genere también el diseño general. Genere las ciudades y los centros de población, equilibrándolos para que haya una aparente necesidad natural de comercio, luego genere las posiciones y la conectividad, luego, a partir del tipo de ciudad, produzca la lista de recursos necesarios que deben estar cerca, y solo entonces, tal vez Algunas reglas sobre cómo hacer que el viaje entre ciudades sea creíble e interesante, genera el contenido final, incluidos los caminos, los puntos de estrangulamiento, los puentes y túneles, los transbordadores y el terreno, incluidos los biomas y la costa necesarios.
Si esto se ha hecho antes, me gustaría saber y me gustaría saber qué salió mal y qué salió bien.
fuente
Respuestas:
Aquí hay un gran ejemplo de generación de terreno procesal, utilizando parámetros como humedad, altura, etc ... http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
fuente
Creo que he estado mirando esta pregunta durante los últimos tres días, mientras me preguntaba cómo la generación procesal de mundos o incluso galaxias puede, al mismo tiempo, ser determinista (como generar siempre el mismo contenido a partir de la misma semilla) ), se ven naturales y aún tienen características únicas, interesantes, inusuales o incluso hermosas en su paisaje.
Sigo volviendo a la misma respuesta genérica de que esto depende en gran medida del género del juego y su propia historia interna consistente dentro de la historia. Por ejemplo, el género post-apocalíptico, ¿por qué alguien construiría una metrópoli con paredes masivas en medio de un páramo y haría que todos los que viven dentro vivan miserablemente? ¿Por qué colonizar tales planetas? En alta fantasía, ¿por qué hacer una ciudad en la cima de una isla flotante? ¿Por qué los enanos hacen ciudades dentro de las montañas? ¿Y tu enemigo malvado genérico viene de tierra ardiente con volcanes activos? Regla de Cool?
Entonces, todo se remonta a su propia respuesta donde ingresa información en el PCG y llena el vacío, y también a la otra respuesta sobre la generación de mundos que coinciden con las líneas de la trama y la historia general.
Entonces, la trama genera elementos de juego que generan un paisaje adecuado.
Dicho esto, me pregunto si una historia que genera un árbol de líneas argumentales consistentes generará el diseño general del juego que estás buscando.
(PD: Estos mismos tres días pensando también me hicieron encontrar otra respuesta a un problema que puede surgir: debería haber una herramienta de prueba automatizada para verificar si el diseño del juego generado es correcto, por ejemplo, debería tener un ejército medieval con dificultades hora de derrotar una fortaleza generada)
fuente
El único papel que trata problemas similares que pude encontrar de antemano es " Un algoritmo para la deformación automatizada del terreno fractal " de Stachniak y Stuerzlinger . Asume que primero crea el terreno y lo deforma (o, mejor dicho, deja que el algoritmo elija los parámetros para deformarlo automáticamente) para que se ajuste a sus restricciones más adelante, por lo que no responde la pregunta directamente. Aún así, los métodos presentados allí podrían resultar útiles para otras personas con problemas similares.
fuente
¿No generaría dicho algoritmo automáticamente más terreno 'táctico' cuando se generan carreteras entre ciudades?
Suponiendo que las carreteras solo pueden tener un cierto cambio de elevencia por distancia, la altura del terreno se adaptaría a la altura de la carretera, lo que conduciría a la generación de puntos de estrangulamiento cada vez que una carretera pasa a través de una colina / barranco / lo que sea. Por supuesto, la cantidad de cambio en la altura del terreno también debería ser limitada, o tendrías carreteras que atraviesan los picos más altos.
fuente
Cuando estaba en Cryptic Studios estábamos trabajando en algo como esto para la generación de misiones / misiones. Los diseñadores especificaron los objetivos de la misión de manera algo abstracta y los estableció con cierta aleatoriedad en el "orden de viaje del jugador" y cortaron caminos entre ellos.
Una versión anterior enviada con Star Trek Online como Genesis Missions (archivo) . En ese momento estábamos muy entusiasmados con eso, pero no tengo idea de cuánto continuó después de que me fui, o si está disponible en las herramientas de Foundry para usuarios finales. (Cuál fue el objetivo final).
fuente
Un enfoque típico para la generación de terreno procesal es dibujar características específicas a mano y usar el generador para completar el resto. V Terreno seguramente tendrá algo interesante sobre este tema.
fuente
Lighthouse 3D tiene una buena encuesta de algunos algoritmos simples para la generación de terreno. Si está comenzando con un mapa que contiene ciudades u otras áreas interesantes, podría usar algunas de estas técnicas para generar el terreno que desee. Por ejemplo, el uso inteligente del algoritmo de falla podría usarse para crear acantilados o valles alrededor de su ciudad que actuarían como puntos de estrangulamiento. Además, usar el algoritmo de círculo sería una excelente manera de generar terrian para la colocación de torretas. Estos son solo algunos ejemplos, pero usar estos algoritmos simples sería una manera bastante fácil de generar terreno interesante alrededor de sus ciudades.
fuente
Tal vez estoy simplificando demasiado, pero ¿por qué ignorar el hecho de que las ciudades están construidas en terrenos ventajosos, o para el caso, cualquier tamaño de área civilizada por cualquier razón? Tal vez el terreno ofrece una ventaja táctica para una instalación militar o tal vez hay un aserradero en la intersección de un gran bosque y un río que tiene un pueblo más grande aguas abajo. Incluso los lugares "sagrados" se basan en el terreno, incluso por el simple hecho de que esa sección particular de tierra se consideró sagrada en algún momento, etc. No importa cuáles sean las consecuencias, el lugar de descanso final de la abrumadora mayoría de la civilización existe en un lugar físico por razones muy basadas en el terreno. Incluso en el caso de una ciudad que brota simplemente porque hay suficiente comercio entre dos ciudades más grandes para garantizar un intermediario, si quieres, esa ubicación de la ciudad se elegiría en función del camino de menor resistencia. Se colocaría en algún lugar que ofreciera buenas tierras de cultivo planas para el suministro local de alimentos, junto con tierras que se prestaran bien para la construcción de carreteras. Estoy seguro de que has pensado en esto ...
Entonces, si vas a construir las ciudades primero, claro, ¿por qué no? ¿Por qué no construir la ciudad, el pueblo, el asentamiento o lo que sea, junto con una buena parte del terreno circundante, construido a mano, que respalde ese tipo de establecimiento?
Tome los biomas procesales como ejemplo. Por lo general, se aplican a mapas pseudoaleatorios de temperatura, humedad y altura. Si ya ha diseñado la ciudad (o aserradero, etc.), entonces es probable que tenga un concepto firme de cómo debe verse la tierra, que si no estoy malentendido, es exactamente su punto. Tome un edificio de fantasía como Orthanc, repleto de planos de planta y terreno circundante, que ha replicado debidamente. Bueno, sabemos que, dependiendo de la línea de tiempo, Orthanc estaba rodeado por un enorme bosque poblado de Ents (criaturas arbóreas), etc. Si intentas replicar eso, entonces aplicar un terreno aleatorio no tiene sentido para mí. Dicho esto, una vez que haya creado esta configuración para la torre en sí y el bosque circundante, ¿qué hay entre Orthanc y cualquiera que sea su próxima ciudad?
Un enfoque simple podría ser escribir su generación de terreno procesal, colocar su configuración dentro de un sistema de terreno generado aleatoriamente y elevar sus alturas alrededor de su configuración fija y viola puede colocar Orthanc en muchos mundos diferentes generados aleatoriamente (si eso es lo que busca).
Sin embargo, creo que sería mejor con una combinación de entorno, terreno y bioma definido y asegurarse de que Orthanc se coloque dentro de un bioma forestal grande generado por procedimientos. Dependiendo de cómo lo codifique, puede establecer el bioma mínimo / máximo, el terreno, la humedad, etc. para cada configuración o edificio o ciudad predefinidos que haya esculpido. ¿Sería una tarea pequeña en un mundo 3d fotorrealista completo? Obviamente no.
Creo que si intentara esto, investigaría primero los algoritmos de procedimiento de la costa. Tomando el enfoque de que casi todas las civilizaciones a lo largo de la historia han seguido cualquier costa, ya sea un océano, un mar o un gran lago. Es el camino de menor resistencia para el crecimiento, ya que es probable que haya abundante pesca, árboles cercanos para obtener madera y, ciertamente, un viaje más rápido incluso con embarcaciones rudimentarias (al menos en un sentido).
Creo que tendrías que construir completamente al revés. Piense, puntos pseudoaleatorios en un mapa que representan puntos de civilización posiblemente con un algoritmo de ruido que determina las poblaciones de esas civilizaciones antes de que se determine cualquier otra cosa. OK, entonces 1 punto llega a una población de 1,000, otros 2,000,000 (o cualquier proporción dependiendo de su población mundial, por supuesto). ¿Por qué? ¿Por qué hay ese número de poblaciones allí? Una población de 1,000 podría ser la pequeña comunidad de aserraderos. Tal vez es una comunidad minera si está en el lado norte del mapa si está creando un mundo esférico en 3D. Se pone un poco confuso aquí porque no sé si vas infinito en todas las direcciones, haciendo que NESW no tenga sentido para determinar los biomas o si quieres una "Tierra" muy real
Sin embargo, si dejas caer tus civilizaciones, en base a poblaciones de ruido pseudoaleatorio, creo que podemos asumir con seguridad algunas reglas (pero tal vez no absolutas) como ... Cuanto mayor sea la civilización, lo más probable, mayor será el número de recursos útiles en mano y el terreno para apoyarlos. Minerales preciosos, maderas, etc., deben estar presentes hasta la náusea o debe existir un sistema comercial enorme para apoyar una empresa tan vasta. En base a eso, puede comenzar a generar carreteras de ciudad en ciudad y carreteras a los asentamientos periféricos, como una operación minera profunda, etc. Elija puntos de civilización que formulen buenas costas y elimine los puntos de población completamente del mapa donde necesita llenar su océanos (o tal vez tienes Atlantis en tu mundo, o perforaciones petroleras en alta mar).
Rellenar el terreno intermedio nuevamente depende completamente de su enfoque de bioma. Si tiene un mundo infinito en todas las direcciones, coloque a Orthanc donde sea que se adapte a la población, introdúzcalo en un bioma forestal y construya alrededor de él hacia afuera hasta llegar a la mitad de su próximo destino preestablecido en el que su algoritmo está haciendo la misma generación de procedimientos alrededor. Lerp / Mezcle los dos terrenos juntos cuando se encuentren y sí, esta es una simplificación excesiva obvia.
Sin un conocimiento real de lo que realmente estás tratando de lograr mecánicamente, solo puedo arrojar ideas y posiblemente malas. Creo que tu enfoque tiene mérito, incluso si es completamente fantástico en realidad, porque estás apuntando a lo que siempre es el factor más importante en cualquier juego: ¿Se está divirtiendo el jugador? ¿O estoy creando un mundo aleatorio que no es aburrido y, por lo tanto, no es divertido?
Lo que también sería interesante, y esto podría ser parte de la generación de civilizaciones en cualquier juego, terreno primero o no, ¿qué sucede si dejas caer 2 ciudades grandes una al lado de la otra? Qué significa eso? ¿Están en guerra? ¿Son operaciones comerciales masivas entre dos naciones florecientes? ¿Qué tipo de enemigos acechan en los bosques de ese aserradero?
Creo que una cosa es segura si está tratando de construir un terreno basado en "ciudades" y es que el terreno se vería directamente afectado por la población de dicha ciudad, tanto en el paisaje y los recursos naturales (y tal vez incluso en la belleza).
No estoy seguro si realmente respondí algo o si esto fue apropiado, pero es un concepto muy interesante y me encantaría saber a dónde te diriges.
fuente
Generaría las características de juego simultáneamente como parte del mismo proceso. Hay varias formas de construir un terreno basado en reglas. Esta charla de YouTube de los desarrolladores de Path to Exile es un buen ejemplo: https://www.youtube.com/watch?v=GcM9Ynfzll0 . Además, para un enfoque menos preconstruido, esto parece interesante: https://www.youtube.com/watch?v=RAtdFKiqs34 . Puede usar el ruido perlin para generar alturas para cada vértice de voronoi e ir desde allí
fuente