مائن کرافٹ سرور کی اصلاح

مائن کرافٹ سرور کی اصلاح
ہمارے بلاگ پر ہم پہلے ہی موجود ہیں۔ کہا، اپنا مائن کرافٹ سرور کیسے بنائیں، لیکن تب سے 5 سال گزر چکے ہیں اور بہت کچھ بدل گیا ہے۔ ہم آپ کے ساتھ اس طرح کی مقبول گیم کے سرور حصے کو بنانے اور اسے بہتر بنانے کے موجودہ طریقے بتا رہے ہیں۔

اپنی 9 سالہ تاریخ میں (ریلیز کی تاریخ سے شمار)، مائن کرافٹ نے عام کھلاڑیوں اور گیکس دونوں کے درمیان مداحوں اور نفرت کرنے والوں کی حیرت انگیز تعداد حاصل کی ہے۔ بلاکس سے بنی دنیا کا سادہ تصور تفریح ​​کی ایک سادہ شکل سے حقیقی دنیا سے مختلف اشیاء کو بات چیت اور تخلیق کرنے کے لیے ایک آفاقی ذریعہ میں تبدیل ہوا ہے۔

تعمیر کے علاوہ، کھیل تخلیق کرنے کی صلاحیت ہے منطق، جو آپ کو مائن کرافٹ کے اندر مکمل الگورتھم نافذ کرنے کی اجازت دیتا ہے۔ یوٹیوب بہت متاثر کن ویڈیوز سے بھرا ہوا ہے جہاں لوگوں نے بہت زیادہ محنت اور کافی وقت صرف کرکے اس یا اس الیکٹرانک ڈیوائس کی ایک کاپی بنائی ہے یا اس کی تفصیلی کاپی بنائی ہے۔ موجودہ и خیالی تعمیراتی ڈھانچے. سب کچھ صرف گیمر کے تخیل اور گیمنگ کائنات کے امکانات تک محدود ہے۔


لیکن آئیے اس کے بارے میں مزید بات نہیں کرتے ہیں کہ کھلاڑی بالکل کیا تخلیق کرتے ہیں، لیکن آئیے ایپلی کیشن کے سرور حصے کو دیکھیں اور ان مسائل (بعض اوقات بہت پیچیدہ) کو اجاگر کریں جو لوڈ کے دوران آپریشن کے دوران پیدا ہوسکتے ہیں۔ آئیے فوراً ریزرویشن کرتے ہیں کہ ہم صرف جاوا ایڈیشن کے بارے میں بات کریں گے۔

سرورز کی اقسام

سب سے آسان آپشن گیم کلائنٹ میں بنایا ہوا سرور ہے۔ ہم نے ایک دنیا بنائی، ایک بٹن دبایا، اور سرور مقامی نیٹ ورک پر قابل رسائی ہو گیا۔ یہ اختیار کسی بھی سنگین بوجھ کو برداشت نہیں کر سکتا، اور اس وجہ سے ہم اس پر غور نہیں کریں گے.

ونیلا

موجنگ اسٹوڈیوز گیم کے سرور حصے کو جاوا ایپلی کیشن کے طور پر مفت تقسیم کر رہا ہے۔ سرکاری ویب سائٹ پر. یہ آپ کو اپنی تخلیق کرنے کی اجازت دیتا ہے۔ وقف سرور اور ذاتی دنیا، اسے کرہ ارض پر کہیں سے بھی کنکشن کے لیے قابل رسائی بناتا ہے۔ ان لوگوں کے لیے جو پہلی بار ایسا کر رہے ہیں، ایک بہت اچھا ہے۔ سبق، متعلقہ گیمنگ وکی پر دستیاب ہے۔

