السلام عليكم
أولاً أحييك على هذا الحماس وأشكرك وهذا هو المطلوب من فكرة Open Source 
فكرة التصادم بسيطة
إذا كانت الخطوة المستقبلية (next step) ستحدث تصادماً إذا لا تتحرك
أما كيف يقوم بحسابات التصادم هذا شغل المحرك ( أنضر إلى المحرك ODE فهو مثال قوي جداً على حسابات التصادم )
والآن ماذا يتحاج المحرك لكي ييقوم بحسابات التصادم
1- الPosition للشخصية وفي المثال MD2System
2- الOrientation للشخصية ليعرف اتجهاه الشخصية وفي المثال MD2System
3- الجسم المراد كشف التصادم عليه وفي المثال Meshbuilder2
4- السرعة أو الإزاحة
5- نوع التصادم (أنا دائماً أضعه من نوع Box)
والآن سنقوم بعملية
أ- حسابات الشخصية أي الPosition والOrientation
كود:
MD2System.Class_SetPointer "hero"
Dim gRay As R3DRay, vDummy As R3DVector3D
gRay.pStart = MD2System.Model_GetPosition
MD2System.Model_GetOrientation gRay.vDir, vDummy, vDummy
السطر 1: قمنا بتحديد الشخصية الرئيسية
السطر 2: gRay متغير الإشعاع (متغير التصادم) ويحمل خاصيتين
pStart : وهي من نوع 3dVector ووضعت من أجل حمل موضع الشخصية
vDir : إتجاه الشخصية
وأيظاً عرفنا متغير مؤقت فقط من أجل إستدعاء صحيح لا كثير ( ولهذا أسميناه ب vDummy )
السطرين 3 و 4 : لملئ المتغير gRay بالقيم الصحيحة
ب - والآن نقوم بعملية كشف التصادم على مجسمات Meshbuilder2
كود:
Coll = Meshbuilder2.Class_RayCollision(gRay, R3DINTERSECTIONTYPE_BOX, 2, 0, 0, 0)
حيث Coll متغير من نوع R3DIntersection المخصص لحمل نتائج التصادم
Meshbuilder2.Class_RayCollision : دالة كشف التصادم
ولاحظ أنه تندرج تحت Calss وهذا يعني أن التصادم سيكشف على جميييييع مجسمات Meshbuilder2
ونتيجة التصادم ستجدها في المتغير Coll.bCollide
_________________________________________
وأنت تسأل عن حساب التصادم على Md2 أخرى وليس مجسم Meshbuilder2 ...أليس كذلك 
تستطيع عملها مباشرة ولكن النتائج للأسف لن تكون دقيقة
لذا الحيلة ببساطة ضع مكعب يحوي الشخصية تماماً وإكتشف التصادم على هذا المكعب
أي إستخدم
Meshbuilder2.Mesh_RayCollision
وليس Meshbuilder2.Class_RayCollision
وهذه الطريقة التي إستخدمها وهي عملية عملية وسريعة جداً ولا تكلف شيئاً 
أخي abusraage أتمنى المواضيع المتعلقة بالمحرك تكون داخل موضوع المحرك
مبارك عليك الشهر وكل عام وأنت بخير
وبالتوفيق