عن المشروع

openttdrs هو محاكي نقل مستوحى من OpenTTD، تم تنفيذه بلغة Rust مع عميل رسومي قائم على Bevy. يتبع المشروع فلسفة التطوير التدريجي، مما يضمن وجود نسخة قابلة للعب دائمًا أثناء العمل على مطابقة الأصل من خلال تقريب موثق. **الميزات الأساسية:** - **نواة المحاكاة:** إدارة الخريطة، دورات المعايرة، الأوامر، محاكاة الطرق والسكك الحديدية، إشارات جزئية (PBS)، الاقتصاد، وإدارة الحفظ (JSON وimport/export .sav). - **عميل Bevy:** عرض متساوي القياس باستخدام أصول OpenGFX، قوائم، شريط أدوات، وواجهة مستخدم. يدعم أوضاع الخادم والعميل. - **الشبكة:** بروتوكول TCP lockstep للعب الجماعي وثنائي خادم مخصص. - **NewGRF:** دعم جزئي لفهارس Action0/3/5 وتشغيلها، مع توثيق للمصفوفات الخاصة بالخصائص واستدعاءات الوظائف. - **توليد الخرائط:** محاذاة حديثة مع مراحل OpenTTD (المناظر الطبيعية، المدن، الصناعات) لبذور محددة، رغم أن التعميم لا يزال قيد التقريب. **المتطلبات والاستخدام:** يتطلب Rust 1.98+ ومكتبات نافذة/صوت أصلية. يتم إصدار الأصول الرسومية والصوتية ضمن المستودع، مما يسمح بتشغيل `cargo run` مباشرة دون تنزيلات إضافية أو نصوص إعداد. يؤدي التشغيل الأول إلى إنشاء ملفات PNG المحلية اللازمة من الأطلس المضمن. **حالة المشروع (ألفا):** الإصدار الحالي هو `0.1.0-alpha.1`. يتضمن معلمات مثل MVP للشبكة (I8)، نقل المضيف، محرر أساسي، GameScript-lite، وذكاء اصطناعي للمنافس (TransCargo). لا تزال المطابقة الكاملة في العرض الرسومي، وNewGRF الكامل، وموثوقية الحفظ قيد التقريب، مع توثيق للانحرافات في المصفوفات القياسية. **التطوير وCI:** يتمتع المشروع ببنية تحتية قوية لـ CI/CD تشمل اختبارات التنسيق، وclippy، والتوثيق، والتدقيق الأمني (cargo-audit/deny)، واختبارات الفوضى الحتمية، وتغطية الكود. يُوصى باستخدام `scccache` لتحسين عمليات التجميع المحلية.