مقدمة إلى برمجة ألعاب الفيديو
من: 09 يوليو 2016 إلى: 18 سبتمبر 2016 (10 اسابيع)
تهدف هذه المادة إلى تعريف الدارس بأساسيات تصميم وتطوير ألعاب الفيديو، مع التركيز بشكل عملي على الجانب البرمجي. سيتم التطرق بداية لمفهوم ألعاب الفيديو ومعنى اللعبة وصناعة اللعبة، ومن ثم مناقشة أجزائها ومطوريها ودور كل مطور؛ وذلك بهدف وضع تصور واضح عن موقع البرمجة في هذه الصناعة ومدى أهميتها، وما هي المهارات اللازمة – إلى جانب البرمجة بالطبع - من أجل إنتاج وإخراج لعبة فيديو مكتملة.
ستركز هذه المادة على تعريف قواعد اللعبة وميكانيكياتها، وكيفية تطبيق هذه القواعد باستخدام محركات الألعاب ولغات البرمجة، كما ستناقش العلاقة بين الأجزاء البرمجية كالمتغيرات والدوار والمكتبات البرمجية وأجزاء اللعبة الأخرى كالرسومات والأصوات والمشاهد ثانئية وثلاثية الأبعاد، وكيفية تكامل هذه الأجزاء مع بعضها لتعمل بشكل منسجم وتخرج اللعبة أخيرا بالشكل المطلوب.
الجزء الأكبر من هذه المادة سيكون عمليا، وبالتحديد برمجيا، حيث ستحتوي على برامج ستتدرج في طولها وتعقيدها ابتداء من العمليات البسيطة كقراءة مدخلات اللاعب مرورا بتطبيق أنظمة الإدخال المختلفة وبرمجة منطق اللعبة، ومن ثم مواضيع أ...
عن المحاضر
طالب دكتوراة في علوم الحاسوب بجامعة كاسل- ألمانيا
- البكالوريوس في علم الحاسوب (2006) من جامعة القدس وشهادة الماجستير في نفس التخصص (2011) من جامعة العلوم والتكنولوجيا الأردنية ومبتعث حاليا لدراسة الدكتوراة في جامعة كاسل بألمانيا.
- أعمل في مجال التدريس الأكاديمي منذ العام 2007 وحاصل على منحة التبادل العلمي الألماني DAAD لعامي 2008 لدراسة الماجستير و2012 لدراسة الدكتوراة.
- مهتم بتصميم وتطوير ألعاب الفيديو الجادّة Serious games مع التركيز على استخدام الألعاب كأدوات للتقدير وتقييم المستوى Game-Based Assessment.
- إضافة للعمل الأكاديمي أعمل متطوعا كمنسق للغة العربية في موقع Coursera وأقوم حاليا بالإشراف عل...
منهج المادة
- ألعاب الفيديو ومحركات الألعاب
- مقدمة إلى الألعاب وألعاب الفيديو
- البرمجة وصناعة الألعاب
- أساسيات محرك Unity
- المشهد والكائنات والمكوّنات
- الأصول
- الكاميرا وخصائصها
- ملفك البرمجي الأول
- مفهوم حلقة اللعبة
- قراءة مدخلات اللاعب والاستجابة لها
- قراءة مدخلات لوحة المفاتيح
- استخدام المتغيرات للتحكم بالسرعة
- قراءة مدخلات الماوس
- قراءة مدخلات يد التحكم
- تطبيق نظام إدخال ألعاب المنصات (ميكانيكيتي المشي والقفز)
- تحريك الرسوم ثنائية البعد عن طريق تبديل الصور
- تحريك الكاميرا لتتبع شخصية اللاعب
- تطبيقات على أنظمة الإدخال
- أساسيات المشهد ثلاثي الأبعاد
- الفرق بين فضاء المشهد وفضاء الكائن
- تطبيق نظام إدخال منظور الشخص الأول
- تطبيق نظام إدخال منظور الشخص الثالث
- تطبيق نظام إدخال ألعاب سباق السيارات
- أمثلة أساسية على منطق اللعبة
- إطلاق النار والإصابة
- مفاتيح التفعيل والتحكم بالكائنات
- الأشياء القابلة للجمع
- أمثلة متقدمة على منطق اللعبة
- التصويب باستخدام بث الأشعة
- المقذوفات والانفجارات
- الأبواب والأقفال وحل الألغاز
- الذكاء الاصطناعي وشخصيات غير اللاعبين
- اكتشاف وتتبع المسار
- شجرة اتخاذ القرار
- متغيرات الصحة والذخيرة
- الإنهاء والتصدير
- حفظ وتحميل حالة اللعبة
- بناء واجهة المستخدم
- تصدير اللعبة كتطبيق مستقل
المخرجات المتوقعة
- التعرف على معنى صناعة ألعاب الفيديو ومعرفة موقع البرمجة والمبرمج في هذه الصناعة الضخمة
- التفريق بين تصميم وتطوير وبرمجة اللعبة والتعرف على موقع كل منها
- توضيح الفروق بين برمجة الأنظمة البيانات المعتادة وبرمجة الألعاب
- التعرف إلى محركات الألعاب والخدمات التي تؤديها، والفرق بين برمجة الرسومات وبرمجة الألعاب
- فهم آلية عمل ألعاب الفيديو والحلقة التكرارية للعبة وإدارة المشهد
- التعرف على الطرق المختلفة لقراءة مدخلات اللاعبين وترجمتها إلى أوامر
- استخدام المنطق البرمجي من أجل صياغة قواعد اللعبة وميكانيكياتها
- استخدام تقنيات الذكاء الاصطناعي في برمجة الألعاب
متطلبات المادة
المتطلب الأهم هو الشغف بصناعة الألعاب وتطويرها حيث سيكون الدافع الأهم للاستمرار في المادة عند الحديث عن المواضيع المتقدمة والتي تحتاج جهدا وصبرا لإتقانها، كما يفضل أن يكون للدارس معرفة بسيطة بأساسيات البرمجة إلا أن هذا ليس ضروريا حيث سيتم شرح الأوامر البرمجية بطريقة تناسب جميع المستويات.
إضافة للبرمجة فإن المعرفة الأساسية برياضيات الفضاء ثنائي وثلاثي الأبعاد وحساب المتجهات ستجعل استيعاب المادة أكثر سهولة وتحقق للدارس أكبر فائدة من المادة
مراجع وقراءات مقترحة
مواضيع المادة ستكون مبنية على محتوى قمت بنشره جزئيا على شكل كتاب متوفر باللغتين العربية والإنجليزية وكلاهما متوفرتان مجانا:
- النسخة الإنجليزية منشورة على المكتبة الإلكترونية الأوروبية Bookboon ويمكن تحميلها عبر هذا الرابط (لم يتم نشر محتوى الذكاء الاصطناعي بالإنجليزية بعد)
- أما النسخة العربية فهي منشورة على موقعي الشخصي وأضيف إليها الفصول باستمرار أثناء الكتابة ويمكن الاطلاع عليها وتحميلها عبر الرابط التالي
سؤال وجواب
ما هي البرامج اللازمة لتطبيق مواد الدورة؟ وما هي متطلبات تشغيلها؟ البرنامج الوحيد المطلوب هو محرك Unity وهو متوفر مجانا ويمكن تحميله من الموقع http://unity3d.com. يمكن الاطلاع على متطلبات التشغيل عبر نفس الموقع، بيد أنه يمكن إجمالها في جهاز حديث مع بطاقة رسومات تدعم shader model 2.0 (معظم بطاقات الشاشة المتوفرة هذه الأيام تدعمه) إضافة إلى نظام تشغيل Windows XP SP2 أو أحدث أو Mac OS X 10.8 أو أحدث.
هل هذه دورة عملية لتعلم محرك الألعاب Unity3D؟ ليست كذلك، فهذه المادة تستعمل المحرك المذكور كبيئة تطوير وبناء للمشهد وتنفيذ للأوامر البرمجية، ولا تخوض في التفاصيل الدقيقة الخاصة بالمحرك إلا بالقدر الضروري لفهم المقرر. بالتالي يمكن للدارس استخدام أي محرك آخر، ولا يمكنه الاعتماد على هذه المادة إن كان كل ما يرغب به هو تعلم كيفية استخدام المحرك وكافة تسهيلاته والمكونات التي يتيحها وغير ذلك من المزايا.
هل تقتصر المادة التعليمية على برمجة نوع محدد من الألعاب؟ لا، فالأمثلة تشمل ألعابا ثنائية وثلاثية الأبعاد، كما أنها تناقش أنواعا مختلفة من المدخلات. يستثنى من ذلك – مبدئيا – نظام إدخال شاشات اللمس الخاصة بالهواتف الذكية، والتي يمكن أن تتم مناقشتها في مواضيع جانبية لكنها ليست مقررة ضمن منهاج المادة الأساسي. غير أن ذلك لا ينفي كون المادة مفيدة لبرمجة ألعاب الهواتف الذكية حيث أنه يمكن تصدير اللعبة نفسها دون الحاجة لكثير من التغيير إلى أنظمة Android و iOS.
ما هي لغات البرمجة التي أحتاج لمعرفتها من أجل الاستفادة من المادة؟ لغة البرمجة المعتمدة هي C# علما بأن محرك Unity يدعم لغة Javascript أيضا لكن لن يتم شرح أي شيء عنها، وهي إجمالا لا تختلف كثيرا حيث أن اللغتين تستخدمان نفس المكتبات. مع ملاحظة أن استخدام طرق البرمجة الكائنية Object-Oriented Programming سيكون محدودا جدا.
هل سيكون هناك استخدام أو شرح للتصميم ثنائي\ثلاثي الأبعاد والتحريك؟ لا، بل ستعتمد الدروس على أشكال بسيطة أو نماذج وصور جاهزة من مصادر مجانية، وذلك لتركيز الشرح على الجانب البرمجي وعدم التشتت في اتجاهات أخرى.