मुझे पसंद है कि जिस तरह से आयु की साम्राज्ञी II ने यादृच्छिक नक्शे बनाए हैं (अच्छी किस्म, सभ्य बायोम संक्रमण, नक्शे अराजक महसूस किए बिना यादृच्छिक महसूस किए गए), लेकिन मैं शैली को दोहराने के लिए संघर्ष कर रहा हूं। मैंने उदाहरण के लिए, पेर्लिन के शोर का उपयोग करने का प्रयास किया है, लेकिन सब कुछ या तो बहुत सजातीय है, या यदि नहीं, तो पेरलिन मूल्य -> भू-भाग आंकड़े बहुत अधिक संवेदनशील और विभिन्न प्रकार के संसार बनाने के लिए नाजुक हैं।
मुझे याद है कि AoE2 मानचित्र प्रकार "द अनजान" विज्ञापित "100,000 संभावित मानचित्र", बीज संख्याओं के कुछ उपयोग का सुझाव देता है, लेकिन मुझे यकीन नहीं है कि मैंने जो विविधता देखी उसके उत्पादन के लिए बीज संख्याओं का उपयोग कैसे किया जाए।
AoE2 यादृच्छिक मानचित्रों की तरह महसूस करने वाले यादृच्छिक मानचित्रों का निर्माण करने के लिए मैं किस एल्गोरिदम और हेयुरिस्टिक्स का उपयोग कर सकता था?
अधिक विशिष्ट होने के लिए संपादित करें:
अपनी समस्या के बारे में और सोचते हुए, और यह अध्ययन करना कि मुझे AoE2 के यादृच्छिक मानचित्र इंजन के बारे में क्या पसंद है, मेरा मानना है कि मेरी सबसे बड़ी समस्या नक्शे पर पानी और पौधों के जीवन के वितरण को प्रबंधित करना है । अब मैं देखता हूं कि मैंने अपने दिमाग में "बायोम ट्रांज़िशन जो समझ में आता है" के साथ जोड़ा है, लेकिन यह एक अलग समस्या है (हालांकि मुझे उम्मीद है कि पेरलिन शोर के मेरे निरंतर उपयोग से इसे हल करने के लिए मुश्किल हो जाएगा)।
मैंने कई AoE2 यादृच्छिक मानचित्र जोड़े हैं जो हाइलाइट करते हैं कि मुझे उनके मैपिंग इंजन के बारे में क्या पसंद है, जो मेरे स्वयं के प्रयास पुन: उत्पन्न करने में विफल हो रहे हैं। सभी स्क्रीनशॉट यादृच्छिक मानचित्र प्रकार, "कस्टम" -> "अज्ञात" से लिए गए हैं। मैंने खेल को द्वीपसमूह जैसे विशिष्ट भूगोल का उपयोग करने का निर्देश नहीं दिया।
इसके अलावा नीचे अपने स्वयं के मानचित्र इंजन से चित्र हैं। प्रत्येक पिक्सेल एक AoE2 मैप टाइल से मेल खाती है।
मेरे प्रोजेक्ट के लिए एक जटिलता यह है कि मैं चाहता हूं कि नक्शे कई हों, जो कई बार एओई 2 के नक्शे से बड़े हों। इस प्रकार, मैं जो भी इंजन का उपयोग करता हूं, उसे प्रत्येक नक्शे में बायोम की पूरी श्रृंखला बनाने में सक्षम होना चाहिए, और एओई 2 उपयोगों की तरह बायोम के एक संकीर्ण सेट को प्रति मैप नहीं करना चाहिए।
साम्राज्यों की आयु II नक्शे
यहाँ एक उदाहरण है जो अंतर्देशीय झीलों और कुछ प्रकार की नदी-दिखने वाली चीजों की सुविधा देता है। मुझे पसंद है कि नक्शे में पानी की एक बड़ी मात्रा शामिल है, लेकिन पानी अभी भी कुछ हद तक केंद्रित है - आपके साम्राज्य के निर्माण के लिए भूमि की बड़ी संख्या है। आपको पानी के आसपास पूरे शहर की योजना बनाने में खर्च नहीं करना है।
यहां इसी तरह का उदाहरण है, जहां खेल द्वीपों को ट्रैवर्सेबल मार्स से जोड़ने के लिए पर्याप्त स्मार्ट था। मैं कल्पना नहीं कर सकता कि कैसे एक शोर-आधारित एल्गोरिथ्म वहाँ दलदल बना देगा, और केवल उन जगहों पर। इसके अलावा, नोटिस करें कि खेल ने किस तरह से जमीन तैयार की है कि प्रत्येक खिलाड़ी के पास निजी, बड़े स्वैथ की जमीन है जिसे सभी को शुरू करना है। इसने ज़मीन के बेतरतीब पैच नहीं बनाए, फिर सबसे अच्छा अनुमान लगाया कि प्रत्येक खिलाड़ी को शुरू करने के लिए कम से कम कितना भयानक होगा।
मुझे यह पसंद है कि यह मानचित्र पानी का भारी उपयोग भी करता है, लेकिन इसमें कई अंतर्देशीय झीलें शामिल नहीं हैं। पहली छवि के साथ इसका विरोध करें। मुझे उसी तरह पसंद है जैसे AoE2 एक ही बिल्डिंग ब्लॉक्स का उपयोग करके पूरी तरह से अलग भौगोलिक बनाता है। पेर्लिन के शोर का उपयोग करने का मेरा प्रयास यहाँ विफल रहा - मुझे या तो बड़े पैमाने पर विशाल महासागर मिलते हैं जो भूमि द्रव्यमान को कम कर देते हैं, या 10,000 झीलों की भूमि। मैंने दोनों द्वीपों और जुड़े महाद्वीपों (उत्तर / दक्षिण अमेरिका के बारे में सोचना) को प्राप्त करना कठिन पाया ।
इसके ऊपर वाले हिस्से के साथ इस छवि का विरोध करें। वे दिखाते हैं कि मानचित्र की शुष्कता जल स्तर पर निर्भर नहीं करती है। पहली छवि में एक नक्शा है जो लगभग पानी से रहित है, फिर भी इसमें जंगल और घास हैं। दूसरी छवि में मध्यम मात्रा में पानी है, फिर भी एक रेगिस्तान है। मुझे यह पसंद है कि यह संभव है (सोचें कि न्यू मैक्सिको या आपकी दुनिया में सहारा और कोस्टा रिका दोनों)।
मेरे अपने नक्शे
मैंने स्थानों के एक समूह में पढ़ा है कि नक्शे बनाने का एक अच्छा तरीका पेर्लिन शोर के कई स्तरों को परत करना है, प्रत्येक डेटा के एक अलग आयाम का प्रतिनिधित्व करता है। लोकप्रिय सिफारिशों के बाद, मैं ऊंचाई और नमी के साथ चला गया, यहां व्हिटेकर टेबल से इलाके के प्रकारों का चयन किया ।
मैंने दो पेर्लिन मानचित्र लिए, प्रत्येक में मानों को एक साधारण से पूर्णांक में निर्धारित किया if perlin_val < x { i=some_int } else if perlin_val < y...
, फिर भू-प्रकारों की तालिका (जैसे, [1,0] -> उष्णकटिबंधीय रेगिस्तान, [1,1] में (ऊँचाई, नमी) पूर्णांक जोड़े को मैप किया। ] -> चरागाह)। महासागरों को इस प्रणाली में शामिल किया गया था - ऊंचाई = 0 परिभाषित महासागर।
अच्छी भिन्नता है, और कई मायनों में यह एक वास्तविक दुनिया की तरह लगता है, लेकिन कुछ समस्याएं हैं:
सबसे पहले, महासागर की गहराई का कोई पैटर्न नहीं है। आपको उम्मीद है कि तट के पास उथले पानी और गहरे पानी के बाहर, वहाँ कोई तुक या कारण नहीं है, जहां है
दूसरा, सारा पानी समुद्रों में केंद्रित है; झीलें या नदियाँ नहीं हैं, क्योंकि एक महाद्वीप के मध्य में पेरलिन का शोर अचानक कम नहीं होता है।
प्रत्येक बायोम की मात्रा के बीच संतुलन बनाना बहुत मुश्किल है। मैं इसका श्रेय:
पर्लिन शोर एक सामान्य वितरण का अनुसरण करता है, इसलिए यह अनुमान लगाना कि प्रत्येक आयाम मानचित्रण की संभावना को समायोजित करना मुश्किल है
कई आयामों को संतुलित करने की कोशिश करना कठिन है - शायद मैं और अधिक (2,3) चाहता हूं, इसलिए मैं प्राप्त करने की बाधाओं (एन, 3)। खैर, अब मेरे पास बहुत अधिक (3,3) हैं और सब कुछ गलत दिखता है।
जब मैंने सुचारू डेटा के लिए शोर को पर्याप्त रूप से ज़ूम इन किया, तो मुझे पेरलिन मूल्यों का बहुत पूरा नमूना नहीं मिल रहा था। तो मैं अपने सामने के नक्शे के लिए अपने वितरण को ट्विक करूंगा, एक नया यादृच्छिक मानचित्र पुनः लोड करूंगा, और बहुत अलग परिणाम प्राप्त करूंगा।
मैंने पर्लिन मूल्यों के तीसरे सेट से पानी बनाकर नदियों / झीलों के मुद्दे को ठीक करने की कोशिश की। एक द्विआधारी पानी / भूमि का निर्णय, फिर उपरोक्त सभी सामानों को भूमि पर लागू करें। यह पानी के वितरण को नियंत्रित करने के लिए काफी आसान बनाता है (अभी भी सही नहीं है, लेकिन बेहतर है), लेकिन समस्या का परिचय देता है कि बहुत सारे बायोम संक्रमण हैं जो समझ में नहीं आते हैं। जैसे, हरे-भरे घास के मैदान, समुद्र तट पर बर्फ आदि के बीच रेगिस्तान के अकथनीय पैच, ऊपर वर्णित कारणों से भूमि बायोम के अनुपात को नियंत्रित करना अभी भी मुश्किल है।
उस उपरोक्त समस्याओं को देखते हुए, मैंने एक सरल एल्गोरिथ्म की कोशिश की जिसने केवल एक आयाम पर पेरलिन शोर को मैप किया। अब मेरे पास 0 = गहरे महासागर से फैला भू-प्रकार का एक सरणी है -> 1 = उथला महासागर -> 2 = समुद्र तट ... -> एन = बर्फ। हालांकि यह द्वीपों और महाद्वीपों की पैदावार करता है, और प्रत्येक इलाके के अनुपात को संतुलित करना बहुत आसान बनाता है, इलाके प्रकार बहुत दूर हैं। प्रत्येक भूमि द्रव्यमान एक ऊंचाई के नक्शे की तरह दिखता है, आमतौर पर इसकी सतह पर बिखरे हुए इलाके प्रकार के बिना। प्रत्येक भूमि द्रव्यमान में लगभग समान विशेषताएं होती हैं, हमेशा एक ही क्रम में, और हमेशा एक ही अंगूठी जैसी आकृति में।