मैं एक XNA गेम बना रहा हूं जिसमें खिलाड़ियों के लिए बहुत बड़ी जगह की आवश्यकता होती है। वर्तमान में, मेरे द्वारा उपयोग किया जा रहा परीक्षण ऊंचाई 4096x4096 है, और इसे 4-बिट बीएमपी के रूप में सहेजा जाता है।
मैं जो करने की कोशिश कर रहा हूं वह उस विशाल ऊंचाई की फ़ाइल है और इसे गेम में रेंडर करें। मैं जिस समस्या में चल रहा हूं वह यह है कि यह पूरे इलाके को एक बार में मेमोरी में लोड करने के लिए अक्षम है, क्योंकि यह उपलब्ध स्मृति के बहुमत का उपयोग करेगा।
एक और समस्या जो मैंने चलाई है, वह यह है कि मैं XNA के भीतर एक हार्ड-लिमिट सेट की वजह से इलाके को एक आदिम में प्रस्तुत नहीं कर सकता।
उस ने कहा, मैं कई समाधानों के साथ आया हूं, जिनमें से सभी को मैंने नीचे सूचीबद्ध किया है:
- वर्तमान उपयोगकर्ता के स्थान के आधार पर प्रतिपादन - मूल रूप से उपयोगकर्ता के चारों ओर एक वर्ग खींचना दुनिया के भीतर उनके अभिविन्यास से कोई फर्क नहीं पड़ता। यह वही नहीं है जो मैं चाहता था, क्योंकि आप अभी भी अंतरिक्ष प्रदान कर रहे हैं जो उपयोगकर्ता नहीं देखता है।
- उपयोगकर्ता के अभिविन्यास और स्थिति के आधार पर प्रतिपादन - मुझे एक त्रिकोण प्राप्त करने के लिए एक सूत्र मिला जो माना जाता है कि ऊंचाई के पिक्सल का प्रतिपादन किया जाना चाहिए, लेकिन यह बहुत मुश्किल साबित हुआ।
- इलाके को कई हिस्सों में विभाजित करना और उनमें से जो उपयोगकर्ता के सबसे करीब हैं, उन्हें रेंडर करना - फिर भी बहुत कुशल नहीं हैं क्योंकि आप अभी भी ऐसे रैंकों का प्रतिपादन कर रहे हैं जो आपको दिखाई नहीं देंगे। और यह काम-गहन है क्योंकि तब मुझे अपने ऊंचाई को कई टुकड़ों में विभाजित करना होगा, और स्केलेबिलिटी एक बड़ी समस्या बन जाएगी।
उन समाधानों की कोशिश करने के बाद, मैं क्या करना है के लिए विचारों से बाहर ताजा हूं। मुझे कुछ उत्तर मिले हैं जहां लोग मुझे इन जटिल एल्गोरिदम को करने के लिए कह रहे हैं, लेकिन मुझे अभी तक पता नहीं है कि उन्हें कैसे करना है।
इसलिए मूल रूप से मैं एक्सएनए में बेहद सरलता के साथ विनम्र इलाकों को प्रस्तुत करने का एक सरल, सीधा तरीका पूछ रहा हूं।
मैं सामान्य रूप से खेल के विकास के लिए नया हूं, लेकिन अगर यह आशाजनक लगता है तो मैं अनुसंधान के लिए तैयार हूं।
अपडेट 1: जियोक्लिपमैपिंग विधि पर शोध करने के बाद, मैंने उसके साथ कोड करना शुरू कर दिया। मैंने सभी गणित किए हैं, और खेल चलता है। हालांकि, यह बेहद अक्षम है - जो शायद मेरी ओर से खराब कोडिंग है। यह 2FPS पर चलता है और मेरे CPU के पूरे कोर का उपयोग करता है। मैं कोड को आज़माने और सुधारने जा रहा हूं, लेकिन मुझे लगता है कि मुझे और अधिक सहायता की आवश्यकता होगी, इसलिए यहां टेरीफ़ायर प्रबंधक वर्ग के लिए कोड का एक पास्टबिन है । यदि मुझे कभी भी अधिक कुशल होने के लिए और अधिक परिणामों के साथ बाद में वापस पोस्ट करूँगा।