السبت، 31 مارس 2012

واد الذئاب 6

مسلسل وادى الذئاب الجزء السادس الحلقة 51

الجمعة، 30 مارس 2012

game maker software downloads and reviews at Download.com




جرب قيادة انفنتي
game maker software downloads and reviews at Download.com

السلام عليكم ورحمة الله وبركاته
شرح برنامج Game maker لصنع الالعاب

وصلة البرنامج

&

RapidShare: 1-Click Webhosting




================================================== =====================================
الدرس الأول للمبتدئين
الواجهة الرئيسة
واجهة Game Maker بسيطة وغير معقدة كونها لا تحوي الكثير من الاشياء اوالادوات. فهي كغيرها من برامج الويندوز تحتوي على شريط العنوان Title Bar، القوائم Menu Bar وشريط الادوات Toolbar، بالاضافة الى نافذة الموارد Resources Window ومنطقة العمل Work Area. من المهم معرفة ان Game Maker يمكن ان يستخدم إما في الطور البسيط Simple Mode اوالطور المتقدم Advanced Mode. الواجهة الرئيسة للبرنامج تختلف على حسب الطور، ففي الطور البسيط تكون بعض اوامر البرنامج مختفية اما في الطور المتقدم فتكون جميع الاوامر ظاهرة ومتاحة للاستخدام. وكوننا في الدرس الاول فاننا نفترض انك تستخدم البرنامج في الطور البسيط. للتحويل بين الطور البسيط والطور المتقدم افتح القائمة ملف File ثم اضغط على Advanced Mode.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
شريط العنوان Title Bar:
كما تلاحظ من الشكل، فعلى شريط العنوان يكتب اسم البرنامج متبوعا بكلمة Simple للدلالة على انك تستخدم البرنامج في الطور البسيط، اما اذا كنت في الطور المتقدم فتحذف الكلمة. ثم يظهر اسم ملف اللعبة الحالي. في حال وجود الرمز * بعد اسم اللعبة فهذا يدل على انك قد قمت باجراء بعض التغييرات على اللعبة ولم تحفظها بعد، لذلك فهو ينبهك بحفظ اللعبة ان نسيت ذلك.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
القوائم Menus:
توجد تسعة قوائم في البرنامج وكل منها تحوي مجموعة من الاوامر التي تساعدك على تصميم لعبتك، لكن لاحظ انك لو كنت في الطور المتقدم ثم تحولت الى الطور البسيط فان القائمة Scripts تختفي ولحل هذه المشكلة اغلق البرنامج وافتحه من جديد وستظهر القائمة حتى لو كنت في الطور البسيط. سنتحدث عن جميع هذه القوائم بالتفصيل في الدروس القادمة.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
شريط الأدوات Toolbar:
ويحوي هذا الشريط بعض الاوامر الموجودة في القوائم التي ذكرناها ولكن وجودها يسهل عملية الوصول الى الاوامر خاصة الكثيرة الاستخدام منها.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
نافذة الموارد Resources Window:
تضم هذه النافذة جميع الموارد التي ستسخدمها في تصميم لعبتك، وطبعا سنتحدث عن الموارد جميعها بالتفصيل لاحقا اما الان فحديثنا سيقتصر حول كيفية اضافة وترتيب وحذف الموارد وكيفية تغيير اسمائها. هنالك عدة انواع مختلفة من الموارد وتاتي منظمة في مجموعات منفصلة تشبه شكل مجلدات ويندوز المألوفة للجميع، وهي كما يلي:
1- الاسبرايتس Sprites.
2- الاصوات Sounds.
3- الخلفيات Backgrounds.
4- الكائنات Objects.
5- الغرف Rooms.
وتوجد موارد اخرى لكنها غير متاحة في الطور البسيط بل في الطور المتقدم لكن هذه الموارد وحدها كافية في اغلب الاحيان في تصميم لعبتك، لذا سنؤجل ذكر الموارد الاخرى الى وقت اخر. بالنسبة لمعلومات اللعبة Game Information وخيارات اللعبة Game Options فلا نعتبرها موارد وسنناقشهما لاحقا. لاضافة مورد ما قم بالضغط بالزر الايمن للفارة على مجموعة الموارد التي تريد اضافتها في نافذة الموارد ثم اختر Add Sprite مثلا، كما يمكن ان تفعل ذلك بالضغط على مورد ما بيمين الفارة ثم اختيار Insert Sprite. تلاحظ ظهور نافذة خصائص المورد الذي اضفته، لا عليك منها الان. لنسخ المورد وانشاء واحد شبيه قم بالضغط على المورد الذي تريد اضافته بالزر الايمن ثم اختر الامر Duplicate. لحذف مورد ما اضغط بيمين الفارة على المورد نفسه ثم اختر الامر Delete. لتغيير اسم المورد قم بالضغط عليه بالزر الايمن للفارة ثم اختر Rename. لفتح نافذة خصائص المورد قم بالضغط عليه بالزر الايمن ثم اختر Properties او انقر عليه نقرتين مزدوجتين بالزر الايسر للفارة. كما يمكن الوصول الى الاوامر السابقة بطرق اخرى.
يمكن تغيير موضع المورد من مكان الى اخر، فمثلا اذا اردت ان تضع موردا ما فوق جميع الموارد الاخرى قم بسحبها بالزر الايسر للفارة الى المكان المراد ثم اترك زر الفارة. هذه الطريقة تسمى بطريقة السحب والالقاء Drag and Drop. لكنك طبعا لا تستطيع سحب مورد من مجموعة ما الى اخرى مختلفة كما لا يمكنك تغيير مواضع مجموعات الموارد. ان تسمية الموارد بطريقة جيدة، يسهل عليك عملية قراءة لعبتك. لذلك من الافضل لك ان تتبع طريقة معينة في تسميتها. ويجب عليك ان تتجنب تشابه اسماء الموارد لكي لا تربك البرنامج. هذا سيصبح مهما جدا خاصة اذا كنت تستخدم الاكواد. اقترح عليك اتباع الطريقة التالية في التسمية:
· الاسبرايتس: اضف spr قبل الاسم. مثال: sprPlayer
· الاصوات: اضف snd قبل الاسم. مثال: sndExplosion
· الخلفيات: اضف bag قبل الاسم. مثال: bagMainScreen
· الكائنات: اضف obj قبل الاسم. مثال: objPlayer
· الغرف: لا تضف شيئا قبله. مثال: Level1
لكن لماذا اضفنا تلك الحروف قبل الموارد؟ لان ذلك سيجعلك تعرف نوع المورد اي الى اي مجموعة تنتمي، كما انك قد تحتاج احيانا ان تسمي موردين من مجموعتين مختلفين بنفس الاسم واتباع هذه الطريقة سيؤدي الى عدم تشابه اسم الموردين. واخيرا اريد ان انوه ان الاسماء يمكن ان تحوي ارقاما اوحروفا اوالرمز _ فقط. ولا يجب استخدام المسافات. كما يجب ان تبدأ بحرف.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
منطقة العمل Work Area:
من خلال هذا الجزء في الواجهة الرئيسة للبرنامج تستطيع ان تتحكم بالنوافذ الفرعية الاخرى للبرنامج، فلكل مورد نافذة خصائص خاصة بها وجميعها تظهر في ضمن هذا الجزء ويمكن التعامل معها كما تتعامل مع تطبيقات ويندوز المختلفة مثل تحريكها اوتصغيرها اوتكبيرها اواغلاقها. وعن طريق اوامر القائمة Window تستطيع ان ترتب هذه النوافذ بطريقة سهلة وسريعة، فاذا اردت ان ترتب النوافذ بشكل متتال بحيث يظهر شريط عنوان كل نافذة على الاقل، فاختر الامر Cascade من القائمة Window هذا الامر يقوم ايضا بجعل حجم النوافذ مناسبة لك، بالاضافة الى كل ذلك يقوم بعمل الامر Arrange Icons والذي سنتحدث عنه الان. الامر Arrange Icons وهو مختص بترتيب النوافذ عندما تكون في حالة التصغير Minimized بحيث انك اذا غيرت حجم نافذة البرنامج الرئيسة سترتب هذه النوافذ في موضعها اي اسفل منطقة العمل ان لم تكن كذلك، يمكن الاستغناء عن هذا الامر في حالة استخدام الامر Cascade. الامر الاخير الموجود في هذه القائمة هو Close All والذي يغلق جميع النوافذ الموجودة في منطقة العمل.
================================================== =====================================
الدرس الثاني
القوائم وأوامرها
برنامج Game Maker لا يختلف عن معظم البرامج التطبيقية لويندوز، فهي تضم ما يعرف باسم شريط القوائم Menu Bar والتي تسهل على المستخدم عملية الوصول الى اوامر البرنامج المختلفة، حيث تجد في هذا الشريط سبعة قوائم مختلفة تحوي كل منها مجموعة اوامر تساعدك على تصميم لعبتك. سنناقش معا في هذا الدرس جميع تلك الاومر بالتفصيل.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
القائمة File:
ستجد في هذه القائمة لااوامر المعتادة مثل تحميل وتخزين ملف اللعبة، اضافة الى القليل من الاوامر الخاصة بالبرنامج.
· الامر New: اختر هذا الامر لتكوين لعبة جديدة.
· الامر Open: يفتح ملف لعبة قمت بحفظه مسبقا. ملفات Game Maker تحمل الامتداد .gmd يمكنك ان تفتح ملف لعبة ما بطريقة اخرى وهي سحب الملف والقائه على نافذة البرنامج.
· الامر Recent Files: تجد هنا اخر الملفات التي قمت بفتحها باستخدام البرنامج.
· الامر Save: يخزن ملف اللعبة الحالي.
· الامر Save As: يخزن ملف اللعبة الحالي تحت اسم مختلف.
· الامر Create Executable: يقوم بانشاء ملف تنفيذي ذاتي اي على الامتداد .exe بهذه الطريقة يستطيع اي شخص ان يمارس اللعبة على جهازه حتى لو لم يكن لديه برنامج Game Maker.
· الامر Advanced Mode: للتحويل من الطور المتقدم الى الطور البسيط اوالعكس.
· الامر Exit: يغلق البرنامج.
القائمة Edit:
القائمة Edit تحوي عدد من الاوامر المتعلقة بالمورد المختار، وهذه الاوامر هي نفس الاوامر التي ناقشناها في الدرس الاول تحت قسم نافذة الموارد.
· الامر Add او Insert: يضيف موردا جديدا.
· الامر Duplicate: يكون نسخة مشابهة بالمورد المختار.
· الامر Delete: يحذف المورد المختار.
· الامر Rename: لاعادة تسمية المورد المختار.
· الامر Properties: يفتح نافذة خصائص المورد المختار
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
القائمة Add:
تختص هذه القائمة باوامر اضافة الموارد حسب النوع الذي تريده، اضافة الى امرين اخرين.
· الامر Add Sprite: يضيف مورد اسبرايت.
· الامر Add Sound: يضيف مورد صوت.
· الامر Add Background: يضيف مورد خلفية.
· الامر Add Object: يضيف مورد كائن.
· الامر Add Room: يضيف مورد غرفة.
· الامر Change Game Information: يفتح نافذة معلومات اللعبة.
· الامر Change Game Options: يفتح نافذة خيارات اللعبة.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
القائمة Scripts:
هذه القائمة تظهر في Game Maker 5.1 فقط وربما تظهر في الاصدارات القادمة فهي لم تكن موجودة في الاصدارات السابقة من البرنامج. تحوي هذا القائمة الاوامر المتعلقة بالاسكريبتس اوالاكواد.
· الامر Import Scripts: يقوم باستيراد ملف اسكريبت قمت بتصديره مسبقا وهي على الامتداد .gml
· الامر Export Scripts: يقوم بتصدير اسكريبتس اللعبة.
· الامر Show Built-in Variables: يظهر نافذة تحوي جميع المتغيرات الداخلية الخاصة بالبرنامج.
· الامر Show Built-in Functions: يظهر نافذة تحوي جميع الدوال الداخلية الخاصة بالبرنامج.
· الامر Show Resources Name: يظهر اسماء جميع الموارد في اللعبة، و بالضغط على اسم مورد ما تفتح نافذة خصائص ذلك المورد.
· الامر Search in scripts: يبحث عن نص في الاسكريبتس.
· الامر Check Resources Name: يفحص جميع الموارد بحثا عن اسماء متشابهة اوغير صحيحة.
· الامر Check All Sprites: يفحص جميع الاسكريبتس بحثا عن الأخطاء.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
القائمة Run:
تضم هذه القائمة امرين خاصين بتشغيل اللعبة اثناء التصميم.
· الامر Run Normally: يشغل اللعبة.
· الامر Run in Debug mode: يشغل اللعبة في طور فحص الاخطاء.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
القائمة Window:
اوامر هذه القائمة تختص بترتيب النوافذ الفرعية للبرنامج والتي تظهر في منطقة العمل، تم مناقشة جميع هذه الاوامر في الدرس الاول ولكننا سنذكرها في هذا الدرس ايضا.
· الامر Cascade: يقوم بترتيب النوافذ بشكل متتال بحيث يظهر جزء صغير من كل نافذة على الاقل ويقوم بوضع النوافذ التي تكون في حالة التصغير Minimized في مواضعها الصحيحة ان لم تكن كذلك.
· الامر Arrange Icons: يقوم بوضع النوافذ التي تكون في حالة التصغير Minimized في مواضعها الصحيحة ان لم تكن كذلك.
· الامر Close All: يغلق جميع النوافذ الفرعية المفتوحة.
القائمة Help:
تجد هنا بعض الاوامر التي تساعدك على استخدام البرنامج.
· الامر Contents: يفتح مستند المساعدة التي تاتي مع البرنامج.
· الامر How to use help: يعطيك ارشادات حول كيفية استخدام مستند المساعدة.
· الامر Registration: لتسجيل البرنامج والحصول على جميع امكانياته.
· الامر Web site: ياخذك الى موقع Game Maker وهو Game Maker Pages/
· الامر Forum: ياخذك الى منتدى Game Maker وهو Game Maker Community (Powered by Invision Power Board)
· الامر About Game Maker: يعطيك بعض المعلومات حول البرنامجز
================================================== =====================================
الدرس الثالث
نافذة خصائص السبرايت
الاسبرايت ليس سوى تمثيل بصري للكائنات وهي اما تتكون من صورة واحدة او عدة صور متتالية تبدو للناظر وكانها تتحرك. لفتح نافذة خصائص الاسبرايت قم بالنقر المزدج على مورد الاسبرايت، حيث ستجد ما يلي:
· الخاصية Name: هنا تغير اسم مورد الاسبرايت.
· الزر Load Sprite: من هنا تستطيع ان تحمل صورة للاسبرايت، يدعم البرنامج الكثير من هيئات او امتدادات الصور المختلفة. سنناقش هنا ثلاث انواع شائعة والتي لا يستغني عنها الكثيرون. لكن ما هو الفرق بين الامتداد والهيئة؟ سؤال جيد رغم انه خارج عن موضوعنا، باختصار أقول ان إمتداد الملف هو آخر ثلاث حروف من إسمه بينما هيئة الملف هي طريقة ترتيب البيانات داخل الملف. الامتداد يخبر نظام التشغيل بوساطة اي برنامج يفتح هيئة ما. اعتقد ان الفكرة اصبحت واضحة:
هيئات bmp: هذه الهيئات تعتبر من أجود الأنواع لكن حجمها كبير.
هيئات jpeg: اما هذه فهي التي تستخدم كثيرا على الشبكة في المواقع المختلفة نظرا لحجمها الصغير نسبيا. غالبا يفضل تحويل هيئات .bmp الى هذه الهيئة.
هيئات gif: هذه الهيئات صغيرة الحجم. يفضل تحويل هيئات .bmp او .jpeg الى هذه الهيئة اذا كانت الالوان المستخدمة في الصورة قليلة. و تتميز بقدرتها على احتواء اكثر من صورة و عرضها بشكل متتال لتكون صورة متحركة.
· الزر Edit Sprite: باستخدام هذا الزر تستطيع فتح البرنامج الذي ياتي مع Game Maker لتحرير الاسبرايت او حتى انشاء اسبرايت جديد كليا.
· الامر Transparent: وتعني الشفافية، هذه الخاصية تجعل اجزاءا من الاسبرايت شفافا، لكن اية اجزاء بالتحديد؟ هذا يحدده لون البكسل الاخير في الزاوية السفلية اليسرى للاسبرايت، فاذا كان لون هذا البكسل احمرا مثلا يقوم البرنامج بحذف جميع أجزاء الاسبرايت ذات اللون الأحمر. لكن انتبه فالكومبيوتر جهاز دقيق جدا، لذلك يجب الانتباه من الدرجة اللونية للون الشفافية. بعضنا قد لا يعرف معنى كلمة بكسل و لهؤلاء أقول ان الصورة التي تراها على الشاشة مكونة في الحقيقة من عدد كبير جداُ من النقاط الصغيرة جداً والتي تفصل بينها مسافات صغيرة جداً ويمكن للشاشة تغيير لون كلاً منها وبذلك يمكن إظهار الألوان على الشاشة. سنضطر الآن أن نتكلم بشيء في الفيزياء قليلاً، فربما تعرف أن أي لون من الألوان يتكون من مزيج من الألوان الثلاثة الرئيسة: الأحمر والأخضر والأزرق كما لا يخفى عليك أن أي لون من الألوان له درجات، فهناك مثلاً الأحمر الغامق والفاتح وهناك البني الفاتح والغامق...الخ وبمزج الألوان الرئيسة الثلاثة مع بعضها البعض بنسب متفاوتة يمكننا إظهار درجات الألوان المختلفة جميعها، فمثلاً عندما يظهر الكومبيوتر على الشاشة اللون الأخضر والأزرق والأحمر معاً بنفس النسبة في بقعة واحدة فإن اللون الناتج هو اللون الأبيض، أما إذا أخفينا اللون الأخضر واللون الأحمر فإن الناتج هو اللون الأزرق وهكذا. لذا فشاشة الحاسب مثل التلفزيون مكونة من مجموعة من النقاط الدقيقة الملونة المنتشرة بصورة منتظمة على كامل مساحة الشاشة ويسمى كل ثلاثة من هذه النقاط بالبكسل حيث تكون نقطة خضراء ونقطة زرقاء ونقطة حمراء بكسلاً واحداً، ويستطيع الحاسب مزج الألوان الثلاثة مع بعضها بأية نسبة لإظهار بكسل معين من البكسلات بأي لون مهما كان درجته.
· الامر OK: يحفظ التغييرات ويغلق النافذة.
تلاحظ وجود بعض المعلومات البسيطة حول الاسبرايت تحت الزر Load Sprite وهي Width اي عرض الاسبرايت بالبكسل وHeight اي طول الاسبرايت بالبكسل، اما Number of subimages فهي تعني عدد الصور الفرعية المكونة للاسبرايت، وفي حال وجود اكثر من صورة فرعية واحدة فسيظهر اسهم زرقاءة اللون تستطيع بالضغط عليها التنقل بين الصور الفرعية على التوالي وهذه الصور ستظهر في الفراغ الموجود في الناحية اليمنى للنافذة.
================================================== =====================================
الدرس الرابع
نافذة خصائص الصوت
الاصوات هي من اهم عناصر العاب الفيديو بل ويعتبرها البعض الاكثر اهمية على الاطلاق، لذلك لا تبخل بتزويد لعبتك باصوات وموسيقا جميلة، فاياك واهمال هذا الجانب لان لعبتك ستخسر الكثير. لفتح نافذة خصائص الصوت قم بالنقر المزدوج مورد الصوت، حيث ستجد ما يلي:
· الخاصية Name: هنا تغير اسم مورد الصوت.
· الزر Load Sound: من هنا تستطيع ان تحمل الصوت، البرنامج يدعم ثلاث هيئات مختلفة من الاصوات وهي الهيئات المعروفة بالامتدادات .wav وmidi وmp3. فما الاختلاف بين هذه الهيئات؟ فلنوضح ذلك:
هيئات wav: هذه الهيئات تتميز بجودتها وسرعة تشغيلها ولكن حجمها يكون عادة كبيرا مقارنة بهيئات .midi او حتى .mp3. استخدم مثل هذه الهيئات للاصوات وليس الموسيقا، اي مثلا صوت انفجار مركبة. لان تشغيل هذه الهيئات سريع كونها غير مضغوطة (لهذا حجمها كبير) فلا اظنك تريد ان تسمع صوت انفجار المركبة بعد ساعة من حدوث الانفجار!
هيئات midi: تتميز هذه الهيئات بصغر حجمها فهي جد مضغوطة، لذا استخدمها لموسيقا اللعبة. من عيوبها ان البرنامج لا يستطيع تشغيل اكثر من ملف واحد من نفس النسخة في وقت واحد.
هيئات mp3: هي نفسها .wav، لكن الفرق انها مضغوطة. استخدمها لموسيقا اللعبة، ان كنت تريد جودة في الموسيقا. لكن تذكر ان حجمها اكبر بكثير من حجم هيئات .midi لكنها تبقى اقل حجما من هيئات .wav. اياك و استخدام هذه الهيئات للاصوات، استخدمها للموسيقا فقط و يفضل ان لا تفعل.
· الزر Save Sound: وفائدتها تكمن في تخزين الصوت في ملف خارجي، مفيد ان اضعت ملف الصوت وتريد استخدامه في امر ما.
· الامر OK: يحفظ التغييرات ويغلق النافذة.
تظهر معلومات بسيطة حول المورد عند تحميل الصوت وهذه المعلومات هي Kind وتخبرك بنوع هيئة الصوت للمورد، اما Time فتخبرك بطول الملف الصوتي وذلك بوحدة millisecond تذكر دائما ان الثانية الواحدة تساوي 1000 msec. تلاحظ كذلك ظهور زران اضافيان وهما لتشغيل الصوت للتجربة والاخر لايقافه.

