librg هي مكتبة خفيفة الوزن تعمل كوسيط بين مكتبات نقل البيانات (الشبكات، وتدفق الملفات، وما إلى ذلك) ومنطق التطبيق/اللعبة الأساسي.
تشمل المسؤوليات الرئيسية للمكتبة ما يلي:
تم إنشاء المكتبة لحل التعقيدات المتعلقة بإعداد وإدارة تدفق الألعاب متعددة اللاعبين وخوادم الألعاب المخصصة. لقد قطعت شوطا طويلا في التخلص من الأشياء غير الضرورية، ونحتها ببطء في شكلها الحالي، الذي يمكنك رؤيته واستخدامه اليوم.
عادةً ما يتكون عالم الألعاب المتصلة بالشبكة من مجموعة من اللاعبين المتصلين بالشبكة ومجموعة من الكيانات المتصلة بالشبكة. البديل النموذجي لإعداد علاقات المزامنة بين الكيانات واللاعبين هو إعداد اتصالات كل شيء للجميع.
هذا هو الإعداد الأساسي الذي يجب اتباعه. ومع ذلك، مع تزايد عدد الكيانات، يصبح عرض النطاق الترددي غير فعال إلى حد ما.
باستخدام librg، يمكنك تقليل استخدام النطاق الترددي بشكل كبير من خلال بناء علاقات الكيانات القائمة على نصف القطر والرؤية. ستتم مزامنة الكيانات فقط مع اللاعبين المرئيين لهم.
تم إنشاء الواجهة الشاملة للمكتبة مع الأخذ في الاعتبار دعم معظم مكتبات الشبكة.
يجب أن تدعم مكتبة الشبكات ما يلي:
char *
bufferوهذا هو إلى حد كبير!
قائمة بأنواع المكتبات المدعومة:
ENet
GameNetworkingSockets
yojimbo
SLikeNet
KCP
Raknet
Websocket
WebRTC
UDP
أو TCP
ملاحظة: يمكنك التحقق من مثال لتكامل الشبكة لـ enet.
librg
هي مكتبة ذات رأس واحد، مما يعني استخدامها، ما عليك سوى الحصول على أحدث إصدار (أو محدد) من ملف الرأس المذكور من قسم الإصدارات في هذا المستودع، وإضافته إلى مشروعك، والبدء في الاستمتاع بالفوائد .
وبدلاً من ذلك، إذا كنت تشعر بالراحة في CLI الخاص بك، فيمكنك فقط القيام بما يلي؛
curl -L https://github.com/zpl-c/librg/releases/latest/download/librg.h > librg.h
# OR
wget https://github.com/zpl-c/librg/releases/latest/download/librg.h -O librg.h
هل هذه مكتبة شبكات؟
هل يمكنني استخدام أي مكتبة شبكات معها؟
UDP
النقي، وحتى WebSocket
/ WebRTC
. يحتوي المستودع على مجموعة من الملفات *.h
و *.c
، ومع ذلك تقترح أنها مكتبة ذات رأس واحد، كيف يكون ذلك ممكنًا؟
هل تقدم librg نظام كيان؟
كيف أقوم بحزم البيانات، هل توفرون طرقًا لذلك؟
protobuf
، flatbuffers
، msgpack
، وما إلى ذلك)، أو قم بتنفيذ التنفيذ الخاص بك.أرى أنك ذكرت الأجزاء، هل يعني ذلك أن لعبتي/تطبيقي يجب أن يعتمد على الأجزاء؟
لقراءة الوثائق التفصيلية حول المكتبة، والاطلاع على الأمثلة، ودليل البدء السريع، يرجى زيارة صفحة الوثائق الخاصة بنا.
بالإضافة إلى ذلك، يمكنك التحقق من مجلد التعليمات البرمجية/التطبيقات للحصول على أمثلة التعليمات البرمجية الفعلية.
فيما يلي رسم توضيحي بسيط يحاول تكرار كيفية عمل المكتبة في عالم بسيط ثنائي الأبعاد مكون من قطع 4 × 4. بالنسبة لعالم ثلاثي الأبعاد ذي حجم أكبر، سيعمل كل شيء بطريقة مشابهة جدًا، فقط في ثلاثة أبعاد.
وتعرض هذه الصورة بنية البروتوكول الثنائي الأساسي المستخدم لتشفير البيانات وفك تشفيرها من/إلى. يمكن إدراج المخزن المؤقت الثنائي الناتج في أي مخزن مؤقت آخر، أو حفظه على القرص كملف، أو إرساله عبر الشبكة باستخدام أي طريقة متاحة. يتيح وضع البيانات المخصصة جنبًا إلى جنب مع كل كيان داخل الحزمة تخزين البيانات المعتمدة على السياق مما يعمل على توسيع الإمكانات ويسمح بتكرار الكيان بكفاءة في الذاكرة وعرض النطاق الترددي.
إذا كنت قد استخدمت المكتبة قبل الإصدار v6.0.0
، فمن المستحسن قراءة دليل الترحيل الموجود هنا.
نحن نقوم باختبار المكتبة لمنصات مختلفة. يوفر هذا الجدول نوعًا من الوصف للتوافق. إذا قمت باختباره، وكانت نتيجتك مختلفة عن تلك الموجودة في الجدول، فلا تتردد في وصف المشكلة في المشكلات.
المنصة/النتيجة | ويندوز | ماك | لينكس | دائرة الرقابة الداخلية | أندرويد | راسبيري بي | أوبن بي إس دي | فري بي إس دي | إمسكريتن |
---|---|---|---|---|---|---|---|---|---|
❔ | رنة | رنة | دول مجلس التعاون الخليجي، رنة | دول مجلس التعاون الخليجي، رنة | دول مجلس التعاون الخليجي، رنة | ||||
✅ | مسفك، مينغو | دول مجلس التعاون الخليجي، رنة | دول مجلس التعاون الخليجي، رنة | emcc |
إذا كنت ترغب في المساهمة أو إضافة ميزات جديدة أو تحسينات أو تحسينات عامة، فإليك الإرشادات حول كيفية القيام بذلك:
git clone https://github.com/zpl-c/librg.git
make
لبناء جميع المشاريع والتحقق من أن كل شيء يعملcode/tests/
make test
مرة أخرى للتحقق في حال كنت تعمل من خلال نظام التشغيل Windows ، و/أو لم تتمكن من استخدام make
، يمكنك أيضًا استخدام ملف التكوين cmake
المدمج لإنشاء حل Visual Studio، للقيام بذلك:
mkdir build
cd build
cmake ../misc -G"Visual Studio 16 2019"
(أو أي تكوين لديك)cmake --open .
(يفتح VS مع الحل)بالنسبة للمطورين، فهو يوفر فوائد رائعة: