Electronic Gilgamesh

عزيزي الزائر كما هو واضح بأنك زائر للمنتدى لذى نود ان ندعوك الى الدخول ان كانت لديك عضوية او التسجيل في المنتدى نتشرف بتواجدك معنا حيث المعلومة الجديدة والدروس التعليمية الحصرية
Electronic Gilgamesh

For information & communication technology


    كيف تصنع الألعاب؟, الطريق إلى برمجة الألعاب

    شاطر
    avatar
    كلكامش الألكتروني
    Admin
    Admin

    عدد الرسائل : 186
    العمر : 29
    تاريخ التسجيل : 11/11/2008

    كيف تصنع الألعاب؟, الطريق إلى برمجة الألعاب

    مُساهمة من طرف كلكامش الألكتروني في الثلاثاء نوفمبر 25, 2008 3:54 am

    كيف تصنع الألعاب؟
    الطريق إلى برمجة الألعاب
    عندما أتكلم مع أشخاص يطمحون إلى الدخول إلى مجال برمجة الألعاب فإن أول الأسئلة التي أسمعها تتبع نمط "كيف أصنع الألعاب؟" أو "أرغب في أن أصنع لعبة مثل برنس أوف بيرشيا/جينيرالز/كويك ...". أول سؤال بعيد جداً عن إجابة واقعية, وذلك لأن هنالك الكثير من المجالات والأبعاد التي يجب الدخول إليها, وكل من هذه المجالات والأبعاد معقدة إلى درجة اللانهائية.
    أما بالنسبة للسؤال الثاني, فمن من الممكن القول أنه غير واقعي التوقعات. حيث أن ألعاب مثل برنس أوف بيرشيا , جينيرالز, كويك قام بصنعها جميعاً فرق من المحترفين يمتلكون ميزانيات تصل إلى ملايين الدولارات. والأهم من ذلك, أن جميع هذه الألعاب صنعها أشخاص يمتلكون خبرات كبيرة في مجال برمجة الألعاب. لم يقررو فجأةً صنع ألعاب أصبحت مبيعاتها عالية جداً, ولكنهم بدأوا من أبسط الألعاب و طوروا أنفسهم شيئاً فشيئاً خلال عدة سنوات. هذه نقطة مهمة جداً يجب على كل من يرغب في دخول مجال تطوير الألعاب أن يفهمها ويعيد فهمها, ثم يعيد فهمها, ثم يعيد فهمها حتى تصبح جزءاً من تفكيره لدرجةً إنه لا يفهم الحياة بدون هذه الحقيقة الكونية التي تثبت نفسها.
    وحتى تفهم أن مهارات برمجة الألعاب يتم تعلمها عن طريق الخبرة, ( وذلك يعني أنك يجب أن تبدأ من أشياء بسيطة جداً ثم تطّور نفسك شيئاً فشيئاً) سوف لن تتمكن على الإطلاق من إنهاء مشروع لعبة واحد. ويجب أن تفهم أيضاً أنه حتى في حالة تجمع عدد كبير من الأشخاص والذين يتمكنون بشكل أو بآخرمن إنهاء مشروع لعبة كبيرة قبل أن يقوموا بإنهاء مشاريع ألعاب بسيطة فإنهم بالتأكيد وجب عليهم التعلم بشكل تصاعدي وبصعوبة كبيرة, كما إن هكذا شيء سيأخذ منهم وقتاً طويلاً جداً أطول بكثير مما لو بدأوا بمشاريع ألعاب صغيرة أولاً.



    إذاً من أين أبدأ؟
    (Tetris) تيترس

    تيترس هي اللعبة المثالية لتبدأ منها رحلتك لكي تصبح مطوّر ألعاب متمكن. لماذا؟ لأن تيترس تمتلك كافة العناصر التي تمتلكها كل لعبة, و من الممكن صنعها بمجهود متواضع. كما إنك لا تحتاج أن تكون فناناً لتصنع لعبة تيترس شكلها جيد. إذ أن كل من يستطيع رسم مستطيل في الكومبيوتر (ما يعني كل شخص لديه برنامج paint ) يستطيع صنع لعبة تيترس ذات جودة تجارية.
    وهذه هي فائدة أخرى للبدأ بلعبة تيترس: ليس فقط إنك تستطيع صنع لعبة كاملة ممتعة و جذابة, بل إنها ستكون موازية لجودة أية لعبة تيترس تجارية أخرى. فالمربعات الساقطة ستبقى مربعات كيفما رسمتها, والأشكال التيتراسية (الأشكال المستخدمة في تيترس) لن تكون أكثر من مجموعات من أربعة مربعات كحد أقصى.
    تيترس تمتلك كل المقومات التي تمتلكها جميع الألعاب بشكل عام. حيث لديها حلقة لعبة game loop (وهي عملية إعادة تنفيذ مقومات اللعبة مرة بعد أخرى حتى الخروج من اللعبة). حلقة اللعبة تقرأ إدخال المستخدم عدة مرات في الثانية الواحدة, تعالج ذلك الإدخال, وتحدّث جميع عناصر اللعبة (مثلاً التيتراسات الساقطة من الأعلى) إستناداً للإدخال وسير اللعبة, كما إنها تفحص شروط الفوز والخسارة, كل هذا يحدث عدد من المرات في الثانية قد يصل إلى 300 مرة في الثانية الواحدة.
    كل لعبة ستصنعها من الآن فصاعداً تقوم بكل هذه الأشياء, لذلك فإن تعلم وإستيعاب العملية وتطبيقها مهم جداً. بعد أن تكمل كل هذا للمرة الأولى, ستكون لديك فكرة عن مقدار الصعوبة الكبير و الزمن الطويل التي تستلزمانها أي ألعاب ستصنعها في المستقبل. من دون أن تقوم بكل هذا من البداية حتى النهاية, على الأقل مرة واحدة, لن تتمكن أبداً من فهم كل عنصر من عناصر اللعبة فهماً صحيح. في المستقبل, عندما تكون لديك مشاريع أكبر, سيكون لديك الكثير من الجهل بالعملية لدرجة أنك لن تستطيع توقع التعقيد الذي ستصل إليه اللعبة ولا توقع الوقت المستلزم لصنعها. إذا لم تتمكن من فهم العملية بأكملها لأنك قد فشلت في القيام بصنع وإنهاء لعبة, فإنك على الأرجح ستكون غير قادر على وضع جدول عمل أو توقع زمن معين بشكلصحيح كما إنك على الأرجح لن تتمكن من النجاح في نهاية الأمر .



    نسخة من لعبة تيترس يطلق عليها Amazing Blocks


    ماذا بعد؟


    نسخة Breakout يطلق عليها Manic Ball


    بعد أن قمت بالكامل, إطلاقاً, تماماً بإنهاء عملية صنع لعبة تيترس الخاصة بك, فإنك ستكون جاهز للتحدي القادم وهو: Breakout.
    Breakout هي لعبة مشابهه, ولكنها تضيف الكثير بالنسبة لعملية كشف التصادم المتقدمة ( Advanced Collision Detection ) عند مقارنتها بلعبة تيترس. حيث سيكون عليك أن تضيف بعض فيزياء الإرتداد بتأثير الإصطدام المبسطة ( Simple deflection physics ) إلى الكرة التي سيكون عليها أن ترتد بشكل فيزيائي صحيح عند الإصطدام بالجدار أو بلوح اللاعب أو بالقطع.
    تخطيط وتصميم المراحل سيشكل مشكلة جديدة في Breakout, حيث لأجل أن يكون لديك أكثر من مرحلة واحدة يجب عليك أن تستخدم طريقة ما لتخزن الخرائط. وهذا نفسه هو عنصر مهم من عناصر جميع الألعاب الأوسع من Breakout. وهو إمكانية خزن وتحميل مختلف أنواع الموارد التي تتطلبها اللعبة من خرائط و صور و أصوات وما شابه و كذلك إمكانية الإنتقال من مرحلة إلى مرحلة أخرى.

    بعد أن صنعت تحفتك Breakout بالكامل يجب عليك أن تنتقل إلى صنع لعبة باكمان Pac-Man. باكمان هي خطوة ثورية لأنك ستضيف هنا عنصراً جديداً من العناصر المهمة لجميع الألعاب, و هي الذكاء الإصطناعي (Artificial Intelligence - AI ). من الممكن أن تكون لست منتبهاً إلى هذا, ولكن باكمان الأصلية كانت تمتلك أربعة أشباح مختلفة لدى كل من هذه الأشباح هدفاً معيناً يسعى إليه لكي يسبب خسارتك, أي إنها تعمل جميعاً كفريق!. حيث إن الشبح المهاجم سيحاول أن يسلك أقصر الطرق للوصول إليك, مما يجبرك على تجنبه بشكل مباشر. الشبح المعترض من جهة أخرى سيحاول الوصول إلى مفرق المسارات الأقرب إلى الإتجاه الذي ستسلكه في حالة تجنبك الشبح المهاجم. كما إن هنالك شبح معترض آخر يحاول البقاء دائماً قرب وسط الخريطة لكي يقطع عليك الطريق في حال أردت الهرب عبر أحد المسارات الجانبية الذي يشبه النفق. أما الشبح الأخير فإن وظيفته الأساسية هي التجول بشكل عشوائي عبر الخريطة.
    هكذا نوع من الذكاء الصناعي المفصّل كان متطوّراً جداً لألعاب بداية الثمانينات, أي إنك ستواجه تحديّاً جيداً كأول ذكاء صناعي تصنعه.
    باكمان كذلك تزيد من تعقيد الخريطة, وتضيف فرصة جيدة للتفنّن في إستخدام الأصوات, حيث أن الأصوات فعلياً كانت أحد أهم عناصر لعبة باكمان التي ساهمت في نجاحها الكبير. ( بعد كل ذلك, كيف كانت لعبة باكمان لتبدوا بدون صوت مثل "واكا - واكا").


    Pac-Man لعبة رائعة


    Super Mario Brothers 2

    آخر لعبة أقترح أن تصنعها هي ما يسمى بألعاب الإلتفاف الجانبي ( Side-scroller ) مثل لعبة سوبر ماريو ( Super Mario Brothers ) المشهورة, حيث بإمكانك في هذه اللعبة القفزمن منصة إلى أخرى, كذلك يمكنك أن تطلق النار, تستطيع الإنخفاض و تستطيع أن تتفاعل مع الأعداء. ولأن هذا النوع من الألعاب يحتاج إلى رسومات فنية, سأقترح عليك إستخدام مكتبة SpriteLib المجانية والسهلة الإستخدام لتحصل على مجموعة من الرسومات المقبولة الجودة لألعاب مختلفة. يمكنك الحصول على هذه المكتبة من هنا.
    ألعاب الإلتفاف الجانبي تقدم إمكانية إضافة ذكاء صناعي للأعداء عبر إستخدام الأعداء الرؤساء ( Enemy bosses ) في نهاية مرحلة أو مجموعة من المراحل, الأعداء الرؤساء يهاجمون عبرإستخدام سلوك متكرر ( Pattern ) يجب عليك أن تتعلّم كيفية التغلب عليه,كما تمتاز هكذا ألعاب بإضافة تعقيدات عرض جديدة. حيث يتوجّب عليك الآن صنع نظام عرض يستطيع الإلتفاف أو السير في إتجاهين (يمين و يسار) على الأقل , إذا لم تكن أربعة, وبالتالي التعامل مع قص أو قطع الشاشة ( Screen Clipping ) وhلتي من الممكن أن تستغرق وقتاً للفهم. كذلك يجب عليك ملاحظة الحاجة للقليل من الخصائص الفيزيائية, القفز مثلاً, أو الإرتداد عن سطح مطاط أو حتى المقذوفات كالكرات النارية مثلاً.
    يتوجب أيضاً في هذه اللعبة إستخدام الكثير من الأعداء, أكثر من الألعاب السابقة, كما يجب عليك تتبُّع الحالة الراهنة للعبة ( على قيد الحياة/ميت, فعال/غير فعال,... ), كذلك إذا كان شيء معين في داخل شاشة العرض أو خرج من شاشة العرض. مستوى تعقيد المراحل وطريقة خزن الخرائط والشخصيات ستكون أصعب و يجب عليك في هذه المرحلة بشكل شبه مؤكد أن تصنع نوعاً من منقحات المراحل ( برامج يمكنها إنشاء و تنقيح مراحل اللعبة ).

    [right]منقح المراحل يجب أن يمتلك القدرة على وضع رسومات المرحلة, والإلتفاف عبر هذه الرسومات, وكذلك الإلتفاف عبر الخريطة بأكملها, يمكنك إستخدام طريقة الفرشاة ( Brushes ) أو القطع ( Tiles ) للرسم, يجب كذلك أن يمتلك منقح المراحل القدرة على القص واللصق, التراجع عن العمليات المختلفة, وكذلك وضع الأعداء في مواقعهم. إذا قرّرت أن تتجاوز كل هذا, فإنك على الأرجح ستندم على ذلك فيما بعد, وإذا كان أحد الأصدقاء يساعدك في تصميم المراحل, فلن يكون سعيد جداً بطريقة تصميم مراحلك ( كيف ستشعر أنت إذا توجّب عليك المرور عبر ملف لايحتوي أكثر من مجموعة من الأرقام والرموز لكي تقوم بتنقيح مرحلة ما؟). كما إنّي أقترح أن تقوم بصنع نسخ إحتياطية للخرائط المخزونة مسبقاً, إذ أن من الأسهل عادةً القيام بإستعادة النسخ الأصلية للخرائط في حالة حدوث خلل ما.



    أخيراً, فأن ألعاب الإلتفاف الجانبي لها أهداف حقيقية لتحقيق الفوز! أي إنك عندما تصل إلى نهاية اللعبة, تكون قد ذهبت إلى مكان ما فعلياً, لذلك فهذا النوع من الألعاب مناسب لتضيف قصة جميلة ( ولا تنسى نوع من أنواع الألعاب النارية عندما تصل إلى نهاية المرحلة, لكي يحس اللاعب إنه حقّق شيئاً و كوفئ بعرض رائع من الألعاب النارية , وإذا إنتهت اللعبة فلا تضع فقط جملة من قبيل "لقد إنتصرت!" لأن اللاعب المسكين الذي أمضى عدة ساعات وهو يحاول الوصول إلى نهاية اللعبة سيحس بخيبة الأمل وقد يصبح عصبياً لدرجة أنه قد يلعن من صنع هذه اللعبة...وهو أنت!).

      الوقت/التاريخ الآن هو الثلاثاء مارس 28, 2017 12:20 am