Generación procesal mundial orientada a características de juego

36

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.

Richard Fabian
fuente
Tu enfoque parece extraño. No veo por qué las ciudades y los centros de población serían lo primero ... Incluso entonces, ¿no podrías ubicar algunas ciudades y asignar esos puntos parámetros favorables pero aleatorios, y trabajar desde allí?
El pato comunista
1
Creo que estás en el camino correcto con el diseño cultural primero, el terreno (y el clima) segundo. En el mundo real, las sociedades, culturas y redes y estructuras económicas no surgen en cualquier lugar. En cambio, surgen (o no surgen) en función del terreno. Algunos terrenos simplemente no son propicios para el surgimiento de una sociedad, y otros sí. Las grandes ciudades no surgen en medio del desierto o la tundra congelada porque a) apenas se puede encontrar comida o agua, yb) es difícil traer bienes a la ciudad.
Tim Holt
2
Entiendo tu ángulo, @Tim Holt. En mi opinión, la Regla de la genialidad y la Regla de la diversión siempre prevalecen sobre la plausibilidad al diseñar un escenario de juego. Una ciudad que forma un puente sobre el cráter de un volcán activo puede no ser plausible, pero de todos modos es fresca. Además, cuando los jugadores necesitan ciudades distribuidas de manera uniforme en todo el mundo del juego para fines de juego, debes dárselas, incluso cuando sus ubicaciones geográficas no tengan sentido.
Philipp

Respuestas:

12

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/

XGouchet
fuente
2
Hermoso trabajo, pero aún distribución aleatoria de características del paisaje primero, civilización / elementos de juego en segundo lugar
Richard Fabian
No es completamente al azar, pero estoy de acuerdo, no hay elementos de civilización. Creo que la técnica se puede adaptar a muchos elementos de juego diferentes, pero los de la demostración fueron para un juego multijugador (~ 80 jugadores por mapa): (a) isla rodeada de agua, para que las personas no lleguen a un borde, ( b) áreas fáciles en la playa con jugadores dispersos, (c) áreas duras en las montañas con jugadores concentrados, (d) los caminos te llevan a otras áreas de la misma dificultad, (e) los ríos te llevan a áreas de mayor dificultad. Los jugadores comenzarían solos en las playas y se agruparían a medida que avanzaban hacia el centro.
amitp
1
Lo principal que intentaba explorar era comenzar primero con las restricciones del juego, y luego construir un mapa que completara los detalles, en lugar de comenzar con los generadores de terreno aleatorios o "realistas" habituales, e intentar ajustar los elementos del juego en la parte superior . Creo que funcionó bien para ese estilo de juego, pero no lo he probado para otros estilos de juego.
amitp
4

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)

Bruno Laturner
fuente
2

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.

Martin Sojka
fuente
2

¿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.

SarahM
fuente
Supongo que querías decir que los caminos existentes cortarían la generación del terreno, conduciendo a lo que podrían parecer valles creados por el hombre. Esto es interesante, ¿dónde antes había visto un generador de terreno tomar el paisaje y juzgarlo demasiado difícil de conducir, pero lo suficientemente barato como para atravesarlo? No responde a mi pregunta, pero agrega a la lista de cosas que un generador debe considerar, por ejemplo, el caso opuesto (donde una carretera está muy por encima del suelo) requeriría un puente o viaducto, algo que normalmente no se ve en PCGs.
Richard Fabian
Estaba pensando en cómo se hace en la vida real:
Exilyth
1
Las montañas se forman, se erosionan. Las plantas y los árboles crecen en la tierra. Millones de años después, aparecen los primeros nómadas, deambulan, tal vez se instalan. Comienzan a afectar la tierra a su alrededor, por ejemplo, en pozos de piedra o madera. Más tarde, encontrarán otras ciudades, comenzarán a comerciar con ellas y, por lo tanto, necesitarán carreteras. Por lo general, es más fácil seguir el terreno que cambiarlo, por lo que adaptarán sus caminos al paisaje (a excepción de un poco de suavizado / aplanamiento). Como puede ver, estoy mirando el problema más desde una perspectiva más de construcción del mundo.
Exilyth
2

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).

Vaillancourt
fuente
1
Esto suena como un trabajo realizado con generadores de tramas de procedimiento, ¿generó realmente los detalles del mundo para que coincida con la trama requerida de estas misiones, o hizo las misiones de cómo era el mundo, o fue solo la suerte de que las misiones fueran difíciles o fácil basado en lo que generaste?
Richard Fabian
1

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.

El violinista
fuente
1

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.

Ryan
fuente
1

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.

Dave Jellison
fuente
0

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í

B1CL0PS
fuente