================================================== =====================================
الدرس الخامس
نافذة خصائص الخلفية
الخلفية عبارة عن صورة تستخدم في الغرف حيث تجري احداث اللعبة، وتظهر خلف جميع الكائنات في الغرفة الا اذا استخدمته كخلفية امامية Foreground. والخلفيات عادة تكون صغيرة في حجمها ومصممة بطريقة بحيث ان وضعت بقرب بعضها بعضا عموديا او افقيا تبدو وكانها صورة واحدة وهذا ما يسمى ب Tiles. لفتح نافذة خصائص الخلفية قم بالنقر المزدوج على مورد الخلفية، حيث ستجد ما يلي:
· الخاصية Name: هنا تغير اسم مورد الخلفية.
· الزر Load Background: من هنا تستطيع ان تحمل الصورة التي تمثل الخلفية. مع ملاحظة ان الخلفيات لا يمكن ان تكون عبارة عن صورة متحركة.
· الخاصية Transparent: من هنا تحدد اذا كنت تريد الخلفية شفافة ام لا.
· الزر Edit Background: باستخدام هذا الزر تستطيع فتح البرنامج الذي ياتي مع Game Maker لتحرير الخلفية او حتى انشاء خلفية جديدة كليا.
· الامر OK: يحفظ التغييرات ويغلق النافذة.
تلاحظ وجود بعض المعلومات البسيطة حول الخلفية تحت الزر Load Background وهي Width اي عرض الخلفية بالبكسل وHeight اي طول الخلفية بالبكسل. وبمجرد تحميل الخلفية تلاحظ ظهورها في المساحة اليمنى الفارغة من النافذة.

