عن المشروع
محرك Permafrost Engine هو محرك لعبة استراتيجية وقت حقيقي (RTS) مكتوب بلغة C ويعتمد على OpenGL 3.3. صُمم لمحاكاة ألعاب RTS الكلاسيكية مع دمج أفكار حديثة. يشكّل المحرك الأساس للعبة EVERGLORY، وهي لعبة RTS رئيسية متاحة على Steam مع نسخة تجريبية مجانية تتضمن الوصول إلى جميع نصوص اللعب البرمجية للتعلم والتعديل.
تشمل الميزات الرئيسية:
- خط أنابيب قابل للبرمجة OpenGL 3.3 مع امتدادات حديثة حيث تتوفر
- تنسيق نموذج نصي مخصص لتشغيل الأدوات البينية وتنسيق ثنائي مُخبز لتحميل سريع في وقت التشغيل
- تحريك هيكلي مع تجليد GPU، وتجميع بيانات وضعية التحريك إلى نسيج لعرض فعّال لعدد كبير من الكيانات المتحركة
- نموذج انعكاس Phong مع المواد، ورسم ظلال الضوء الاتجاهي، ورسم bump/normal/parallax
- رشّ نسيج التضاريس، وصندوق السماء، وعرض LOD للشبكات حسب المسافة، وعرض مجمّع بدفعات ديناميكية، وبث إلى GPU قائم على ringbuffer
- كاميرات RTS وFPS، وعرض خريطة قائم على البلاطات بتنسيق ملف مخصص
- عرض الماء مع الانعكاس والانكسار وتأثيرات الحواف الناعمة
- توليف برمجي للنسيج باستخدام Image Quilting، وتبليط غير دوري باستخدام Wang Tiling
- كشف داخليات المحرك إلى Python 2.7 للبرمجة النصية، ووحدة تحكم Python تفاعلية مدمجة، ونظام أحداث، وإطار واجهة مستخدم قائم على Nuklear
- raycasting فعّال، ومحرر خريطة/مشهد، ونظام إيقاف/استئناف، وعرض سريع لخرائط ضخمة
- توليد رسم/شبكة تنقل الخريطة، وتوجيه/تجمّع boids، وتحديد مسارات هرمي بحقل تدفق، ومعالجة العوائق الديناميكية
- تجنب تصادم ديناميكي باستخدام Hybrid Reciprocal Velocity Obstacles وخوارزمية ClearPath، وحركة وحدات قائمة على التشكيلات، وإعادة ترتيب تشكيلات مثالية باستخدام خوارزمية Hungarian
- تحديد مسارات لأنواع/أحجام وحدات مختلفة باستخدام طبقات التنقل، ووحدات برية/مائية/جوية، وحسابات حركة وتحديد مسارات متوازية
- محاكاة حشود قائمة على GPU باستخدام compute shaders، وفهرسة مكانية لشبكة نقطية مسرّعة بـ SIMD، وتتبع فوري لعضوية الكيانات في مناطق مكانية ديناميكية
- نظام صوتي مع تأثيرات موضعية وقنوات تأثيرات عامة متعددة
- ميزات RTS: خريطة مصغرة، واختيار الوحدات، والقتال، وضباب الحرب، وبناء القواعد، وأتمتة العمال/الإنتاج، وجمع/نقل الموارد، وميكانيكا الحامية/النقل، وقتال مدى مع محاكاة فيزياء المقذوفات
- دعم دقات مختلفة ونسب أبعاد مختلفة، وإعدادات رسوميات قابلة للتهيئة
- تسلسل/إلغاء تسلسل حالة مفسّر Python بالكامل، وحفظ/استعادة أي جلسة محرك بما في ذلك الحالة المعرّفة في Python
- محاكاة وعرض متعدد الخيوط في خط أنابيب من مرحلتين، وتصويرات تصحيح متقدمة وأدوات قياس أداء، ومحاسبة ذاكرة خفيفة
- نظام ألياف (fiber) للمهام الخفيفة المجدولة في مساحة المستخدم، ومهام Python مدعومة بالألياف لتعدد مهام تعاوني، وتفرّع بدون نسخ باستخدام دلالات Copy-on-Write على مستوى الصفحة
- عبر الأنظمة (Linux وWindows)، ومشغّل Windows لالتقاط minidump والسجلات تلقائياً عند الأخطاء
تشمل التبعيات SDL2 وGLEW وPython 2.7 وOpenAL Soft وmi-malloc وstb_image وkhash وnuklear. يمكن بناء جميعها من المصدر وتوزيعها مع الملف التنفيذي للعبة.
تُقدَّم تعليمات البناء لنظامي Linux وWindows (باستخدام mingw-w64 أو MSYS2، مع توفر حل Visual Studio 2022 أيضاً). المحرك مرخّص بموجب GPLv3 مع استثناء ربط خاص، وقد يُمنح ترخيص بديل على أساس كل حالة على حدة.
يوثَّق التطوير عبر سلسلة من مدونات فيديو على YouTube تغطي مواضيع مثل حفظ مفسّر Python، وتحديد مسارات المجموعات، وضباب الحرب، وتحسين الأداء، والألياف، وبناء القواعد، والمزيد. للمشروع مجتمع Discord نشط للنقاش.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.