موضوع: الأساسيات الواجب توافرها لإتقان محرك ثري دي لمبرمجي الألعاب

ردود: 10 | زيارات: 1011
  1. #1

    الأساسيات الواجب توافرها لإتقان محرك ثري دي لمبرمجي الألعاب

    بسم الله الرحمن الرحيم ، اما بعد
    من أكبرالمشاكل التي تواجه مبرمجين الألعاب المبتدئين التسرع ; بمعنى أصح بعد أن يتمكنوا من رسم مثلث على الشاشة يتركوا كافة الدروس ويحاولوا انتاج لعبة كاملة !
    أعترف أني عانيت من هذه المشكلة لسنوات وسببت لي الصداع وضعف/انعدام الانتاج ، ووجدت أنني ببساطة كنت "أخدع" نفسي ، إلى أن تخلصت من هذه المشكلة والحمد لله -- وبدأت فعلياً في تنظيم أفكاري ومحاولة معرفة ما هي نقاط ضعفي .
    لهذا قررت عمل لائحة بالمهارات اللازم تواجدها لدى المبرمج لانتاج لعبة كاملة ، ما أقصده هنا هو "لائحة" من الأمور يجب أن تتواجد لديك معرفتها لكي تفكر في بدأ العمل على لعبة كاملة ! ببساطة ، كل ما عليك فعله هو تناول موضوعات اللائحة موضوعاً موضوعاً والبحث فيها حتى تجيد استخدامها في المحرك الذي تستخدمه

    مع مراعاة التالي :
    *اللائحة مرتبة تصاعدياً من حيث الأهمية والأساسية ، أي أن أول عناصر اللائحة هو الأكثر أهمية والأكثر أساسية والأخير هو الأقل أهمية ولكن إن أردت الانتاج فيجب عليك مراعاة كل شئ ! لا تهمل أي شئ فيها ! لأني حاولت تنظيمها بحيث تتضمن الأشياء المهمة الأساسية التي لا يخلو منها أي محرك

    *هذه اللائحة ستساعدك على تعلم فعل هذه الأمور في محركك الحالي ، وحينما تنتقل لمحرك آخر ستضطر لتعلمها مرة أخرى ، وفي الغالب ستكون نفس الفكرة موجودة مع اختلاف التطبيق :] لهذا لا تقلق

    *اللائحة موجهة للألعاب الثري دي ،(قد) أقوم بعمل لائحة أخرى للتو دي

    *اتقانك لهذه المهارات كافة لا يعني أنك ستستطيع عمل أي لعبة تريد مباشرة ، وهذا ما لا أستطيع المساعدة فيه ، يجب عليك التحلي بالصبر واستخدام هذه المهارات بتمهل ، ومع الوقت بإذن الله ستكتسب الخبرة والمعرفة للقيام بلعبة بمستوى أفضل ! -- ببساطة هذه المهارات تعتبر "المفتاح" لاكتساب الخبرة ، ومن دون معرفة هذه الأساسيات ستكون ضائعاً بين التطبيقات العشوائية والانتاج القليل

    *إن واجهت عنصراً في اللائحة "تعتقد" أنك تستطيع فعله لاحقاً إن قرأت مثالاً ، فاذهب ونفذه على الفور ولا تنتظر ! لا تؤجل هذه الأشياء لوقت المشروع ، ببساطة سبب مهم في عدم الانتاج هو أن المبرمج يجرب أشياء لأول مرة مثل تشغيل الصوت والتأثيرات أثناء المشروع --مما يطيل زمن انتاج المشروع ، والأسوأ إن لم يعمل الكود كما يريد ! مزيد من وقت المشروع على الاختبار والـDebugging


    اللائحة:
    (الأساسيات) :
    -عرض موديل ثري دي
    -اضافة الإضاءة والتحكم بتشغيل/إطفاء الظلال
    -الكشف عن الادخال (لوحة المفاتيح والفأرة تكفي حالياً !)
    -استخدام الادخال للتأثير على Transformation الموديل (الموقع/الدوران/الحجم)
    -الكشف عن التصادم المكعب(Box collision detection)
    *التصادم المكعب هو ببساطة أن يكون هناك "مكعب تصادم" حول الموديل يساعده على التصادم مع عالم اللعبة
    -عرض أنيميشن (Skeletal animation)
    -الكشف عن تصادم الأشعة ( Raycast collision detection)
    *تصادم الأشعة ببساطة هو أن يكون هناك "أشعة" بين نقطتين ، إن وقع موديل معين على هذه الأشعة فسيحدث التصادم !
    *أعلم تماماً أن هذا الموضوع إلى حد ما متقدم ، لكني اكتشفت أنه أساسي إلى حد كبير ! فلا يمكن لموديل أن يمشي على سطح غير مستوي إلا من خلاله ، كما أن ألعاب الـFPS تعتمد عليه في الـ"تصويب" ، فالأشعة ستوجه من أمام الموديل إلى نقطة بعيدة ; إن وقع هدف في هذه المسافة وتم إطلاق النار فإن هذا الهدف ستتم إصابته
    -رسم Terrain من Heightmap
    *الـHeightmap هي ببساطة صورة تحتوي على تدرجات من الأبيض والأسود تحدد ارتفاع وإنخفاض كل نقطة ، يمكن منها تكوين مشاهد في اللعبة من دون إجهاد المنمذج الثري دي كثيراً ، كما أنها لا تؤثر كثيراً على سرعة اللعبة على الرغم من "نعومة" الهضاب
    مثال :
    الهايت ماب :http://upload.wikimedia.org/wikipedi.../Heightmap.png
    التيرين الناتجة : http://upload.wikimedia.org/wikipedi...p_rendered.png

    -جعل الموديل يمشي على الـTerrain
    -تشغيل الصوت
    -تغيير الـTexture للموديل
    -التحكم بالـTexture الخاصة بها (Slide ،Grid ،الخ)
    -استخدام نظام الـParticles لعمل النيران والدخان وغيرها


    (المهارات المتقدمة)
    -استخدام التكستشر لعمل مؤثرات بسيطة
    -كشف الادخال من الـGamepad/joystick
    -الـNetworking
    -كتابة الشيدرات البسيطة
    -تأثيرات الـ(Post-Process Glow , blur ،الخ)

    اللائحة قيد التطوير للأبد بإذن الله :] !
    من لديه أي اقتراحات لللائحة فاليتفضل ، لنصل إلى لائحة نهائية تساعد الكل بإذن الله
    أخر تعديل بواسطة mody-san في 11 / 04 / 2011 الساعة 04:00 PM

    a game developer and an artist, also a member in Professor-works studios


    Personal Blog
    PW Website(WIP)

    -Programming languages of choice : C++ / C#

    -Compilers of choice: VC++ 2010 express/VC# 2010 express/Code::Blocks

    -Engines of choice : Allegro /Panda3D/Irrlicht/XNA



  2. #2
    عضو فعال
    صور رمزية Concept123
    تاريخ التسجيل
    Dec 2010
    المنطقة
    حيث لا أُوجد
    ردود
    151
    لا أعرف في برمجة الألعاب لكن بداية الموضوع مشكلة تواجه الكثيرين ، بمجرد يتعلم شيء يبدأ يطبق ويترك التعلم .. واجهتني في تصميم الثريدي وكذلك في الرسم وتعبت كثير وقلت مهارات لك لاحقاً تنبهت وبديت أطبق وأتعلم بشكل متوازن .. ، تشكر عزيزي مودي ..
    أخر تعديل بواسطة Concept123 في 11 / 04 / 2011 الساعة 03:46 PM
    Zero Point Means every Thing In your life
    ... but it`s Hard to find that Point

  3. #3
    عضو متميز
    صور رمزية Pr MoHaMeD
    تاريخ التسجيل
    Jul 2010
    المنطقة
    الجزائر
    العمر
    22
    ردود
    1,204
    و الله معاك حق عزيزي انا ايضا كنت مثلك و حليت المشكله بنفس الطريقه غير التنظيم لم افرق بين اي شيء فكلها اعطيتها اهمية نفسها لكن دائما ابدأ بالاهم . و في النهاية و جدت نفسي اقطف ثمرة النجاح
    موضوع رائع يستاهل 9/10 الله يبارك فيك
    تم التقييم
    ننتظر جديدك كثر الله من امثالك
    تحياتي لك
    Algeria
    -------------
    C++ & DirectX
    fOr EvEr
    -------
    add me : prmohamed@hotmail.com

    or : kauchmar051@hotmail.com



  4. #4
    عضو متميز
    صور رمزية The MAS
    تاريخ التسجيل
    Apr 2009
    المنطقة
    Amman, Jordan, Jordan
    العمر
    24
    ردود
    2,132
    موضوع جميل و أتمنى الشباب تستفيد منه

    <<Nobody>> سابقاً

  5. #5
    موضوع والله ائع واستفدت منه مشكور اخوي



  6. #6

    Thumbs up

    والله موضوع قيم وممتاز أخي Mody-San و بالطبع جميعنا نقع ووقعنا في الأخطاء التي ذكرتها وسيتفيد منه الجميع باذن الله

    لكن هناك تعديل صغير فقط بخصوص
    الـ HeightMap بعد اذنك أخي ^_^

    ...كما أنها لا تؤثر كثيراً على سرعة اللعبة على الرغم من "نعومة" الهضاب
    بالطبع ستؤثر على سرعة اللعبة سواء صممت الـ Terrain بطريقة يدوية أو عن طريق استعمال صورة للهضاب

    فالـ Terrain يحتاج تصميمها بالدرجة الأولى على عدد كبير من الـ Vertex ثم يأتي الـ Texturing
    القوانين وضعت لكي تخرق

  7. #7
    عضو متميز
    صور رمزية naoufal
    تاريخ التسجيل
    Feb 2010
    المنطقة
    دولة الخلافة
    العمر
    23
    ردود
    1,141
    مشكوور اخي عل لاحة وانشاء الله الكل يستفيد من لاحة ولا يقع في نفس الاخطاء
    الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
    بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
    امة واحدة راية واحد حرب واحدة

  8. #8
    مشرف منبر 3D Games Design
    صور رمزية oms
    تاريخ التسجيل
    Oct 2004
    المنطقة
    Turkey
    ردود
    6,683
    نعم هذه أساسيات يتوجب على المصمم إتقانها .
    الله يعطيك العافية على إعطاءنا تجربتك وجزء من خبرتك .

  9. #9
    موضوع جميل ومفيد شكرا على المجهود

  10. #10
    عضو متميز
    صور رمزية naoufal
    تاريخ التسجيل
    Feb 2010
    المنطقة
    دولة الخلافة
    العمر
    23
    ردود
    1,141
    اه نسيت gui يا اخي اضفها
    الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
    بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
    امة واحدة راية واحد حرب واحدة

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل