Je n'ai peut-être pas la meilleure façon de l'expliquer, mais je vais essayer.
Je pense que la meilleure façon de comprendre comment le rendre plus efficace est de comprendre Voxels. Minecraft est basé sur le voxel, il utilise simplement des cubes au lieu de sphères, etc., etc.
Fondamentalement, un voxel est une forme 3D qui peut avoir un volume modifié dynamiquement et lorsque le volume change, la forme aussi. Un morceau est un ensemble de voxels X par X par X. Ainsi, par exemple, vous pouvez avoir un bloc qui a des voxels 16x16x16 et ensuite vous pouvez avoir un nombre X de morceaux. Vous aurez une distance définie, que si le joueur est plus loin que N de tout morceau, ne les incluez pas dans vos calculs. Ceci est un peu similaire aux distances de découpage mais devrait également s'appliquer à chaque morceau. De cette façon, vous pouvez l'avoir afin que vous puissiez toujours avoir votre joueur dans le bloc central d'un, disons, un ensemble de 3x3 morceaux.
Donc, ce que vous auriez, c'est une classe pour gérer les Voxels individuels. Nous l'appellerons Voxel_cl. Et puis vous auriez une classe pour gérer le bloc de voxels, appelée Chunk_cl. Et puis vous auriez une classe mondiale qui génère tous les morceaux qui généreraient les voxels, appelés World_cl.
Alors maintenant, au lieu d'un énorme tableau de tout, vous auriez un tableau de 9 morceaux à tout moment et dans la classe des morceaux, vous auriez un tableau de 4096 voxels.
Veuillez noter qu'il s'agit d'une explication assez simple. Je travaille actuellement sur quelque chose en utilisant des voxels, donc je me suis dit que je mettrais mon entrée = -)
Pour plus d'informations sur les voxels, consultez http://en.wikipedia.org/wiki/Marching_cubes