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

خبير  Mohammad Khashashneh مشاركة 1

السلام عليكم

مناقشة سابقة بدأها tombston , حول إمكانية وجود لعبة وادي الملوك على مختلف المنصات: http://www.agdn-online.com/communities.aspx?view=posts&threadid=479
وكان الإقتراح بأن أقوم بالبدئ بهذى المشروع و الإشراف عليه. وهذا ماسأقوم به فعلا:

أولا, الهدف:
- إعادة تصميم كود لعبة وادي الملوك بحيث يمكن بنائها و تشغيلها على مختلف أنظمة الحاسوب مثل وندوز و لينوكس.

كيفية تحقيق هذا الهدف:
- إعادة تصميم interface مكتبة الCoreLib لتقوم بتصدير خدماتها من دون أن يكون هنالك ضرورة للتعامل مع أي API يعتمد على نظام تشغيل معين دون الآخر.
- برمجة المكتبة باستخدام مكتبات Cross platform و معيارية, مما سيجعل من مكتبة الCoreLib مكتبة Cross platform ضمنبا و غير مربوطة بنظام تشغيل واحد.
-إعادة تصميم كود لعبة وادي الملوك لتقوم باستخدام خدمات مكتبة الCoreLib الجديدة, و بالتالي تصبح هي الأخرى Cross platform, و قابلة للبناء و التشغيل على مختلف الأنظمة.

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

حسنا,سأبدأ بنفسي أولا.
- محمد خشاشنة
- خبرة جيدة جدا مع لينوكس و وندوز.
-للأسف لم أقم بالمشاركة في مشروع وادي الملوك سابقا, لكني سأبذل جهدي هذه المرة.😏

بالمناسبة, لا يوجد هناك متطلبات سابقة للمشاركة معنا. حتى لو أنك مبتدئ في البرمجة, أو أنك لا تعرف شيئا عن لينوكس, فهذه فرصة جيدة للتعلم, و الهدف الأساسي من هذا المنتدى. والقسم الأكبر أيضا قد لايعتمد على لينوكس أو وندوز, فهذا هو الهدف من استخدام الCross platform APIs.

بقي شيء واحد, و هو برنامج تصميم المراحل. فهو يعتمد على خدمات الCoreLib أيضا, و بحاجة للمعالجة لاستخدام الInterface الجديد. سأقوم بطرح موضوع منفصل لمناقشته بالتفصيل.

شكرا جزيلا, و مرحبا بكم مسبقا 😄

محمد خشاشنة.

من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع

محترف  انس مشاركة 2

وفي 03 ديسمبر 2008 10:20 ص، أعرب Mohammad Khashashneh عن رأيه بالموقف كالآتي:

و لكن قبل ذلك, أود معرفة من يود المشاركة في هذا المشروع

انا , انا لو سمحت 😄 .

قبل ان ابدأ بطرح افكاري سأقوم بتعريف نفسي اولا :

- محمد انس
- مبرمج مبتدئ بلغة  C  و C++
- خبرتي في مجال تطوير الالعاب : 3 العاب ثنائية البعد  snake , tetris , pingpong
- نظام التشغيل   windows xp



في 03 ديسمبر 2008 10:20 ص، قال Mohammad Khashashneh بهدوء وتؤدة:

- برمجة المكتبة باستخدام مكتبات Cross platform و معيا

انا اقترح استخدام مكتبة SDL  او  Allegro  هناك ايضا مكتبة جديدة اسرع من  SDL  تعرف ب  SFML  و لكن لا اتقن اسعمالها شخصيا



في 03 ديسمبر 2008 10:20 ص، عقد Mohammad Khashashneh حاجبيه بتفكير وقال:

بقي شيء واحد, و هو برنامج تصميم المراحل. فهو يعتمد على خدمات الCoreLib أيضا, و بحاجة للمعالجة لاستخدام الInterface الجديد. سأقوم بطرح موضوع منفصل لمناقشته بالتفصيل.

هنا اقترح استخدام مكتبة  Qt الرائعة


انا شخصيا لم ابرمج على اللينوكس مباشرة و ذللك لانني لا املك نسخة منه

حسنا , ساذكر بان خبرتي في السي ++  متواضعة جدا و لكن قد تكون هذه هي الفرصة لتوسيع خبرتي

اذا انا اتتطوع للمشاركة في هذا المشروع و ذلك ان قبلت ادارة المنتدى اعطائنا تسريحا باعادة تطوير اللعبة ... و طبعا اذا قبلتني انت صاحب المشروع 🙁


سلام

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

في 05/ذو الحجة/1429 12:57 م، قال tombston بهدوء وتؤدة:

انا اتتطوع للمشاركة في هذا المشروع و ذلك ان قبلت ادارة المنتدى اعطائنا تسريحا باعادة تطوير اللعبة

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

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

محترف  انس مشاركة 4

وفي 03 ديسمبر 2008 06:23 م، قال وسام البهنسي متحمساً:

