الشبكة العربية لمطوري الألعاب

خبير مدير همام البهنسي مشاركة 1

السلام عليكم...

جميعنا أصبح يدرك مدى أهمية وجود بيئة برمجية للـ scripting في أي برنامج 3D عصري، فكم هي كمية العمل التي توفرها علينا أدوات بسيطة تم تطويرها بوقت قصير ضمن بيئات الـ scripting المتوفرة في برنامج الـ 3D دون الحاجة للجوء لبيئات برمجية متخصصة. وإذا أخذنا عمل الرسوميات في مجال صناعة الألعاب نجده من أكثر المجالات اعتماداً على آلية العمل هذه لكونه يساعد في أتمتة الكثير من المهمات التقنية المطلوبة لتجهيز المصادر الرسومية للعبة (مثل الكشف عن المضلعات التي تسبب مشاكل في الرسم ضمن محرك اللعبة).

انطلاقاً من هذه الضرورة، ونظراً لندرة التعرض لمثل هذا المشروع في المواقع العربية بشكل عام، إضافة لتمركز العديد من الخبارت البرمجية (التي نفتخر بها 😄 ) في هذه الشبكة التي يمنكها المساعدة بسبب الطبيعة البرمجية لأساس المسألة، أود البدء باقتراح مشروع للتعلم وتطبيق الـ scripting في المايا والـ XSI على سبيل المثال.

تتلخص الفكرة العامة للمشروع في العمل على عدة مراحل بحيث تسهل التعرف على هذا المجال حتى بالنسبة للمستخدمين الجدد:
- المرحلة الأولى تبدأ بالتعرف على آليات scripting من خلال تحليل أدوات متوفرة ذات وظيفة واضحة.
- الخطوة الثانية نقد الكود ومحاولة تحسينه إن أمكن.
- الخطوة الأخيرة هي إعادة كتابة الـ script مرة أخرى ضمن برنامج آخر غير البرنامج الذي كتب له الـ script الأساسي.

للبدء بتنفيذ المشروع، تطلب المرحلة الأولى اقتراح script مناسب يكون مسموح إعادة تطويره للعمل في برنامج. للحصول على مثل هذه الأدوات، توفر In|Framez لهذا المشروع مكتبة من الأدوات الجاهزة التي تم تطويرها للـ XSI بواسطة عدد من لغات الـ scripting المختلفة مثل: Jscriptوالـ VBScript والتي يمكننا استخدامها وإعادة كتابتها لأغراض تعليمية ضمن الشبكة.

الرابط التالي لمكتبة الأدوات:
http://netview.inframez.com
جميع هذه الأدوات تحوي شرح لوظيفة الـ script وآلية عمله إضافة لبعض التفاصيل البرمجية العامة.

في حال تم اختيار أحد الأدوات من مكتبة In|Framez المكتوبة للـ XSI ستكون الخطوة الأخيرة هي إعادة تطوير الـ script واختباره في المايا على سبيل المثال. هذه الخطوة قد تكون هي الأصعب لكوننا سنكون بحاجة لكتابة الكود من الصفر ولكن تحليل الـ script في المراحل السابقة يساعدنا كثيراً في هذه المرحلة.

بشكل عام هذا المشروع يساعدنا في التعرف على آليات التطوير في برامج الـ 3Dبشكل عام بمعزل عن لغة الـ scripting أو عن البرنامج بفضل عملية الـ porting أو النقل من برنامج إلى آخر.

هذا المشروع ليس موجه فقط لمستخدمي برامج الـ 3D فقط وإنما يشمل المطورين المهتمين بالتعرف على إحدى الطرق السهلة والمباشرة للتطوير ضمن برامج الرسوميات الشهيرة.

بانتظار تعليقاتكم وآراؤكم حول فكرة المشروع للتقدم في تفاصيله بإذن الله.

شكراً...

خبير  أحمد عزالدين مشاركة 2

السلام عليكم

في البداية اشكر الشبكة العربية علي المبادرات المتتالية للمساعدة ونشر العلم 😄

بالرغم من انني اعتبر نفسي لست مؤهلا للتحدث حول مواضيع برامج الرسوميات (ربما بسبب معرفتي القليلة جدا في هذه البرامج)
الا انني انوي بصراحة واتمني ان اتعلم في هذه البرامج اي شئ يفيد في الجانب البرمجي
وعلي حسب ما فهمت فان هذه ال scripts تمكن المطورين والمستخدمين من كتابة خورازميات رسومية بلغة بسيطة لتسهيل اداء الكثير من المهام
وفكرت بصراحة في امكانية توسيع الفكرة بمحاولة اضافة جزء برمجي ايضا بتطوير plug-in مثلا ليساعد المبرمجين علي اداء المهام التقليدية لنا كمبرمجين
بالاستفادة من خوازرميات ال scripting التي سيتم تعلمها وتطويرها