اس نقطہ نظر میں ایک سنگین خرابی ہے، یعنی پلگ ان کو جوڑنے کے لیے باکس سے باہر کی صلاحیتوں کا فقدان جو سرور کی فعالیت کو بڑھاتا ہے اور نہ صرف بہت سے عمل کو خودکار کرنے کی اجازت دیتا ہے، بلکہ کارکردگی کو بھی بہتر بناتا ہے۔ اس کے علاوہ، آفیشل سرور میں ہر منسلک پلیئر کے لیے کافی بڑی RAM کی کھپت ہوتی ہے۔

بخکیٹ

ونیلا ورژن کی بنیاد پر شائقین کے ذریعہ تخلیق کردہ سرور ایپلی کیشن بخکیٹ پلگ انز اور موڈز (ترمیمات) کو سپورٹ کرکے گیم کی صلاحیتوں کو نمایاں طور پر بڑھایا۔ اس نے نہ صرف گیم پلے میں نئے بلاکس شامل کرنے کی اجازت دی، بلکہ مختلف ہیرا پھیری کرنے کی بھی اجازت دی جو ونیلا سافٹ ویئر کے لیے ناقابل رسائی تھے۔ دلچسپ بات یہ ہے کہ اس ایپلی کیشن کو نمایاں طور پر کم میموری کی ضرورت تھی۔

Bukkit انسٹال کرنا مشکل نہیں ہے؛ متعلقہ ہدایات وسائل پر ہیں گیم پیڈیا. لیکن اس کا کوئی مطلب نہیں ہے، چونکہ 2014 کے بعد سے بوکیت ٹیم منقطع ہوگئی ہے، پروجیکٹ کے ڈویلپرز موجنگ اسٹوڈیو کے ملازم بن گئے ہیں، اور ذخیرہ چھوڑ دیا اس طرح، Bukkit مؤثر طریقے سے مر گیا ہے، اور اگلے دو منصوبوں پر توجہ دینا سمجھ میں آتا ہے.

SpigotMC

پلگ ان ڈویلپرز کے لیے زندگی کو آسان بنانے کے لیے، گیم کی دنیا کے ساتھ بات چیت کرنے کے لیے ایک API کی ضرورت تھی۔ یہ بالکل وہی مسئلہ ہے جسے تخلیق کاروں نے حل کیا۔ سپاہی, Bukkit کور کو لے کر اور بہتر وشوسنییتا اور کارکردگی حاصل کرنے کے لیے اسے دوبارہ کام کرنا۔ بہر حال، گٹ ذخیرہ پروجیکٹ کو ڈیجیٹل ملینیم کاپی رائٹ ایکٹ کی وجہ سے روک دیا گیا تھا (DMCA)، اور وہاں سے سورس کوڈ ڈاؤن لوڈ کرنا ناممکن ہے۔

فی الحال، SpigotMC فعال طور پر تیار اور استعمال کیا جاتا ہے. یہ Bukkit کے لیے بنائے گئے تمام پلگ ان کو سپورٹ کرتا ہے، لیکن پیچھے کی طرف اس کے ساتھ مطابقت نہیں رکھتا ہے۔ DMCA ٹیک ڈاؤن کے ارد گرد حاصل کرنے کے لئے، BuildTools نامی ایک خوبصورت طریقہ ایجاد کیا گیا تھا. یہ ٹول مرتب کردہ ایپلیکیشن کو تقسیم کرنے کی ضرورت کو ختم کرتا ہے اور صارفین کو سورس کوڈ سے Spigot، CraftBukkit اور Bukkit کو مرتب کرنے کی اجازت دیتا ہے۔ یہ سب ڈی ایم سی اے کی پابندی کو بیکار بنا دیتا ہے۔

پیپر ایم سی

