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 ]
| ملزم | فئة | وصف | ملحوظات |
|---|---|---|---|
| EGL | واجهات برمجة تطبيقات كرونوس | واجهة بين واجهات برمجة تطبيقات عرض Khronos ونظام النوافذ الأساسي للنظام الأساسي. | |
| OpenCL | واجهة برمجة تطبيقات للحوسبة المتوازية عبر المنصات . | ||
| OpenGL | مواصفات الرسومات ثلاثية الأبعاد التي تطبقها معظم شركات تصنيع وحدات معالجة الرسومات . | معظم الإضافات مدعومة، ولكن سيتم إضافة الإضافات الأقل شيوعًا عند الطلب. | |
| OpenGL ES | OpenGL للأنظمة المدمجة مثل الهواتف المحمولة أو الأجهزة اللوحية أو أجهزة الألعاب. | ||
| فولكان | واجهة برمجة تطبيقات رسومات ثلاثية الأبعاد متعددة المنصات قادمة. | ||
| أسبوع الموضة العالمي | العرض والإدخال | مكتبة إدارة النوافذ مطلوبة للتعامل مع سياقات 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 . | ||
| STB | STB | مكتبات خفيفة الوزن ذات ملف واحد لتحميل الصور والأصوات والخطوط. | |
| فيزياء الرصاصة | آخر | الكشف عن التصادم في الوقت الحقيقي ومحاكاة الفيزياء المتعددة للواقع الافتراضي والألعاب والمؤثرات البصرية والروبوتات والتعلم الآلي وما إلى ذلك. | |
| كودا | منصة حوسبة متوازية ونموذج برمجة طورته شركة NVIDIA للحوسبة العامة على وحدات معالجة الرسومات (GPUs). | ||
| دينكول | مكتبة لاستدعاء دوال لغة C ديناميكيًا بطريقة قابلة للنقل. | تم تحديد موعد لإزالته. | |
| jemalloc | إدارة الذاكرة على مستوى منخفض. | ||
| libffi | واجهة برمجة محمولة وعالية المستوى لمختلف اصطلاحات الاستدعاء. | يستبدل dyncall. | |
| libdivide | مكتبة تستبدل عمليات القسمة على الأعداد الصحيحة المكلفة بعمليات الضرب وإزاحة البتات الرخيصة نسبياً. | ||
| LLVM | مجموعة من تقنيات المترجمات وسلاسل الأدوات المعيارية والقابلة لإعادة الاستخدام. | ||
| LMDB | مكتبة قواعد بيانات سريعة تستخدم ملفات مُرتبطة بالذاكرة . | ||
| LZ4 | خوارزمية ضغط بيانات بدون فقدان تركز على السرعة. | ||
| مياو هاش | تجزئة سريعة غير مشفرة . | ||
| ODBC | واجهة بلغة C تُمكّن التطبيقات من الوصول إلى البيانات من مجموعة متنوعة من أنظمة إدارة قواعد البيانات. | ||
| المناطق النائية | محلل أداء وحدة المعالجة المركزية/وحدة معالجة الرسومات في الوقت الحقيقي . | ||
| rpmalloc | مُخصِّص ذاكرة التخزين المؤقت للخيوط عبر المنصات. | ||
| xxHash | تجزئة سريعة غير مشفرة. | ||
| Zstandard | خوارزمية ضغط سريعة بدون فقدان للبيانات. |
الاستخدامات البارزة
- ماين كرافت: إصدار جافا [ 14 ] [ 15 ]
- مشروع زومبويد [ 14 ] [ 16 ]
- فرسان الحلزون [ 14 ]
- قطاع النجوم [ 14 ]
مراجع
- 1 2 ماتزون، برايان (4 فبراير 2007). "إصدار LWJGL 1.0" . منتدى LWJGL . تم الاطلاع عليه بتاريخ 23 يوليو 2016 .
- 1 2 3 4 5 "LWJGL/lwjgl3" . github.com . تم الاطلاع عليه بتاريخ 13 أغسطس 2016 .
- 1 2 "lwjgl3/doc – Generator" . github.com . 11 أغسطس 2015. تم الاطلاع عليه في 30 أغسطس 2015 .
- ↑ "مقدمة في تطوير الألعاب - إعداد LibGDX" . جامعة كورنيل . تم الاطلاع عليه بتاريخ 29 مارس 2026 .
- ↑ فليشاور، مايك (15 نوفمبر 2021). "LWJGL - إصدار مكتبة ألعاب جافا خفيفة الوزن 3.3.0" . GameFromScratch.com . تاريخ الاسترجاع: 29 مارس 2026 .
- ^ تساكبينيس ، يوانيس (13 نوفمبر 2014). "مرحبًا بكم في LWJGL 3" . blog.lwjgl.org .
- ↑ "خارطة طريق LWJGL 3" . github.com . تم الاطلاع عليها في 2 يونيو 2015 .
- 1 2 3 4 تساكبينيس، يوانيس (27 أبريل 2015). "تم إصدار LWJGL 3.0.0a" . blog.lwjgl.org .
- ↑ لارابيل، مايكل (3 يونيو 2016). "LWJGL 3.0 يُقدّم دعمًا لـ Vulkan، وروابط جديدة، وتحسينات أخرى لألعاب Java" . فورونيكس . تم الاطلاع عليه بتاريخ 29 مارس 2016 .
- ↑ "إصدار LWJGL 3.0.0!" . blog.lwjgl.org . 4 يونيو 2016 . تم الاطلاع عليه في 4 يونيو 2016 .
- ↑ "الأسئلة الشائعة حول الربط" . github.com . 27 ديسمبر 2014. تم الاطلاع عليه في 27 يوليو 2015 .
- ↑ "تم إصدار LWJGL 3.1.0!" . blog.lwjgl.org . 30 أكتوبر 2016. تم الاطلاع عليه بتاريخ 11 نوفمبر 2016 .
- ↑ "تنزيل – LWJGL" . lwjgl.org . تم الاطلاع عليه بتاريخ 11 نوفمبر 2016 .
- 1 2 3 4 بوداس ، يسوع (18 يناير 2016). "البرنامج التعليمي لوجل" . جافا كود المهوسون . تم الاسترجاع في 29 مارس 2026 .
- ↑ "إسنادات ماينكرافت | ماينكرافت" . Minecraft.net . تم الاطلاع عليه بتاريخ 9 يوليو 2020 .
- ↑ "APZDTISA #3: هذه المرة مع وضع اللعب الجماعي المباشر!" . بروجكت زومبويد . 17 فبراير 2014. تم الاطلاع عليه بتاريخ 25 يناير 2022 .
روابط خارجية
- برامج مجانية متعددة المنصات
- مكتبات حاسوب مجانية
- محركات ألعاب مجانية
- برنامج مجاني مكتوب بلغة جافا
- مكتبات الرسومات
- مكتبات لغة البرمجة جافا
- برامج تطوير ألعاب الفيديو
- برنامج تطوير ألعاب الفيديو لنظام التشغيل لينكس
