टाइल आधारित 2 डी प्लेटफ़ॉर्मर के लिए टेरेन जेनरेशन


15

मैं वर्तमान में टेरारिया के समान टाइल-आधारित 2D प्लेटफ़ॉर्मर पर कुछ तरीकों से काम कर रहा हूँ, हालाँकि मुझे इलाके के निर्माण में कठिनाई हो रही है। मेरे पास कुछ मूल बातें हैं, हालांकि वे उपयोगी के रूप में बाहर नहीं आते हैं।

मैंने पेरलिन शोर जैसी कुछ अलग तकनीकों की कोशिश की है और कुछ अन्य लोगों के बारे में पढ़ा है जैसे कि मिडपॉइंट विस्थापन, हालांकि मुझे यकीन नहीं है कि सबसे अच्छा क्या होगा, या विभिन्न क्षेत्रों को उत्पन्न करने के लिए विभिन्न तकनीकों का संयोजन। (जैसे इलाके के सामान्य आकार के लिए मिडपॉइंट विस्थापन और गुफाओं के लिए पेरलिन शोर।)

मुझे एक उत्कृष्ट स्पष्टीकरण मिला है कि मैं इसे एक्सीडेंटल नॉइज़ लाइब्रेरी के साथ कैसे परत कर सकता हूं , हालांकि यह सी ++ में है, और मुझे यह जानने के लिए पर्याप्त सी ++ नहीं है कि मैं इसे डीएलएल में संकलित कर सकता हूं जिसे मैं सी # से उपयोग कर सकता हूं। मैंने इसे C # में कॉपी करने की कोशिश की है, हालांकि, मुझे नहीं पता कि मैं एक साथ दो प्रभावों को कैसे मिला सकता हूं (सामान्य आधार के लिए ढाल, और फिर विस्तार के लिए भग्न)।

वर्तमान में मैं एक प्लाज़्मा फ्रैक्टल का उपयोग कर रहा हूं और परिणाम बेहद विविध हैं। उदाहरण के लिए यह ऐसे इलाके पैदा कर सकता है जहाँ शायद ही कोई सतह हो, या यह ऐसा इलाक़ा पैदा कर सकता है जहाँ कोई सतह न हो।

ठीक नक्शे का एक उदाहरण, कुछ और सुधारों के साथ बेहतर होगा, हालांकि। (काला ठोस है, सफेद हवा है):

अच्छा नक्शा

और एक भयानक मानचित्र का एक उदाहरण। (काला ठोस है, सफेद हवा है):

भयानक नक्शा

मूल रूप से, मैं जो पूछ रहा हूं, वह इलाक़ा बनाने का एक बेहतर तरीका क्या होगा, या यह सुनिश्चित करने के लिए मजबूर करना कि सतह क्षेत्र की एक उचित मात्रा है, पीढ़ी समय के साथ जितनी जल्दी हो सके। या, वैकल्पिक रूप से, मैं कैसे एक्सीडेंटल शोर लाइब्रेरी के समान परिणाम प्राप्त करने में सक्षम होऊंगा, लेकिन सी # में।

किसी भी उदाहरण की बहुत सराहना की जाएगी।


हाय, मैं सोच रहा था कि आपने यह कैसे बनाया। मैं इस तरह की दुनिया उत्पन्न करने के बारे में एक समझ पाने की कोशिश कर रहा हूं और मुझे आपके द्वारा मिल रहे परिणाम पसंद हैं। आप किस एल्गोरिथ्म का उपयोग कर रहे हैं क्योंकि यह पेर्लिन शोर 2 डी की तरह नहीं दिखता है और यह निश्चित रूप से पेर्लिन शोर 1 डी नहीं है।
G3tinmybelly

जवाबों:


8

मैं पेरलिन के शोर के साथ चिपके रहने की कोशिश करूंगा, लेकिन ऊंचाई पर आधारित वजन को जोड़कर, कुछ ऊंचाई पर एक निश्चित औसत घनत्व सुनिश्चित करने के लिए। Minecraft इलाके पीढ़ी पर Notch की पोस्ट का हिस्सा उद्धृत करने के लिए :

