منصوبے کے بارے میں

bareiron ایک کم سے کم Minecraft سرور نفاذ ہے جس کا مقصد میموری پر محدود ایمبیڈڈ سسٹمز ہے۔ اس کا واضح ہدف یہ ہے کہ بہت کمزور آلات جیسے ESP32 پر Minecraft سرورز میزبانی کرنا ممکن بنایا جائے۔ پروجیکٹ واضح طور پر اپنی ترجیحات کو پہلے میموری استعمال، دوسرے کارکردگی، تیسرے فیچرز کے طور پر ترتیب دیتا ہے، اور یہ نوٹ کرتا ہے کہ ونیلا Minecraft کے ساتھ تعمیل یا تو ضمانت نہیں ہے اور نہ ہی یہ ایک ہدف ہے۔ ہدف شدہ مطابقت Minecraft ورژن 1.21.8 ہے جس کا پروٹوکول ورژن 772 ہے۔ README میں خبردار کیا گیا ہے کہ صرف ونیلا کلائنٹ کو سرکاری طور پر تعاون حاصل ہے، اور Fabric یا اس جیسے کلائنٹ استعمال کرنے پر مسائل رپورٹ ہوئے ہیں۔ PC x86_64 پلیٹ فارمز پر شروع کرنے کے لیے تازہ ترین بلڈ بائنری ڈاؤن لوڈ کر کے اسے چلانا ہوتا ہے۔ فائل کو Cosmopolitan پولیگلوٹ کے طور پر بیان کیا گیا ہے، یعنی اس کے فائل ایکسٹینشن کے باوجود یہ Windows، Linux اور ممکنہ طور پر Mac پر چل سکتا ہے۔ README میں نوٹ کیا گیا ہے کہ سرور کی ڈیفالٹ سیٹنگز کو سورس سے مرتب کیے بغیر دوبارہ ترتیب نہیں دی جا سکتی۔ مائیکرو کنٹرولرز کے لیے مرتب کرنا ضروری ہے۔ مرتب کرنے سے پہلے رجسٹری ڈیٹا کو ونیلا Minecraft سرور سے نکالنا ہوتا ہے۔ Linux پر یہ شامل کردہ extract_registries.sh اسکرپٹ سے خودکار کیا جا سکتا ہے؛ بصورت دیگر عمل میں Minecraft سرور JAR کو notchian فولڈر میں رکھنا، Minecraft Wiki ڈیٹا جنریٹر گائیڈ کے مطابق تمام رجسٹریز نکالنا، اور پھر bun، node یا deno کے ساتھ build_registries.js چلانا شامل ہے۔ مرتب کرنے کی ہدایات کئی ماحول کا احاطہ کرتی ہیں: gcc والے Linux کے لیے ./build.sh؛ MSYS2 MINGW64 کے ذریعے Windows کے لیے مقامی بائنری، Windows 95/98 کے ساتھ مطابقت رکھنے والا 32-bit ویریئنٹ --9x فلیگ کے ساتھ، MSYS2 سے منسلک بائنری، یا Linux بائنری بنانے اور چلانے کے لیے WSL۔ ESP ویریئنٹس کے لیے README میں PlatformIO پروجیکٹ ESP-IDF فریم ورک کا استعمال کر کے ترتیب دینے کی ہدایت کی گئی ہے (واضح طور پر Arduino نہیں) اور اس کے اوپر ریپوزٹری کلون کرنے کی ہدایت کی گئی ہے، بہتر کارکردگی کے لیے کلاک سپیڈ ایڈجسٹ کرنے اور کمپائلر آپٹیمائزیشن کو فعال کرنے کی تجاویز ہیں۔ ترتیب بھی سورس سے مرتب کرنے کی ضرورت ہوتی ہے۔ زیادہ صارف دوست آپشنز include/globals.h میں رہتے ہیں، بشمول ایمبیڈڈ سیٹ اپس کے لیے WiFi اسناد، جبکہ MOTD یا دن کا آغاز وقت جیسی تفصیلات src/globals.c میں ہیں۔ README میں حقیقی مائیکرو کنٹرولر ڈیپلوئمنٹ سے متعلق کئی آپشنز کو نمایاں کیا گیا ہے: موومنٹ براڈکاسٹ کھلاڑی کی تعداد، MCU کارکردگی اور نیٹ ورک بینڈوڈتھ کے لحاظ سے کنکشنز کو کم کر سکتا ہے، اور اسے BROADCAST_ALL_MOVMENT اور 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 کو غیر تبصرہ کرنے کی تجویز ہے، اور MAX_BLOCK_CHANGES کو LittleFS پارٹیشن کے مطابق کم کرنے کی ضرورت پڑ سکتی ہے۔ SD کارڈ ماڈیولز یا دیگر ورچوئل فائل سسٹمز کے لیے فائل سسٹم سیٹ اپ روٹین صارف کے ذریعے نافذ کرنا ہوگی، حالانکہ بلٹ ان سیریلائزر اب بھی کام کرے گا کیونکہ یہ POSIX فائل سسٹم کالز استعمال کرتا ہے۔ متبادل کے طور پر، DEV_ENABLE_BEEF_DUMPS کو غیر تبصرہ کر کے TCP پر دنیا کے ڈیٹا کو نکالا اور اپ لوڈ کیا جا سکتا ہے، اس واضح نوٹ کے ساتھ کہ یہ سسٹم کوئی سیکیورٹی یا تصدیق نافذ نہیں کرتا اور سرور تک رسائی رکھنے والا کوئی بھی صوابدیدی دنیا کا ڈیٹا اپ لوڈ کر سکتا ہے۔ تعاون کے رہنما خطوط میں تعاون کرنے والوں سے کہا گیا ہے کہ وہ پر ریکویسٹ سے پہلے مسائل بنائیں اور maintainers کے ساتھ بحث کریں، چھوٹی تبدیلیوں کے لیے بھی؛ موجودہ کوڈ اسٹائل پر عمل کرنا؛ جائزہ کی درخواست کرنے سے پہلے کوڈ کی جانچ کرنا؛ اور یہ کہ ترقیاتی ٹولز اور مرتب کرنے میں بہتری خوش آئند نہیں جب تک کہ تعاون کرنے والا کوڈ بیس کے ساتھ اتنا عرصہ کام نہیں کر لیتا کہ عملی خامیوں کو محسوس کر سکے۔ README پروٹوکول کی معلومات کے لیے Minecraft Wiki کی طرف اشارہ کرتا ہے اور باقی سب کے لیے سرچ انجن تجویز کرتا ہے۔