سب کچھ ٹھنڈا لگ رہا تھا، اور Spigot ایک بہترین آپشن بن گیا۔ لیکن کچھ شائقین کے لیے یہ کافی نہیں تھا، اور انہوں نے "سٹیرائڈز پر" سپیگوٹ کا اپنا کانٹا بنایا۔ پر منصوبے کا صفحہ اہم فائدہ یہ ہے کہ "یہ بیوقوف تیز ہے"۔ ترقی یافتہ برادری آپ کو ابھرتے ہوئے مسائل کو تیزی سے حل کرنے کی اجازت دیتا ہے، اور توسیع شدہ API آپ کو دلچسپ پلگ ان بنانے کی اجازت دیتا ہے۔ آپ پیپر ایم سی کو ایک سادہ کمانڈ کے ساتھ شروع کر سکتے ہیں، جو کہ دی گئی ہے۔ دستاویزات.

PaperMC بہترین مطابقت رکھتا ہے، لہذا SpigotMC کے لیے لکھے گئے پلگ ان PaperMC پر آسانی سے کام کر سکتے ہیں، لیکن سرکاری تعاون کے بغیر۔ SpigotMC کے ساتھ پسماندہ مطابقت بھی موجود ہے۔ اب جب کہ ہم نے سرور بنانے کے لیے مختلف اختیارات درج کر لیے ہیں، آئیے کارکردگی کے مسائل کی طرف بڑھتے ہیں جو پیدا ہو سکتے ہیں۔

مسائل اور حل

آپ کو سمجھنے کی اہم چیز یہ ہے کہ گیم ورلڈ کی پروسیسنگ سے متعلق ہر چیز کو صرف فزیکل سرور کے ایک کمپیوٹنگ کور پر پروسیس کیا جائے گا۔ لہذا اگر اچانک آپ کے پاس ایک درجن کمپیوٹنگ کور کے ساتھ ایک بہترین سرور ہے، تو صرف ایک لوڈ کیا جائے گا. باقی سب عملی طور پر بیکار ہو جائیں گے۔ یہ ایپلیکیشن کا فن تعمیر ہے، اور آپ اس کے بارے میں کچھ نہیں کر سکتے۔ لہذا سرور کا انتخاب کرتے وقت، آپ کو کور کی تعداد پر نہیں بلکہ گھڑی کی فریکوئنسی پر توجہ دینی چاہیے۔ یہ جتنا اونچا ہوگا، کارکردگی اتنی ہی بہتر ہوگی۔

رام کی صلاحیت کے مسئلے کے بارے میں، ہمیں درج ذیل اشارے سے آگے بڑھنا چاہیے:

  • کھلاڑیوں کی منصوبہ بند تعداد؛
  • سرور پر دنیا کی منصوبہ بند تعداد؛
  • ہر دنیا کا سائز۔

یاد رہے کہ جاوا ایپلی کیشن کو ہمیشہ ریم کے ریزرو کی ضرورت ہوتی ہے۔ اگر آپ 8 گیگا بائٹس کی میموری کی کھپت کی توقع کرتے ہیں، تو آپ کو درحقیقت 12 ہونے کی ضرورت ہے۔ نمبر رشتہ دار ہیں، لیکن جوہر تبدیل نہیں ہوتا ہے۔

سرور کا حصہ شروع کرنے کے لیے، ہم مضمون میں بیان کردہ جھنڈوں کو استعمال کرنے کی تجویز کرتے ہیں۔ Minecraft کے لیے JVM - G1GC کوڑے کے جمع کرنے والے جھنڈے کو ٹیون کرنا. یہ "کالا جادو" سرور کو "کوڑا اٹھانے والے" کو صحیح طریقے سے ترتیب دینے اور رام کے استعمال کو بہتر بنانے کی اجازت دیتا ہے۔ آپ کو اس سے زیادہ میموری مختص نہیں کرنی چاہئے جو سرور اصل میں کھلاڑیوں کی آمد کے دوران استعمال کرتا ہے۔

بلاک نقشہ تیار کرنا

"کیا آپ واقعی سوچتے ہیں کہ چاند صرف اس وقت موجود ہے جب آپ اسے دیکھتے ہیں؟" (البرٹ آئن سٹائین)