================================================== =====================================
الدرس السادس
نافذة خصائص الكائن
العالم الذين نعيش فيه لم يكن عالما لو لا وجود الكائنات فيه والامر ذاته ينطبق على برنامجنا هذا، فلا لعبة من دون كائنات، لذلك فالكائنات تعتبر اهم مورد في اللعبة. وهذه الكائنات عادة ما تمثل باستخدام الاسبرايت. كل ما تراه في اللعبة باستثناء الخلفيات يعتبر كائنا. ويمكن ان توجد كائنات لا تراها في اللعبة لكنها تقوم بدورا هام في اللعبة. عليك ان تدرك الفرق بين الكائنات والاسبريات، فالاسبرايت مجرد صورة متحركة او غير متحركة، لكن ليس للاسبرايت اي سلوك بعكس الكائنات التي لها سلوك تحدده باستخدام الاكشن Actions والاحداث Events. لفتح نافذة خصائص الكائن قم بالنقر المزدوج على مورد الكائن، فتظهر نافذة كما في الشكل 6-1:

Click this bar to view the full image.


الشكل 6-1: نافذة خصائص الكائن
تبدو هذه النافذة معقدة مقارنة بالنوافذ الاخرى التي مرت علينا حتى الان، ولتبسيطها دعونا نقسمها الى ثلاثة اقسام؛ في القسم الذي على اليسار تجد بعض المعلومات حول الكائن، اما القسم الذي في الوسط فهو مخصص لوضع الاحداث والاكشن للكائن، والقسم الاخير يحوي الاكشن الممكن استخدامه للكائن. سنخوض في تفاصيل الاكشن والاحداث في الدروس القادمة، اما الان فسنكتفي بمعرفة كيفية التعامل مع القسم الاول من هذه النافذة:
· الخاصية Name: هنا تغير اسم الكائن.
· الخاصية Sprite: تحدد الاسبرايت الذي يمثل الكائن، وذلك بالنقر بالفارة على المستطيل الابيض الذي يحوي اسم الاسبرايت او الزر الازرق الصغير، فتظهر قائمة تحوي جميع الاسبرايت الذي قمت باضافته الى اللعبة مسبقا، ثم تختار الاسبرايت المناسب للكائن.
· الخاصية Solid: هذه الخاصية تحدد ما ان كان الكائن صلبا ام لا. الكائنات الصلبة تعالج بشكل مختلف عن الغير الصلبة في حدث التصادم، كما سنتعرف في الدروس القادمة.
· الخاصية Visible: تحدد اذا كان الكائن مرئيا ام لا. من الواضح ان معظم الكائنات مرئية، لكن هنالك حالات قد تحتاج فيها الى عدم اظهار الكائن.
· الزر OK: يحفظ التغييرات ويغلق النافذة.
================================================== =====================================
الدرس السابع
نافذة خصائص الغرفة
اصبحت الان قادرا على تكوين الكائنات وغيرها من الموارد. وبقي عليك الان التعرف على المكان الذي ستضع فيها تلك الكائنات. الغرف Rooms هي المكان الذي تجري فيه احداث اللعبة. اية لعبة تحتاج على الاقل لغرفة واحدة، اي بمعنى اخر لا يمكن ان تصمم لعبة بدون غرفة. ولو حاولت فعل ذلك ستظهر لك رسالة خطا تقول انه قد تعذر تحميل اللعبة لعدم احتوائها على غرف كما هو موضح في الشكل 7-1:

