عن المشروع

FOnline هو محرك مرخّص بموجب MIT بلغة C++20 لبناء ألعاب تقمص أدوار جماعية عبر الإنترنت بنمط إيزومتري كلاسيكي على غرار Fallout 1/2/Tactics وArcanum. وهو قيد التطوير المستمر منذ عام 2006 ويشغّل مجتمعات ألعاب تقمص أدوار متعددة اللاعبين، مع الإشارة إلى Last Frontier كمثال حالي. التصميم يعطي الأولوية لتعدد اللاعبين: خادم موثوق، وحالة كيان مكررة، وفصل بين العميل والخادم هي أساس نموذج الكيان وليست إضافات لاحقة. قاعدة بيانات واحدة تنتج الخادم والعميل ومحرر الخرائط وخط أنابيب المحتوى والتغليف لسطح المكتب والجوال والمتصفح. مجالات الميزات الموصوفة في ملف README: - أساسيات تعدد اللاعبين: وقت تشغيل خادم موثوق مع مديري كيانات، والتحقق من صحة العميل، وتحليل صارم للمدخلات غير الموثوقة؛ نموذج كيان/خاصية/نموذج أولي مشترك مع مغلفات خصائص مولّدة آمنة الأنواع وتكرار تلقائي؛ وسائل نقل قابلة للتوصيل تشمل مآخذ TCP، وخادمًا قائمًا على Asio، وWebSockets للعب عبر المتصفح، وUDP مرتبًا، ونقلًا داخل العملية للاختبارات؛ استمرارية قابلة للتوصيل عبر ملفات JSON أو SQLite أو MongoDB أو في الذاكرة خلف واجهة قاعدة بيانات واحدة مع قائمة انتظار كتابة غير متزامنة وسجلات استرداد؛ محدّث تلقائي مدمج للعميل مع نقل ملفات قابل للاستئناف ونهاية خلفية للتحديث على الخادم. - البرمجة النصية: برمجة لعب AngelScript عبر نظام برمجة نصية محايد للخلفية؛ يتم تصدير واجهة برمجة التطبيقات الأصلية إلى البرامج النصية عن طريق توليد الكود من تعليقات ///@، مع إبقاء الأساليب والخصائص والأحداث والاستدعاءات البعيدة والتعدادات متزامنة؛ يتم فرض قابلية الإلغاء عبر حدود البرنامج النصي/الأصلي؛ دعم تصحيح أخطاء البرامج النصية إلى جانب تصحيح الأخطاء الأصلي. - العرض: خلفيات OpenGL وDirect3D وVulkan وSDL_GPU بالإضافة إلى أوضاع بدون رأس/فارغة للخوادم والتكامل المستمر؛ تأثيرات مكتوبة مرة واحدة في GLSL، ومترجمة عبر glslang إلى SPIR-V ومترجمة لكل خلفية عبر SPIRV-Cross؛ عوالم إيزومترية قائمة على الكائنات الرسومية مع نماذج شخصيات ثلاثية الأبعاد (FBX)، وجسيمات، وتشغيل فيديو وصوت بتنسيقات حديثة (Ogg/Vorbis) وتنسيقات Fallout الكلاسيكية؛ أوضاع نافذة، وملء الشاشة بلا حدود، ونوافذ افتراضية متعددة العملاء مع تراكب مطور ImGui. - العالم والخرائط: أوضاع هندسة سداسية ومربعة مع أدوات مساعدة مشتركة للمسافة والاتجاه والجوارات؛ إيجاد المسار، وتتبع الخطوط، وسياقات الحركة، ونموذج حظر مصمم لسلطة الخادم. - خط أنابيب المحتوى والأدوات: خط أنابيب تحويل يحوّل النماذج الأولية والخرائط والحوارات والنصوص المترجمة والتأثيرات والصور والنماذج والبرامج النصية إلى حزم موارد إصدارات؛ يستورد تنسيقات أصول ثنائية الأبعاد كلاسيكية (Fallout FRM وArcanum ART وتنسيقات قديمة أخرى) إلى جانب PNG/TGA؛ تشمل الأدوات التفاعلية المبنية على المحرك نفسه محرر خرائط مع أتمتة بدون رأس، ومحرر محتوى، ومستكشف أصول، ومحرر جسيمات. - جودة الهندسة: اختبارات وحدة Catch2 مع أهداف مولّدة لكل مجموعة، وتشغيل أدوات التطهير والتغطية؛ تحليل أمان سلاسل Clang مفروض كـ -Werror على كل سلسلة أدوات Clang؛ مفردات صارمة للمؤشرات الذكية وقابلية الإلغاء؛ تتبعات مكدس دائمة، وقواعد استثناء حتمية، ونموذج تخصيص ينهي عند نفاد الذاكرة؛ تكامل ملف Tracy. البنية: المحرك وحدة فرعية قابلة لإعادة الاستخدام؛ يضيف مستودع اللعبة Engine/ ويوجّه خط أنابيب CMake المرحلي إلى تكوينه الخاص ويحصل على أهداف بناء مسماة بالمشروع. تمتلك اللعبة المحتوى والبرامج النصية والتكوين والعلامة التجارية وسياسة الإصدار. يتم تأليف المحتوى مثل النماذج الأولية والخرائط والحوارات والتوطين وواجهة المستخدم كنصوص عادية وتحويلها إلى حزم وقت تشغيل. الأهداف المدعومة هي Windows وLinux وmacOS وAndroid وiOS والويب (WebAssembly)؛ يلاحظ ملف README أنه ليست كل ميزة ناضجة بنفس القدر على كل منصة. تخطيط المستودع: Source/ (التطبيقات، العميل، الخادم، المشترك، الواجهة الأمامية، البرمجة النصية، الأدوات، الأساسيات، الاختبارات)، BuildTools/ (خط أنابيب CMake المرحلي، توليد الكود، سلاسل الأدوات، التغليف)، Resources/، ThirdParty/ (SDL وAngelScript وAsio وImGui وglslang وSPIRV-Cross وTracy وغيرها) وDocs/. تشمل الوثائق المُدارة البنية، ونموذج الكيان، والخرائط والحركة، والشبكات، والاستمرارية، ووقت تشغيل العميل والخادم، والعرض، والبرمجة النصية، وقابلية الإلغاء، وخطوط أنابيب البناء والتحويل، والأدوات، والاختبار، وسلامة الاستثناء، والمؤشرات الذكية، وتحليل أمان سلاسل، وتصحيح أخطاء المنصات.