مکمل طور پر نیا سرور۔ جیسے ہی کھلاڑی پہلی بار کامیابی سے جڑتا ہے، گیم کا کردار عام اجتماعی مقام (سپون) پر ظاہر ہوتا ہے۔ یہ واحد جگہ ہے جہاں کھیل کی دنیا سرور کے ذریعہ پہلے سے تیار کی گئی ہے۔ اسی لمحے، کلائنٹ کا حصہ ترتیبات کو دیکھتا ہے، اور کلیدی پیرامیٹر ڈرائنگ کا فاصلہ ہے۔ اس کی پیمائش ٹکڑوں میں کی جاتی ہے (نقشے کا رقبہ 16×16 اور 256 بلاکس اونچا ہے۔) کتنے ٹکڑوں کی نشاندہی کی گئی ہے بالکل یہ ہے کہ سرور سے کتنے کی درخواست کی جائے گی۔

سرور دنیا کا ایک عالمی نقشہ ذخیرہ کرتا ہے، اور اگر گیم کریکٹر کے ظاہر ہونے کے وقت اس میں ابھی تک کوئی بلاکس نہیں ہیں، تو سرور انہیں متحرک طور پر تیار کرتا ہے اور اسٹور کرتا ہے۔ اس کے لیے نہ صرف بڑے کمپیوٹنگ وسائل کی ضرورت ہوتی ہے بلکہ یہ دنیا کے نقشے کے سائز میں بھی مسلسل اضافہ کرتا ہے۔ قدیم ترین انارکسٹ سرورز میں سے ایک پر 2b2t۔ (2builders2tools) نقشے کا سائز پہلے ہی 8 Tb سے تجاوز کر چکا ہے، اور دنیا کی سرحد تقریباً 30 ملین بلاکس پر ہے۔ اس سرور سے ہزاروں کہانیاں وابستہ ہیں اور یہ اس سلسلے میں اپنے مضمون کا مستحق ہے۔

ایک کھلاڑی کے گرد دنیا بنانا کوئی مسئلہ نہیں ہے۔ سیکڑوں کھلاڑیوں کے ارد گرد ایک دنیا پیدا کرنے سے مختصر وقت کے لیے سرور میں معمولی کمی آئے گی، جس کے بعد لوڈ کم ہو جائے گا۔ ایک ہزار پلیئرز کے ارد گرد کلائنٹ رینڈرنگ فاصلے پر ایک دنیا پیدا کرنا پہلے سے ہی سرور کو "ڈراپ" کرنے اور ٹائم آؤٹ کی وجہ سے تمام کلائنٹس کو اس سے باہر پھینکنے کے قابل ہے۔

سرور سافٹ ویئر میں ایک قدر ہوتی ہے جیسے ٹی پی (ٹکس فی سرور - ٹک فی سیکنڈ)۔ عام طور پر، 1 گھڑی کا چکر 50 ایم ایس کے برابر ہوتا ہے۔ (حقیقی دنیا کا 1 سیکنڈ گیم ورلڈ کے 20 ٹک کے برابر ہے)۔ اگر ایک ٹک کی پروسیسنگ 60 سیکنڈ تک بڑھ جاتی ہے، تو سرور ایپلیکیشن بند ہو جائے گی، تمام کھلاڑیوں کو باہر پھینک دیا جائے گا۔

اس کا حل یہ ہے کہ دنیا کو کچھ کوآرڈینیٹ تک محدود رکھا جائے اور ابتدائی بلاک جنریشن کو انجام دیا جائے۔ اس طرح، ہم گیم کے دوران متحرک نسل کی ضرورت کو دور کرتے ہیں، اور سرور کو صرف ایک موجودہ نقشہ پڑھنے کی ضرورت ہوگی۔ دونوں مسائل کو ایک ہی پلگ ان سے حل کیا جا سکتا ہے۔ ورلڈ بارڈر.