الشكل 7-1: ظهور رسالة الخطا دلالة على عدم وجود غرفة في اللعبة
لذلك فبعض خبراء Game Maker يعتبرون الغرف اهم مورد في اللعبة، لكن Mark Overmars مصمم البرنامج يخالفهم الراي ويعتبر الكائنات اهم مورد في اللعبة. لفتح نافذة خصائص الغرفة قم بالنقر المزدوج على مورد الغرفة، فتظهر نافذة كما في الشكل 7-2:

تم تصغير الصوره ,لمشاهدة الصوره بحجمها الأصلي أضغط هنا.


الشكل 7-2: نافذة خصائص الغرفة
في الطور البسيط توجد ثلاثة اقسام في نافذة خصائص الغرفة وهي قسم الكائنات objects، قسم الاعدادات settings وقسم الخلفيات backgrounds، اما في الطور المتقدم فتزداد عدد الاقسام لتصل الى خمسة اقسام. تلاحظ وجود مساحة رمادية فارغة في الجهة اليمنى من النافذة وهي تمثل الغرفة، واسفل هذه المساحة تجد قيمة المتغيران mouse_x وmouse_y وهما يشيران الى الموضع الحالي لمؤشر الفارة في الغرفة معتمدة على موضعها في الخطوط الشبكية.
القسم objects:يختص هذا القسم باضافة الكائنات وحذفها من الغرفة.
· اضافة الكائنات الى الغرفة: لاضافة كائن ما الى الغرفة عليك اولا اختياره ويتم ذلك بالضغط بالزر الايسر للفارة في المنطقة الفارغة تحت قسم الكائن object، او بالضغط على الزر الازرق الصغير الموجود تحت هذه المنطقة، فتظهر قائمة تحوي جميع الموارد في اللعبة وما عليك الا اختيار الكائن الذي تريد اضافته الى الغرفة كما في الشكل 7-3:

