LWJGL

مكتبة ألعاب جافا الخفيفة ( LWJGL ) هي مكتبة برمجية مفتوحة المصدر توفر روابط لمجموعة متنوعة من مكتبات لغة C لمطوري ألعاب الفيديو إلى جافا . وهي تعرض مكتبات متعددة المنصات شائعة الاستخدام في تطوير ألعاب الفيديو والوسائط المتعددة، مثل Vulkan و OpenGL و GLFW و OpenAL و OpenCL .

الهدف الرئيسي للمشروع هو توفير وسيلة لمطوري جافا للوصول إلى موارد غير متاحة أو مُنفذة بشكل سيئ على منصة جافا الحالية. وتتمثل الفلسفة الأساسية في إتاحة التقنية الأساسية كغلاف بسيط، مما يُنشئ واجهة برمجة تطبيقات (API) قريبة من الأصل. تُعدّ LWJGL أساسًا لبعض محركات ومكتبات ألعاب جافا عالية المستوى، مثل libGDX [ 4 ] و jMonkeyEngine [ 5 ] .

تاريخ

بدأ تطوير المكتبة في عام 2002 مع إصدار J2SE 1.4 ، مستفيدًا من عمليات الإدخال/الإخراج غير الحظرية المضافة حديثًا وإمكانية الوصول إلى الذاكرة خارج الكومة . أتاحت هذه الإضافات إلى JDK وصولًا أفضل إلى الذاكرة الأصلية والمكتبات غير المضمنة في JDK. صدر الإصدار الرسمي الأول للمكتبة في 4 فبراير 2007. [ 1 ]

في 13 نوفمبر 2014، أُعلن عن الإصدار الثالث، الذي صدر بنسخته التجريبية (ألفا) في 27 أبريل 2015، وهو عبارة عن إعادة كتابة كاملة لـ LWJGL. [ 6 ] [ 7 ] [ 8 ] أضاف الإصدار الثالث دعمًا لـ Vulkan ، والعديد من الروابط الجديدة، بما في ذلك GLFW و EGL و Objective-C . [ 8 ] [ 9 ] كما أُضيف دعم لتطوير تطبيقات Oculus Rift باستخدام روابط LibOVR. [ 8 ] صدر الإصدار الجديد في 4 يونيو 2016، بعد أكثر من ثلاث سنوات ونصف من التطوير. [ 10 ]

روابط

تصل المكتبة إلى كود C الأصلي عبر واجهة Java الأصلية (JNI). توجد روابط لكل مكتبة من المكتبات الأصلية كوحدات منفصلة، ​​مما يسمح للمطورين بإنشاء إصدارات مخصصة تحتوي فقط على العناصر التي يحتاجونها في برنامج معين. [ 8 ] [ 11 ] [ 2 ]

بينما تُكتب فئات الأدوات المساعدة بلغة جافا خالصة ، يتم إنشاء معظم فئات الربط تلقائيًا بواسطة مولد مخصص مُنفذ بلغة كوتلن . [ 2 ] [ 3 ]

منذ الإصدار 3.1، تم تقسيم LWJGL بالكامل إلى 51 وحدة نمطية يمكن تنزيلها واستخدامها بشكل منفصل. ولتسهيل هذه العملية، يوفر المشروع أداة تكوين بناء عبر الإنترنت، تتيح للمستخدمين تنزيل مجموعات مخصصة من الوحدات النمطية، وتُنشئ تلقائيًا ملفات تكوين Maven و Gradle لتسهيل استخدامها مع المشاريع الحالية. [ 12 ] [ 13 ]

