هذا الموضوع مخصص لعرض مشروع ذو طبيعة بحثية في مجال الروبوتات والهندسة المدنية. قد لا يكون هذا الموضوع مثير للبعض من رواد المنتدى لكونه لا يتحدث عن أي من الجوانب الفنية أو البرمجية المتعلقة بصناعة الألعاب بشكل مباشر.
ولكن نظراً لكون هذا العمل يعتمد على الكثير من المفاهيم الرياضية والبرمجية المستخدمة في صناعة الألعاب مثل خوارزميات البحث عن مسار، كشف تصادم، ... الخ. أحببت المشاركة فيه لعله يثير عند البعض المزيد من الاستفسارات والمسائل المفيدة في صناعة الألعاب.
المشروع باختصار شديد، هو عبارة عن محاولة لتطوير نظام موحد لتخطيط حركة آليات الإنشاء بناء على خوارميات البحث المستخدمة في الروبوتات.
من الجانب البرمجي للمشروع، المشروع تم تطويره كمقبس للسوفت إيماج (Softimage Plugin)، حيث يمكن للمستخدم: 1- نمذجة المسألة وتحديد جميع الخصائص المطلوبة ضمن البرنامج. 2- الحصول على نتيجة الحل وعرضها ضمن البرنامج. 3- التفاعل مع البيئة بشكل فوري ومعاينة النتائج مباشرة بناءً على التغييرات التي يقوم بها المستخدم.
بالنسبة للجانب البحثي، يعالج هذا المشروع العديد من التحديات البحثية في مجال تخطيط حركة الروبوتات، بعض من هذه التحديات موجودة نفسها في صناعة الألعاب وتحديداً في مسألة البحث عن مسار، ولكن بالطبع مع فارق التعقيد في كلا الحالتين.
فيما يلي بعض من هذه التحديات مع مقارنة سريعة بين تطبيقها الحالي في المشروع وبين تطبيقاتها في صناعة الألعاب: 1- ضرورة حل مسألة البحث في مسار في عوالم ذات أبعاد فائقة (Super Dimension)، في مجال صناعة الألعاب تكون هذه المسألة محصورة بشكل عام في عوالم ثنائية أو ثلاثية البعد، في حالة تخطيط آليات الإنشاء المسألة عادة تحتاج لعوالم رباعية البعد أو أكثر لتمثيل المسألة حسب درجة تعقيد الآلية. 2- إمكانية التخطيط في الزمن الفوري (Real-Time Planning)، هذا التحدي هو الأهم في مجال الألعاب، الأمر ذاته ينطبق في حالة آليات الإنشاء حيث من الضروري إمكانية تحديث الخطة وتعديلها بشكل فوري بناءً على تغيرات البيئة. 3- مراعاة الخصائص الهندسية أثناء حل المسألة لضمان أمان الآلية، هذه النقطة تظهر أحياناً في الألعاب عند مراعاة الخصائص التصميمة في اللعبة أثناء البحث عن مسار لشخصيات اللعبة. 4- الحصول على الحل الأفضل، هذه النقطة ضرورية في حالة تخطيط آليات الإنشاء ولكنها ليست بنفس الضرورة في حال الألعاب. ففي حال آليات الإنشاء الأولوية القصوى للأمان ومراعاة الخصائص الهندسية بينما في حال الألعاب فالأمر يختلف، حيث نجاح الذكاء الصناعي للعبة يعتمد على طريقة تصرف الشخصيات ضمن اللعبة وقدرتهم على البحث على المسار الأفضل ضمن البيئة.
السلام عليكم استاذ همام، يهمني في الموضوع مسألة كشف التصادم. هل من معلومات عن كيفية حل مثل هذه المسائل، عندما تواجه الروبوت/الشخصية عدة عقبات في نفس الوقت، بما انك ذكرة ان الحساب الفوري هو اهم ميزة فكيف يتم حساب التصادم بالسرعة التي تسمح بتوفير : الاداء اللازم ؟
في الحقيقة مسألة كشف التصادم كانت أحد المسائل التي لم أتعمق فيها رغم أهميتها. السبب في ذلك هو وجود الكثير من الأبحاث الناضجة في هذا المجال. لذلك اقتصر عملي في هذا الجانب في تطبيق ماهو معروف دون تقديم أي جديد.
أحد الأساليب المعروفة التي اتبعتها لتحسن أداء كشف التصادم هو الاعتماد على أشكال مبسطة جداً لكشف التصادم بدل من المجسمات الأصلية. هذا التبسيط كان كافي للسماح بالقيام بعملية كشف التصادم بشكل فوري من خلال الخوارزميات الحالية.
ولحسن الحظ، بسبب أهمية هذا الجانب معظم هذه الخوارزميات مطبقة في مكاتب برمجية جاهزة للاستفادة منها. أحد المواقع الهامة التي تقدم قائمة بالعديد من المكاتب البرمجية لهذا الغرض بالذات هو: http://gamma.cs.unc.edu/research/collision/packages.html
نعم توجد الكثير من المكتبات المتخصصة في كشف التصادمات و تسييرها, أنا شخصيا أستعمل Bullet Physics ولكن توجد محركات أخرى مثلNewton GD , Havok , Natural Motion أنا أعمل حاليا على إنشاء Rag Doll و تحريكه بواسطة قوى فيزيائية, أريد ان احقق نتيجة قريبة من التي حققتها شركة Natural Motion