تطوير الألعاب الحاسوبية
يقدر عدد مستخدمي ألعاب الحاسوب بحوالي 2.5 مليار لاعب من كل أنحاء العالم، وتم تقدير القيمة المالية لسوق الألعاب في العام 2017 بحوالي 78 مليار دولار، ومن المتوقع أن تصل عام 2020 إلى 90 مليار دولار، فكيف بدأ تطوير الألعاب الحاسوبية؟ وما مبادئ تصميمها؟ وكيف يتم تطويرها؟ وما أشهر الأدوات البرمجية التي تستخدم في هذه العملية؟ .. كل هذا وغيره سنقوم بإلقاء الضوء عليه في هذه المقالة.
أنواع الألعاب وتاريخها
في العام 1962 صدرت لعبة حرب الفضاء (Spacewar) والتي تعد أول لعبة حاسوبية تم تطويرها في MIT وهي قتال بين لاعبين اثنين كل منهما يتحكم بمركبة فضاء يمكنه مهاجمة الآخر وإطلاق النار عليه، وتعد هذه اللعبة بدائية للغاية من حيث الرسوميات والمؤثرات، ولم يكن تطوير الألعاب ميسرًا؛ لعدم وجود منصات تطوير متخصصة تحتوي على محاكيات فيزيائية، وقد نشطت حركة تطوير الألعاب في التسعينيات وظهر الكثير من الشركات المتخصصة بتطوير الألعاب وفيما يلي أشهرها:
شركة(Nintendo) اليابانية: طورت لعبة ماريو ولعبة بوكيمون.
شركة (Valve) الأمريكية: طورت لعبة كاونتر-سترايك وهاف-لايف.
شركة (Electronic Arts) الأمريكية: طورت سلسلة ألعاب فيفا وباتل-فيلد.
شركة (Activision Blizzard) الأمريكية: طورت سلسلة ألعاب كول-أوف-ديوتي.
شركة (Sony) اليابانية: طورت ألعاب البلاي-ستيشن.
وتتباين الألعاب من حيث صعوبة تطويرها ومدى انتشارها بحسب نوع اللعبة؛ إذ يوجد الكثير من أنواع الألعاب وفيما يلي أشهرها:
ألعاب البطاقات (card games)، مثل: سوليتير وألعاب البوكر.
ألعاب الألواح (board games)، مثل، الشطرنج.
ألعاب المتاهات (maze games)، مثل: (PacMan).
ألعاب القتال (fight games): يجري القتال وجهاً لوجه في حلبة صغيرة، مثل: مورتال كومبات.
ألعاب الأكشن (action games): يجري القتال في بيئة كبيرة، مثل: لعبة الكونتر و half life.
ألعاب المغامرات (adventure games)، مثل: لعبة الجار المزعج وماريو.
ألعاب الاستراتيجيات (strategy games)، مثل: الشطرنج.
ألعاب رياضية (sports games)، مثل: ألعاب (FIFA) لكرة القدم.
ألعاب مختلطة: فيها دمج بين الأنواع السابقة.
تصميم اللعبة:
تصميم ألعاب الفيديو ليس بالأمر السهل على الإطلاق مهما كانت اللعبة سهلة أو ممتعة! ويحتاج تطوير اللعبة غالبًا إلى عمل فريق برمجي يستمر لسنة أو لسنوات، وفي النهاية تصدر اللعبة التي ما هي إلا مجلّدٌ مضغوطٌ يحوي مجلداتٍ تتضمن ملفاتِ الأكواد البرمجيَّة بالإضافة إلى بعض ملفات الصوت وبعض الصور! عندما تبدأ اللعبة يتم حجز المساحة المطلوبة من ذاكرة الجهاز ويتم أيضاً تحميل ملفات الصور والصوت اللازمة لبدء اللعبة وتتم تهيئة المتحولات البرمجية اللازمة لحفظ النتائج وغيرها، وتشترك العناصر الآتية في تصميم اللعبة الحاسوبية:
أدوات الإدخال: التي يتفاعل من خلالها اللاعب مع مجريات اللعبة، مثل: لوحة المفاتيح والفأرة.
منطق اللعبة (game logic): وهو كود اللعبة الفعلي، ولكتابة الكود يجب أن يكون هناك تصوّر كامل (story line) عن مضمون اللعبة، ويتضمن الكود مكوناتٍ برمجيةً تحسب المسافاتِ بين عناصر اللعبة وتكتشف الاصطدامَ عندما تصبح المسافة بين الجسمين مساويةً للصفر (وعليه يتم إصدار أصوات معينة) وغير ذلك.
محرّك رسوميات (graphics rendering engine): وهو نظام معقد يستخدم لتوليد رسومياتٍ اللعبة (ثلاثية الأبعاد) من نماذج ثنائية البعد لبيئة اللعب، ومن خلاله يتم تدوير وسحب وتغيير حجم الأشكال في اللعبة.
محركات الصوت (sound drivers): يتم استخدام API (واجهة تخاطب برمجية) بين محرّك الرسوميات ومحرّك الصوت ليقوم الأخير بإصدار أصوات تتوافق مع مجريات اللعبة الحالية، على سبيل المثال يستخدم نظام ويندوز مكتبة (DirectX) التي تحتوي على دعم صوتي وصوري.
أدوات الإخراج، مثل: الشاشة، والسماعات..
الشبكة: في الألعاب الشبكية لا بد من وجود سيرفر (server) يقوم بحفظ معلومات عن مجريات اللعبة اللحظية، ويقوم بتوجيه البيانات إلى حواسيب اللاعبين. على سبيل المثال، في لعبة الكونتر يمثل الحاسوب الذي يقوم بعملية (create) دور السيرفر.
رسومات الحاسب (المكتبات والمنصات والبيئة البرمجية):
تعتمد الألعاب البسيطة على رسوميات ثنائية البعد، كل ما تحتاجه هو رسم خطوط ودوائر ومربعات ومثلثات ملونة، بينما الألعاب الأكثر تعقيدا (والأعلى سعراً) تعتمد على رسوميات ثلاثية البعد. وتوجد الكثير من المنصات المخصصة لتطوير الألعاب, وأشهرها على الإطلاق منصّة Unity (تستحق هذه المنصّة أن نفرد لها مقالاً كاملاً) ولكننا الآن نكتفي بتقديم اثنين من أشهر المكاتب البرمجية لدعم الرسوميات: وهي مكتبة (OpenGL) و مكتبة (DirectX) وبعبارة أكثر دقةً، توصف (OpenGL) و (DirectX) بأنهما واجهات تخاطب برمجية (API) أكثر منها مكاتب برمجية.
OpenGL:
تؤمن هذه المكتبة رسوميات ثنائية وثلاثية البعد ويمكن العمل عليها في أنظمة (Windows) و(Unix) بخلاف مكتبة (DirectX) المخصصة لأنظمة تشغيل ويندوز فقط، تم تطويرها في تسعينيات القرن الماضي، وهي حالياً في النسخة 4.6، بينما (DirectX) في النسخة 12، وهي مكتبة مستقرة ويَنْدُرُ إصدارُ تحديثات دورية لها، تحتوي هذه المكتبة على مئات التوابع البرمجية للرسم، وهي سريعة التنفيذ وعالية الأداء، وبعض أشهر الألعاب تمت برمجتها باستخدام هذه المكتبة، مثل: لعبة (Counter Strike) الشهيرة.
DirectX:
واجهة تخاطب بين المبرمج والعتاد الصلب (الهارد-وير) خاصة بأنظمة (Windows)، يقوم المبرمج من خلالها بطلب وظائف عتادية، إن لم يكن (كارت الشاشة) قادراً على تأمينها فإن (DirectX) تقوم بمحاكاة تلك الوظائف دون أن يشعر المبرمج، وتتألف (DirectX) من المكونات الآتية:
DirectX graphics: نظام رسوميات ثلاثية الأبعاد
DirectX audio: مكتبة صوتيات
DirectPlay: للاتصالات الشبكية
DirectInput: ( .. للتواصل مع أدوات الدخل (لوحة المفاتيح، الفأرة
وبالطبع يوجد الكثير من منصات التطوير، مثل: (Unity3D) و(CryEngine) و(Unreal) التابع لشركة (Epic Games) والذي تم من خلاله تطوير لعبة (Pubg).
إحصائيات:
تجني الصين أكثر من 40% من أرباح سوق الألعاب عالميًا بينما تجني الولايات المتحدة الأمريكية حوالي 32% من الأرباح.
حوالي 27% من الألعاب التي تم بيعها في الولايات المتحدة الأمريكية في العام 2016 كانت ألعاب عنف.
اختيرت لعبة (The legend of Zelda) ولعبة (Super Mario Odyssey) كأفضل لعبتين في العام 2017.
عدد مستخدمي لعبة (PUBG) يمثل أكثر من 50% من عدد مستخدمي الألعاب في الصين.
المصادر:
[Hillesland, K. (2013, November). OpenGL and DirectX. In SIGGRAPH Asia 2013 Courses (p. 10). ACM.]
للمزيد من الأرقام والإحصائيات راجع
روابط تعليمية:
– كورس تعلم يونيتي (Unity3D) الرابط
– ملفات كورس جامعة (Eastern Michigan University) لتعلم تطوير الألعاب الرابط