الروابط المقدمة [ 2 ]
ملزمفئةوصفملحوظات
EGLواجهات برمجة تطبيقات كرونوسواجهة بين واجهات برمجة تطبيقات عرض Khronos ونظام النوافذ الأساسي للنظام الأساسي.
OpenCLواجهة برمجة تطبيقات للحوسبة المتوازية عبر المنصات .
OpenGLمواصفات الرسومات ثلاثية الأبعاد التي تطبقها معظم شركات تصنيع وحدات معالجة الرسومات .معظم الإضافات مدعومة، ولكن سيتم إضافة الإضافات الأقل شيوعًا عند الطلب.
OpenGL ESOpenGL للأنظمة المدمجة مثل الهواتف المحمولة أو الأجهزة اللوحية أو أجهزة الألعاب.
فولكانواجهة برمجة تطبيقات رسومات ثلاثية الأبعاد متعددة المنصات قادمة.
أسبوع الموضة العالميالعرض والإدخالمكتبة إدارة النوافذ مطلوبة للتعامل مع سياقات OpenGL و Vulkan بالإضافة إلى مدخلات المستخدم.
JAWTواجهة AWT الأصلية.
إن إف ديمكتبة صغيرة متعددة المنصات لإنشاء مربعات حوار الملفات الأصلية.
tinyfdمكتبة حوار أصلية صغيرة.
OpenALصوتيواجهة برمجة تطبيقات الصوت ثلاثي الأبعاد.يدعم هذا البرنامج تقنية ALC وغيرها من الإضافات. ويتضمن تحديدًا تطبيق OpenAL Soft.
أوبوسبرنامج ترميز صوتي مفتوح المصدر وخالٍ من حقوق الملكية .
تبسيطالرسوماتمكتبة مفتوحة المصدر محمولة لاستيراد تنسيقات نماذج ثلاثية الأبعاد متنوعة .
bgfxمكتبة عرض متعددة المنصات تدعم العديد من واجهات الرسومات الخلفية.
دريفت إف إكسمكتبة لعرض محتوى OpenGL في عقد JavaFX.
LibOVRواجهة برمجة التطبيقات (API) الخاصة بـ Oculus Rift SDK.
مُحسِّن الشبكةمكتبة لتحسين الشبكات تجعل الشبكات أصغر حجمًا وأسرع في العرض
نانو إس في جيمحلل SVG بسيط .
نانو في جيمكتبة عرض رسومات متجهة ثنائية الأبعاد باستخدام OpenGL.
نوويمكتبة واجهة مستخدم رسومية بسيطة .
par_shapesمولد للأشكال البارامترية وغيرها من الأشكال البسيطة.
par_streamlinesقم بتقسيم الخطوط والمنحنيات العريضة إلى مثلثات.
أوبن في آربيئة تشغيل واجهة برمجة التطبيقات (API) التي تسمح بالوصول إلى أجهزة الواقع الافتراضي من موردين متعددين دون الحاجة إلى أن تمتلك التطبيقات معرفة محددة بنوع الأجهزة التي تستهدفها.
Shadercمجموعة من المكتبات لتجميع التظليل
SPIRV-Crossمكتبة لإجراء عملية الانعكاس على SPIR-V وتفكيك SPIR-V مرة أخرى إلى لغات عالية المستوى.
OpenEXRمكتبة صغيرة ذات رأس واحد لتحميل وحفظ صور OpenEXR (.exr).
توتل (AMD)مكتبة لتحسين شبكة المثلثات ثلاثية الأبعاد تعمل على تحسين تقنيات المعالجة المسبقة للشبكة الحالية.
مُخصِّص ذاكرة فولكانمكتبة سهلة الدمج لتخصيص الذاكرة باستخدام Vulkan.
اليوغامكتبة تخطيط مفتوحة المصدر ومتعددة المنصات تُنفذ CSS Flexbox .
STBSTBمكتبات خفيفة الوزن ذات ملف واحد لتحميل الصور والأصوات والخطوط.
فيزياء الرصاصةآخرالكشف عن التصادم في الوقت الحقيقي ومحاكاة الفيزياء المتعددة للواقع الافتراضي والألعاب والمؤثرات البصرية والروبوتات والتعلم الآلي وما إلى ذلك.
كودامنصة حوسبة متوازية ونموذج برمجة طورته شركة NVIDIA للحوسبة العامة على وحدات معالجة الرسومات (GPUs).
دينكولمكتبة لاستدعاء دوال لغة C ديناميكيًا بطريقة قابلة للنقل.تم تحديد موعد لإزالته.
jemallocإدارة الذاكرة على مستوى منخفض.
libffiواجهة برمجة محمولة وعالية المستوى لمختلف اصطلاحات الاستدعاء.يستبدل dyncall.
libdivideمكتبة تستبدل عمليات القسمة على الأعداد الصحيحة المكلفة بعمليات الضرب وإزاحة البتات الرخيصة نسبياً.
LLVMمجموعة من تقنيات المترجمات وسلاسل الأدوات المعيارية والقابلة لإعادة الاستخدام.
LMDBمكتبة قواعد بيانات سريعة تستخدم ملفات مُرتبطة بالذاكرة .
LZ4خوارزمية ضغط بيانات بدون فقدان تركز على السرعة.
مياو هاشتجزئة سريعة غير مشفرة .
ODBCواجهة بلغة C تُمكّن التطبيقات من الوصول إلى البيانات من مجموعة متنوعة من أنظمة إدارة قواعد البيانات.
المناطق النائيةمحلل أداء وحدة المعالجة المركزية/وحدة معالجة الرسومات في الوقت الحقيقي .
rpmallocمُخصِّص ذاكرة التخزين المؤقت للخيوط عبر المنصات.
xxHashتجزئة سريعة غير مشفرة.
Zstandardخوارزمية ضغط سريعة بدون فقدان للبيانات.