سب سے آسان طریقہ یہ ہے کہ دنیا کی حدود کو ایک حکم کے ساتھ دائرے کی شکل میں مقرر کریں (اگرچہ آپ اسے کسی بھی شکل کا بنا سکتے ہیں)

/wb set <радиус в блоках> spawn

اگر کھلاڑی کا کردار سرحد پار کرنے کی کوشش کرتا ہے تو اسے کئی بلاکس پیچھے دھکیل دیا جائے گا۔ اگر یہ ایک محدود وقت کے اندر کئی بار کیا جاتا ہے، تو مجرم کو زبردستی سپون پوائنٹ پر ٹیلی پورٹ کیا جائے گا۔ دنیا کی پری جنریشن اس حکم کے ساتھ اور بھی آسان کی جاتی ہے:

/wb fill

چونکہ یہ کارروائی ممکنہ طور پر سرور پر موجود کھلاڑیوں کو متاثر کر سکتی ہے، اس لیے تصدیق کرنا یقینی بنائیں:

/wb confirm

مجموعی طور پر، Intel® Xeon® Gold 5000 پروسیسر پر 40 بلاکس (~2 بلین بلاکس) کے رداس والی دنیا بنانے میں تقریباً 6240 گھنٹے لگے۔ اس لیے، اگر آپ پہلے سے بڑا نقشہ تیار کرنا چاہتے ہیں، تو آگاہ رہیں کہ اس عمل میں کافی وقت لگے گا، اور سرور TPS سنجیدگی سے کم ہو جائے گا۔ یہ بھی یاد رکھیں کہ 5000 بلاکس کے رداس کے لیے بھی تقریباً 2 جی بی ڈسک کی جگہ درکار ہوگی۔

اس حقیقت کے باوجود کہ پلگ ان کا تازہ ترین ورژن Minecraft ورژن 1.14 کے لیے تیار کیا گیا تھا، یہ تجرباتی طور پر پایا گیا کہ یہ بعد کے ورژنز پر بہت اچھا کام کرتا ہے۔ وضاحت کے ساتھ کمانڈز کی مکمل فہرست دستیاب ہے۔ پلگ ان فورم پر.

مسئلہ بلاکس

مائن کرافٹ میں بلاکس کی ایک بڑی قسم ہے۔ تاہم، ہم قارئین کی توجہ ایسے بلاک کی طرف مبذول کرانا چاہیں گے۔ TNT. جیسا کہ نام سے ظاہر ہے، یہ بلاک ایک دھماکہ خیز مواد ہے۔ (ایڈیٹر کا نوٹ - یہ ورچوئل دنیا کا ایک گیم آئٹم ہے اور اس آئٹم میں اصلی دھماکہ خیز مواد کے ساتھ کوئی چیز نہیں ہے). اس کی خاصیت ایسی ہے کہ ایکٹیویشن کے لمحے اس پر کشش ثقل کی قوت کام کرنا شروع کر دیتی ہے۔ اگر اس وقت بلاک گرنا شروع ہو جائے تو یہ سرور کو تمام نقاط کا حساب لگانے پر مجبور کرتا ہے۔

اگر کئی ٹی این ٹی بلاکس ہیں، تو ایک بلاک کا دھماکہ دھماکہ اور ہمسایہ بلاکس میں کشش ثقل کے فعال ہونے کا سبب بنتا ہے، انہیں تمام سمتوں میں بکھیر دیتا ہے۔ سرور سائیڈ پر یہ تمام خوبصورت میکینکس ہر بلاک کی رفتار کا حساب لگانے کے ساتھ ساتھ پڑوسی بلاکس کے ساتھ تعامل کے لیے بہت سارے آپریشنز کی طرح لگتا ہے۔ یہ کام انتہائی وسائل پر مبنی ہے، جسے کوئی بھی آسانی سے جانچ سکتا ہے۔ TNT بلاکس سے ایک کیوب بنائیں اور اس کا دھماکہ کریں جس کا سائز کم از کم 30x30x30 ہو۔ اور اگر آپ کو لگتا ہے کہ آپ کے پاس ایک اچھا، طاقتور گیمنگ کمپیوٹر ہے، تو آپ بہت غلط تھے 😉