الشكل 7-3: يوضح ظهور قائمة اختيار الكائن
بعد اختيار الكائن المراد اضافته يتم عرض اسمه في المستطيل الابيض بجانب الزر الازرق الصغير، ولاضافة الكائن المختار الى الغرفة قم بالضغط على المساحة التي تمثل الغرفة-المنطقة الرمادية على يمين نافذة خصائص الغرفة- وذلك في الموضع الذي تريد اضافة الكائن فيه. تلاحظ ان الكائن ينجذب نحو الخطوط الشبكية، هذا الامر يسهل عملية وضع الكائنات في المكان الذي تريده بشكل مرتب، اما اذا اردت ان لا ينجذب الكائن الى الخطوط الشبكية فاستمر بالضغط على المفتاح Alt من لوحة المفاتيح واضغط بالزر الايسر للفارة في المكان الذي تريد اضافة الكائن فيه، وتلاحظ ان البرنامج في هذه الحالة قام بوضع الكائن في الموضع الذي نقرت عليه بالضبط. اما في حالة الاستمرار بالضغط على الزر الايسر للفارة مع السحب على الغرفة فان البرنامج سيقوم باضافة الكائن بشكل سريع ومتتال.
· الامر Delete underlying: بتشغيله يقوم البرنامج بحذف اي كائن يقع تحت الكائن المراد اضافته، اما اذا قمت بعدم اختياره فسيقوم البرنامج باضافة الكائن فوق الكائن الاخر دون حذفه.
· الزر Clear: يقوم بحذف جميع الكائنات الموجودة بالغرفة. وعند الضغط عليه تظهر رسالة تسالك ان كنت متاكدا من حذف جميع الكائنات بالغرفة.
· الزر Shift: عند الضغط عليه تظهر نافذة صغيرة تسمح لك بادخال قيم مقاسة بالبيكسل تخص موضع جميع الكائنات بالغرفة؛ قم بادخال القيمة التي تريد ان تتغير على وفقها مكان الكائنات عموديا او افقيا، ويمكن ادخال قيمة سالبة لتحريك الكائنات الى اليسار او الاعلى على وفق الخانات Horizontal او Vertical.
· الزر Sort by X: وهو مفيد في ترتيب الكائنات التي تظهر فوق بعضها بعضا جزئيا وذلك على وفق موضعها الراسي بالنسبة لبعضها بعضا.
· الزر Sort by Y: وهو مفيد في ترتيب الكائنات التي تظهر فوق بعضها بعضا جزئيا وذلك على وفق موضعها العمودي بالنسبة لبعضها بعضا.
· ترتيب الكائنات فوق بعضها بعضا: قد تتواجد بعض الكانات فوق بعضها بعضا وقد تريد مثلا ان تجعل الكائن الذي يقع تحت الكائنات الاخرى تظهر فوق الجميع او العكس، لفعل ذلك قم بالضغط على المفتاح Ctrl من لوحة المفاتيح واضغط بالزر الايمن للفارة على الكائن؛ هذا سيجعل الكائن الذي يقع تحت جميع الكائنات الاخرى يظهر فوق الجميع. ولعمل عكس ذلك -اي جعل الكائن الذي يقع فوق الكائنات الاخرى يظهر تحت الجميع- قم باتباع نفس الطريقة ولكن باستخدام المفتاح Alt بدلا من المفتاح Ctrl.
· حذف الكائنات: لحذف كائن ما قم باختيار <delete> من قائمة اختيار الكائن ثم اضغط بالزر الايسر للفارة على الكائن الذي تريد حذفه او استمر بالضغط على الزر الايسر للفارة مع سحب المؤشر فوق جميع الكائنات التي تريد حذفها من الغرفة. ويمكن حذف الكائنات في اي وقت بدون اختيار <delete> من قائمة اختيار الكائن وذلك بالضغط بالزر الايمن للفارة على الكائن المراد حذفه او استمر بالضغط على الزر الايمن للفارة مع سحب المؤشر فوق جميع الكائنات التي تريد حذفها من الغرفة. ولحذف مجموعة من الكائنات التي تقع تحت بعضها بعضا قم بالضغط على المفتاح Shift من لوحة المفاتيح ثم اضغط بالزر الايمن للفارة على الكائن الذي يقع فوق جميع الكائنات الاخرى، ويمكن عمل ذلك ايضا باستخدام الزر الايسر للفارة بشرط اختيار <delete> من قائمة اختيار الكائن.
القسم settings:لكل غرفة مجموعة من الاعدادات تظهر عند الضغط على settings من نافذة خصائص الغرفة، كما في الشكل 7-4:

