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

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

السلام عليكم،

لقد أنهيت ولله الحمد الفصل الدراسي الحالي 😄 ولدي فكرة لمشروع أعتقد إنه مناسب ليكون مشروع مجتمع، ألا وهو تطوير مكتبة ألعاب عربية.. والهدف سيكون بالطبع التعلّم، الاستمتاع، واستخدام المكتبة فعلياً في إنتاج الألعاب والتطبيقات العربية.
حسناً إذاً، سأطرح بعض الأفكار والآراء لأبدأ النقاش حول الموضوع (من المهم استكشاف أبعاد الفكرة قبل اتخاذ قرار تنفيذها فعلاً):

- أعتقد إن هكذا مشروع مناسب جداً ليعمل عليه عدد من الأشخاص في نفس الوقت كل منهم سيكون مسؤولاً عن جزء من المكتبة، ولكن أعتقد إن من المحتّم أن يتبنى شخص واحد (أو أكثر) الإشراف على معمارية وتوجه المكتبة، لكي يعرف كل مطوّر المطلوب منه.
- يجب أن تقدّم المكتبة دعماً كاملاً للكتابة باللغة العربية، وكذلك أن تحتوي على وثائق استخدام كاملة باللغة العربية.
- يجب أن تملك واجهة استخدام سهلة وبسيطة قدر الإمكان.
-  يجب أن تكون المكتبة موجهة لتطوير الألعاب وليس الرسم فقط، أي إنها ستمتلك إمكانات تشغيل الصوت، الشبكات، الذكاء الصناعي، ...إلخ.
- أعتقد أيضاً إن من الأفضل أن تبدأ كمكتبة ألعاب ثنائية الأبعاد، مع إمكانية توسيعها لإضافة البعد الثالث مستقبلاً.
- هنالك أيضاً فكرة استخدام مكتبة مفتوحة المصدر متوفرة فعلاً ويتم تطويرها وإضافة دعم اللغة العربية لها، أمثلة لمكتبات مناسبة:
  * ثنائية الأبعاد: http://hge.relishgames.com أو http://code.google.com/p/angel-engine
  * ثلاثية الأبعاد: http://irrlicht.sourceforge.net أو http://www.horde3d.org
(تجنبت ذكر المكتبات العملاقة مثل Ogre3D لأنها غير مناسبة لهكذا مشروع برأيي)

ما رأيكم بهذه الفكرة؟

خبير  سعيد بسيوني مشاركة 2

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

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

في 10 حزيران 2009 07:07 م، قال سعيد بسيوني بهدوء وتؤدة:

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

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

ليس شرطاً أن تكون المكتبة المطوّرة على أعلى المستويات، بل أعتقد إنّ من الأفضل أن تكون ثنائية الأبعاد وبسيطة قدر الإمكان لكي تزيد فرصة إكمالها ونجاحها، يمكنك أن تلقي نظرة على مكتبة HGE مثلاً (http://hge.relishgames.com/doc) ستلاحظ إنها بسيطة جداً، واستخدامها سهل وسريع، في الحقيقة الشفرة المصدرية للمحرك نفسه (الـ core) لا تتعدى 11 ملف أكبرها لا يصل الألف سطر!

المهم أن نتعلم شيئاً أو اثنين ونستمتع في غضون ذلك. 😄

موهوب  عبدالله الشمّري مشاركة 4

وفي 17/جمادى الثانية/1430 10:33 ص، قال سلوان الهلالي متحمساً:

- هنالك أيضاً فكرة استخدام مكتبة مفتوحة المصدر متوفرة فعلاً ويتم تطويرها وإضافة دعم اللغة العربية لها، أمثلة لمكتبات مناسبة:   * ثنائية الأبعاد: http://hge.relishgames.com أو http://code.google.com/p/angel-engine

أين المحرك الذري Atomic Game Engine  يا رجل ☺ .. أمزح فقط .. الفكرة من حيث المبدأ جيدة .. ولكن أهم شيء وجود شخص يقود العمل Project Manager .. ويوزع المهام .. ويوجد تواريخ محددة لانجاز المهمة .. قد يبدو هذا الاجراء " رسمي " زيادة عن اللزوم .. ولكن هو الحل الوحيد لمشكلة فشل المشاريع الجماعية .

لدي الاستعداد مبدئيا للمشاركة .. ( بعد انتهاء الاختبارات - ثلاثة أسابيع من الان - ) ..  خاصة وأنّي المستفيد الشخصي 😄 , حيث أقوم بتطوير محرك مشابه .

كل ماقلته عن مواصفات المشروع ,  أوافق عليه , حيث المحرك ثنائي الأبعاد , بسيط , الخ .. لكن من المهم أن يكون قابل للتطوير مستقبلاً , كأن يدعم مبدأ الهرمية أو Scene Graph ,  الذي تحدثت عنه في أحد مقالاتك , وأن يكون الكود مكتوب بطريقة OOP كاملة .

لدي الرغبة في المشاركة , لكن لا أعرف أين أصلح 😒 .

--
طالب - تخصص نظم معلومات .
--

خبير  سلوان الهلالي مشاركة 5

أهلاً بك في النقاش أخي عبد الله

أما في 11 حزيران 2009 10:02 م، فقد تنهد الشمري بارتياح وهو يرد:

الفكرة من حيث المبدأ جيدة .. ولكن أهم شيء وجود شخص يقود العمل Project Manager .. ويوزع المهام .. ويوجد تواريخ محددة لانجاز المهمة .. قد يبدو هذا الاجراء " رسمي " زيادة عن اللزوم .. ولكن هو الحل الوحيد لمشكلة فشل المشاريع الجماعية .

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


في 11 حزيران 2009 10:02 م، غمغم الشمري باستغراب قائلاً:

كل ماقلته عن مواصفات المشروع ,  أوافق عليه , حيث المحرك ثنائي الأبعاد , بسيط , الخ .. لكن من المهم أن يكون قابل للتطوير مستقبلاً , كأن يدعم مبدأ الهرمية أو Scene Graph ,  الذي تحدثت عنه في أحد مقالاتك , وأن يكون الكود مكتوب بطريقة OOP كاملة .

إحدى الأشياء المهمة التي أود فعلاً أن نصل إليها، أهمية أنماط التصميم (Design Patterns) واستيعاب فوائدها.

بتاريخ 11 حزيران 2009 10:02 م، قطب الشمري حاجبيه بشدة وهو يقول:

لدي الرغبة في المشاركة , لكن لا أعرف أين أصلح .

يمكنك العمل على أي شيء تضع عقلك فيه، ولأننا مبرمجين فنحن نعرف كيف نقفز فوق العوائق بشكل صحيح عادة (أو نحفر خندقاً من تحتها أحياناً.. 😖 ).

أتمنى التوفيق لك في الامتحانات إن شاء الله 😄