يعني يكون هناك مجموعة مسؤلة عن تطوير خوارزميات scripting لاداء مهام كثيرة ولكن بمحاولة التركيز علي المهام التي تفيد المطورين
ومن ثم يكون فريق اخر يقوم بتطوير plug-in لتساعد المطورين علي الاستفادة من خوازرميات ال scripting لاداء المهام التقليدية
اتمني الا اكون خرجت خارج الموضوع وذلك لعدم فهمي الكامل به ولكن هذه فكرة خطرت ببالي لا اكثر 😒

لكن بصراحة اعتقد ان المشروع فكرة ممتازة لنا لنتعرف (علي الاقل) علي استخدام مثل هذه الامور في برامج الجرافيك لتسهيل الامور
وايضا لتعلم خوارزميات رسومية مثلا بمعالجة مجسم حاد الاطراف وجعله مدور الاطرف وافكار مثل هذه والمذكورة في الصفحة الادوات المذكورة اعلاه.

بصراحة لدي بعض التساؤلات فقط حول مدة المشروع المتوقعة واتمني لو هناك ايضا شرح اكثر تفصيلا حول دور المطورين في هذا المشروع
واعتذر عن الاطالة وبالتوفيق ان شاء الله للجميع 😄

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري

خبير مدير همام البهنسي مشاركة 3

أشكرك على مداخلتك التي نبهتني لتوضيح بعض النقاط الغامضة في المشروع.


وفي 21 فبراير 2009 04:50 ص، ظهر شبح ابتسامة على وجه ahmed ezz وهو يقول:

وعلي حسب ما فهمت فان هذه ال scripts تمكن المطورين والمستخدمين من كتابة خورازميات رسومية بلغة بسيطة لتسهيل اداء الكثير من المهام
وفكرت بصراحة في امكانية توسيع الفكرة بمحاولة اضافة جزء برمجي ايضا بتطوير plug-in مثلا ليساعد المبرمجين علي اداء المهام التقليدية لنا كمبرمجين
بالاستفادة من خوازرميات ال scripting التي سيتم تعلمها وتطويرها

