मैं रैंडम मैप्स कैसे बना सकता हूं जो एज ऑफ एम्पायर II रैंडम मैप्स की तरह लगता है?


18

मुझे पसंद है कि जिस तरह से आयु की साम्राज्ञी 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 परिभाषित महासागर।

g1_success

अच्छी भिन्नता है, और कई मायनों में यह एक वास्तविक दुनिया की तरह लगता है, लेकिन कुछ समस्याएं हैं:

  • सबसे पहले, महासागर की गहराई का कोई पैटर्न नहीं है। आपको उम्मीद है कि तट के पास उथले पानी और गहरे पानी के बाहर, वहाँ कोई तुक या कारण नहीं है, जहां है

  • दूसरा, सारा पानी समुद्रों में केंद्रित है; झीलें या नदियाँ नहीं हैं, क्योंकि एक महाद्वीप के मध्य में पेरलिन का शोर अचानक कम नहीं होता है।

  • प्रत्येक बायोम की मात्रा के बीच संतुलन बनाना बहुत मुश्किल है। मैं इसका श्रेय:

    • पर्लिन शोर एक सामान्य वितरण का अनुसरण करता है, इसलिए यह अनुमान लगाना कि प्रत्येक आयाम मानचित्रण की संभावना को समायोजित करना मुश्किल है

    • कई आयामों को संतुलित करने की कोशिश करना कठिन है - शायद मैं और अधिक (2,3) चाहता हूं, इसलिए मैं प्राप्त करने की बाधाओं (एन, 3)। खैर, अब मेरे पास बहुत अधिक (3,3) हैं और सब कुछ गलत दिखता है।

    • जब मैंने सुचारू डेटा के लिए शोर को पर्याप्त रूप से ज़ूम इन किया, तो मुझे पेरलिन मूल्यों का बहुत पूरा नमूना नहीं मिल रहा था। तो मैं अपने सामने के नक्शे के लिए अपने वितरण को ट्विक करूंगा, एक नया यादृच्छिक मानचित्र पुनः लोड करूंगा, और बहुत अलग परिणाम प्राप्त करूंगा।

एक्स-अलग-पानी

मैंने पर्लिन मूल्यों के तीसरे सेट से पानी बनाकर नदियों / झीलों के मुद्दे को ठीक करने की कोशिश की। एक द्विआधारी पानी / भूमि का निर्णय, फिर उपरोक्त सभी सामानों को भूमि पर लागू करें। यह पानी के वितरण को नियंत्रित करने के लिए काफी आसान बनाता है (अभी भी सही नहीं है, लेकिन बेहतर है), लेकिन समस्या का परिचय देता है कि बहुत सारे बायोम संक्रमण हैं जो समझ में नहीं आते हैं। जैसे, हरे-भरे घास के मैदान, समुद्र तट पर बर्फ आदि के बीच रेगिस्तान के अकथनीय पैच, ऊपर वर्णित कारणों से भूमि बायोम के अनुपात को नियंत्रित करना अभी भी मुश्किल है।

एक आयामी विफलता

उस उपरोक्त समस्याओं को देखते हुए, मैंने एक सरल एल्गोरिथ्म की कोशिश की जिसने केवल एक आयाम पर पेरलिन शोर को मैप किया। अब मेरे पास 0 = गहरे महासागर से फैला भू-प्रकार का एक सरणी है -> 1 = उथला महासागर -> 2 = समुद्र तट ... -> एन = बर्फ। हालांकि यह द्वीपों और महाद्वीपों की पैदावार करता है, और प्रत्येक इलाके के अनुपात को संतुलित करना बहुत आसान बनाता है, इलाके प्रकार बहुत दूर हैं। प्रत्येक भूमि द्रव्यमान एक ऊंचाई के नक्शे की तरह दिखता है, आमतौर पर इसकी सतह पर बिखरे हुए इलाके प्रकार के बिना। प्रत्येक भूमि द्रव्यमान में लगभग समान विशेषताएं होती हैं, हमेशा एक ही क्रम में, और हमेशा एक ही अंगूठी जैसी आकृति में।