इसलिए मैंने 3 डी पेर्लिन शोर के आधार पर सिस्टम को एक समान प्रणाली में बदल दिया। "ग्राउंड हाइट" का नमूना लेने के बजाय, मैंने शोर मूल्य को "घनत्व" के रूप में माना, जहां 0 से कम कुछ भी हवा होगी, और 0 से अधिक या उससे अधिक कुछ भी ग्राउंड होगा। यह सुनिश्चित करने के लिए कि नीचे की परत ठोस है और ऊपर नहीं है, मैं सिर्फ ऊँचाई (पानी के स्तर से ऑफसेट) को नमूना परिणाम में जोड़ता हूं।

अनिवार्य रूप से, आप एक Minecraft इलाके का थोड़ा टुकड़ा ले रहे हैं। तो 2 डी पेर्लिन शोर उत्पन्न करते हैं, लेकिन इसे इतना वजन करते हैं कि एक निश्चित बिंदु से ऊपर कुछ भी हवा होने की संभावना है, और एक निश्चित बिंदु से नीचे कुछ भी पृथ्वी होने की संभावना है।

यह आपको एक अच्छा भू-भाग देगा, जिसमें कुछ ओवरहैंग्स और दिलचस्प विशेषताएं हैं, साथ ही साथ कुछ गुफाएं और तैरते हुए द्वीप भी होंगे। (यदि आप फ्लोटिंग द्वीप नहीं चाहते हैं, तो आप उनके लिए परीक्षण कर सकते हैं और उन्हें मैन्युअल रूप से निकाल सकते हैं।) यह पद्धति आपको सुरंग जैसी चीजें नहीं देगी, इसलिए आप उन इलाकों को जोड़ने के लिए एक विधि चाहते हैं, जैसे कि नहीं बेतरतीब चलना


पूरी तरह से यकीन नहीं है कि मैं पूरी क्षमता के लिए पेरलिन शोर का उपयोग कर रहा हूं। जैसा कि आपने वर्णन किया है, करने के बाद यह बहुत सी गुफाओं के साथ बना है, जिसमें बहुत सारे तैरते हुए द्वीप हैं। कोई वास्तविक इलाके-प्रकार की परिभाषा नहीं। परिणामों का वजन करने के लिए एक ढाल का उपयोग करना, मुझे यह परिणाम मिलता है
छायांकित आयाम

@ छायांकित आयाम - आपके पेरलिन शोर मापदंडों को ट्विक करने की आवश्यकता है। आपके पास बहुत अधिक परिवर्तनशील शोर है, जब आप जो चाहते हैं वह बहुत अधिक चिकनी, व्यापक पैटर्न है। की जाँच करें freespace.virgin.net/hugo.elias/models/m_perlin.htm और अपने मापदंडों से कुछ के साथ चारों ओर खिलवाड़ का प्रयास करें। कम दृढ़ता और कम अष्टक का प्रयास करें। (ये शब्द अलग-अलग हो सकते हैं, इसलिए उस लेख को पढ़ें।)
dlras2

ठीक है, लिंक के लिए धन्यवाद। मुझे यह भी पता चला कि वजन कुछ मापदंडों को बदलने के बाद इरादा के अनुसार काम नहीं कर रहा था।
शेडेड डाइमेंशन

ठीक है, मापदंडों को थोड़ा संशोधित किया और मुझे ऐसा कुछ मिला है जो कम से कम अभी के लिए काफी स्वीकार्य है। मैंने इस परीक्षण के लिए सिर्फ गुफाओं को बनाना बंद कर दिया, क्योंकि मैं पहले वास्तविक भूभाग को प्राप्त करना चाहता था। यह अंतिम परिणाम है । बस उन तैरते द्वीपों को हटाने के लिए चेक जोड़ने की जरूरत है। एक बार फिर धन्यवाद।
छायांकित आयाम

@ छायांकित आयाम - अच्छा! बहुत समय, अच्छा इलाक़ा बस टर्निंग मापदंडों और ओवरलेइंग शोर से आता है। इससे पहले कि आपको कुछ ऐसा मिले, जिसमें आप बहुत खुश होंगे, लेकिन आप हमेशा वही इस्तेमाल कर सकते हैं जो अभी आपके पास है और फिनिशिंग ट्विक्स जोड़ने के लिए वापस आएं। सौभाग्य!
dlras2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.