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

netcode ایک C لائبریری ہے جو UDP کے اوپر ریئل ٹائم ملٹی پلیئر گیمز کے لیے ایک محفوظ کلائنٹ/سرور پروٹوکول نافذ کرتی ہے۔ یہ اس عام مسئلے کو حل کرتی ہے کہ UDP میں کنکشن کا کوئی تصور نہیں ہوتا، اس لیے ڈویلپرز کو کنکشن مینجمنٹ، سیکیورٹی اور قابل اعتمادیت خود بنانی پڑتی ہے۔ ڈیزائن اور خصوصیات: - UDP پر کنکشن پر مبنی پروٹوکول، تاکہ گیمز TCP ہیڈ آف لائن بلاکنگ کے بغیر غیر قابل اعتماد، غیر ترتیب شدہ پیکٹ کا تبادلہ کر سکیں۔ - کنیکٹ ٹوکن کا استعمال کرتے ہوئے محفوظ کلائنٹ کنکشن: صرف وہ کلائنٹ جو بیک اینڈ سے مجاز ہوں کنیکٹ کر سکتے ہیں، جو میچ میکنگ فلو کے لیے موزوں ہے جہاں ویب بیک اینڈ ٹوکن جاری کرتا ہے۔ - کلائنٹ سلاٹ سسٹم: سرورز n سلاٹس متعین کرتے ہیں؛ کلائنٹس کو کنیکٹ ہونے پر ایک سلاٹ تفویض کیا جاتا ہے اور جب سلاٹس بھر جائیں تو فوری طور پر مسترد کر دیا جاتا ہے۔ - دونوں طرف سے تیز اور صاف ڈس کنیکٹ تاکہ سلاٹس خالی ہوں، نیز ہارڈ ڈس کنیکٹ کے لیے ٹائم آؤٹ۔ - سوڈیم لائبریری کے ذریعے خفیہ کردہ اور دستخط شدہ پیکٹ، چھیڑ چھاڑ اور سن گن سے تحفظ فراہم کرتے ہیں۔ - بدنیتی سے تیار کردہ پیکٹ، ری پلے حملوں اور پیکٹ ایمپلیفیکیشن حملوں کے خلاف سیکیورٹی تحفظات۔ - وائی فائی راؤٹرز پر جٹر کم کرنے کے لیے اختیاری پیکٹ ٹیگنگ۔ - IPv4 اور IPv6 سپورٹ۔ استعمال کا خاکہ: ایک بے ترتیب 32 بائٹ پرائیویٹ کی بنائیں جو سرور پر خفیہ رکھی جائے؛ ایک کنفگ کے ساتھ سرور بنائیں جس میں پرائیویٹ کی اور کنیکٹ ٹوکن کی زیادہ سے زیادہ زندگی شامل ہو؛ اسے کلائنٹ سلاٹس کی تعداد کے ساتھ شروع کریں۔ کلائنٹس بیک اینڈ REST API سے کنیکٹ ٹوکن حاصل کرتے ہیں اور netcode_client_connect کال کرتے ہیں۔ کنیکٹ ہونے کے بعد، کلائنٹ کو ایک کلائنٹ انڈیکس ملتا ہے اور وہ سرور کے ساتھ خفیہ کردہ، دستخط شدہ پیکٹ کا تبادلہ کر سکتا ہے۔ مثال کوڈ client.c اور server.c میں فراہم کیا گیا ہے۔ ریپوزٹری میں C نفاذ موجود ہے۔ README میں C#، Go، Rust، Unity، UE4 اور TypeScript میں نفاذات بھی درج ہیں، اور netcode 1.02 معیار اور IMPLEMENTERS.md کی طرف اشارہ کیا گیا ہے ان لوگوں کے لیے جو اپنے ورژن لکھ رہے ہیں۔ یہ پروجیکٹ BSD 3-Clause لائسنس کے تحت ہے اور پروڈکٹ کریڈٹس میں کریڈٹ دینے کی درخواست کرتا ہے۔