Saya mungkin tidak memiliki cara terbaik untuk menjelaskannya tetapi saya akan mencoba.
Saya pikir cara terbaik untuk memahami cara membuatnya lebih efisien adalah dengan memahami Voxels. Minecraft berbasis voxel, hanya menggunakan kubus, bukan bola, dll., Dll.
Pada dasarnya voxel adalah bentuk 3D yang dapat memiliki volume yang berubah secara dinamis dan ketika volume berubah, demikian juga bentuknya. Chunk adalah X dengan X oleh X set voxels. Jadi misalnya, Anda dapat memiliki bongkahan yang memiliki 16x16x16 voxels dan kemudian Anda dapat memiliki bilangan X. Anda akan memiliki jarak yang ditetapkan, bahwa jika pemain lebih jauh dari N jauh dari potongan apa pun, jangan memasukkannya dalam perhitungan Anda. Ini agak mirip dengan jarak kliping tetapi perlu diterapkan pada setiap bidak juga. Dengan cara ini, Anda dapat memilikinya sehingga Anda selalu dapat memiliki pemain Anda di bagian tengah dari, katakanlah, 3x3 set Chunks.
Jadi yang akan Anda miliki adalah kelas untuk menangani Voxels individu. Kami akan menyebutnya Voxel_cl. Dan kemudian Anda akan memiliki kelas untuk menangani potongan voxels, yang disebut Chunk_cl. Dan kemudian Anda akan memiliki beberapa kelas dunia yang menghasilkan semua potongan yang akan menghasilkan voxels, yang disebut World_cl.
Jadi sekarang, alih-alih array yang besar dari semuanya, Anda akan memiliki array 9 Bongkahan kapan saja dan di kelas chunk, Anda akan memiliki array 4096 voxels.
Harap dicatat bahwa ini adalah penjelasan yang cukup sederhana. Saat ini saya sedang mengerjakan sesuatu menggunakan voxels jadi saya pikir saya akan memasukkan input saya = -)
Untuk info lebih lanjut tentang voxels, periksa http://en.wikipedia.org/wiki/Marching_cubes