المشروع مفتوح وموارده متاحة للجميع. إدارة الشبكة تشجع هذا المشروع، وليس فقط "تقبل" به.

انا اشكركم جزيل الشكر على الدعم الذي تقدمونه للمبتدئين و الخبراء 😄


وفي 03 ديسمبر 2008 06:23 م، ظهر شبح ابتسامة على وجه وسام البهنسي وهو يقول:

طلبنا الوحيد هو أن يتمّ العمل حتى النهاية كي نفخر به

و هذا بالطبع هدفنا , فليس من المعقول تطوير لعبة ناقصة على منصات مختلفة عن ويندوز

أما في 03 ديسمبر 2008 06:23 م، فقد تنهد وسام البهنسي بارتياح وهو يرد:

ولمن لم يستطيعوا الانضمام في المشروع الأصلي، أعتقد أن هذه فرصة ممتازة للمشاركة مرة أخرى، فلا تدعوها تفوتكم!

ان شاء الله يكون هناك اشخاص مهتمين بالمشروع على غرار  محمد خشاشنة  و tombston

سلام

خبير  Mohammad Khashashneh مشاركة 5

بالطبع, فأنت أول المشاركين 😏

في 04 ديسمبر 2008 02:57 ص، عقد tombston حاجبيه بتفكير وقال:

انا اقترح استخدام مكتبة SDL  او  Allegro  هناك ايضا مكتبة جديدة اسرع من  SDL  تعرف ب  SFML  و لكن لا اتقن اسعمالها شخصيا

في الواقع, SDL هي أيضا اختياري الأول. خاصة و بأنها مكتبة ناضجة و متكاملة, ناهيك عن تمتعها بقاعدة مستخدمين ضخمة, و كمية كبيرة من المشاريع, الدروس,الكتب...إلخ, وعلى مختلف الأنظمة.
لكني أشكرك على ذكرك ل مكتبة SFML. فلم أعلم بوجودها قبل الآن. ما استخلصته بعد النظرة الأولى, بانها مكتبة حديثة, مبنية بفلسفة موجهة للكيانات باستخدام C++ (بالمقارنة مع C في حالة SDL), وبأنها تقدم معظم ما تقدمه المكتبات الأخرى مثل SDL, من خدمات و فصل للبرامج عن البنية التحتية لنظام التشغيل المستخدم. فهي تستحق بحثا أكثر و الأخذ بعين الإعتبار أيضا.
للمقارنة يمكن الإطلاع على الروابط التالية:
http://www.sfml-dev.org/features.php
http://www.libsdl.org/faq.php



وفي 04 ديسمبر 2008 02:57 ص، قال tombston متحمساً:

هنا اقترح استخدام مكتبة  Qt الرائعة

أشاركك بالرأي بأن Qt هي مكتبة أكثر من رائعة حقا. لكن استخدامها يعني إعادة كتابة البر نامج ب C++ من جديد. ما كنت أقصده هو كيفية نقل البرنامج للمنصات الأخرى من دون أن نطر لإعادة إختراع الدولاب مرة أخرى. الصعوبة هنا تكمن في أن برنامج تصميم المراحل مبني بلغة C#, و يعتمد على ال.NET platform أساسا.
بالطبع هناك حل, وهو استخدام MONO. فهي النسخة المفتوحة المصدر من .NET ومتوفرة على مختلف الأنظمة من ضمنها لينوكس. مشكلتي تكمن في قلة المعرفة في مدى اعتماد البرنامج على الPlatform. أرجو بأن يساعدونا خبراء الC# في البحث في هذا المجال,  و تحديد ما إذا ما كانت  MONO تقدم معظم ما نحتاجه أو البدائل التي تمكننا من استصلاح معظم الكود الموجود.
لمن يود المساعدة, هذا هو رابط المشروع  http://www.mono-project.com/Main_Page
ويكيبيديا أيضا لديها مقالة مفصلة: http://en.wikipedia.org/wiki/Mono_(software)



وفي 04 ديسمبر 2008 02:57 ص، ظهر شبح ابتسامة على وجه tombston وهو يقول:

انا شخصيا لم ابرمج على اللينوكس مباشرة و ذللك لانني لا املك نسخة منه

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



أما في 04 ديسمبر 2008 03:23 ص، فقد تنهد وسام البهنسي بارتياح وهو يرد:

طلبنا الوحيد هو أن يتمّ العمل حتى النهاية كي نفخر به، وهذه المهمة تقع الآن على عاتق محمد خشاشنة، والذي هو من مشرفي الشبكة أساساً

شكرا جزيلا على الثقة و التشجيع و الدعم المعنوي😄 , و أرجو أن نكون عند حسن الظن بإذن الله. أرجو من بقية الأخوان بأن يمدونا بدعمهم العملي و التقني لتحقيق الهدف.😭

محمد رسمي خشاشنة

من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع

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

