سلسلة دروس 3D Game Studio :: الدرس الأول
بسم الله الرحمن الرحيم
السلام عليكم
نبدأ بسلسلة دروس 3D Game Studio ...
بإسم الله
كبداية أنضر لهذا الموضوع كإستعراض أولي للبرنامج
http://www.montada.com/showthread.php?&threadid=222371
وطبعاً وبلا شك هذا البرنامج يعد حلم كل هاو لبرمجة وتصميم الألعاب
فهو برنامج ثري دي شامل لجميع أنواع الألعاب
ويتكون البرنامج من ثلاث برامج مرتبطة ببعضها
ووضيفة هذا الموضوع هو فهم كيفية العمل وانتاج الألعاب على هذا البرنامج
أما الدرس القادم فسيدخل في صلب أحد عناصر البرنامج مباشرة
حسناً النسخة التي سنعمل عليها هي A5 ... وتجدها في KAZAA مع الكراك جاهزة ... وهي النسخة الإحترافيه (أفضل النسخات)
عموماً إن لم تستطع تحميلها حمل النسخة A6 الجديدة التي موجودة في الموقع : http://www.conitec.net/a4info.htm
من المفترض أن أقوم بعرض مميزات البرنامج ولكني لن أفعل ولسبب بسيط / أغلب هذه المميزات لن تفهمها :-)
لن نضيع الوقت هذه إساسيات البرنامج
_____________________________________
الدرس الأول : نظرة أولية حول 3D Game Studio
يملتك هذا البرنامج ثلاثة برامج :
1- World Editor : البرنامج الرئيسي
مصمم العوالم هو الجزء المحبب لي في الحزمة فهو بسيط وممتع جداً
والطريقة بين الربط بين مصمم العوالم و الكود رائعة جداً ولكي نفهم كيف يتم الربط :
أولاً لنفهم كيف يتم إنتاج الألعاب به ؟
لنفرض أنك رسمت قصر في "مصمم العوالم" (قصر جامد لا يتحرك)
تستطيع ضغط على Built (وتفعيل الخيار Fly throught) التحرك بالكمرا وكأنها لعبة ) - فقط للمشاهدة لا أكثر
ولكن هذا لن يصنع لعبة أبداً فهذه مجرد كائنات تعتبر جامدة (أي لا تتفاعل مع بعضها أبداً )
هنا نحتاج إلى الكود الذي سيخبرنا كيف ستكون اللعبة وكيف ستتصرف الكائنات مع بعضها
طبعاً بما أن الرسم سهل فسيكون أغلب الدروس مركزة على الكود (السكربت )
2- Model Editor : لقد فهمت من خطة الشركة أنها تنوي جعل 3D Game Studio البرنامج الشامل ولهذا قامت بتضمين هذا البرنامج كخطوة ذكية منها
وضيفة هذا البرنامج هو إنشاء الشخصيات (أي شيء يتحرك يسمى شخصية) للعمل على منصة البرنامج الرئيسي
3- Script Editor : كاتب السكربت
- كما قلت مسبقاً : خطوة ذكية أخرى من الشركة
تستطيع إستخدام NotePad لكتابة السكربت وهذا البرنامج فقط من أجل الراحة وسرعة العمل
( تستطيع تحميله من موقع الشركة اذا كنت تستخدم A5 ... أما A6 فهو مدمج معه )
.............. والآن بعد تعريف البرنامج لنلقي نضره عليه
http://arabvbgames.jeeran.com/3dgamestudio1.JPG
تعريفات وإختصارات بسيطة :
برنامج WED هو World Editor
برنامج MED هو Model Editor
ملف WDL هو السكربت
والآن إفتح WED ثم إختر File ثم Open ثم إنتقل إلى الدليل Work وإفتح الملف المسمى "office"
أصحاب A6 لن تجدوا هذا الملف ... إفتحوا الملف المسمى "techdemo"
الدروس ستفترض النسخة هي A5 :: لذا من الأفضل تحميل النسخة A5 pro
والآن وبعد تشغيل الملفات ...إختر Build ثم أزل علامة الصح أما Fly Thr وأختر موافق
وبعد الإنتهاء أختر Run
أنضر إلى قوة 3D Game Studio
جرب واضغط على أزرار الكيبورد جميعها وشاهد النتائج المبهرة (أهم زر هو F7 للانتقال من 1st إلى 3rd Person View )
وإستخدم الماوس الGame Pad فجميعها مدعومة
... قد تستأل لمذا Build ثم Run
Built : يجب أن تختارها إذا عدلت على الWED او إخترت Action او انتقلت من مشروع لآخر ... وهي تقوم بتحديث قاعدة بيانات العالم ... ولا تربطه مع السكربت
Run : لربط العالم مع الMDL ( السكربت) وتشغيل اللعبة
قد تتسائل كيف يتم تفاعل وتحريك الكائن وما أدراه عن الكائن الذي يجب تحريك وكيف يتحرك ...إلخ
هذا لأنك لم تفهم طريقة البرنامج إلى الآن
أولاً الشخصيات MDL تكون معدة للتحريك والبرنامج فقط يحدد إسم الحركة فقط
ولكن أين الجزء من البرنامج الذي يحدد الحركة ؟؟ هذا هو السؤال الرئيسي
هنالك شيئين :
ال Actions : وهي تحدد تصرف الكائن في اللعبة ... وهنالك الكود نفسه ولكي تراه
أختر file ثم Map properties ثم إنتقل إلى Script واختر icon المجلد (Open) وسعرض بعض الملفات من نوع WDL ...أفتح الملف Office.WDL ... وسيعرض نافذة إختيار البرنامج ...إختر Note Pad
وسترى الScript ... هذه هي اللعبة ... من النضرة الأولى ستبدو معقدة جداً جداً جداً جداً ... وهذا طبيعي (مع أنها سكربت فكيف بلغة برمجة ؟! )
عموماً تفحص السكربت قليلاً ولن تفهم شيء ستفهم فقط أشياء بسيطة وربما لن تفهم شيء
لا تقلق فمهمتنا هنا شرح كيفية كتابة مثل هذا السكربت
ولن نفترض أنك :
1- مبرمج
2- كبير في السن ولك خبرات في الرياضيات
3- ذكي وفاهم في الثري دي
لن أفترض شيء وسأبداً بلغة أكثر من بسيطة ومن الصفر في جميع المراحل
أدعوا لي بالتوفيق :-)
سلسلة دروس 3D Game Studio : الدرس الثاني
بسم الله الرحمن الرحيم
السلام عليكم
الدرس الثاني : البنية الأساسية للبرمجة الكائنية
عنوان الدرس ليس مطلع قصيدة ...ستفهم معناه لاحقاً وأعني لاحقاً :)
وكما قلنا سابقاً نحن لا نفترض إلمامك بأي شيء (تذكر هذا )
(1) مقدمة عن C - SCript :
أولاً ماهي لغة برمجة ؟
وأنت تتصفح هذا الدرس اضغط على (عرض-> المصدر)
أو (Source <- View ) .... هذه هي البرمجة
كل ما أمامك هو لغة برمجة ... استرح قليلاً وتخيل كيف تم برمجة ما أمامك !
هل هذا هو ناتج 01 ... هل هذا معقوووول !!!!
0 : لا إشارة
1 : إشارة
نعم لأن البرمجة كائنية ولو هي إجرائية (فلسفة من عندي)
أنا لا أقصد لغة بحد ذاتها ولا كن أقصد تراكب اللغات
فمن 01 ومن الدوائر الإلكترونية #### حتى توصلنا إلى السكربت
فمالمراحل التي في #### ......... اتركها لك
عموماً
C - SCript مشتقة من ++C بشكل كامل تقريباً مع المزيد من التسهيلات
يعني المواضيع (الغثيثة) في السي ماهي موجودة هنا
ورأيي الشخصي أن كنا نعتبر HTML لغة فـ S-Script لغة من باب أولى
وتشابه الجافا مع السي أتى من صالحهم ( من صالح من تعلم الجافا وأتى لل C - Script )
وفائدة السكربت هو أنه يختصر أوااااامر كثيرة ويسهل العمل بشكل سرييع وبيسط جداً
وهنالك طريقتين (بالطبع بعد تعلم السكربت ) لتطوير قدراتك فيه :
1- انضر إلى السكربتات الجاهزة وحررها (بعد فهم ..المهم الفهم ) .. هذه الطريقة تجلعك مرن جداً مع السكربت
2- عندما أعرض مثال أو تطبيق حاول الإضافة من عندك حتى تصل إلى أكبر قدر من الفهم
تذكر ## قيل لمخترع الإضاءة :: أنت فشلت في عمل الإضاءة 99 مره
فقال :: لا ولكني إكتشفت 99 طريقة خاطئة في عمل الإضاءة
بالطبع تعرفون (من الدرس الأول) فائدة السكربت وطريقة عمل اللعبة
فلن أضيع المزيد من الوقت في هذا
__________________________________
(2) مدخلك إلى C - SCript :
أن كنت مبرمج ++C او جافا فستعشق هذا الفصل
## أعيد وأكرر الدروس على برنامج A5 ##
إفتح برنامج WAD
إختر File ثم Open ..ثم إلنتقل إلى المجلد Work ثم إفتح Office
الآن إختر Build وستنبثق مربع :: أزل علامة الصح أمام Fly - Thru وانقر على OK
الأن أنت بنيت المرحلة .... بقي ربطها مع السكربت
أختر Run ليتم الربط ...
وبعد أن تشتغل العبة ... من الكيبورد اضغط على زر TAP
سيخرج سطر في الأسفل وهو سطر التعليمات
أكتب فيه
كود:
time_factor = 5 ; //dauble the speed of everythings 5 times
http://arabvbgames.jeeran.com/3dgsless1.JPG
الكلام بعد // لمجرد الشرح ولن يؤثر في شيء
كتبته أو لم تكتبة فلن يقرأه البرنامج طالما أنه مسبوق بـ //
المهم هو time_factor = 5 ;
لن أخبرك بالنتيجة شاهدها بنفسك
هذا فقط لكي نقطة أخرى من مزايا 3D Game Studio
ولكي ترى حقيقة تعامل البرنامج مع التعليمات المرسلة له
بالطبع ستكتب أكوادك قبل اللعبة
وهذا ما سنفعله الآن :
إفتح WED واختر New ثم قم بعمل Save As الملف بإسم Tot1
أختر File ثم MAP properties ثم New
http://arabvbgames.jeeran.com/3dgsless2.JPG
لقد حفظ ملف بإسم Tot1.wdl ... فما هذا الملف
لو تذكر من الدرس الأول أن الاحقة wdl تدل على أنه ملف سكربت ... هذا صحيح
الآن إفتح هذا الملف ولو طلب منك إختيار برنامج لفتحه إختر NotePad
ستشاهد الكود الأولي
3D Game Studio يقوم بإنشاء كود إفتراضي لإراحتك من الروتين
ثم تقوم بتعدليها إلى الكود المطلوب
ستشاهد شيئاً كالآتي :
كود:
///////////////////////////////////////////////////////////////////////////////////
// Office test level
///////////////////////////////////////////////////////////////////////////////////
path "..\\template"; // Template path
include <movement.wdl>;
include <messages.wdl>;
include <doors.wdl>;
...
/////////////////////////////////////////////////////////////////////////////////////////////////////
// After starting the engine the MAIN-function will execute. To laod a level
// you must run a level_load instruction inside.
function main()
{
...
سأقوم بالشرح (وليس من المفترض أن تفهم من أول مره)
وليس المطلوب هنا الفهم أساساً ... فلم نبدأ حتى الآن في شيء
ولكن لكي تطمأن أن ما يكتب هنا ليس مجرد طلامس × طلامس
على كل حال :
كما قلنا كل ما بعد ( // ) لن يقرأه في البرنامج فهو لمجرد شرح الأوامر المكتوبة
كود:
path "..\\template"; // Template path
يمتلك البرنامج ملفات من أصوات وصور وWDLs وهي داخل المجلد Template وهذا موقعه بكشل افتراضي على القرص الصلب
ولو شغلت اللعبة لوجدت أصوات ....إلخ فاللعبة تأخذها من المجلد Template .. فكيف عرف البرنامج موقعها
عرفها من
كود:
path "..\\template"; // Template path
فال الأمر Path يحدد مجلد المصادر (المجلد الذي يوجد فيها ملفات اللعبة )
ولكن ما معنى ( path "..\\template"; ) ؟
مجلد Template
هذا موقعه بكشل افتراضي على القرص الصلب
كود:
C:\Program Files\GStudio\template
وأما موقع المثال هو :
كود:
C:\Program Files\GStudio\work
وتلاحظ أن كلاهما يقعون داخل GStudio ولاكن في تفرعات مختلفه
ولقد قلنا للعبة أن مسار مجلد المصادر هو :
أخرج عن المجلد الحالي إلى المجلد الأصلي ...قلناها في ".."
فأصبح المسار حتى هذه اللحظة :
كود:
C:\Program Files\GStudio
أدخل على المجلد Template ..قلناها في "template\\"
فأصبح المسار
كود:
C:\Program Files\GStudio\template
....... أرجوا أن أكون وضحت المعنى !
أما
كود:
include <movement.wdl>;
include <messages.wdl>;
include <doors.wdl>;
فهي ملفات Wdls أيظاً وعندما قلت include فكأنك كتبت محتواها تماماً في Wdl الخاص بلعبتك
وفائدتها أنها تحتوي على إجراءات ودوال جاهزة للإستخدام ...تختصر الكثير من الوقت وتقدم العديد من المزايا (في الواقع ألعابك تعتمد عليها )
وأما
عندما يتم تشغيل اللعبة يقرأ البرنامج هذه الدالة مباشرة ... اما الدوال الأخرى لا يقرأها إلا عندما تقول له ذلك
إلعب بالمثال والأرقام حتى تفهم ما معنى برمجة أو على الأقل سكربت
## لست مطالب بفهم شيء من السكربت حتى الآن
الآن أنت معد لتخطو أول خطواتك في تعلم السكربت
في الدرس القادم سنتحدث عن كيفية كتابة أوامرك الخاصة بلغة C - Script
إدعولي التوفيق :)