الشكل 7-4: القسم settings
· الخاصية Name: هنا تغير اسم الغرفة.
· الخاصية Caption for the room: هنا تكتب عنوان الغرفة، وسيظهر هذا العنوان اثناء تشغيل اللعبة.
· الخاصية Width: هنا تغير عرض الغرقة مقاسا بالبيكسل.
· الخاصية Height: هنا تغير طول الغرفة مقاسا بالبيكسل.
· الخاصية Speed: هنا تغير سرعة اللعبة مقاسا بالخطوة في الثانية، كلما زادت سرعة اللعبة كلما زادت نعومة الحركة لكن ذلك سيحتاج حاسوبا سريعا نوعا ما، تعتبر السرعة الافتراضية وهي 30 خطوة في الثانية مناسبة في معظم الحالات.
· الخاصية Snap X: هنا تغير عرض الخطوط الشبكية.
· الخاصية Snap Y: هنا تغير طول الخطوط الشبكية.
· الزر Show: عند الضغط عليه تظهر قائمة تحوي مجموعة من الامور التي يمكنك اظهارها او اخفاءها اثناء العمل في البرنامج، ان كان الامر ظاهرا فستظهر علامة صح بجوار الامر في القائمة، اما ان كان الامر مخفيا فلن تظهر علامة الصح، وهذه الاوامر هي كما يلي:
الامر Show Objects: يقوم باخفاء او اظهار الكائنات في الغرفة.
الامر Show Back Tiles: ليس له تاثير في الطور البسيط.
الامر Show Front Ties: ليس له تاثير في الطور البسيط.
الامر Show Backgrounds: يقوم باظهار او اخفاء الخلفيات.
الامر Show Foregrounds: يقوم باظهار او اخفاء الخلفيات الامامية.
الامر Show Views: ليس له تاثير في الطور البسيط.
الامر Show Grid: يقوم باظهار او اخفاء الخطوط الشبكية، ويمكن الوصول اليه بواسطة مفتاح الاختصار Ctrl+G بشرط ان تكون نافذة خصائص الغرفة هي الفعالة في البرنامج.
القسم backgrounds:لقد تعلمنا في الدروس السابقة كيفية اضافة الخلفيات وكيفية التعامل مع نافذة خصائص الخلفية. وسنتعلم هنا كيفية استخدام تلك الخلفيات في لعبتك، ويستخدم القسم backgrounds في نافذة خصائص الغرفة لوضع الخلفيات في الغرفة، كما في الشكل 7-5:

