Wolf Sniper
05-11-2005, 01:33 PM
السلام عليكم ..
: ~^~ مقدمة ~^~ :
أولاً أحب أن أهنئكم بقدوم العيد المبارك راجين من الله أن يتقبل منا و منكم صيامنا و قيامنا في شهر رمضان و أن يجمعنا جميعاُ في الفردوس الأعلى صحبةً مع رسول الله صلى الله عليه و سلم .
في الحقيقة لقد ترددت بعض الشيء في وضع هذه المادة بين أيديكم .. و لكني قررت في النهاية أن أطلعكم على ما استطعت فعله حتى الأن في هذا المحرك عسى أن يكون ذلك بداية خير إن شاء الله .. نحن نريد أن ينتشر هذا العلم ( تطوير الألعاب ثلاثية الأبعاد ) و أن لا يتوقف على بعض من الأشخاص الذين تعلموه فتفشل جميع المشاريع المشتركة أو أن يكون المستوى الفني و التقني في مشاريع هؤلاء الأشخاص ضئيلاً بحيث لا ينافس ما هو موجود في الأسواق و كل ذلك بسبب قلة كادر العمل و انحصار هذا العلم في فئة صغيرة .. هذا غير العوامل الأخرى الكثيرة التي لا يسعني ذكرها كلها هنا و لكن أوجز منها :
1 - نظرة المجتمع العربي إلى هذه المشاريع و أنها تافهة أو ما شابه فهي للصغار فقط و لا تفيد إلا في موضوع التسلية :
هنا أنا لا ألومهم على ذلك لأن هذه الرؤيا كانت صحيحة في الزمن القديم للألعاب أما الأن و بعد التطور الكبير الذي حصل في هذا المجال و بعد أن أصبحت الألعاب كالأفلام من ناحية الإخراج و الجودة و أيضاً من خلال إيصال مجموعة من الأفكار إلى ذهن اللاعب فأصبح هنا الوضع مختلفاً تماماً عن ذي قبل .
فبهذا التقنية يستطيع المطور أن يدخل إلى كل بيت و ينشر أفكاره داخل عقول اللاعبين .. و بالتالي يجبرون على سماعه و ذلك بسبب ارتباط اللعبة بهذه الأفكار .. و هنا نستنتج أن الألعاب أصبحت لفئات عمرية مختلفة تصلح للكبار أيضاً .. و لذلك قد يكون هذا السلاح خطراً علينا و خصوصاً لصغار السن من المسلمين الذين يتأثرون بأي شيء يرونه من هذه الألعاب و أعتقد أنكم تعرفون تلك النوعية من الألعاب و التي تهدف إلى تشويه إسلامننا و نشر الفتن بيننا فنصبح مستهدفين بتقنية لم نعد لها العدة .
بالتالي أصبحت مهمتنا أكبر لكي نقلب هذه المفاهيم في مجتمعنا و لكي نرد على كل من أراد الإساءة إلى ديننا الحنيف .. و يمكننا نحن أيضاً أن نأخذ تلك الميزات و أن ننشر نحن أفكارنا إلى عقول الغرب و بالتالي ينقلب السحر على الساحر .
2 – الهمم و العزائم الخفيفة للمطورين العرب التي لا تكاد من أول عقبة تتطاير في السماء .. أو يمكننا إيجاز ذلك بضعف الإرادة في إكمال هذه المشاريع و خاصة عند أول محاولة فشل :
هنا دخلنا في موضوع نفسي داخلي .. المشكلة أن هذا المجال هو من أصعب مجالات البرمجة نظراً لاعتماده على مفاهيم الهندسة الفراغية في الرياضيات ( من أجل الألعاب ثلاثية الأبعاد ) بالإضافة إلى ضرورة إلمام المطور باللغة التي يصنع المحرك بها و أنا أخص هنا لغة السي++ لتميزها بهذا المجال .. لذلك يجد المطور أن هذه المشاريع تحتاج إلى وقت طويل قد تصل أحياناً لعدة سنوات و بسبب استعجال شبابنا للأسف في رغبتهم في الحصول على النتائج بوقت قصير و رغبتهم بحصد الحصاد قبل سقايته و قبل حلول موسمه و أيضاً لعدم رغبتهم ببذل أي مجهود .. كل هذه الأسباب أدت إلى نفور هؤلاء الشباب من هذا المجال و توجههم إلى مجالات أخرى تحقق الربح و النتائج في أقل وقت و في أقل جهد دون النظر إلى أهمية تلك المشاريع .
أقول لهؤلاء الشباب كفانا استخفافاً بعقولنا و قدراتنا .. لقد مللنا من كلمة لا نستطيع .. هذا مستحيل .. غير ممكن .. أنت تحلم .. ستضيع وقتك بلا فائدة .. لن تحقق هدفك .. لن يكون الناتج بنفس جودة الألعاب الحالية .. و كثير من التعابير التي لا يمكن حصرها .. لقد حان الوقت لتغيير تلك المفاهيم و حان الوقت للنهوض .. ألا تحبون العمل ؟ .. ألا تحبون حصد النتائج بعد التعب ؟ .. ألا تريدون أن يكون لكم بصمة في هذه الدنيا ؟ .. دعونا نلحق بالركب قبل فوات الأوان .. فهذه التقنية في تطور مستمر و نخاف إذا تأخرنا أكثر من ذلك أن تضيع علينا الفرصة في اللحاق بالغرب و منافستهم .. دعونا نعمل فقد حان وقت العمل و كفانا مشاهدةً للغرب و هو في تطور مستمر و نحن واقفين في أماكننا نضع اللوم على غيرنا .
3 – وجود مفاهيم جديدة و أحياناً غريبة بعض الشيء في هذه التقنية على المتعلمين الجدد .. و لكنها مع القليل من التركيز و مع الاستيعاب الجيد تصبح أسهل مما يتوقع المطور :
هنا أقول لكم أن ذلك صحيح .. حتى أن بعض الإحباط قد أصابني أنا عند قرائتي لأول مرة لهذه الأمور .. و لكن كما قلت مع التركيز و القليل من الصبر و تكرار المحاولات تصبح تلك المفاهيم أسهل مما تظن .. و هنا أنصحكم بعدم اليأس و الشعور بالفشل فليس منا أحداًَ ولد متعلماً .. كلنا اجتهدنا و صبرنا حتى نلنا ما نريد ( أقصد هنا العلم ) .
4 – عدم وجود رسالة واضحة أو فكرة معينة أو هدف محدد تريد أن تنشره عبر لعبتك إلى أكبر عدد ممكن من اللاعبين .. و بالتالي ليس هناك دافع يدفعك إلى الإجتهاد أكثر من اللازم حتى تصل إلى مرادك :
يمكننا هنا إيجاز هذه الفكرة كالتالي : عدم وجود هدف واضح من هذه المشاريع .. فأنا أنصح أن يكون لكل مطور ألعاب هدف محدد يريد الوصول إليه من خلال هذه المشاريع .. و يا حبذا لو كان في سبيل الله .. كأسلوب معين من اللعبة يبين الحقيقة التي عليها المسلمين من التسامح و الرحمة بالآخرين .. أو كالسعي إلى تغيير الفكرة التي أخذها الغرب عنا بعد 11 سبتمبر .. أو كمشروع يبين الحقيقة التي عليها اليهود من كيفية قلب الموازين بحيث جعلوا قتل الضحايا دفاعاً عن النفس و كيف أنه يحق لهم ما يريدون و أن ليس للغير أية حقوق عليهم .. و غيرها الكثير من الأفكار التي يجب أن تكون هدفنا التي نسعى إلى تحقيقه من هذه الألعاب .
5 – قلة مصادر تعلم هذه التقنية :
و هذا صحيح للأسف .. حتى أن المصادر العربية لا تكاد تذكر في هذا المجال .. فهنا يضطر المطور إلى الرجوع إلى المصادر الأجنبية فيواجه مشكلة و هي اللغة الإنجليزية .. و أعتقد أن هذا الأمر صعب على كثير منا و لكن ليس الكل .. أنا في الحقيقة واجهت صعوبة في بادئ الأمر و لكن بعد فترة من القراءة وجدت أن الأمر أصبح يسيراً بعض الشيء ففي أول صفحة قد تجد مجموعة كبيرة من الكلمات الجديد و لكن مع استمرار القراءة سيقل هذا العدد تدريجياً حتى أنك ستجد أحياناً كلمة واحدة فقط جديدة عليك في كامل الصفحة .. و بالتالي الأمر يحتاج فقط إلى الإعتياد على القراءة باللغة الأجنبية .
6 – عدم قدرتنا نحن العرب و المسلمين على العمل الجماعي في الوقت الحديث .. و عدم قبولنا لأفكار الغير فالكل يريد وضع فكرته في المشروع و إجبار الكل عليها :
للأسف هذه الحقيقة لم أدركها إلا متأخراً و بالفعل لقد تفاجأت بذلك .. ربما السبب في عدم قدرتنا على تنظيم أنفسنا في مجموعات و عدم قبولنا للآخر .. أو عدم وضعنا رأيساً لتلك المجموعة يسير المطورين على رأيه في إعتماد الأفكار المناسبة و إلغاء الباقي لعدم فعالية تلك الأفكار .. فأتمنى هنا أن يتقبل منا الآخر و أن نلجأ إلى الإجماع دائماً و القبول بنتائجه حتى لو كان رأيي مخالفاً له .
إلى هنا أكتفي بذلك .. أعلم أنكم مللتم من الكلام و تريدون عملاً تطبيقياً .. لذا سأنتقل إلى الجزء الثاني من هذا الموضوع و هو عرض المحرك .
: ~^~ المحرك :: نظرة عامة :: ~^~ :
أولاً / المميزات :
1 – دعم نمط الكاميرا ذات المنظور الأول ( First Person Shoot ) و هي قابلة للتغيير لأني أريد عمل فكرة جديدة .
2 – دعم الـ Direct Input من خلال : Mouse + Keyboard .
3 – دعم ملفات الـ Md2 و ملفات الـ X من أجل تحميل الأجسام إلى المحرك ومن أجل الحركة .
4 – دعم الألوان و الإضاءة و الإكساء و الأجسام المحيطة ( Bounding Box ) و الأمور الأخرى المسؤولة عن المحرك داخلياً .
5 – دعم نظام الإطلاق و هو قابل للتغيير و التطوير أيضاً لوجود أفكار جديدة أريد تحقيقها و لكن الموجود حالياً للتجربة فقط .
ثانياً / الأهداف القادمة :
1 – الوصول إلى نظام قتال متكامل .
2 – دعم التأثيرات المتعددة كالضباب و المطر و غير ذلك .
3 – دعم الصوت .
4 – دعم لغة التظليل عالية المستوى HLSL ( من خلال دعم Pixel Shading و Vertex Shading ) على قدر الاستطاعة .
و غيره .. نسأل الله تعالى أن يوفقني لذلك .
ثالثاً / مشهد من المحرك :
http://members.lycos.co.uk/wolfsniper84cc/Engine3D.gif
رابعاً / أزرار التحكم :
1 – لتحريك الكاميرا : W, S, A, D .. بالإضافة إلى حركة الماوس .
2 – لتغيير حركة الشخصية : Mouse Right Click .. مع ملاحظة القيمة Animation Name .
3 – لاختبار إصابة الجسم : Mouse Left Click .. مع ملاحظة القيمة isHit .
4 – لإرجاع الكاميرا إلى مكانها الأصلي : اضغط على الزر M .
5 – للخروج : اضغط على الزر Escape .
رابعاً / معلومات إضافية :
1 – اللغة المستخدمة هي لغة السي++ بالإضافة إلى DirectX9 بالإضافة إلى بعض دوال API .
2 – متطلبات التشغيل : وجود DirectX9 في جهازك فقط .
3 – الجسم الموجود هو جسم جاهز حصلت عليه منذ مدة طويلة عن طريق مثال موجود في موقع : www.gametutorials.com .. و لكن للأسف الموقع الأن ليس مجاني .
4 – المصادر التي اعتمدت عليها في بناء هذا المحرك :
أ – كتاب ( برمجة الألعاب ثلاثية الأبعاد باستخدام DirectX 9.0 للمبتدئين ) لدار شعاع في سوريا .. و هذا الكتاب هو كتاب معرب عن كتاب إلكتروني أجنبي يحمل نفس الاسم .. و من أجل الفائدة الكتاب موجود في مكتبة جرير في السعودية ( الكتاب المعرب من دار شعاع ) .. أو من أراد الكتاب الأجنبي الإلكتروني فهو موجود في هذا الموضوع و هو للأخ Smart_SDR :
Learning DirectX 9.0 (http://www.montada.com/showthread.php?t=320180)
ب – الـ DirectX Documentation المرفق مع الـ SDK و هو عبارة عن Help مهم جداً لكل مطور ألعاب و يوجد معه أمثلة كثيرة بالإضافة إلى بعض Tutorials .. و استفدت منه كثيراً .
ج – مواقع الإنترنت .. و في الحقيقة استفدت منها بشكل كبير و خاصة في دروس ملفات Md2 و التحريك و كلها طبعاً باللغة الإنجليزية .. و ليس هناك داعي إلى ذكرها كلها هنا .. فقط ابحث عن موضوع معين تريده في الدايركت إكس عن طريق موقع www.google.com و ستجد إن شاء الله ما تريد .
5 – هذا المحرك هو محرك تجريبي فقط و ليس لعبة أو حتى مقدمة للعبة .. لذلك كل ما هو موجود فيه هو للاختبار فقط .. و هذا يعني أنه ما زال أمامي الكثير لأفعله قبل الدخول في أي مشروع من أجل تطوير أي لعبة .
6 – قد تحدث معك أخطاء قبل عمل المحرك أو في أثناء التشغيل .. و ذلك لأني لم أعالج الأخطاء بالشكل المطلوب حتى الأن .. و إذا حدث أي خطأ أثناء التنفيذ فأرجو أن يتم إخباري بذلك .
خامساً / طلب إلى كل من يشغل المحرك :
أ – كم سرعة المعالج الذي في جهازك ؟
ب – ما هو نوع كرت الشاشة الذي في جهازك و ما هي سرعته ؟ يعني مثلاً 32 ميجا أو 64 ميجا ... إلخ .
ج – كم عدد FPS الذي ظهر عندك على الشاشة عند تشغيل المحرك و بدون أن تحرك أو تضغط على أي زر أو حتى بدون أن تحرك الماوس ؟ يعني أريد الرقم الذي سيظهر لأول مرة لأنه عند تحريك الكاميرا ستتغير السرعة .. ستجد بيانات FPS في أسفل النافذة على اليسار ( انظر الصورة ) .
في النهاية .. أحب أن أخبركم أن هذا العمل لم يأتي عبثاً و لكن مع الصبر و المثابرة نستطيع تحقيق ما نريد .. و هذه هي البداية فقط إن شاء الله و الطريق أمامنا ما زالت طويلة .. ادعوا لي بالتوفيق .. و أتمنى أن لا يتم استخدام المصادر المكتوبة إلا على الوجه المطلوب و بما يرضي الله .. و لا تنسوا الإجابة على الأسئلة عند تجربتكم للمحرك و لا تبخلوا علينا بردودكم و رأيكم .. و شكراً .
: ~^~ وصلة المحرك ~^~ :
المحرك (http://www.sfhty.com/u/53708200511051052201.zip)
: ~^~ مقدمة ~^~ :
أولاً أحب أن أهنئكم بقدوم العيد المبارك راجين من الله أن يتقبل منا و منكم صيامنا و قيامنا في شهر رمضان و أن يجمعنا جميعاُ في الفردوس الأعلى صحبةً مع رسول الله صلى الله عليه و سلم .
في الحقيقة لقد ترددت بعض الشيء في وضع هذه المادة بين أيديكم .. و لكني قررت في النهاية أن أطلعكم على ما استطعت فعله حتى الأن في هذا المحرك عسى أن يكون ذلك بداية خير إن شاء الله .. نحن نريد أن ينتشر هذا العلم ( تطوير الألعاب ثلاثية الأبعاد ) و أن لا يتوقف على بعض من الأشخاص الذين تعلموه فتفشل جميع المشاريع المشتركة أو أن يكون المستوى الفني و التقني في مشاريع هؤلاء الأشخاص ضئيلاً بحيث لا ينافس ما هو موجود في الأسواق و كل ذلك بسبب قلة كادر العمل و انحصار هذا العلم في فئة صغيرة .. هذا غير العوامل الأخرى الكثيرة التي لا يسعني ذكرها كلها هنا و لكن أوجز منها :
1 - نظرة المجتمع العربي إلى هذه المشاريع و أنها تافهة أو ما شابه فهي للصغار فقط و لا تفيد إلا في موضوع التسلية :
هنا أنا لا ألومهم على ذلك لأن هذه الرؤيا كانت صحيحة في الزمن القديم للألعاب أما الأن و بعد التطور الكبير الذي حصل في هذا المجال و بعد أن أصبحت الألعاب كالأفلام من ناحية الإخراج و الجودة و أيضاً من خلال إيصال مجموعة من الأفكار إلى ذهن اللاعب فأصبح هنا الوضع مختلفاً تماماً عن ذي قبل .
فبهذا التقنية يستطيع المطور أن يدخل إلى كل بيت و ينشر أفكاره داخل عقول اللاعبين .. و بالتالي يجبرون على سماعه و ذلك بسبب ارتباط اللعبة بهذه الأفكار .. و هنا نستنتج أن الألعاب أصبحت لفئات عمرية مختلفة تصلح للكبار أيضاً .. و لذلك قد يكون هذا السلاح خطراً علينا و خصوصاً لصغار السن من المسلمين الذين يتأثرون بأي شيء يرونه من هذه الألعاب و أعتقد أنكم تعرفون تلك النوعية من الألعاب و التي تهدف إلى تشويه إسلامننا و نشر الفتن بيننا فنصبح مستهدفين بتقنية لم نعد لها العدة .
بالتالي أصبحت مهمتنا أكبر لكي نقلب هذه المفاهيم في مجتمعنا و لكي نرد على كل من أراد الإساءة إلى ديننا الحنيف .. و يمكننا نحن أيضاً أن نأخذ تلك الميزات و أن ننشر نحن أفكارنا إلى عقول الغرب و بالتالي ينقلب السحر على الساحر .
2 – الهمم و العزائم الخفيفة للمطورين العرب التي لا تكاد من أول عقبة تتطاير في السماء .. أو يمكننا إيجاز ذلك بضعف الإرادة في إكمال هذه المشاريع و خاصة عند أول محاولة فشل :
هنا دخلنا في موضوع نفسي داخلي .. المشكلة أن هذا المجال هو من أصعب مجالات البرمجة نظراً لاعتماده على مفاهيم الهندسة الفراغية في الرياضيات ( من أجل الألعاب ثلاثية الأبعاد ) بالإضافة إلى ضرورة إلمام المطور باللغة التي يصنع المحرك بها و أنا أخص هنا لغة السي++ لتميزها بهذا المجال .. لذلك يجد المطور أن هذه المشاريع تحتاج إلى وقت طويل قد تصل أحياناً لعدة سنوات و بسبب استعجال شبابنا للأسف في رغبتهم في الحصول على النتائج بوقت قصير و رغبتهم بحصد الحصاد قبل سقايته و قبل حلول موسمه و أيضاً لعدم رغبتهم ببذل أي مجهود .. كل هذه الأسباب أدت إلى نفور هؤلاء الشباب من هذا المجال و توجههم إلى مجالات أخرى تحقق الربح و النتائج في أقل وقت و في أقل جهد دون النظر إلى أهمية تلك المشاريع .
أقول لهؤلاء الشباب كفانا استخفافاً بعقولنا و قدراتنا .. لقد مللنا من كلمة لا نستطيع .. هذا مستحيل .. غير ممكن .. أنت تحلم .. ستضيع وقتك بلا فائدة .. لن تحقق هدفك .. لن يكون الناتج بنفس جودة الألعاب الحالية .. و كثير من التعابير التي لا يمكن حصرها .. لقد حان الوقت لتغيير تلك المفاهيم و حان الوقت للنهوض .. ألا تحبون العمل ؟ .. ألا تحبون حصد النتائج بعد التعب ؟ .. ألا تريدون أن يكون لكم بصمة في هذه الدنيا ؟ .. دعونا نلحق بالركب قبل فوات الأوان .. فهذه التقنية في تطور مستمر و نخاف إذا تأخرنا أكثر من ذلك أن تضيع علينا الفرصة في اللحاق بالغرب و منافستهم .. دعونا نعمل فقد حان وقت العمل و كفانا مشاهدةً للغرب و هو في تطور مستمر و نحن واقفين في أماكننا نضع اللوم على غيرنا .
3 – وجود مفاهيم جديدة و أحياناً غريبة بعض الشيء في هذه التقنية على المتعلمين الجدد .. و لكنها مع القليل من التركيز و مع الاستيعاب الجيد تصبح أسهل مما يتوقع المطور :
هنا أقول لكم أن ذلك صحيح .. حتى أن بعض الإحباط قد أصابني أنا عند قرائتي لأول مرة لهذه الأمور .. و لكن كما قلت مع التركيز و القليل من الصبر و تكرار المحاولات تصبح تلك المفاهيم أسهل مما تظن .. و هنا أنصحكم بعدم اليأس و الشعور بالفشل فليس منا أحداًَ ولد متعلماً .. كلنا اجتهدنا و صبرنا حتى نلنا ما نريد ( أقصد هنا العلم ) .
4 – عدم وجود رسالة واضحة أو فكرة معينة أو هدف محدد تريد أن تنشره عبر لعبتك إلى أكبر عدد ممكن من اللاعبين .. و بالتالي ليس هناك دافع يدفعك إلى الإجتهاد أكثر من اللازم حتى تصل إلى مرادك :
يمكننا هنا إيجاز هذه الفكرة كالتالي : عدم وجود هدف واضح من هذه المشاريع .. فأنا أنصح أن يكون لكل مطور ألعاب هدف محدد يريد الوصول إليه من خلال هذه المشاريع .. و يا حبذا لو كان في سبيل الله .. كأسلوب معين من اللعبة يبين الحقيقة التي عليها المسلمين من التسامح و الرحمة بالآخرين .. أو كالسعي إلى تغيير الفكرة التي أخذها الغرب عنا بعد 11 سبتمبر .. أو كمشروع يبين الحقيقة التي عليها اليهود من كيفية قلب الموازين بحيث جعلوا قتل الضحايا دفاعاً عن النفس و كيف أنه يحق لهم ما يريدون و أن ليس للغير أية حقوق عليهم .. و غيرها الكثير من الأفكار التي يجب أن تكون هدفنا التي نسعى إلى تحقيقه من هذه الألعاب .
5 – قلة مصادر تعلم هذه التقنية :
و هذا صحيح للأسف .. حتى أن المصادر العربية لا تكاد تذكر في هذا المجال .. فهنا يضطر المطور إلى الرجوع إلى المصادر الأجنبية فيواجه مشكلة و هي اللغة الإنجليزية .. و أعتقد أن هذا الأمر صعب على كثير منا و لكن ليس الكل .. أنا في الحقيقة واجهت صعوبة في بادئ الأمر و لكن بعد فترة من القراءة وجدت أن الأمر أصبح يسيراً بعض الشيء ففي أول صفحة قد تجد مجموعة كبيرة من الكلمات الجديد و لكن مع استمرار القراءة سيقل هذا العدد تدريجياً حتى أنك ستجد أحياناً كلمة واحدة فقط جديدة عليك في كامل الصفحة .. و بالتالي الأمر يحتاج فقط إلى الإعتياد على القراءة باللغة الأجنبية .
6 – عدم قدرتنا نحن العرب و المسلمين على العمل الجماعي في الوقت الحديث .. و عدم قبولنا لأفكار الغير فالكل يريد وضع فكرته في المشروع و إجبار الكل عليها :
للأسف هذه الحقيقة لم أدركها إلا متأخراً و بالفعل لقد تفاجأت بذلك .. ربما السبب في عدم قدرتنا على تنظيم أنفسنا في مجموعات و عدم قبولنا للآخر .. أو عدم وضعنا رأيساً لتلك المجموعة يسير المطورين على رأيه في إعتماد الأفكار المناسبة و إلغاء الباقي لعدم فعالية تلك الأفكار .. فأتمنى هنا أن يتقبل منا الآخر و أن نلجأ إلى الإجماع دائماً و القبول بنتائجه حتى لو كان رأيي مخالفاً له .
إلى هنا أكتفي بذلك .. أعلم أنكم مللتم من الكلام و تريدون عملاً تطبيقياً .. لذا سأنتقل إلى الجزء الثاني من هذا الموضوع و هو عرض المحرك .
: ~^~ المحرك :: نظرة عامة :: ~^~ :
أولاً / المميزات :
1 – دعم نمط الكاميرا ذات المنظور الأول ( First Person Shoot ) و هي قابلة للتغيير لأني أريد عمل فكرة جديدة .
2 – دعم الـ Direct Input من خلال : Mouse + Keyboard .
3 – دعم ملفات الـ Md2 و ملفات الـ X من أجل تحميل الأجسام إلى المحرك ومن أجل الحركة .
4 – دعم الألوان و الإضاءة و الإكساء و الأجسام المحيطة ( Bounding Box ) و الأمور الأخرى المسؤولة عن المحرك داخلياً .
5 – دعم نظام الإطلاق و هو قابل للتغيير و التطوير أيضاً لوجود أفكار جديدة أريد تحقيقها و لكن الموجود حالياً للتجربة فقط .
ثانياً / الأهداف القادمة :
1 – الوصول إلى نظام قتال متكامل .
2 – دعم التأثيرات المتعددة كالضباب و المطر و غير ذلك .
3 – دعم الصوت .
4 – دعم لغة التظليل عالية المستوى HLSL ( من خلال دعم Pixel Shading و Vertex Shading ) على قدر الاستطاعة .
و غيره .. نسأل الله تعالى أن يوفقني لذلك .
ثالثاً / مشهد من المحرك :
http://members.lycos.co.uk/wolfsniper84cc/Engine3D.gif
رابعاً / أزرار التحكم :
1 – لتحريك الكاميرا : W, S, A, D .. بالإضافة إلى حركة الماوس .
2 – لتغيير حركة الشخصية : Mouse Right Click .. مع ملاحظة القيمة Animation Name .
3 – لاختبار إصابة الجسم : Mouse Left Click .. مع ملاحظة القيمة isHit .
4 – لإرجاع الكاميرا إلى مكانها الأصلي : اضغط على الزر M .
5 – للخروج : اضغط على الزر Escape .
رابعاً / معلومات إضافية :
1 – اللغة المستخدمة هي لغة السي++ بالإضافة إلى DirectX9 بالإضافة إلى بعض دوال API .
2 – متطلبات التشغيل : وجود DirectX9 في جهازك فقط .
3 – الجسم الموجود هو جسم جاهز حصلت عليه منذ مدة طويلة عن طريق مثال موجود في موقع : www.gametutorials.com .. و لكن للأسف الموقع الأن ليس مجاني .
4 – المصادر التي اعتمدت عليها في بناء هذا المحرك :
أ – كتاب ( برمجة الألعاب ثلاثية الأبعاد باستخدام DirectX 9.0 للمبتدئين ) لدار شعاع في سوريا .. و هذا الكتاب هو كتاب معرب عن كتاب إلكتروني أجنبي يحمل نفس الاسم .. و من أجل الفائدة الكتاب موجود في مكتبة جرير في السعودية ( الكتاب المعرب من دار شعاع ) .. أو من أراد الكتاب الأجنبي الإلكتروني فهو موجود في هذا الموضوع و هو للأخ Smart_SDR :
Learning DirectX 9.0 (http://www.montada.com/showthread.php?t=320180)
ب – الـ DirectX Documentation المرفق مع الـ SDK و هو عبارة عن Help مهم جداً لكل مطور ألعاب و يوجد معه أمثلة كثيرة بالإضافة إلى بعض Tutorials .. و استفدت منه كثيراً .
ج – مواقع الإنترنت .. و في الحقيقة استفدت منها بشكل كبير و خاصة في دروس ملفات Md2 و التحريك و كلها طبعاً باللغة الإنجليزية .. و ليس هناك داعي إلى ذكرها كلها هنا .. فقط ابحث عن موضوع معين تريده في الدايركت إكس عن طريق موقع www.google.com و ستجد إن شاء الله ما تريد .
5 – هذا المحرك هو محرك تجريبي فقط و ليس لعبة أو حتى مقدمة للعبة .. لذلك كل ما هو موجود فيه هو للاختبار فقط .. و هذا يعني أنه ما زال أمامي الكثير لأفعله قبل الدخول في أي مشروع من أجل تطوير أي لعبة .
6 – قد تحدث معك أخطاء قبل عمل المحرك أو في أثناء التشغيل .. و ذلك لأني لم أعالج الأخطاء بالشكل المطلوب حتى الأن .. و إذا حدث أي خطأ أثناء التنفيذ فأرجو أن يتم إخباري بذلك .
خامساً / طلب إلى كل من يشغل المحرك :
أ – كم سرعة المعالج الذي في جهازك ؟
ب – ما هو نوع كرت الشاشة الذي في جهازك و ما هي سرعته ؟ يعني مثلاً 32 ميجا أو 64 ميجا ... إلخ .
ج – كم عدد FPS الذي ظهر عندك على الشاشة عند تشغيل المحرك و بدون أن تحرك أو تضغط على أي زر أو حتى بدون أن تحرك الماوس ؟ يعني أريد الرقم الذي سيظهر لأول مرة لأنه عند تحريك الكاميرا ستتغير السرعة .. ستجد بيانات FPS في أسفل النافذة على اليسار ( انظر الصورة ) .
في النهاية .. أحب أن أخبركم أن هذا العمل لم يأتي عبثاً و لكن مع الصبر و المثابرة نستطيع تحقيق ما نريد .. و هذه هي البداية فقط إن شاء الله و الطريق أمامنا ما زالت طويلة .. ادعوا لي بالتوفيق .. و أتمنى أن لا يتم استخدام المصادر المكتوبة إلا على الوجه المطلوب و بما يرضي الله .. و لا تنسوا الإجابة على الأسئلة عند تجربتكم للمحرك و لا تبخلوا علينا بردودكم و رأيكم .. و شكراً .
: ~^~ وصلة المحرك ~^~ :
المحرك (http://www.sfhty.com/u/53708200511051052201.zip)