فعلياً استخدام لغات الـ scripting المتوفرة في برامج الـ 3D لا تختلف كثيراً من حيث المبدأ عن كتابة plug-ins باستخدام لغات البرمجة المتخصصة مثل الـ C/C++ وغيرها. ففي كلا الحالتين أنت بحاجة لفهم والتعامل الـ Software Development Kit (SDK الخاصة ببرنامج الـ 3D للتمكن من تطوير أدواتك سواءً بواسطة الـ C++ أو أي لغة scripting، وبصراحة هذا هو ما نطمح له من خلال هذا المشروع.

ولتسهيل وتبسيط الأمور كان اقتراح البدء بتطوير الأدوات من خلال لغات scripting بدل من الـ C++ نقطة هامة للجميع، بحيث يتمكن المصممون الجدد على مجال البرمجة إضافة للمبرمجون الجدد على برامج الرسوميات من المشاركة بدون الخوض بتفاصيل تقنية قد تكون مربكة بالبداية بسبب طبيعة الـ C++ API.

وكما يعلم الجميع عن لغات الـ scriptingكيف تتميز بكونها لا تحتاج الى ترجمة أو إلى IDE خاص، حيث يمكنك بكل بساطة فتح نافذة الـ script editor في برنامج الـ 3D والبدء بالبرمجة والتنفيذ مباشرة.

حالياً بالنسبة لهذا المشروع، سيتم التعامل مع برنامجين من برامج الـ 3D هم:
Softimage|XSI والذي يدعم لغات الـ scripting التالية:
VBScript, Jscript, Python, Perl
المايا والذي يدعم:
MEL, Python

بالطبع الجميع بحاجة للحصول على نسخة من البرنامجين والتي يمكن الحصول عليها بشكل مباشر من الموقع الرسمي للشركة:
للـ XSI:
http://www.softimage.com/downloads/XSI_Mod_Tool/default.aspx
للمايا:
http://usa.autodesk.com/adsk/servlet/mform?siteID=123112&id=12035483




أما في 21 فبراير 2009 04:50 ص، فقد تنهد ahmed ezz بارتياح وهو يرد:

بصراحة لدي بعض التساؤلات فقط حول مدة المشروع المتوقعة واتمني لو هناك ايضا شرح اكثر تفصيلا حول دور المطورين في هذا المشروع
واعتذر عن الاطالة وبالتوفيق ان شاء الله للجميع 😄

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

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

وبانتظار أي اقتراحات جديدة تساعد في تطوير فكرة المشروع.

خبير مدير همام البهنسي مشاركة 4

يمكنكم متابعة المشاركة التالية لمتابعة مثال على آلية العمل في المشروع...
http://www.agdn-online.com/communities.aspx?view=posts&threadid=529
 
بالتوفيق...

مبتدئ  NubiaPrince مشاركة 5

السلام عليكم


انا تخصصي في مجال الـCG Design فقط لكن حابب أحدث مستواي إن شاء الله بدراسة الـScripting


ففكرت أتعلم Python لانها مدعومة في Maya & SoftImage اللي بشتغل أصلاً بيهم الحمد لله

لكن وجدت فرصة في الأكاديمية العربية في مدينتي لكورسات في الـC/C++

فأي منهم تراه الأنسب لي بما إني لا أريد التعمق في البرمجة و لكن فقط لرفع أداء عملي و تسريعه و تحسين بعض الممؤثرات و الـAnimation فقط

إن شاء الله

؟؟؟

" و أتقوا الله و يعلمكم الله "

صدق الله العظيم

Ahmed Ossama
IT Specialist, Jr. CG Designer

خبير مدير همام البهنسي مشاركة 6

أهلاً بك أخي الكريم...
 

وفي 12 مارس 2009 08:06 ص، ظهر شبح ابتسامة على وجه NubiaPrince وهو يقول:

ففكرت أتعلم Python لانها مدعومة في Maya & SoftImage اللي بشتغل أصلاً بيهم الحمد لله
 
تعلم الـ Python كلغة للـ Scritping في برامج الـ 3D أعتقد أنه قرار استراتيجي للمدى البعيد، لأنك بهذه الطريقة تتعلم لغة برمجة واحدة وتستخدمها في برنامجين أو حتى أكثر (هناك برامج أخرى بدأت تدعم الـ Python غير Softimage والمايا). ولكن بصراحة لا أظن أن لغة البرمجة بحد ذاتها هي المشكلة الأكبر، فنحن عندما نتكلم عن تطوير plug-ins او scripts لتسريع أو أتمتة العمل عادة يكون الأمر الأهم الذي نواجهه وعلينا تعلمه هو الـ SDK الخاصة بالبرنامج. أما لغة البرمجة نفسها فغالباً لن توجهك أي صعوبات أو تحديات حتى ولو برمجت بعدة لغات مختلفة مثل: MEL او JScript أو غيرها.
 
لذلك بالنسبة للمشروع الجماعي هنا، لم يتم التركيز كثيراً على ماهي لغة البرمجة التي سنتسخدمها، وإنما تم التركيز على التعرف على معمارية الـ SDK في كل من المايا والـ Softimage. وكان اقتراح الـ MEL للمايا نظراً لكون النسبة الأكبر من الأدوات المكتوبة للمايا تم تطويرها بالـ MEL، وكذلك الأمر بالنسبة للـ JScript في الـ Softimage.
 
يمكنك القاء نظرة على مئات الأدوات المكتوبة للمايا بالـ MEL في موقع: Highend3D.
http://highend3d.com
 
هذا الموقع يحوي كمية هائلة من الأدوات للمايا التي أتمنى أن نتمكن من خلال هذا المشروع تشجيع المطورين على تطوير أدوات تنافسها بالنوعية والكمية بإذن الله.


أما في 12 مارس 2009 08:06 ص، فقد تنهد NubiaPrince بارتياح وهو يرد:

لكن وجدت فرصة في الأكاديمية العربية في مدينتي لكورسات في الـC/C++

فأي منهم تراه الأنسب لي بما إني لا أريد التعمق في البرمجة و لكن فقط لرفع أداء عملي و تسريعه و تحسين بعض الممؤثرات و الـAnimation فقط

عندما تذكر أنك لا تريد التعمق في البرمجة فبالتأكيد لن يكون خيار الـ C/C++ هو الأفضل في مثل هذه الحالة. ولكن بالطبع إذا كان لديك الوقت والفرصة المناسبة لتعلمها فلا تتردد، فالعلم من وجهة نظري الشيء الوحيد الذي يجب على الإنسان أن يتعامل معه بطمع وجشع ويستغل أي فرصة يتاح له فيها اكتساب المزيد منه 😒
 
وعلى كل حال أهلاً وسهلاً بك مرة أخرى وأتمنى أن تستفيد معنا في هذا المشروع الجماعي لتعلم الـ scripting والذي أعتذر عن التقصير في متابعته بشكل مستمر بسبب ضيق الوقت، لذلك أتمنى من من لديه الخبرة في هذا المجال (وخصوصاً من المبرمجين) المساهمة في متابعة المشروع 😳 .
 
بالتوفيق...

مبتدئ  NubiaPrince مشاركة 7

بارك الله فيك أخ همام 😄


و شكراً علي التوضيح جزاك الله خيراً


و اما عن الورشة أظن بعد إلقاء نظرة عليها و أظن الأعضاء علي علم بمشغولياتك ماحد شايف إن حضرتك مقصر فيها و بإّن الله

ربنا يممها بنجاح قريب إن شاء الله


وفقكم الله لما يحبه و يرضاه

" و أتقوا الله و يعلمكم الله "

صدق الله العظيم

Ahmed Ossama
IT Specialist, Jr. CG Designer

موهوب  أسامة ديب مشاركة 8

شاكر لك أخي همام على هذا الموضوع الشيق ... وأتمنى أن أدخل فيه ..

مع العلم إنني أستخدم برنامج الماكس .. ولي خبرة برمجية سابقة .. فأتمنى أن أحاول تطبيق الكود ليصبح على 3 برامج بدلاً من 2 .. ألا وهم XSI and Maya and 3Ds max  .

ولك سؤالي هنا ... هل يمكن فعلاً الإستفادة من المكتبة التي ذكرتها في هذا اللينك : http://netview.inframez.com/ ؟

بمعنى أنه يتوجب علي معرفة ال SDK الخاص ببرنامج الماكس لأتمكن مت ترجمة الأكواد من VBscript للماكس سكريبت ... هل هذا صحيح ؟

وتقبل فائق إحترامي .

www.OsamaDeep.com
3D Artist / Game Developer

Game Tester

محترف مشرف عبد اللطيف حاجي علي مشاركة 9

في 29 آذار 2009 11:43 ص، عقد Osama Deep حاجبيه بتفكير وقال:

بمعنى أنه يتوجب علي معرفة ال SDK الخاص ببرنامج الماكس لأتمكن مت ترجمة الأكواد من VBscript للماكس سكريبت ... هل هذا صحيح ؟
بالتأكيد. كما يتوجب معرفة الـ SDK الخاصة ببرنامج XSI حتى تستطيع معرفة المقابل لها في MaxScript.
وهذا هو الهدف الأساسي من هذا المشروع ☺ .


وفي 29 آذار 2009 11:43 ص، قال Osama Deep متحمساً:

ولك سؤالي هنا ... هل يمكن فعلاً الإستفادة من المكتبة التي ذكرتها في هذا اللينك : http://netview.inframez.com/ ؟
للدفة فإن ما تشير له ليس مكتبة بالمعنى الحرفي للكلمة 😒 . أي أنها ليست معدّة لتستفيد منها في كتابة برامجك (وإن كنت تستطيع ذلك بالتأكيد)
http://netview.inframez.com يحوي مجموعة تطبيفات و scripts ذات وظائف *محددة* لتنفذيها على XSI.

عبد اللطيف حاجي علي
مبرمج
In|Framez

خبير مدير همام البهنسي مشاركة 10

وفي 29 مارس 2009 04:43 ص، قال Osama Deep متحمساً:

مع العلم إنني أستخدم برنامج الماكس .. ولي خبرة برمجية سابقة .. فأتمنى أن أحاول تطبيق الكود ليصبح على 3 برامج بدلاً من 2 .. ألا وهم XSI and Maya and 3Ds max

فكرة رائعة أخي أسامة أن تتم إضافة الـ 3Ds MAX لهذا المشروع. هذا بالتأكيد يساهم في إغناء المشروع وزيادة شريحة المشاركين وخصوصاً من مستخدمي الـ 3Ds MAX أو من من يرغب في تعلمه.
 

وفي 29 مارس 2009 05:44 ص، ظهر شبح ابتسامة على وجه عبد اللطيف حاجي علي وهو يقول:

بمعنى أنه يتوجب علي معرفة ال SDK الخاص ببرنامج الماكس لأتمكن مت ترجمة الأكواد من VBscript للماكس سكريبت ... هل هذا صحيح ؟بالتأكيد. كما يتوجب معرفة الـ SDK الخاصة ببرنامج XSI حتى تستطيع معرفة المقابل لها في MaxScript.
وهذا هو الهدف الأساسي من هذا المشروع ☺ .

كما ذكر عبداللطيف، بالبدء انت بحاجة للتعرف على الـ XSI SDK لتتمكن من تحليل الأدوات التي تعجبك في netview.inframez.com ونقلها بعد ذلك للماكس بواسطة الـ MAXScript، حالياً يمكنك البدء معنا في المرحلة الأولى للتعرف على الـ XSI SDK من خلال المشاركة التالية: 
http://www.agdn-online.com/communities.aspx?view=posts&threadid=558
 
لحسن الحظ مازالت المرحلة الأولى في بداياتها، وأعتقد أنه من الممكن البدء بمقابلة المفاهيم البرمجية التي تم التعرض لها بالنسبة للـ Softimage|SDK بمثيلاتها في الماكس.
 
شكراً لاقتراحك مرة أخرى 😄