الشكل 7-5: القسم backgrounds
· الامر Draw background color: باختياره يقوم البرنامج برسم لون كخلفية.
· الخاصية Color: عند الضغط على المستطيل الذي بجواره، ستظهر قائمة تحوي مجموعة من الالوان تختار منها لونا للخلفية، هذه الخاصية لا فائدة منها ان قمت بتعطيل اختيار الامر Draw background color.
· قائمة الخلفيات: يمكن استخدام ثمانية خلفيات مختلفة في الغرفة الواحدة ومن هذه القائمة تختار رقم الخلفية التي تريد استخدامها.
· الامر Visible when room starts: يحدد ما اذا كانت الخلفية المختارة مرئية عند تحميل الغرفة.
· الامر Foreground image: يحدد ما ان كنت تريد استخدام الخلفية كخلفية امامية، الخلفية الامامية تظهر فوق جميع الكائنات في الغرفة ويمكن الاستفادة من هذا الامر عندما تكون الخلفية شفافة كما تعلمت في الدروس السابقة.
· اختيار الخلفية: لاختيار الخلفية اضغط على المربع الازرق الصغير لاظهار قائمة تحوي جميع الخلفيات التي اضفتها الى لعبتك.
· الامر Tile Hor.: باختياره يقوم البرنامج بوضع نفس الخلفية على اليمين اذا كان عرض الخلفية اصغر من عرض الغرفة، وهذا الامر مفيد عندما تكون الخلفية صغيرة في حجمها ومصممة بطريقة بحيث ان وضعت بقرب بعضها بعضا افقيا تبدو وكانها صورة واحدة.
· الامر Tile Vert.: باختياره يقوم البرنامج بوضع نفس الخلفية على الاسفل اذا كان طول الخلفية اصغر من طول الغرفة. وهذا الامر مفيد عندما تكون الخلفية صغيرة في حجمها ومصممة بطريقة بحيث ان وضعت بقرب بعضها بعضا عموديا تبدو وكانها صورة واحدة.
· الخاصية X: وهو متغير يحدد موضع الخلفية بالنسبة للمحور الافقي. قم بادخال قيمة مقاسة بالبيكسل لتغيير موضع الخلفية افقيا في الغرفة.
· الخاصية Y: وهو متغير يحدد موضع الخلفية بالنسبة للمحور العمودي. قم بادخال قيمة مقاسة بالبيكسل لتغيير موضع الخلفية عموديا في الغرفة.
· الخاصية Hor. Speed: من هنا تستطيع تحريك الخلفية افقيا، القيمة صفر تعني ان الخلفية ثابتة على الاقل افقيا، القيمة الموجبة تعني ان الخلفية تتحرك نحو اليمين، القيمة السالبة تعني ان الخلفية تتحرك نحو اليسار.
· الخاصية Vert. Speed: من هنا تستطيع تحريك الخلفية راسيا، القيمة صفر تعني ان الخلفية ثابتة على الاقل عموديا، القيمة الموجبة تعني ان الخلفية تتحرك نحو الاسفل، القيمة السالبة تعني ان الخلفية تتحرك نحو الاعلى. اذا زودت الخاصيتين Hor. Speed وVert. Speed معا بقيمة غير الصفر فان الخلفية ستتحرك بشكل قطري وهذا يجب ان يذكرك بما يسمى في علم الفيزياء بالمحصلة Resultant.
الزر OK:
يحفظ التغييرات ويغلق النافذة.
================================================== ====================================

الدرس الثامن
نافذة معلومات اللعبة:
اللعبة الجيدة تزود اللاعب بمعلومات حول كيفية ممارسة اللعبة، لذلك ياتي برنامج Game Maker مزودا بنافذة تستطيع من خلالها كتابة تلك المعلومات بكل سهولة ويسر. ويستطيع اللاعب اظهار هذه النافذة اثناء ممارسة اللعبة عن طريق الضغط على المفتاح F1 من لوحة المفاتيح ما لم تقم بتعطيل ذلك من خيارات اللعبة Game Options والذي سنتحدث عنها في الدروس القادمة. وتشبه هذه النافذة الى حد ما برنامج الدفتر الذي ياتي مع انظمة الويندوز المختلفة.
افضل طريقة لعرض هذه المعلومات هي تقسيمها الى فقرات او اجزاء وذلك كما يلي:
· الاتفاقية Agreement.
· هدف اللعبة Objective.
· ازرار التحكم Controls.
· معلومات حول المصمم About the Author.
ويمكن اضافة اقسام اخرى حسب الحاجة، ويفضل ان تكون المعلومات باللغة الانجليزية كونها اللغة التي يجيدها اغلب الناس. لفتح نافذة معلومات اللعبة قم بالنقر المزدوج على اسم او ايقونة معلومات اللعبة Game Information في نافذة الموارد، فتظهر نافذة كما في الشكل 8-1:

تم تصغير الصوره ,لمشاهدة الصوره بحجمها الأصلي أضغط هنا.


