Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

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

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

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

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

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

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

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

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

    *إن واجهت عنصراً في اللائحة "تعتقد" أنك تستطيع فعله لاحقاً إن قرأت مثالاً ، فاذهب ونفذه على الفور ولا تنتظر ! لا تؤجل هذه الأشياء لوقت المشروع ، ببساطة سبب مهم في عدم الانتاج هو أن المبرمج يجرب أشياء لأول مرة مثل تشغيل الصوت والتأثيرات أثناء المشروع --مما يطيل زمن انتاج المشروع ، والأسوأ إن لم يعمل الكود كما يريد ! مزيد من وقت المشروع على الاختبار والـ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
    لا أعرف في برمجة الألعاب لكن بداية الموضوع مشكلة تواجه الكثيرين ، بمجرد يتعلم شيء يبدأ يطبق ويترك التعلم .. واجهتني في تصميم الثريدي وكذلك في الرسم وتعبت كثير وقلت مهارات لك لاحقاً تنبهت وبديت أطبق وأتعلم بشكل متوازن .. ، تشكر عزيزي مودي ..
    التعديل الأخير تم بواسطة Concept123; 11 / 04 / 2011, 03:46 PM.
    Zero Point Means every Thing In your life
    ... but it`s Hard to find that Point

    تعليق


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

      or : kauchmar051@hotmail.com


      تعليق


      • #4
        موضوع جميل و أتمنى الشباب تستفيد منه

        <<Nobody>> سابقاً

        تعليق


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


          تعليق


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

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

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

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

            تعليق


            • #7
              مشكوور اخي عل لاحة وانشاء الله الكل يستفيد من لاحة ولا يقع في نفس الاخطاء
              الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
              بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
              امة واحدة راية واحد حرب واحدة

              تعليق


              • #8
                نعم هذه أساسيات يتوجب على المصمم إتقانها .
                الله يعطيك العافية على إعطاءنا تجربتك وجزء من خبرتك .

                تعليق


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

                  مع تحياتى
                  عميد المبرمجين العرب سابقا

                  تعليق


                  • #10
                    اه نسيت gui يا اخي اضفها
                    الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
                    بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
                    امة واحدة راية واحد حرب واحدة

                    تعليق

                    يعمل...
                    X