Minecraft जैसे ब्लॉक वाले गेम के लिए डेटा स्टोर करने के लिए कुछ अलग तरीके हैं।
जिस तरह से मेरा मानना है कि Minecraft करता है वह दुनिया को 16x16x256 चंक्स में तोड़ देता है। जब खिलाड़ी खेल शुरू करता है, तो खिलाड़ी के चारों ओर के टुकड़े को स्मृति में लोड किया जाता है, फिर जब आप घूमते हैं तो एक पृष्ठभूमि थ्रेड अधिक लोड होता है। : यहाँ है कि पता चलता है यह एक वीडियो है http://www.youtube.com/watch?v=oR_ZdJH9eho ।
इसे करने का एक और तरीका है कि दुनिया को ऑक्ट्री में तोड़ दिया जाए। माइकल गुडफेलो ने इस डेटा संरचना के साथ घन दुनिया को लागू करने के बारे में एक ब्लॉग लिखा था: http://www.sea-of-memes.com/LetsCode1/LetsCode1.html । ऑक्ट्री अच्छा है क्योंकि यह आपको कुछ कम्प्रेशन में निर्मित करता है, लेकिन यह संभवत: तब एरे के साथ काम करने के लिए थोड़ा कठिन होगा।
रखने के बारे में "केवल स्मृति में लोगों की जरूरत है?" यह थोड़ा कठिन है क्योंकि आपको पूछना है कि "क्या जरूरत है"। यदि आपके पास एनपीसी है जो एआई के साथ दुनिया के दूसरे हिस्से में रहता है जो पर्यावरण के साथ बातचीत करता है तो आपको स्मृति में रहने के लिए दुनिया की बहुत अधिक आवश्यकता है। Voxel वर्ल्ड डेटा बहुत तेज़ी से मिल सकता है, इसलिए मेमोरी में कम से कम संभव राशि रखने की कोशिश करना सबसे अच्छा है। (आईई, केवल खिलाड़ी के पास एनपीसी है)।
ग्राफिक्स इंजन को प्रत्येक गैर-पारदर्शी ब्लॉकों से पूरी तरह से घिरे हर ब्लॉक की "आवश्यकता" होगी। दुनिया को प्रस्तुत करने का सामान्य तरीका एक एकल जाल का निर्माण करना है जिसमें हर दृश्य ब्लॉक के लिए कोने शामिल हैं। यह आकर्षित करने के लिए बहुत तेज़ है क्योंकि आप केवल 65,536 ब्लॉकों के लिए ड्रॉ के तरीकों के लिए 1 कॉल कर रहे हैं (Minecraft आकार के विखंडू में)। चूंकि ग्राफिक्स इंजन को इस जाल को बनाने की आवश्यकता होगी, इसलिए इसे आम तौर पर सभी क्यूब्स को एक चंक में जानना होगा। ध्यान दें कि यही कारण है कि जब आप Minecraft में फर्श के माध्यम से देखते हैं, तो बहुत सारी दुनिया अदृश्य है। इसका कारण यह है कि हर ब्लॉक जो सभी छह तरफ से घिरा हुआ है, को छोड़ दिया जाता है। मेरा मानना है कि Minecraft बनावट के दोहराव के साथ एक ही तरह की बनावट के क्षैतिज पक्षों को जोड़कर कोने की संख्या को कम कर देता है।
मेरी सलाह के लिए 16x16x256 विखंडू के साथ जाना होगा। मेष और गेम लॉजिक (टकराव का पता लगाने, ब्लॉकों को जोड़ने / हटाने) के कारण आपको तेज पुनरावृत्ति और संपादन की आवश्यकता होगी, क्योंकि उन्हें एक सरणी में संग्रहीत करें। फिर जितना हो सके खिलाड़ी के चारों ओर एक सर्कल में उतने चनों को लोड करें। बेहतर या बदतर कंप्यूटरों के लिए ऊपर या नीचे चंक की संख्या को स्केल करें।
चंक्स की लोडिंग प्रदर्शन पर एक बड़ी हिट होगी, इसलिए इसे एक थ्रेड में रखें जो इसे समय के साथ चलाता है। इसे बनाओ ताकि आप उस समय के दौरान एक नए खिलाड़ी को 3 नए चूजों को पूरी तरह से लोड कर सकें, यह एक खिलाड़ी को एक छोर से दूसरे छोर तक चलने के लिए लेता है।