من: 01 مايو 2016 إلى: 12 يونيو 2016 (6 اسابيع) – ويمكنك مشاهدة الأرشيف بعد إنتهاء المادة.
تهدف هذه المادة إلى تعريف الدارس بأساسيات تصميم وتطوير ألعاب الفيديو، مع التركيز بشكل عملي على الجانب البرمجي. سيتم التطرق بداية لمفهوم ألعاب الفيديو ومعنى اللعبة وصناعة اللعبة، ومن ثم مناقشة أجزائها ومطوريها ودور كل مطور؛ وذلك بهدف وضع تصور واضح عن موقع البرمجة في هذه الصناعة ومدى أهميتها، وما هي المهارات اللازمة – إلى جانب البرمجة بالطبع – من أجل إنتاج وإخراج لعبة فيديو مكتملة.
ستركز هذه المادة على تعريف قواعد اللعبة وميكانيكياتها، وكيفية تطبيق هذه القواعد باستخدام محركات الألعاب ولغات البرمجة، كما ستناقش العلاقة بين الأجزاء البرمجية كالمتغيرات والدوار والمكتبات البرمجية وأجزاء اللعبة الأخرى كالرسومات والأصوات والمشاهد ثانئية وثلاثية الأبعاد، وكيفية تكامل هذه الأجزاء مع بعضها لتعمل بشكل منسجم وتخرج اللعبة أخيرا بالشكل المطلوب.
الجزء الأكبر من هذه المادة سيكون عمليا، وبالتحديد برمجيا، حيث ستحتوي على برامج ستتدرج في طولها وتعقيدها ابتداء من العمليات البسيطة كقراءة مدخلات اللاعب مرورا بتطبيق أنظمة الإدخال المختلفة وبرمجة منطق اللعبة، ومن ثم مواضيع أكثر تقدما مثل محاكاة الفيزياء وصولا إلى مواضيع الذكاء الاصطناعي كشجرة اتخاذ القرارات وتتبع المسارات.
سيتم شرح المواضيع وتطبيقها على محرك Unity ولغة البرمجة C#، كمان يمكن للدارس اختيار أي محرك آخر إن رغب بذلك لكون المحركات تتشابه في الخدمات التي يمكن أن تؤديها.
عن المحاضر
عضو هيئة التدريس بقسم الحاسب في جامعة القدس – فلسطين
- البكالوريوس في علم الحاسوب (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 سيكون محدودا جدا.
هل سيكون هناك استخدام أو شرح للتصميم ثنائي\ثلاثي الأبعاد والتحريك؟
لا، بل ستعتمد الدروس على أشكال بسيطة أو نماذج وصور جاهزة من مصادر مجانية، وذلك لتركيز الشرح على الجانب البرمجي وعدم التشتت في اتجاهات أخرى.