وفي 07/ذو الحجة/1429 12:01 م، ظهر شبح ابتسامة على وجه Mohammad Khashashneh وهو يقول:

الصعوبة هنا تكمن في أن برنامج تصميم المراحل مبني بلغة C#, و يعتمد على ال.NET platform أساسا.

ليس ذلك فقط، لكن وحدة الرسم GameEd التي يعتمد عليها مصمم المراحل مبنية باستخدام C++/CLI وتستفيد من دمج نداءات native مع نداءات managed في نفس الوحدة، ولا أعرف إن كانت منصة Mono قادرة على التعامل مع هذا الوضع. 😨

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

محترف  انس مشاركة 7

السلام عليكم

انا ارى ان نحافظ على خوارزميات محرر المراحل و نعيد كتابة الكود بمكتبة Qt  , لان على حد علمي مشروع mono غير مكتمل  و لا يدعم .net framwork  الاحدث من 2 .

و بما انه يمكن جعل كود اللعبة منفصل على كود محرر المراحل سيكون ذلك اعادة كتابة الكود ليتوافق مع  Qt امرا بسيطا نوعا ما

خبير  Mohammad Khashashneh مشاركة 8

السلام عليكم
بعد مضي عام تقريبا على اقتراحي للبدئ بتحويل وادي الملوك لتكون قابلة للتشغيل على
مختلف المنصات, فررت بأن أصحو من السبات الشتوي و الصيفي و أن أكمل ما قد بدأت به.
Better late than never ☺

فبالفعل, قمت بتعديل الكود و ببناء اصدار مبسط يظهر نافذة سوداء ففط, يمكنك
إغلاقها بواسطة ALT+F4 أو بالضغط على الX في أعلا النافذة.
أعرف أن هذا ليس إلا شيء بسيط مقارنة بما يجب فعله لإتمام المشروع, لكن المهم أنها
تعمل على لينوكس و هي الخطوة الأساسية الآن.

قي التالي شرح مبسط لما أتممته لحد الآن:
1- قمت بعمل comment out لجميع محتويات الدوال الرئيسية مثل الGame class و
الCoreLib public exported functions.
2- ثم بدأت من الmain function وقمت بالتعديل على الكود المدعوم على ويندوز فقط، و
استبداله بكود standard أو متوفر على مختلف المنصات عن طريق بعض المكتبات
المتوفرة هنا و هناك.
3- ركزت معظم التعديلات في الCoreLib (بالمناسبة هي الآن تدعى بcore2) بحيث أنها
تحتوي على معظم الكود المعتمد على الWindows API و DirectX أو محرك الDSK و هي
جميعا غير مفتوحة أو متوفر على لينوكس.
4- قمت باستخدام مكتبة الSDL للقيام بمعظم العمليات المعتمدة على نظام التشغيل.


الخطوات التي أود القيام بها تاليا:
1- الخوض بكود الinput class و اللتي قمت بنقلها لcore2 library لأنها
نوعاما معتمدة على المكتبات المتوفرة على نظام التشغيل.
2- تعديل ما يجب تعديله في الOnIdle, OnDraw methods في الGame class.

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

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

ملاحظة2: أرجو أن يكون  أنس ما يزال من المشاركين في المنتدى. فأنا أعتذر على التأخير🙁

محمد خشاشنة

من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع

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

في 06/ذو الحجة/1430 01:44 م، قال Mohammad Khashashneh بهدوء وتؤدة:

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

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

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

محترف  انس مشاركة 10

السلام عليكم 😄

سعيد برؤيتك مجددا اخي محمد 😄 .



في 23 نوفمبر 2009 06:44 م، غمغم Mohammad Khashashneh باستغراب قائلاً:

ملاحظة2: أرجو أن يكون  أنس ما يزال من المشاركين في المنتدى. فأنا أعتذر على التأخير
طيعا مازلت اريد المشاركة 😄 فهي فرصة لا تعوض ☺ .
اما عن التاخير فلا باس لل منا ظروفه ( حتى انا لدي مشاريع لم اتممها بعد ☺ ).


حسنا :

انا حاليا لا املك نظام لينكس لهذا ما النظام الذي تنصحونني بتحميله...ليس من ناحية "افضل نظام"  و انما لتجريب الكود في عدة  اصدارات.

كيف سيكون العمل ؟ هل نستعمل منصات الـ Sourceforge or GoogleCode  ؟

ساحاول العمل و ساعطيكم النتيجة يوم الجمعة ان شاء الله...سيكون العمل على ويندوز  و لا اظنها مشكلة بفضل الـ  SDL

ادا كنا سنعمل بلغة الـ C++  فساواجه صعوبات يرجى التغاضي عنها ☺ ... اه و لما لا استعمال SFML  الاسرع و الانسب لهذه اللغة.


ا محرر تستعمل ؟ انا استعمل Code::Blocks .

اقترح ان نتناقش اولا  قبل الخوض في البرمجة ما رايكم ؟

في انتظار الرد ...سلام