تم النشر منذ 11 Sep 2011 (معدل) السلام عليكم ورحمة الله وبركاتهرغم قلة مشاركتي هنا او في اي منتدى آخر ، لا انكر مدى الفائدة الكبيرة التي حصلت عليها من منتديات الفريق العربي للبرمجة لذلك احب ان اشارككم في ورشة لعبتي ، لعلها تكون ذات فائدة للمبتدئين (مثلي ^^ ) بدأت برمجة هذه اللعبة قبل ما يقارب السنة ونصف ... وتوقفت ايضاً قبل ما يقارب السنة ونصف .. والان بعد سنة ونصف اجد رغبة باكمال العمل على هذا المشروعالبداية كانت مع كتاب Introduction to 3D Game Programming With DirectX 9 للمؤلف Frank D.Lunaاسم اللعبة : لم احدد بشكل نهائي .. حالياً SRفكرة اللعبة : لم احدد حتى الان فكرة نهائية .. حالياً هي تشبه نوعاً ما لعبة الدبابات (المدرعات ) التي كنا نلعبها قبل 100 سنة بما كنا ندعوه بال (اتاري)ميزات اللعبة : حالياً ثنائية الابعاد ، يعلبها شخصان اما على نفس الحاسوب او عن طريق الانترنت او ال Lan ، تحوي اصوات ... استكشف الباقي بنفسك!الخصائص التقنية:* c + c++ + API + directx* visual studio 2010* للصوت استعملت xact3* للشبكة Windows Sockets ملاحظة: اللعبة حالياً مهيئة للعمل بدقة عرض 1024X768 او 1920X1080 غير ذلك لن تكون الخلفية ملائمةتحذير : الكود سيكون متاح للجميع , صحيح ان هذا الشيء ايجابي غالباً لكن عليكم الاخذ بالاعتبار انني هاو مبتدئ نتيجة لذلك بالتأكيد سيكون هنالك الكثير من الاخطاء ، وايضاً اشعر ان توزيع الكود سيء جداً .. فانا غير ماهر باستعمال ال oop وما شابهتحذير 2 : اللعبة حالياً غبية نوعاً ما ، فبالرغم من بساطتها الا انها اثقل على الحاسوب من الالعاب الحديثة !!!!!!! + يبدو انها تتأثر بسرعة المعالج تحذير 3 : الكثير من الامور من ابتكاري ولم أخذها من احد .. مثل طريقة تناقل المعلومات بين السيرفر وال client ايضا مثل اكتشاف التصادم ... لذلك لا اضمن لأحد مدى جودتهاشيفرة اللعبة ( السورس ) +نسخة من اللعبة بالمرفقاتالازرار:* الاسهم للاعب الاول * A W D للاعب الثاني اذا كان على نفس الحاسوب* R لبداية اللعبة من جديد* N شوط جديد (يحافظ على النقاط)* T , Y للغش ^^سأتحدث لاحقاً عن كيفية اللعب عن طريق الشبكةSR_source.rarSR_v1.2.part01.rarSR_v1.2.part02.rar تم تعديل 11 Sep 2011 بواسطه the mmm 2 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 15 Sep 2011 لا داعي لفحص السورس السابق ^^ .. لأني خلال الايام الماضية قمت بمراجعة ال classes وتعلمت الوراثة واخواتها ... والقليل من ال templatesجاري تحسين السورس ليكون مفهوم وعملي اكثر + تطوير بعض الامور 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 21 Sep 2011 (معدل) هذا فيديو سريع للشكل الحالي للعبة:(الفيديو يحوي على صوت , يعني شغل السماعات :happy: ) تم عمل تغييرات جذرية للكود ، اصبحت اللعبة اسرع بكثير ، واصبح بالامكان فهم الكود بشكل افضليمكن تلخيص التعديلات بما يلي:---------------------------------------* ابادة جماعية للمتغيرات العامة (global) وايضا للمتغييرات من نوع static ، حيث شارف هذان النوعان على الانقراض ، وقد تم استبدالهما بالclasses .* تحسين نظام عرض النقاط لكنه اصبح يحوي بعض المشاكل .. حيث انه عندما تصل النقاط الى اكثر من 9 لأحدى اللاعبين فإنه يبدأ بعرض احرف يابانية!!!! * امكانية التحرك في جميع انحاء الشاشة .. وليس مثل السابق.* تحسين قسم كبير من الكود الرئيسي (ملف SRgrfx.cpp ) مما ادى الى تسريع اللعبة وجعلها قابلة للفهم اكثر من قبل.المشاكل الحالية:---------------------* اللعبة تدعم 1024x768 بالشكل المطلوب و تدعم 1920x1080 بشكل غير متكامل . اما بقية الابعاد ستكون مشاكل بالخلفية وحدود اللعبة* عند عرض النقاط عندما تصل نقاط احد اللاعبين الى اكثر من 9 فإنه يبدأ بعرض احرف يابانية بدل الارقام !!!! * اللعبة تتعلق بسرعة الحاسوب ... فمثلاً تعمل لدي بسرعة 1600 fps تقريباً !!! هذه مشكلة كبيرة فانا مثلاً ارى سرعة انطلاق الرصاصة في حاسوبي ملائمة لكن لديكم ربما ترونها سريعة جداً او بطيئة جداً* بسبب التعديلات الكبيرة التي حصلت نتج بعض المشاكل عند اللعب بال network * عند الضغط المتواصل مثلاً على الزر الذي يسير الى الاعلى فان الدبابة ستتحرك بشكل متواصل ، لكن اثناء ذلك اذا تم الضغط على الزر الذي يطلق القذية فان الدبابة ستتوقف ( اظن ان الحل هو استعمال direct input )* لا يمكن استقبال معلومات مثل: اسم اللاعب .... جاري العمل على حل هذه المشاكل ان شاء اللهاترككم الآن مع السورس الجديد ومع اللعبة بالمرفقات ملاحظة: الملف الرئيسي الذي يحوي الدالة الرئيسية والدوال المهمة هو SRgrfx.cppملاحظة2: الخامات والاصوات غير مرفقة مع السورس لكنها موجودة مع الملف التنفيذي للعبة .. اذا اردت ان تعمل complie للعبة بنفسك وتشغيلهاعليك نسخ كل الملفات ماعدا الملف التنفيذي (exe) من مجلد اللعبة (وليس السورس) , ووضعها بنفس المجلد للملف التنفيذي الذي ستقوم بعمله ... الازار: ------* الاسهم للاعب الاول و P لاطلاق النار* A W S D للاعب الثاني اذا كان على نفس الحاسوب - F لاطلاق النار* R لبداية اللعبة من جديد* N شوط جديد (يحافظ على النقاط)* T , Y للغش ^^* Tab لعرض النقاطSRv1.2source.rarSRv1.2.part01.rarSRv1.2.part02.rar تم تعديل 22 Sep 2011 بواسطه the mmm 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 23 Sep 2011 اللعبة تبدو ممتعة من الفيديو ( الصوت رائع أيضاً ) ، لكن حاولت تشغيله ، يخرج لي خطأ ، النظام لدي Windows 7 32-bits و لدي Directx آخر نسخة .. :شاهدت الكود ، الكود منظم تقريباً ، يقف وراءه مبرمج يعرف ما يكتب :-)، لكن هناك ملاحظات صغيرة ، مثلاً :case 1: rocket2.y_position+=rocket2.speed;break;أوcase 1: tank2.y_position=((float)(tank2.y_position+0.2f));break;أعتقد تحتاج تأخذ في الاعتبار أن سرعة جهازك ليست نفس سرعة جهاز شخص آخر ، قد تكن أبطأ و قد تكون أسرع ، بمعنى حركة اللاعب و الطلقة ستبدو سريعة جداً في الأجهزة السريعة ، لذلك يمكن تضربها في delta-time ، وشيء زي كذا ، ابحث في الموضوع ، أو شاهد هذا المقطع : أيضاً : بدلاً من كتابة دوال اكتشاف التصادم بشكل " خاص " لكل حالة ، يمكن أن تضيف دوال مثل checkRectangleCollision لاكتشاف تصادم بين أي مستطيلين ، مثل المدرعات أو الطلقات .. أو إضافة دالة مثل checkRectanglePointCollision ، ونحو ذلك ، وبالتالي ستستخدمها بنفس الطريقة ، وسيسهل عليك الأمر لو كان عندك مئة شكل ، تريد أن تكتشف التصادم بينهم . if((rocket2.y_position>2.2f)||(rocket2.y_position<-2.2f)||(rocket2.x_position>2.2f)||(rocket2.x_position<-2.2f)) { rocket2.y_position=0.0; rocket2.x_position=0.0; rocket2.flying=0; first_in2=1; return 0; }عدا هذا ، الكود يبدو رائع ، و اللعبة يظهر أنها ممتعة :-) .بالتوفيق . 2 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 23 Sep 2011 (معدل) بارك الله فيك اخي عبد الله وجزاك الله خيراً على التشجيع ^^حاولت البحث (على السريع) عن الخطأ الذي يظهر لديك والكثير يقولون ان الحل هو الحصول على آخر نسخة من Directx لكن بما انك تملك اخر نسخة .... لا اعرف ما الحل :Sعلى كل حال ارجو ممن يحمل اللعبة ان يخبرني اذا عملت او لم تعمل عنده وله جزيل الشكر.بالنسبة لسرعة اللعبة على اجهزة مختلفة فهي احدى المشاكل المدرجة في جدول مشاكلي , جاري الاطلاع على الفيديو والبحث عن حل ملائم اما عمل دوال خاصة للتصادم فهي فكرة رائعة وجاري تطبيقها .. الف شكر لك :)___________________________________________________________تم حل مشكلة الاحرف اليابانية والحمد لله المشكلة كانت اني اريد تحويل رقم من نوع int الى نص وتمريره الى داله ويجب ان يكون نوعه LPCWSTRالحل :تحويل الرقم من int الى مصفوفة char باستعمال الدالة sprintfثم تحويل المصفوفة الى مصفوفة من نوع wchar_t ثم تمريرها الى الدالة باستعمال ال casting كما في المثال التالي:char na [10];wchar_t wa [10];sprintf(na, "%d", 10);mbstowcs(wa, na, 10);::MessageBox(NULL, (LPCWSTR)wa, L"AAA", MB_OK);_________________________________________________________________اضافة :يا سلام يا سلام يا سلام ... هذه ال timeDelta فكرتها رائعة .... الف الف الف شكر لك استاذ عبد الله :thumb_up: الفيديو رائع وايضاً يمكن لمن يريد ان يفهم الموضوع اكثر ان يبحث عن ال Time Based Animation للالعاب ...في الواقع كنت اظن ان هذه مشكلة صعبة وكنت اريد حلها عن طريق عمل fps ثابت للعبة بالشكل التالي:تحديد frame rate ثابت .. مثلا 50 فريم بالثانية .. ينتج انه لكل فريم او لكل loop يتوفر له 20 مللي من الثانيةكنت اريد حساب الوقت الذي تأخذه كل دورة ثم عمل sleep بالوقت المتبقي حتى تكمل ال 20 ms مثلاً لو انه دورة معينة اخذت 2 ms سيحدث بعدها sleep لمدة 18 ms توصلت لهذه الطريقة بنفسي (عمل sleep ) لم اجربها .. لكن اظن انها ناجحة طبعاً تقنية عمل لعبة ب fps ثابت اظن انه شيء معروف .. لكني لم اقرأ كيف يتم تنفيذها لهذه الطريقة يوجد سلبيات ... مثلاً لو زاد وقت الدورة عن 20 ms اي لو ان fps قلّ عن ال 50 لسبب ما ، فانه سيحدث خلل وتأخر و ........لذلك فضلت استعمل Time Based Animation .. لكن أيضاً لهذه الطريقة يوجد سلبية في لعبتي .. لو كان لدي مجسم يتحرك بسرعة عالية وكان الزمن كبير فان المجسم سيتحرك بقفزات متباعدة مما يؤدي الى تجاوز المجسمات الاخرى دون ان تكتشف لعبتي التصادم ... لكن بما ان هذا سيحدث فقط مع المجسمات ذات السرعات العالية جداً او الحواسيب البطيئة جداً فلن اعتبرها مشكلة وسيتم اعتماد هذه التقنية ان شاء الله.بارك الله فيك اخي عبد الله وجزاك الله خيراً على المساعده الرائعة .انا فرح جداً لسببين : الاول انه واخيراً اعرفت شو قصة ال timeDelta , لانه قبل سنه ونصف استعصى علي فهمها والسبب الثاني انه اول مرة ادمج الفيزياء مع برمجتيالمسافة = السرعة * الزمن :cash: :ty: تم تعديل 23 Sep 2011 بواسطه the mmm 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 16 Nov 2011 (معدل) السلام عليكم ورحمة الله وبركاتهبعد هذا الغياب الطويل عدت مع بعض التعديلات ، كذلك قمت بتصحيح بعض الاخطاء البرمجية....اهم التعديلات في هذه النسخة :*لا يهم سرعة المعالج ... اللعبة ستعمل على كل الحواسيب بنفس السرعة (الف شكر للأخ عبد الله )* حل مشكلة الاحرف اليابانية * امكانية ادخال المعلومات قبل الدخول الى اللعبة ، حيث انه عند الدخول الى اللعبة ستخرج لك نافذة تمكنك من اختيار مثلاً اللعب عن طريق الشبكة او على نفس الحاسوب*اضافة icon ربما يوجد المزيد لكن لا اتذكره ..المشاكل الحالية:* نسيت اضافة امكانية ادخال اسم اللاعب .. سيكون ذلك في النسخة القادمة ان شاء الله* الصورة التي يتم التقاطها لخلفية اللعبة غير واضحة جداً .. بالاحرى الصورة واضحة لكن يبدو ان طريقة عرضها عرضها غير سليمة 100%* اللعبة تدعم فقط الابعاد التالية : 1920*1080 او 1024*768* يبدو انه يوجد بعض الاخطاء البرمجية في حالة اللعب على الشبكة .. حيث يحدث خلل باطلاق القذائف بعد الضغط على R (اي عمل restart )للتذكير ، الازرار هي : ------* الاسهم للاعب الاول و P لاطلاق النار* A W S D للاعب الثاني اذا كان على نفس الحاسوب - F لاطلاق النار* R لبداية اللعبة من جديد* N شوط جديد (يحافظ على النقاط)* T , Y للغش ^^* Tab لعرض النقاط اللعبة + السورس في المرفقات او يمكنكم التحميل من الرابط التالي:تحديث:قمت بحذف المرفقات لأني اكتشفت خطأ بسيط .. جاري اصلاح الخطأ تم تعديل 17 Nov 2011 بواسطه the mmm 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 20 Nov 2011 (معدل) تم اصلاح عدة اخطاء + تم اضافة امكانية ادخال اسماء اللاعبينتم ايضاً تحسين SRconfiger.exeاللعبة + السورس في المرفقاتاو على الرابط التاليhttp://hotfile.com/dl/135531543/c7d96f2/SRv1.2.rar.htmlSRv1.2.part01.rarSRv1.2.part02.rarSRv1.2.part03.rarSRv1.2.part04.rarSRv1.2.part05.rar تم تعديل 20 Nov 2011 بواسطه the mmm 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 22 Nov 2011 اولا احييك على روح المشاركة العلميةعندي ملاحظة صغيرة . مادامت اللعبة لاتحتاج الى مجهود كبير من GPU . لملا تستخدم GDI اولا اللعبة ستكون متاحة لكل المستخدمين . ثانيا تطويرها سيكون سهل تحياتي 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 23 Nov 2011 حياك الله اخي فؤاد وجزاك الله خيراً على المرور فعلاً اللعبة حالياً خفيفة جداً (1500 fps على حاسوب متوسط الذكاء ) ، لكنها مازالت قيد التطوير ولا اعرف ماذا سيكون حالها غداًايضاً "اللعبة" في شكلها الحالي سخيفة ولا اظن ان هنالك من سيلعبها اكثر من دقيقة واحدة .. لذلك لست بحاجة لجعلها تدعم كل انواع المستخدمين ايضا بالتاكيد لست مهتم بانتشارها حاليا .. فهدفي منها فقط التمرن على البرمجة (كهاوٍ)اما بالنسبة لل GDI فانا لم اكن اعرف ما هو .. لكني لست بحاجة له.. لأني أفهم من كلامك انه بديل للdirectx .. والذي انا هنا من اجل تعلمه وانا لا اطمح تعلم برمجة الالعاب من خلال هذا التطبيق .. ولو اردت ذلك لبدأت مباشرة بتعلم محركات الالعاب ..الف شكر لك اخي فؤاد على المرور ^^ 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 20 Dec 2011 (معدل) السلام عليكم ورحمة الله وبركاته بعد هذا الانقطاع الطويل نسبياً اعود مع اصدار جديد بكل بساطة .. لقد تم عمل تغييرات جذرية في الكود .. بصراحة انا سعيد جداً بما وصلت اليه .. فقد اصبحت ارى الاصدارات السابقة تافه جدا .. صعبة التطوير .. غير عملية .. فمثلاً لو اردت اضافة دبابة جديدة للاصدارات السابقة سيتطلب ذلك عدة ساعات اما الآن لكي اضيف دبابة جديدة يكفي ان اقوم بتعريفها بسطر واحد واضافة اسمها الى قائمة الدبابات .. يعني 10 ثواني او اقل :)اي ان الكود يمكنه التعامل مع دبابتين او مئة بدون فرق (من ناحية المبرمج)ايضاً تم اضافة AI (غباء برمجي P:) هو عشوائي جداً والهدف هو التأكد ان الكود يتعامل مع العديد من الدبابات بالشكل الصحيحتم ايضا اضافة صواريخ يتم التحكم بها عن بعد ربما هنالك بعض التعديلات الاخرى لا اتذكرها ........في الواقع لم اكن انوي ان اطرح هذا الاصدار الآن, لأن هنالك بعض الاخطاء وخصوصاً عند اللعب عن طريق الشبكة، لكن لضيق وقتي في الايام المقبلة قررت ان اضعها اليوم ان شاء الله الازرار هي : ------* الاسهم للاعب الاول و O لاطلاق النار و P للتغيير بين نوع القذائف* A W S D للاعب الثاني اذا كان على نفس الحاسوب - F لاطلاق النار و G للتغيير بين نوع القذائف* R لبداية اللعبة من جديد* N شوط جديد (يحافظ على النقاط)* Tab لعرض النقاط * L لتفعيل/تعطيل دبابات الذكاء الاصطناعي يمكنكم تحميل اللعبة مع المصدر من الرابط التالي أو من المرفقات http://hotfile.com/dl/138050551/470d089/SRv1.2e3.rar.htmlوفي الختام انصح ان يتم مقارنة الاصدار الحالي مع السابق لمن اراد ان يرى تأثير المشاريع في تحسين طرق البرمجةانتقاداتكم مرحب بها واتمنى ان تعم الفائدة بأمان اللهملاحظة: بقية اجزاء المرفقات بالرد التاليSRv1.2e3.part01.rar تم تعديل 20 Dec 2011 بواسطه the mmm 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 20 Dec 2011 (معدل) بقية اجزاء المرفقاتSRv1.2e3.part02.rarSRv1.2e3.part03.rarSRv1.2e3.part04.rarSRv1.2e3.part05.rar تم تعديل 20 Dec 2011 بواسطه the mmm 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 16 Feb 2012 السلام عليكماقسم بالله انى سعيد بك وانى اتوقع انك سوف تكون من مبرمجى الألعاب المتميزون واتشوق لرؤية لعبة كاملة من تطويرك اتمنى من الله ان يوفقك 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 21 Jul 2013 (معدل) لا اعرف ما القصة لدي لكن ما استغربه انه كل سنه ونصف .... ممم لا اعرف ماذا اقول ... لكن المهم عدت بعد سنة ونصف لارد على هذا الموضوع !! sayedf1وعليكم السلام ورحمة اللهبارك الله فيك وجزاك الله خيراً على التشجيع ... في الاوقات العصيبة كثيراً ما كنت ادخل للموضوع فقط لارى ردك المشجع، واليوم الوضع غير مختلف ، فهذه فترة امتحانات بنظرة سريعة على الكود اكاد اجزم انني لن اعود لتطوير هذه اللعبة ... وان حدث، فبالتأكيد سأقوم باعادة برمجتها من جديدمستوى البرمجة لهذه اللعبة متدني جداً ... لا انصح احد بتحميل السورس :P تم تعديل 21 Jul 2013 بواسطه the mmm 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 3 Aug 2014 سعيد بك وانى اتوقع انك سوف تكون من مبرمجى الألعاب المتميزون 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 21 Jun 2019 (معدل) السلام عليكم ورحمة الله وبركاته بعد ما يقارب 8 سنوات على بداية هذه الورشة وبعد 6 سنوات من آخر رد لي في هذا الموضوع لم أنسى أبدا تلك الأيام الجميلة في المنتديات العربية وخصوصا في هذا المنتدى مع أني لم أكن فعال بالمشاركة لقلة علمي إلا أني كنت أتصفحها كثيرا فأجد الإلهام والأبداع ينضح من هذه المنتديات وأما عن التشجيع البناء فلا تسأل فهذا الموضوع مثال على ذلك بعد فشل متتالي في عدة مشاريع العاب على مدار السنوات السابقة تمكنا بفضل من الله وكرمه من إصدار أول لعبة لنا (أنا وصديقي) اللعبة ما زالت قيد التطوير وقمنا بطرح نسخة ألفا على ستيم Seen سين https://steamcdn-a.akamaihd.net/steam/apps/1069740/header.jpg ألف شكر للإدارة ولكل الاعضاء وجزاكم الله خيرا على ما قدمتم وأخص بالشكر Sayedf1 الذي تكرم علينا بوقته وجهده وقدم التشجيع لأبناء أمته فجزاك الله عنا كل خير تم تعديل 21 Jun 2019 بواسطه the mmm 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 24 Jun 2019 السلام عليكم ماشاء الله اللعبه ممتازة بدون مبالغه الجرفيك ممتاز اخي لا تيأس من الفشل فمن الفشل ياتي النجاح 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 24 Jun 2019 وعليكم السلام ورحمة الله وبركاته جزاك الله خيرا استاذنا الفاضل ، والحمد لله لم نيأس وأملنا بالله كبير نسأل الله الكريم أن يوفقنا وجميع المسلمين لما يحب ويرضى ولما فيه خير لنا في الدنيا والآخرة, وأن يعيننا أن ننهض بأمتنا من جديد نكرر الشكر العرفان لك أستاذنا على الدعم والتشجيع على مدار السنين ... وصلى الله على سيدنا محمد وعلى آله وصحبه وأجمعين 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه