Por lo tanto, estaba pensando en hacer un generador mundial aleatorio simple. Este generador crearía una "célula" inicial que tendría entre una y cuatro salidas al azar (en los puntos cardinales, algo así como un laberinto). Después de decidir esas salidas, generaría una nueva "celda" aleatoria en cada una de esas salidas, y repetiría cada vez que un jugador se acercara a una parte del mundo que aún no se había generado. Este concepto permitiría un tipo de mundo "infinito", todo generado al azar; sin embargo, no estoy seguro de cómo representar mejor esto internamente.Estructura de datos para un mundo aleatorio
Estoy usando C++ (lo que realmente no importa, podría implementar cualquier tipo de estructura de datos necesaria). Al principio pensé en usar una especie de gráfico dirigido en el que cada nodo tendría bordes dirigidos a cada celda que lo rodea, pero esto probablemente no funcionará bien si un usuario encuentra un lugar en el mundo, retrocede, y vuelve a eso lugar desde otra dirección. El mundo podría hacer cosas raras, como generar dos celdas en una ubicación.
¿Alguna idea sobre qué tipo de estructura de datos podría ser la más efectiva para tal situación? ¿O estoy haciendo algo realmente tonto con mi generación mundial aleatoria?
Cualquier ayuda sería muy apreciada. Gracias, Chris
No puedo creer que no pienso en esto, es una solución tan simple y rápido. –
Como se mencionó @Nathon para una celda nueva, asegúrese de verificar si existen celdas adyacentes y crear/prevenir puertas en esas celdas adyacentes, según corresponda. – jholl