मुझे यकीन नहीं है कि मूल विकास टीम पर कोई भी वास्तव में आपके सवाल का जवाब नहीं दे सकता है, लेकिन मुझे लगता है कि बीज आपकी अपेक्षा से बहुत कम है। बीज निश्चित रूप से प्रति आधार मानचित्र प्रकार के विभिन्न मानचित्रों को उत्पन्न करता है, और उन सभी को किसी भी संयोजन में शामिल करना सबसे अधिक संभावना है जो इसे 100,000 तक पहुंचने की अनुमति देता है।
मैगस

यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह गेम बनाने के बजाय किसी विशिष्ट पहले से मौजूद गेम के बारे में कार्यान्वयन विवरण के लिए पूछ रहा है।
ट्रेवर पॉवेल

@TrevorPowell इस साइट के लिए ऑन-टॉपिक प्रश्नों के लिए दिशा-निर्देशों की समीक्षा करने के बाद, मैंने इस प्रश्न को फिर से परिभाषित किया है।
स्पिफाइटेक

आपने मेरी टिप्पणी के बाद लगभग दस सेकंड संपादित किए। अब वह सेवा है! ;)
ट्रेवर पॉवेल

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

जवाबों:


9

अमित पटेल के उत्कृष्ट लेख को देखें जो मुझे लगता है कि इलाके की प्रक्रियात्मक पीढ़ी के लिए एक सर्वोत्कृष्ट संसाधन है ...

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

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

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


2
अमित का गाइड इलाके का निर्माण करता है जो एज ऑफ एम्पायर्स के लिए बहुत यथार्थवादी है। :)
सेठ बत्तीन

अरे हाँ, सच है। लेकिन अलग-अलग आकार की कोशिकाओं (जहां प्रत्येक एक विशिष्ट इलाका है) का उपयोग करने की मूल अवधारणा मेरे विचार से एक दृष्टिकोण के रूप में अच्छी तरह से काम करेगी। इलाके की ऊंचाई का विचार समीकरण से निकालें।
टिम होल्ट 23

मैंने अमित के लेख की समीक्षा की, लेकिन यह एक द्वीप के आसपास बहुत कसकर अनुकूलित है। किनारे से दूरी का एक सरल कार्य करना कई द्वीपों, या बड़े महाद्वीपों के साथ अजीब परिणाम पैदा करता है, और उसकी जल वितरण विधि परिदृश्य में एक प्रमुख शिखर मानती है जो अंततः महासागर में बहती है। अगर मुझे अमित की योजना से इलाके की ऊंचाई को हटाना था, तो मैं अनिश्चित हूं कि अपने बायोम वितरण विचार को अपनी परियोजना के लिए कैसे अनुकूलित करूं।
spiffytech

5

मैं एज ऑफ़ एम्पायर 2 के लिए रैंडम मैप स्क्रिप्ट बनाता हूँ । मेरा सबसे हाल ही में एक HD संस्करण के लिए है।

यदि आप यह समझने की कोशिश कर रहे हैं कि एज ऑफ़ एम्पायर 2 के लिए नक्शे कैसे बनाएं, तो आरएमएस (रैंडम मैप स्क्रिप्टिंग) के लिए यह उत्कृष्ट मार्गदर्शिका है

साम्राज्यों की आयु एक विशेषज्ञ प्रणाली का उपयोग करती है, जिससे स्क्रिप्ट को पीढ़ी के नियमों के लिए दिनचर्या लिखने की अनुमति मिलती है, जिससे आप बहुत कुछ सीख सकते हैं। क्षेत्रों के रूप में, मुझे लगता है कि बस क्षेत्रों के मास्किंग और अलग-अलग स्क्रिप्ट / रूटीन को नकाबपोश क्षेत्रों में लागू करने का मामला होगा। आप मौजूदा मानचित्र लिपियों के पीढ़ी नियमों को आसानी से एक पाठ संपादक में खोलकर देख सकते हैं। मैं नोटपैड में अपना लिखता हूं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.