/fill ~ ~ ~ ~30 ~30 ~30 minecraft:tnt

مائن کرافٹ سرور کی اصلاح
Intel® Xeon® Gold 6240 کے ساتھ سرور پر اسی طرح کا ایک "تجربہ" پورے بلاک دھماکے کے وقت کے دوران TPS میں سنگین کمی اور %80 CPU لوڈ کا باعث بنا۔ لہذا، اگر کوئی کھلاڑی ایسا کرنے کے قابل ہے، تو کارکردگی کا مسئلہ سرور پر تمام کھلاڑیوں کو متاثر کرے گا.

اس سے بھی مشکل آپشن - ایج کرسٹل. اگر اس کے باوجود TNT ترتیب وار پھٹتا ہے، تو Edge Crystals ایک ہی وقت میں دھماکہ کرتے ہیں، جو نظریہ طور پر سرور ایپلی کیشن کے کام کو مکمل طور پر روک سکتا ہے۔

کھیل کی دنیا میں ان بلاکس کے استعمال پر مکمل پابندی لگا کر ہی اس منظر نامے سے بچا جا سکتا ہے۔ مثال کے طور پر، پلگ ان کا استعمال کرتے ہوئے ورلڈ گارڈ. براہ کرم نوٹ کریں کہ یہ پلگ ان بذات خود کسی اور پلگ ان کے بغیر کام نہیں کرتا ہے۔ ورلڈ ایڈٹ۔. تو پہلے WorldEdit انسٹال کریں، اور پھر WorldGuard۔

حاصل يہ ہوا

گیم سرور کا صحیح طریقے سے انتظام کرنا کوئی آسان کام نہیں ہے۔ مشکلات اور کارکردگی میں کمی ہر موڑ پر آپ کا انتظار کرے گی، خاص طور پر اگر آپ خود گیم پلے میکینکس کو مدنظر نہیں رکھتے۔ ہر چیز کا اندازہ لگانا ناممکن ہے، کیونکہ کھلاڑی بعض اوقات بہت تخلیقی ہو سکتے ہیں کہ وہ سرور کو کچھ کرنے پر مجبور کرنے کی کوشش کریں جس کے لیے اس کا ارادہ نہیں تھا۔ صرف خطرات اور قائم کردہ پابندیوں کے درمیان ایک معقول توازن ہی سرور کو مسلسل کام کرنے کی اجازت دے گا اور اس کی کارکردگی کو اہم اقدار تک کم نہیں کرے گا۔

قرنطینہ کے دوران، ہمارے کچھ ملازمین اپنے پسندیدہ دفاتر سے محروم ہوگئے اور انہیں Minecraft کے اندر دوبارہ بنانے کا فیصلہ کیا۔ آپ کو اپنی صحت کو خطرے میں ڈالے یا سڑک پر وقت ضائع کیے بغیر ہم سے ملنے کا موقع بھی ہے۔

ایسا کرنے کے لیے، ہم سب کو اپنے سرور پر مدعو کرتے ہیں۔ minecraft.selectel.ru (کلائنٹ ورژن 1.15.2)، جہاں ڈیٹا سینٹرز Tsvetochnaya-1 اور Tsvetochnaya-2 دوبارہ بنائے گئے تھے۔ اضافی وسائل کو ڈاؤن لوڈ کرنے پر اتفاق کرنا نہ بھولیں، وہ کچھ مقامات کے درست ڈسپلے کے لیے ضروری ہیں۔

سوالات، پروموشنل کوڈز، ایسٹر انڈے اور خوشگوار مواصلت آپ کے منتظر ہیں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں