Isenção de responsabilidade: essa é uma daquelas perguntas temidas no estilo Minecraft, mas acho que é mais uma questão de estruturas de dados e algoritmos
Eu sou realmente novo em estruturas de dados 3D e estou me perguntando qual a melhor maneira de armazenar e combinar uma estrutura de blocos 3D.
No momento, o jogador pode colocar blocos em qualquer espaço arbitrário e quando esses blocos correspondem a uma estrutura predefinida, um evento acontece. Atualmente, quando um jogador coloca um bloco, o jogo verifica recursivamente cada bloco adjacente para encontrar o bloco com a menor coordenada x, y, z e faz com que esse bloco seja o bloco raiz. Em seguida, verifica o restante dos blocos, com base no bloco raiz, para garantir que eles correspondam a um determinado modelo. O problema é que, à medida que o modelo fica mais complicado, o mesmo acontece com o meu código (terrivelmente ineficiente).
Eu estou pensando que a melhor maneira de fazer isso é armazenar algum tipo de matriz que define a estrutura e depois combinar com a matriz sempre que um jogador coloca um bloco. Já existem estruturas / algoritmos de dados que corresponderiam a esse tipo de problema?