الاستخدامات البارزة

مراجع

  1. 1 2 ماتزون، برايان (4 فبراير 2007). "إصدار LWJGL 1.0" . منتدى LWJGL . تم الاطلاع عليه بتاريخ 23 يوليو 2016 .
  2. 1 2 3 4 5 "LWJGL/lwjgl3" . github.com . تم الاطلاع عليه بتاريخ 13 أغسطس 2016 .
  3. 1 2 "lwjgl3/doc – Generator" . github.com . 11 أغسطس 2015. تم الاطلاع عليه في 30 أغسطس 2015 .
  4. "مقدمة في تطوير الألعاب - إعداد LibGDX" . جامعة كورنيل . تم الاطلاع عليه بتاريخ 29 مارس 2026 .
  5. فليشاور، مايك (15 نوفمبر 2021). "LWJGL - إصدار مكتبة ألعاب جافا خفيفة الوزن 3.3.0" . GameFromScratch.com . تاريخ الاسترجاع: 29 مارس 2026 .
  6. ^ تساكبينيس ، يوانيس (13 نوفمبر 2014). "مرحبًا بكم في LWJGL 3" . blog.lwjgl.org .
  7. "خارطة طريق LWJGL 3" . github.com . تم الاطلاع عليها في 2 يونيو 2015 .
  8. 1 2 3 4 تساكبينيس، يوانيس (27 أبريل 2015). "تم إصدار LWJGL 3.0.0a" . blog.lwjgl.org .
  9. لارابيل، مايكل (3 يونيو 2016). "LWJGL 3.0 يُقدّم دعمًا لـ Vulkan، وروابط جديدة، وتحسينات أخرى لألعاب Java" . فورونيكس . تم الاطلاع عليه بتاريخ 29 مارس 2016 .
  10. "إصدار LWJGL 3.0.0!" . blog.lwjgl.org . 4 يونيو 2016 . تم الاطلاع عليه في 4 يونيو 2016 .
  11. "الأسئلة الشائعة حول الربط" . github.com . 27 ديسمبر 2014. تم الاطلاع عليه في 27 يوليو 2015 .
  12. "تم إصدار LWJGL 3.1.0!" . blog.lwjgl.org . 30 أكتوبر 2016. تم الاطلاع عليه بتاريخ 11 نوفمبر 2016 .
  13. "تنزيل – LWJGL" . lwjgl.org . تم الاطلاع عليه بتاريخ 11 نوفمبر 2016 .
  14. 1 2 3 4 بوداس ، يسوع (18 يناير 2016). "البرنامج التعليمي لوجل" . جافا كود المهوسون . تم الاسترجاع في 29 مارس 2026 .
  15. "إسنادات ماينكرافت | ماينكرافت" . Minecraft.net . تم الاطلاع عليه بتاريخ 9 يوليو 2020 .
  16. "APZDTISA #3: هذه المرة مع وضع اللعب الجماعي المباشر!" . بروجكت زومبويد . 17 فبراير 2014. تم الاطلاع عليه بتاريخ 25 يناير 2022 .