Descargo de responsabilidad: esta es una de esas temidas preguntas de estilo Minecraft, pero creo que es más una pregunta de estructuras de datos y algoritmos
Soy realmente nuevo en las estructuras de datos 3D y me pregunto cuál es la mejor manera de almacenar y combinar una estructura de bloques 3D.
En este momento, el jugador puede colocar bloques en cualquier espacio arbitrario y cuando estos bloques coinciden con una estructura predefinida, ocurre un evento. La forma en que lo hago actualmente es cuando un jugador coloca un bloque, el juego verifica recursivamente cada bloque adyacente para encontrar el bloque con la coordenada x, y, z más baja y hace que ese bloque sea el bloque raíz. Luego verifica el resto de los bloques, basados en el bloque raíz, para asegurarse de que coincidan con una plantilla determinada. El problema es que a medida que la plantilla se vuelve más complicada, también lo hace mi código (terriblemente ineficiente).
Creo que la mejor manera de hacer esto es almacenar algún tipo de matriz que defina la estructura y luego compararla con la matriz cada vez que un jugador coloque un bloque. ¿Ya existen estructuras / algoritmos de datos que coincidan con este tipo de problema?