عن المشروع
phase.rs هو مشروع معجبين غير تجاري يطبّق محرك قواعد وعميل لعبة للعبة Magic: The Gathering. المحرك مكتوب بلغة Rust ويُترجم إلى كود أصلي وإلى WebAssembly، ويشغّل تطبيق سطح مكتب Tauri ومتصفح PWA وخادم لعب جماعي قائم على WebSocket. الواجهة الأمامية تستخدم React وTypeScript وTailwind v4 وZustand وFramer Motion وVite.
القدرات الأساسية المذكورة في README:
- محرك قواعد يغطي الأدوار والأولوية والمكدس والقتال والأفعال المعتمدة على الحالة والطبقات والمحفزات والتأثيرات البديلة.
- بيانات بطاقات محللة من MTGJSON، مع دعم صيغ مثل Commander وModern وPioneer وStandard وLegacy وVintage وPauper.
- خصم ذكاء اصطناعي يستخدم منطق قرار لكل بطاقة وبحثًا في شجرة اللعبة واستدلالات تقييم.
- واجهة لعبة تتضمن ساحة المعركة واليد والمكدس وطبقات الاستهداف ودفع المانا والحركات والصوت المحيطي.
- لعب جماعي عبر خادم Axum WebSocket مع معلومات مخفية ونظام ردهات واتصال نظير إلى نظير عبر WebRTC باستخدام PeerJS.
- خلاصات ميتاغيم تُجمع من MTGGoldfish وتُحدَّث يوميًا.
- منشئ مجموعات مع بحث عن البطاقات وبناء بصري واستيراد ملفات .dck و.dec.
- أهداف متعددة المنصات: سطح مكتب Tauri (Windows وmacOS وLinux) ومتصفح PWA وأجهزة لوحية وحزم APK لنظام Android.
- صور بطاقات من Scryfall مع تخزين مؤقت عبر IndexedDB.
مساحة عمل Rust مقسمة إلى صناديق: engine (الأنواع ومنطق اللعبة والمحلل وقاعدة بيانات البطاقات)، وphase-ai (التقييم والأفعال القانونية والبحث)، وengine-wasm (روابط wasm-bindgen وtsify)، وserver-core (إدارة الجلسات)، وphase-server (خادم Axum WebSocket)، وfeed-scraper (جامع ميتاغيم مستقل). تستخدم الواجهة الأمامية واجهة EngineAdapter مستقلة عن النقل مع تطبيقات WASM وTauri IPC وWebSocket وWebRTC للمضيف والضيف. تشمل مبادئ التصميم مخفضات نقية واتحادات مميزة تُسلسل عبر serde وtsify وحالة غير قابلة للتغيير مع مشاركة بنيوية عبر rpds.
يتطلب الإعداد سلسلة أدوات Rust وهدف wasm32 وwasm-bindgen-cli واختياريًا wasm-opt وNode.js 22+ وpnpm. يجلب سكربت الإعداد البيانات ويبني WASM ويثبت التبعيات. يتوفر خادم لعب جماعي مخصص كصورة Docker تعرض نقاط نهاية للصحة وWebSocket، مع متغيرات بيئة للمنفذ ودليل البيانات وأصل CORS ووضع الردهات فقط وتسجيل JSON ودليل السجلات ورمز حامل للإدارة. يتوفر مخطط Helm لنظام Kubernetes. يعتمد صوت سطح مكتب Linux على إضافات GStreamer؛ وتُناقش حزم AppImage و.deb وFlatpak، حيث يُقصد من Flatpak تغطية فجوات التوزيع وسلوك NVIDIA في وضع الخمول لوحدة المعالجة المركزية. تتطلب بنى Android إصدارات محددة من SDK وNDK وأهداف Rust، وتُوقَّع حزم APK للإصدار بأسرار مُهيأة.
المشروع مرخص ترخيصًا مزدوجًا بموجب MIT أو Apache 2.0. ويذكر أنه لا يضم أي أصول تابعة لـ Wizards، بل يجلب صور البطاقات ورموز المانا من Scryfall في وقت التشغيل، وأنه غير تابع لشركة Wizards of the Coast. يصف README أيضًا سير عمل للمساهمة في تطبيقات البطاقات عن طريق تسليم توجيه إلى وكيل LLM.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.