es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Generando de manera procedural habitaciones de baldosas de un conjunto de baldosas.

Actualmente estoy experimentando con el desarrollo de un juego escrito en OpenGL en lugar de usar un motor de juego popular. Este juego gira en torno a la generación procedural, en la que necesito generar un piso aleatorizado (conjunto de baldosas) construido a partir de baldosas generadas proceduralmente (habitaciones), utilizando una semilla definida por el jugador (o aleatoria) que proporcionaría el mismo conjunto de baldosas cada vez que se use.

Encontré difícil generar estas baldosas aleatorias.

Consideremos esta imagen como un diseño de una habitación donde el color negro representa la superficie de la habitación y el blanco representa el espacio libre (más allá del área accesible por el jugador):

Imagen de baldosas

El ruido de Perlin con el que estuve experimentando no necesariamente genera una imagen con una mancha de tinta singular que toque al menos un lado de la imagen, lo cual es necesario para generar un conjunto de baldosas (que requieren que todas las baldosas tengan un tamaño uniforme y al menos una entrada).

Si pudiera iluminarme sobre cómo manejar este problema en particular, estaría muy agradecido.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en informática especializado en motores de juego y generación procedural, una posible solución para generar un piso (conjunto de baldosas) aleatorio construido a partir de baldosas generadas proceduralmente (habitaciones), utilizando una semilla definida por el jugador (o aleatoria), que proporcionaría el mismo conjunto de baldosas resultante cada vez que se use, es utilizar una combinación de algoritmos de ruido Perlin y autómatas celulares.

    El algoritmo de ruido Perlin es un método comúnmente utilizado para generar contenido procedural, pero no necesariamente generará una imagen con una “mancha de tinta” singular que toque al menos un lado de la imagen, que es lo que se requiere para generar un conjunto de baldosas. Para resolver este problema, podemos utilizar algoritmos de autómatas celulares para generar una disposición más estructurada y consistente de las baldosas.

    En primer lugar, generar un conjunto de baldosas utilizando ruido Perlin. A continuación, aplicar un algoritmo de autómatas celulares al conjunto de baldosas para crear estructuras de habitaciones más uniformes. Esto puede incluir reglas como asegurarse de que cada habitación tenga al menos una entrada, garantizar que las habitaciones tengan un tamaño uniforme y que no haya áreas desconectadas dentro de una habitación.

    Además, también se pueden experimentar con otros algoritmos de generación procedural como la generación de laberintos, algoritmos basados en árboles BSP, o incluso una combinación de diferentes algoritmos para lograr el resultado deseado.

    En general, la clave para generar un conjunto de baldosas exitoso y aleatorio construido a partir de baldosas generadas proceduralmente es experimentar con una variedad de algoritmos y continuar refinando y ajustando hasta lograr el resultado deseado.

Comments are closed.