Salwan AlHelaly
خبير برمجة ألعاب
- عراقي مغترب - مصر
- blog.agdn-online.com/salwan
- Game Development, Art, Music
- بعض الاسئلة حول اللغة
سؤال لم يتم الاجابة عنه: ما هي امكانيات ++C في برمجة الشبكات؟ طريقة ++C تختلف قليلاً عن الطرق الأخرى في البرمجة، مثلاً في #C و Java هنالك مكتبات كاملة مضمونة وجاهزة مع اللغة يمكن استخدامها مباشرة منها بالطبع مكتبات التعامل مع الشبكات، بينما في ++C عدا عن مكتبت…
- احصل على Unreal Engine 3 ببلاش
لقد انتهيت من كتابة التدوينة حول UDK، لمن يود قراءة عرض سريع للمحرك.
- احصل على Unreal Engine 3 ببلاش
unreal لا يعتمد على ++C بشكل أساسي بل UnrealScript، ولكن ليس من المنطقي أبداً مقارنته بـ GameMaker، لديه طريقة خاصة في العمل، وبرنامج الـ Editor هذا ليس الصورة الكاملة فهو يستهدف الفنانين بشكل أساسي (رغم أن هنالك عناصر يجب تدخل المطوّرين فيها). محرك اللعبة نفس…
- مساعدة بسيطة في رسم دائرة
السلام عليكــم ورحمـة الله وبركاتــه ،، glutDisplayFunction تتوقع تمرير إجراء ليس له بارمترات ويعيد void. الإجراء المراد تمريره في حالتك يأخذ ثلاثة بارمترات، لذلك فهو لا يطابق بصمة الإجراء المطلوب التي وصفت من قبل المترجم بـ 'void (__cdecl *)(void)' وهذا هو ما…
- لماذا قررتم بناء المحرك من الصفر؟
السلام عليكم، أوافق الأخ خالد بشدة فيما قاله، ولقد عرضت بدأ مشروع مشابه جداً في موقع AGDN حاولت الدفع فيه نحو المستوى الأعلى ولكن لم أحصل على التشجيع الكافي لأستمر (كان الأمر أيضاً محاولة لجس النبض خاصة وإن تلك الفترة كانت فترة نشطة جداً هناك). أما بخصوص إخترا…
- المرحلة الثانية : تطوير وحدة i/o - الملفات .
السلام عليكــم ورحمـة الله وبركاتــه ،، أحارب الوقت بشراسة هذه الأيام، أتمنى إني لم أكن سبباً للتأخير: انسخ الكود package name [color= #000000;]: Andalus.[color= #808000;]IO [color= #007f00;]/// Represents one ini file [color= #007f00;]/// [color= #007f00;]///…
- المرحلة الثانية : تطوير وحدة i/o - الملفات .
عمل ممتاز، :) سوف أتولى كتابة مواصفات iniFile.
- المرحلة الثانية : تطوير وحدة i/o - الملفات .
كنت أفكر أكثر بهذه الطريقة عندما ذكرت fstream والتي أعتقد إنها فعالة لدرجة ما: ofstream outfile;... ... outfile << somefloat << someint << sometext; لا شك إن هنالك فوائد لتوحيد الدخول للملفات بالنسبة لنا. ملف الـ ini هو نوع الملفات المعروف الذي تستخدمه البرامج…
- المرحلة الثانية : تطوير وحدة i/o - الملفات .
بالنظر إلى الكود الذي كتبه الأخ محمد، لا أعلم لماذا أحسست أن لدينا هنا حالة من نوع "إعادة إختراع العجلة"، فكل المزايا المكتوبة مدعومة من مكتبة ++C القياسية (fstream وأصدقاؤها)، بالنسبة لجافا فأعتقد إنها تمتلك مكتبة قياسية مشابهه أيضاً لعل من الأفضل أن نفكر على…
- استفسارات عن برمجة الهارد وير
برمجة الألعاب على منصات الألعاب هي نفسها تماماً على الكومبيوتر، ليس هنالك شيء خارق أو سحري في الموضوع، في الحقيقة في معظم الحالات تقوم الشركات بتطوير ألعابها بإستخدام PC إعتيادي كالذي تملكه وأملكه انا ولكن يمكنهم ترجمة الكود لمنصة الألعاب وتشغيله للتجربة (ينطب…
- المؤشرات كقيمه معاده من الدوال
أوافق إن optional مثالية لهذه المهمة أيضاً، ولكن يمكن مؤقتاً استخدام أي إسلوب حتى يدخل boost في العمل. كما إن كل شيء من المحتمل أن يتغير لذلك لا يهم إن تم تأجيل كتابة إحدى الإجراءات حتى بعد، أو تم تغييرها في ما بعد. :)
- المؤشرات كقيمه معاده من الدوال
بعد رحلة بحث عن الحقيقة، توصلت للإستنتاج إن الطريقة المطروحة ليست فقط لحالة غير معرّفة بالمواصفات القياسية، ولكن يجب على المترجم أن يظهر خطئاً أو على الأقل تحذير. في البداية سألت أحد المبرمجين الذين هم أعلم مني بـ ++C/C وهو Josh Petrie أحد المطوّرين الرئيسيين …
- المؤشرات كقيمه معاده من الدوال
السلام عليكــم ورحمـة الله وبركاتــه ،، الطريقة التي ذكرتها قد تندرج تحت تصنيف "سلوك غير معرّف" (Undefined Behavior) أي إنها ليست جزءاً من قواعد اللغة لذلك فقد يتصرف كل مترجم بطريقة مختلفة، وأحياناً إصدارات نفس المترجم المختلفة تتصرف بطرق مختلفة. هكذا حالات لا…
- [شبه مكتمل] : المرحلة الأولى: تطوير وحدة Core
أنت تخلط بين مفهومين، وذلك ما حاولت إيصاله بطريقة غير مباشرة، ولكن بما إنك تملك الخبرة في هذا المجال، فلا بد إنك تعلم إن الـ Rect له استخدامات كثيرة غير الرسم، وهنالك هيكل مشابه مخصص تحديداً للرسم كما جرت العادة، ويسمى Quad (إختصار لكلمة quadrilateral والمستطي…
- [شبه مكتمل] : المرحلة الأولى: تطوير وحدة Core
أعتقد إنني ساهمت في إبعاد النقاش عن الهدف، لذلك أود أن نتذكر جميعاً (بما فيهم أنا :D) إننا لسنا بصدد مناقشة طريقة الرسم أو التحويل الآن، الهياكل الموجود لا تمثّل أشكال مرسومة ولكن هياكل رياضية ممكن أن تستخدم في الكود الإعتيادي. أعتقد إن المواصفات بشكلها الحالي…
- [شبه مكتمل] : المرحلة الأولى: تطوير وحدة Core
يمكن عمل Rotate للمستطيل بشكله الحالي، وكذلك الخط والمثلث وأي شكل آخر فقط بإستخدام المصفوفات، لن تحتاج تعديل ولا حتى نقطة واحدة يدوياً كما إنك لن تحتاج إجراء لتدوير أو تحجيم كل شكل على حدة (من قبيل rotateTriangle) كل ما نحتاجه إجراء لحساب مصفوفة الدوران. لا شك…
- [شبه مكتمل] : المرحلة الأولى: تطوير وحدة Core
تم رفع الملفات، يرجى عمل Update في مجلداتكم المحلية (من الأفضل أن تصبح هذه عادة :) ، كل مرة يبدأ أحدكم العمل يقوم بعمل Update أولاً لكي يعمل على آخر إصدار). التغييرات لن يتم رفعها للسيرفر تلقائياً، وهذه ميزة مفيدة لأنك تستطيع أن تغير في الملفات كما تشاء حتى تص…
- الاستثناءات أو رسائل الأخطاء في محركات الألعاب
لدي تعليقين صغيرين بخصوص النقاش، أولاً إن هذا المحرك لا يستهدف المستخدمين النهائيين، ولكن مطوّرين مثلنا لذلك فإن الـ debugger يقوم بعملية إظهار الأخطاء من نوع قسمة على صفر أو دخول غير مشروع بطريقة أفضل من أي شيء يمكننا عمله. ثانياً، الإستثناءات في نظري يجب أن …
- الاستثناءات أو رسائل الأخطاء في محركات الألعاب
حسناً، سوف أعطي مثال لكيفية استخدام الاستثناءات بطريقة بحيث تقتصر على الأخطاء الكبيرة التي لا يمكن للتطبيق أن يستمر بعدها: في كود المحرك: انسخ الكود [color= #0000ff;]void MainApplicationLoop[color= #000000;]([color= #000000;]) [color= #000000;]{ [color= #0000f…
- [شبه مكتمل] : المرحلة الأولى: تطوير وحدة Core
أود أن أوضح أكثر ما قاله الأخ الشمري بخصوص عمليات transformation، في العالم ثلاثي الأبعاد، لا يمكن التحريك بطريقة مباشرة (أي player.x += amount) لأن الأشكال عبارة عن مثلثات لها رؤوس ذات إحداثيات ثابتة (لا يمكن لـ OpenGL أو Direct3D تغييرها تلقائياً). هنالك طري…