इस प्रोजेक्ट के बारे में
bareiron एक न्यूनतम Minecraft सर्वर कार्यान्वयन है जिसका उद्देश्य मेमोरी-प्रतिबंधित एम्बेडेड सिस्टम के लिए है। इसका कथित लक्ष्य ESP32 जैसे बहुत कमजोर उपकरणों पर Minecraft सर्वर होस्ट करना संभव बनाना है। परियोजना स्पष्ट रूप से अपनी प्राथमिकताओं को क्रमबद्ध करती है: पहले मेमोरी उपयोग, दूसरा प्रदर्शन, और तीसरा सुविधाएँ, और यह नोट करती है कि वेनिला Minecraft के साथ अनुपालन न तो गारंटीकृत है और न ही एक लक्ष्य।
लक्षित संगतता Minecraft संस्करण 1.21.8 है जिसमें प्रोटोकॉल संस्करण 772 है। README चेतावनी देता है कि केवल वेनिला क्लाइंट आधिकारिक रूप से समर्थित है, और Fabric या समान क्लाइंट का उपयोग करते समय समस्याएँ रिपोर्ट की गई हैं।
PC x86_64 प्लेटफार्मों पर शुरू करना नवीनतम बिल्ड बाइनरी डाउनलोड करके और इसे चलाकर किया जाता है। फ़ाइल को कॉस्मोपॉलिटन पॉलीग्लॉट के रूप में वर्णित किया गया है, जिसका अर्थ है कि यह अपने फ़ाइल एक्सटेंशन के बावजूद Windows, Linux और संभवतः Mac पर चल सकता है। README नोट करता है कि सर्वर की डिफ़ॉल्ट सेटिंग्स को स्रोत से संकलन किए बिना पुन: कॉन्फ़िगर नहीं किया जा सकता है।
माइक्रोकंट्रोलर के लिए, संकलन आवश्यक है। संकलन से पहले, रजिस्ट्री डेटा को वेनिला Minecraft सर्वर से डंप किया जाना चाहिए। Linux पर इसे शामिल extract_registries.sh स्क्रिप्ट के साथ स्वचालित किया जा सकता है; अन्यथा प्रक्रिया में Minecraft सर्वर JAR को notchian फ़ोल्डर में रखना, सभी रजिस्ट्री डंप करने के लिए Minecraft Wiki डेटा जनरेटर गाइड का पालन करना, और फिर bun, node, या deno के साथ build_registries.js चलाना शामिल है।
संकलन निर्देश कई वातावरणों को कवर करते हैं: gcc और ./build.sh के साथ Linux; मूल बाइनरी के लिए MSYS2 MINGW64 के माध्यम से Windows, --9x फ्लैग के साथ Windows 95/98 के साथ संगत 32-बिट संस्करण, MSYS2-लिंक्ड बाइनरी, या Linux बाइनरी बनाने और चलाने के लिए WSL। ESP वेरिएंट के लिए, README ESP-IDF फ्रेमवर्क (स्पष्ट रूप से Arduino नहीं) का उपयोग करके PlatformIO प्रोजेक्ट स्थापित करने और उसके ऊपर रिपॉजिटरी क्लोन करने का निर्देश देता है, बेहतर प्रदर्शन के लिए क्लॉक स्पीड समायोजित करने और कंपाइलर ऑप्टिमाइज़ेशन सक्षम करने के सुझावों के साथ।
कॉन्फ़िगरेशन के लिए भी स्रोत से संकलन की आवश्यकता होती है। सबसे उपयोगकर्ता-अनुकूल विकल्प include/globals.h में रहते हैं, जिसमें एम्बेडेड सेटअप के लिए WiFi क्रेडेंशियल शामिल हैं, जबकि MOTD या दिन का प्रारंभिक समय जैसे विवरण src/globals.c में हैं। README वास्तविक माइक्रोकंट्रोलर तैनाती के लिए प्रासंगिक कई विकल्पों पर प्रकाश डालता है: मूवमेंट प्रसारण खिलाड़ी गिनती, MCU प्रदर्शन और नेटवर्क बैंडविड्थ के आधार पर कनेक्शन को थ्रॉटल कर सकता है, और इसे BROADCAST_ALL_MOVEMENT और SCALE_MOVEMENT_UPDATES_TO_PLAYER_COUNT को कमेंट करके, या अधिक कंप्यूट की कीमत पर TIME_BETWEEN_TICKS कम करके समायोजित किया जा सकता है। यदि वे क्रैश या अस्थिरता का कारण बनते हैं तो चेस्ट और तरल प्रवाह को ALLOW_CHESTS और DO_FLUID_FLOW के माध्यम से अक्षम किया जा सकता है। VISITED_HISTORY बढ़ाने से बार-बार चंक जनरेशन में मदद मिल सकती है, जिसमें 64 तक बढ़ाए जाने पर प्रति आवंटित खिलाड़ी लगभग 240 अतिरिक्त बाइट्स की मेमोरी लागत बताई गई है।
एक वैकल्पिक अनुभाग ESP लक्ष्यों के लिए गैर-वाष्पशील भंडारण को कवर करता है जो शटडाउन के बाद विश्व डेटा को बनाए रखना चाहते हैं। PC प्लेटफार्मों पर यह अनावश्यक है क्योंकि विश्व और खिलाड़ी डेटा डिफ़ॉल्ट रूप से world.bin में लिखा जाता है। सबसे सरल दृष्टिकोण PlatformIO में LittleFS स्थापित करना और globals.h में SYNC_WORLD_TO_DISK के आसपास के #ifndef को कमेंट करना है; चूंकि फ्लैश लेखन आमतौर पर धीमा और ब्लॉकिंग होता है, DISK_SYNC_BLOCKS_ON_INTERVAL को अनकमेंट करने का सुझाव दिया गया है, और LittleFS पार्टीशन में फिट होने के लिए MAX_BLOCK_CHANGES को कम करने की आवश्यकता हो सकती है। SD कार्ड मॉड्यूल या अन्य वर्चुअल फ़ाइल सिस्टम के लिए, फ़ाइल सिस्टम सेटअप रूटीन उपयोगकर्ता द्वारा लागू किया जाना चाहिए, हालांकि अंतर्निहित सीरियलाइज़र अभी भी काम करना चाहिए क्योंकि यह POSIX फ़ाइल सिस्टम कॉल का उपयोग करता है। एक विकल्प के रूप में, DEV_ENABLE_BEEF_DUMPS को अनकमेंट करके विश्व डेटा को TCP पर डंप और अपलोड किया जा सकता है, जिसमें स्पष्ट नोट है कि यह सिस्टम कोई सुरक्षा या प्रमाणीकरण लागू नहीं करता है और सर्वर एक्सेस वाला कोई भी व्यक्ति मनमाना विश्व डेटा अपलोड कर सकता है।
योगदान दिशानिर्देश योगदानकर्ताओं से छोटे बदलावों के लिए भी पुल रिक्वेस्ट से पहले मुद्दे बनाने और अनुरक्षकों के साथ चर्चा करने; मौजूदा कोड शैली का पालन करने; समीक्षा का अनुरोध करने से पहले कोड का परीक्षण करने के लिए कहते हैं; और वे कहते हैं कि विकास उपकरण और संकलन सुधारों का स्वागत तब तक नहीं है जब तक कि योगदानकर्ता ने व्यावहारिक कमियों को नोटिस करने के लिए कोडबेस के साथ पर्याप्त समय तक काम न किया हो। README प्रोटोकॉल जानकारी के लिए Minecraft Wiki की ओर इशारा करता है और बाकी सब कुछ के लिए एक खोज इंजन का सुझाव देता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.