नक्शा बनाने के तरीके


27

मैं एक छोटे से खेल के लिए एक सरल, "बेतरतीब ढंग से" उत्पन्न नक्शा बनाना चाह रहा हूं।

खेल में भूमि-द्रव्यमान और महासागरीय क्षेत्रों के साथ दुनिया के शीर्ष-नीचे का दृश्य होता है। उदाहरण के लिए दुनिया के एक सरल रूपरेखा मानचित्र के बारे में सोचें।

निकटतम चीज जो मैं सोच सकता हूं कि मैंने पहले देखा है कि पुराने सिम्सीटी गेम, या सिव श्रृंखला के लिए स्तर-जनरेटर था , जहां आप एकल महाद्वीप बनाम कई द्वीपों के लिए वरीयता निर्धारित कर सकते हैं, आदि।

किस प्रकार का एल्गोरिथ्म उपयुक्त होगा? मानचित्र को थोड़ा ज़ूम करने की आवश्यकता होगी, इसलिए मेरे पास "पूरी दुनिया" का दृश्य हो सकता है, और अधिक ज़ूम-इन स्थानीय दृश्य भी हो सकता है, लेकिन मुझे लगता है कि मैं बाद में इसे सुलझाऊंगा।

प्रारंभ में मुझे ऊंचाई की किसी भी अवधारणा की आवश्यकता नहीं है, सिर्फ दो क्षेत्रों - भूमि और समुद्र, हालांकि मैं इसे बाद में विस्तारित कर सकता हूं।


मैं किसी प्रकार के एक पेरी-शोर फ़ंक्शन का उपयोग करके पीढ़ी की लाइनों के साथ सोच रहा था, लेकिन यह सुनिश्चित नहीं है कि आवश्यक रूप से एक 2 डी ऊंचाई को कैसे प्राप्त किया जाए, लाइनों के एक सेट के लिए ऊंचाई पर सभी क्षेत्रों को कनेक्ट करें।
बेलनाकार

जवाबों:


21

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

"बहुभुज मानचित्र पीढ़ी" भाग 1 , भाग 2 , भाग 3

यह एक ऐसी तकनीक हो सकती है जिसे आप अपनी आवश्यकताओं के अनुकूल बनाना चाहते हैं! बहुत कम से कम, वह इस प्रक्रिया के प्रत्येक चरण में उपयोग किए जाने वाले एल्गोरिदम का उल्लेख करता है: वह पीढ़ी के वोरोनोई पॉलीगॉन द्वारा शुरू करता है , उन्हें लॉयड छूट का उपयोग करके अधिक वितरण के लिए आराम देता है , "दुनिया को भूमि और पानी में विभाजित करने के लिए एक सरल फ़ंक्शन का उपयोग करता है" , और फिर महासागरों और झीलों को निर्धारित करने के लिए बाढ़ भरता है। ऐसा लगता है कि आप वहां रुक सकते हैं, या पहाड़ों और घाटियों के लिए पढ़ सकते हैं और इसे 3 डी में बदल सकते हैं।


2
अरे वाह, मैंने अमित के गाइड को A * सीखने के लिए एक बड़ी रकम का इस्तेमाल किया। यह ऐसा है जैसे वह मेरे सिर में दिखता है :) समय पाने के लिए कि "<3 अमित" टैटू ...
बेलनाकार

1
वे वास्तव में महान हैं
कॉलम

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