बौना किला खुला स्रोत नहीं है, और जबकि बहुत अधिक अनुमान और रिवर्स इंजीनियरिंग है जो इस बात पर ध्यान दे सकता है कि सभी कैसे काम करते हैं, मैं इसके बजाय एक 3 डी (3 डी ग्राफिक्स, 3 डी दुनिया) के roguelike के अनुकूलन के लिए कुछ बुनियादी तकनीकों पर ध्यान केंद्रित करूंगा। इसी प्रकार का।
जैसा कि सभी वीडियो गेम के मामले में बहुत सारे धुएं और दर्पण हैं जो सरल नियमों और प्रणालियों से जटिलता का भ्रम पैदा कर रहे हैं। ये सभी दिशाहीन आंदोलन के लिए सरल यादृच्छिक संख्याओं का उपयोग करने से लेकर पथ-निर्माण के लिए नोड्स के उच्च-स्तरीय जाल को प्री-बेक करने तक की हैं।
आंदोलन
पाथफाइंडिंग की बात करें, तो यह अक्सर एक बड़ी समस्या को हल करने के लिए एक बहुत ही कठिन समस्या हो सकती है जैसे कि DF मानचित्र (768x768x64 IIRC जितना हो सकता है) लेकिन समस्या को सरल और इन तरीकों से दूर किया जा सकता है:
- पूर्व-बेक्ड नोड नेटवर्क: जब नक्शा बनाया जाता है तो दुनिया को विखंडू में तोड़ दिया जा सकता है, और प्रत्येक चंक में इसके निकास और प्रवेश द्वार मैप किए जा सकते हैं। जब एक चंक को अपडेट किया जाता है, जैसे कि जब एक दीवार बनाई जाती है, तो केवल उस चंक के नेटवर्क को अपडेट करने की आवश्यकता होती है।
- स्टेज्ड पाथफाइंडिंग: पूरे मैप पर एक पथ पर चलना, सेल के लिए सेल, बहुत समय लगेगा, इसके बजाय आप बड़े चंक नेटवर्क पर रास्ता बनाएंगे, जो चंक्स के बीच के सभी कनेक्शनों को मैप करता है, और उसके बाद ही इंट्रा-चंक को चलाता है चंक से चलती है। यह आपके लिए 2 काम करता है। यह कई छोटे टुकड़ों को तोड़कर पाथफाइंडिंग को गति देता है, और यह इकाई को एक चंक अपडेट होने पर पथ के साथ दिशा का हिस्सा बदलने में सक्षम बनाता है। यदि यह किसी भी नोड को अद्यतन को पार करने की आवश्यकता है, तो यह बड़े नेटवर्क में फिर से पथ कर देगा।
- रैंडम स्टीयरिंग: जब किसी लक्ष्य की ओर नहीं बढ़ रहा होता है, तो यूनिट को केवल लक्ष्यहीन रूप से चलने की आवश्यकता होती है। कई रॉगुइलस बस एक यादृच्छिक दिशा में इकाई को स्थानांतरित करते हैं, जो अप्राकृतिक महसूस करते हैं। विभिन्न स्टीयरिंग तकनीकों का उपयोग किया जा सकता है, सरल लोग एक सीधी रेखा में जाने के पक्ष में हैं और कम से कम पीछे की ओर जाने वाली दिशाओं में स्थानांतरित होने का मौका है, जिसमें केवल 1% मौका होगा। तो इकाई कभी-कभी पूरी तरह से दिशा को उलट देगी, लेकिन केवल शायद ही कभी।
मैं pathfinding की मूल बातें कवर नहीं करेंगे। अधिकांश रूग्यूलाइक ए * का उपयोग करते हैं, लेकिन बिल्ली को त्वचा देने के लिए अन्य तरीके हैं। मम्मे बिल्ली का चमड़ा ।।
व्यक्तिगत कार्य
प्रमुख चीजों में से एक है जो DF इकाइयों को लोकप्रिय बनाता है और जीवित महसूस करता है, यह उनकी व्यक्तिगत लक्ष्य सूची है। सच में बहुत सारे रॉगुलाइक गेम्स में यह एक बुनियादी स्तर पर है। अनिवार्य रूप से प्रत्येक इकाई में इच्छाओं की एक सूची होती है (और आपके डॉर्फ के लिए, वे कार्य जो वे उठा सकते हैं जो आप करने के लिए कह रहे हैं) और वे उनके व्यक्तित्व (आंकड़े) के आधार पर उनसे चुनेंगे।
कुछ कार्यों की आवश्यकताएँ हैं। चमड़े की स्कर्ट बनाने के लिए डोरफ़न ऐसी-ऐसी दुकान में होना चाहिए जिसमें एक्स आइटम हों। इसलिए उन सभी को चेक किया जाता है और उनकी सूची में कार्यों के रूप में जोड़ा जाता है। इतना ही आसान।
चूंकि अधिकांश समय एक इकाई पारगमन में होगी, इसलिए जो इकाइयां कर रही हैं उनके लिए जांच बहुत तेज हो सकती है, केवल कुछ इकाइयां किसी भी समय एक विकल्प बना रही होंगी, और इसलिए कुल मिलाकर सैकड़ों के लिए भी धीमा नहीं है हजारों इकाइयाँ। और याद रखें, DF में मधुमक्खियों से लेकर ट्रोग्लोडाइट्स से लेकर पेड़ तक सब कुछ इकाइयाँ हैं।
कुछ अतिरिक्त शोध करने में यह स्पष्ट है कि, प्रफुल्लित रूप से, डीएफ सामान्य रूप से पथ-प्रदर्शक का एक भयानक काम कर रहा है। यह मानचित्र को विखंडन में नहीं तोड़ रहा है, यह मानचित्र को उन खंडों या क्षेत्रों में जोड़ रहा है जो जुड़े हुए हैं, (जो कि निश्चित रूप से कुछ भी नहीं से बेहतर है) इसलिए मेरा उपरोक्त मूल्यांकन भी उदाहरण से कम है कि मैंने सोचा था कि डीएफ कैसे काम करता है। :) जो यह कहना नहीं है कि DF दस लाख अन्य कारणों से आश्चर्यजनक से कम है।
यह दिखाने के लिए जाता है कि एक खेल में महत्वपूर्ण क्या है खेल खेलना। ग्राफिक्स नहीं, महान प्रोग्रामिंग नहीं, महान लेखन नहीं, महान संगीत नहीं, इंटरफ़ेस भी नहीं; और कुछ नहीं खेल के रूप में ही महत्वपूर्ण के रूप में 1% है।