الشكل 8-1: نافذة معلومات اللعبة
تتكون هذه النافذة من شريط العنوان، القوائم، شريط الادوات، والمساحة المخصصة لكتابة المعلومات؛ سنناقش في هذا الدرس هذه الاقسام كل على حدة:
شريط العنوان Title Bar:
و هو الشريط الازرق الموجود في اعلى النافذة ويظهره فيه عنوان هذه النافذة.
القوائم Menus:
توجد ثلاثة قوائم في نافذة معلومات اللعبة وكل منها تحوي مجموعة من الاوامر التي تساعدك على تصميم لعبتك، فلنناقش كل هذه القوائم واوامرها المختلفة بالتفصيل:
· القائمة File:
الامر Load from a file: يقوم باظهار نافذة تستطيع من خلالها تحميل ملف بامتداد rtf وهذه الحروف هي اختصار للكلمات Rich Text Format. بعد تحميل الملف سيقوم البرنامج بنسخ جميع النصوص من ذلك الملف ولصقه في النافذة؛ في القسم المخصص لكتابة المعلومات، وذلك مع الحفاظ على نسق النصوص مثل سمك الخط، جحمه وغيره.
الامر Save to a file: يقوم باظهار نافذة تستطيع من خلالها تخزين النصوص الموجودة في النافذة الى ملف خارجي بامتداد rtf.
الامر Print: يستخدم هذا الامر لطباعة النصوص الموجودة في النافذة.
الامر Close saving changes: يقوم بحفظ التغيرات التي اجريتها على النصوص واغلاق النافذة.
· القائمة Edit:
الامر Undo: يقوم بحذف اخر تغيير قمت به في النصوص.
الامر Cut: يقص النص المختار وينسخه في حافظة ويندوز.
الامر Copy: ينسخ النص المختار الى حافظة ويندوز.
الامر Paste: يلصق النص المحفوظ في حافظة ويندوز في المكان الذي تحدده في القسم المخصص لكتابة المعلومات.
الامر Select all: يختار جميع النصوص الموجودة في النافذة.
الامر Goto line: يظهر نافذة تستطيع من خلالها الانتقال الى السطر الذي تريده في النصوص وذلك حسب رقم السطر.
· القائمة Format:
الامر Font: يظهر نافذة تستطيع من خلالها تغيير ما يلي:
- الخط المستخدم.
- سمك الخط وميله.
- حجم الخط.
- التاثيرات على الخط من حيث وجود خط عليه او عدم وجوده، وجود خط تحته او عدم وجوده، ولون الخط.
- نوع النص المستخدم من حيث اللغة.
الامر Italic: يجعل الخط مائلا.
الامر Underline: يضع خطا تحت النص.
الامر Text Color: يظهر نافذة تستطيع من خلالها تحديد لون النص.
الامر Background Color: يظهر نافذة تستطيع من خلالها تحديد لون الخلفية التي تظهر عليها النصوص.
الامر Mimic Main Form: عند اخيتار هذا الامر سيتم اظهار نافذة معلومات اللعبة اثناء تشغيل اللعبة بنفس حجم ومكان نافذة اللعبة نفسها، اما اذا كانت اللعبة تعمل في طور الشاشة الكاملة full-screen mode فان النافذة ستظهر مغطية الشاشة باكملها. من عيوب هذا لامر عدم قدرة اللاعب اغلاق النافذة والرجوع الى اللعبة الا بالضغط على الزر Esc من لوحة المفاتيح، لذلك يفضل في حالة استخدام هذا الامر ان تكتب ملاحظة في النافذة تخبر اللاعب بكيفية اغلاقها والعودة الى اللعبة.
الامر Align Left: يجعل الكتابة من اليسار الى اليمين.
الامر Align Center: يجعل الكتابة من الوسط.
الامر Align Right: يجعل الكتابة من اليمين الى الوسط.
الامر Bullet List: يظهر نقطة سوداء في بداية الجملة عند الانتقال الى سطر جديد عن طريق الضغط على Enter من لوحة المفاتيح.
شريط الادوات Toolbar:ويحوي هذا الشريط بعض الاوامر الموجودة في القوائم التي ذكرناها ولكن وجودها يسهل عملية الوصول الى الاوامر خاصة الكثيرة الاستخدام منها.
المساحة المخصصة لكتابة المعلومات:
هنا تكتب المعلومات التي تريد للاعب عن يعرفها حول لعبتك، وتظهر هذه المعلومات على شكل نصوص تقوم بكتابتها عن طريق لوحة المفاتيح.


وانتها الشرح و ارجو ان ينال اعجابكم وارجو التثبيت

كيف تصنع الألعاب؟


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



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

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

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


ماذا بعد؟
Posted Image
نسخة Breakout يطلق عليها Manic Ball


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

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

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

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


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

لمِّع...شذب...إصقِل...

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


ولكن...هذه ألعاب تافهة!

في حقيقة الأمر, هذه الألعاب تبين الأسس المبنية عليها جميع الألعاب. ضع واجهة مجسمة للعبة شوتر ( Shooter ) وستبقى لعبة شوتر. تستطيع دائماً أن تصنع نفس اللعبة ولكن ثنائية الأبعاد مع تصوير من الأعلى. المهم أن شيفرة البرنامج الخاصة باللعب ستبقى نفسها.
هل من الغباء صنع لعبة تمتلك نظام تحكم مشابه تماماً, الإستجابة, الأعداء كما في كويك؟ إذا رفعت الواجهة الثلاثية الأبعاد ونظرت للعبة من الأعلى, هل لا يزال صنع مثل هذه اللعبة مستحيل جداً؟
مع ذلك, ليس هذا مشروع بداية أبداً. هنالك عناصر كثيرة يجب تطويرها وتحسينها لمشروع أول, لذلك فإني أشجع بقوة على إتّباع الترتيب الذي إقترحته لكي تبني قدراتك تدريجياً في فهم تطوير الألعاب. ( عندما تعلمت السباحة, هل بدأت مباشرةً السباحة في أعمق مياه موجودة؟ لا! بل يجب عليك البدء في مياه غير عميقة -ضحلة- حيث تتعلم أولاً كيف تطوف على سطح الماء, ثم تتقدم من هناك تدريجياً).
شئ واحد تحتاج أن توضحه إلى نفسك قبل أن تبدأ بأي شئ, ما الذي تريد من هذا كله؟ هل تريد أن تصنع ألعاباً, أو إنك ترغب في مجرد نسخ التقنية الموجودة في لعبتك المفضّلة؟ إذا كان كل ما تريده هو تقليد التقنية الموجودة, تجاهل كل ماقلته في ما سبق وإبدأ بتقنية الرسوميات.
Posted Image
Gauntlet


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

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

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



ومن ناحية ثانية, هنالك أكثر من مجرد ميزانيات متعددة الملايين لكي تستطيع العيش من ما تعود عليك به برمجة الألعاب, أنا أشجعك بقوة أن تلقي نظرة على أشياء أخرى. ليس هنالك سبب واحد للخجل من صنع ألعاب منخفضة الكلفة, فمن الممكن ببساطة أن نكون هذه الألعاب ممتعة بقدر أو حتى أكثر من الألعاب التجارية العالية الكلفة, كما إن من الأسهل كثيراً الحصول على ناشر يثق بك و يأتمنك بمبالغ صغيرة نسبياً, وفوق ذلك, ليس هنالك حاجة لكي تمضي سنيناً وأنت تعمل على نفس المنتج, أما إذا لم تستطع القيام بالأمر, لن تحس بخسارة كبيرة.
يجب أن تمتلك الفهم الكافي لما تريده بالضبط من تطوير الألعاب ثم إعمل كل ما إستطعت عمله لتحقيق ذلك.

---------------------------------------------------------
المقالة المترجمة في موقعي الشخصي
المقالة الأصلية باللغة الإنكليزي
إقرأ المزيد على مدونة كن داعيا