Alaa_Hammash

لا تتعلم (اوبن جي أل) و لا (دِرَكت أكس) بل تعلم برمجة الألعاب

19 ردود في هذا الموضوع

السلام عليكم و رحمة الله وبركاته

لكل من برمج لعبة باستخدام Source SDK أو CryEngine 3 أو Ogre أو Irrlicht أو ........... كم أمرا من أوامر OpenGL أو DirectX استخدمت؟؟؟ الإجابة: و لا أمرا واحدا. لماذا؟!!!!

لأن OpenGL و DirectX يستخدمان من قبل مطوري محركات الألعاب و ليس من قبل مطوري الألعاب. بالطبع يمكن استخدامهما من قبل مبرمج للألعاب في حالة الألعاب البسيطة جدا و كذلك الألعاب المعقدة جدا لكن قانون إعادة استخدام البرمجة يفرض علينا أن نقسم عملية تطوير برمجة الألعاب إلى: 1- تطوير محرك الألعاب 2- برمجة اللعبة باستخدام محرك الألعاب.

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

إذا لا تضع وقتك في تعلم OpenGL و DirectX بل استثمر وقتك في تعلم برمجة الألعاب نفسها. و تذكر أن الأفكار المستخدمة في برمجة الألعاب متشابهة جدا مهما اختلف محرك الألعاب. قم باختيار محرك ألعاب يناسب احتياجاتك و انطلق في برمجة الألعاب.

7

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أوافقك الرأي ، الاعتماد على محرك ألعاب يعني إنتاجية أكثر ، يضيع وقتك أحياناً و أنت تقوم بتصميم "فئة رسومية " لمحاولة تغليف بعض APIs منخفضة المستوى ، ليمكنك رسم مجسم بسهولة ، أو كتابة "Math Classes " أو حتى محرك تصادم ، وفي الغالب استخدام محرك رسومي + محرك فيزيائي ، أو محرك ألعاب متكامل أفضل . وهذا لا يغني عن تعلم OpenGL/Direct3D ، حيث ستعرف كيف تعمل " تلك المحركات الرسومية " ، ويمكن أن تصنع من خلالها محركك الخاص يوماً ما ، لسبب واحد فقط و هو أنك لن تجد محرك ألعاب " ينفع " لأي نمط من الألعاب ، كل محرك ألعاب تجده متخصص في نمط معين أو نمطين بالكثير ..

مثال :

- تطوير لعبة ثنائية البعد : Box2D + HGE .

- تطوير لعبة ثلاثية البعد : Unity .

- تطوير لعبة ثلاثية البعد من نمط آخر ، قد لا تجد حينها Unity مناسبة فتضطر لإستخدام Ogre + Physics ، وهكذا ، كل مرة تنتقل لمحرك مختلف ..

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

لسبب واحد فقط و هو أنك لن تجد محرك ألعاب " ينفع " لأي نمط من الألعاب ، كل محرك ألعاب تجده متخصص في نمط معين أو نمطين بالكثير ..

مثال :

- تطوير لعبة ثنائية البعد : Box2D + HGE .

- تطوير لعبة ثلاثية البعد : Unity .

- تطوير لعبة ثلاثية البعد من نمط آخر ، قد لا تجد حينها Unity مناسبة فتضطر لإستخدام Ogre + Physics ، وهكذا ، كل مرة تنتقل لمحرك مختلف ..

هذه النقطة هي تفكير شائع جدا بين العدد الأكبر من مبرمجي الألعاب. لكن هل هذا التفكير سليم؟؟؟

مثلا محرك الألعاب من شركة Renderware استخدم في إنتاج كافة أنواع الألعاب: قتال، مغامرات، سيارات..... ما حصل هو أن الشركات التي كانت تشتري التراخيص كانت تستأجر مبرمجين يبرعون في *** أساليب برمجة الألعاب *** يقومون بإضافة كل الميزات التي تهمهم بالطريقة المناسبة. و بالتالي فإنهم كانوا قادرين على دمج كل شيئ في لعبة واحدة مثل: GTA، قتال و مغامرات و سيارات و طائرات..... مثال آخر: قامت شركة Valve باستخدم محرك Quake في صناعة Half Life و التي تضم اشخاص و سيارات و فيزياء بالرغم من أن محرك Quake صمم ليكون FPS (طبعا هذه جملة خاطئة لأن المحرك مصمم ليكون عاما لكن الإضافات عليه كانت في مجال FPS)

إذا عندما نتعلم أساليب برمجة الألعاب لا يعود مهما جدا ما هو محرك الألعاب الذي نستعمله لأن طريقة تطبيق أساليب برمجة الألعاب تكون غالبا متشابهة جدا بين المحركات المختلفة. إذا تعلمنا طريقة Ray Casting لتحري تصادم إطارات السيارة بما هو أسفلها فإن طريقة التطبيق متشابهة جدا سواء كنت تستخدم Bullet أو Newton أو Havok أو ..... ألمهم هو الطريقة.

تم تعديل بواسطه علاء هماش
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

أعتذر اخي عبدالله الشمري عن الخطأ في مداخلتي الأخيرة حيث ذكرت الاسم خالد عوضا عن عبدالله.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
مثلا محرك الألعاب من شركة Renderware استخدم في إنتاج كافة أنواع الألعاب: قتال، مغامرات، سيارات..... ما حصل هو أن الشركات التي كانت تشتري التراخيص كانت تستأجر مبرمجين يبرعون في *** أساليب برمجة الألعاب *** يقومون بإضافة كل الميزات التي تهمهم بالطريقة المناسبة. و بالتالي فإنهم كانوا قادرين على دمج كل شيئ في لعبة واحدة مثل: GTA، قتال و مغامرات و سيارات و طائرات..... مثال آخر: قامت شركة Valve باستخدم محرك Quake في صناعة Half Life و التي تضم اشخاص و سيارات و فيزياء بالرغم من أن محرك Quake صمم ليكون FPS (طبعا هذه جملة خاطئة لأن المحرك مصمم ليكون عاما لكن الإضافات عليه كانت في مجال FPS)

كلامك مقنع ، تقريباً أغلب الألعاب الناجحة ، لا تجد أنها تتقيد بنمط ما .. أذكر MGS ، كأحد أشهر الأمثلة ..

أعتذر اخي عبدالله الشمري عن الخطأ في مداخلتي الأخيرة حيث ذكرت الاسم خالد عوضا عن عبدالله.

لا إشكال و لا داعي للاعتذار : ) ،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

قد تغير رأيك يوما ما.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

قد تغير رأيك يوما ما.

السلام عليكم

لا أظن أنني سأغير رأي ابدا في هذا الأمر و بخاصة أنه مبني على قناعة ناتجة عن تجربة خاصة فأنا متعمق جدا في استخدام اوبن جي ال (كنت من قبل أعتقد أنه لا بد من تعلم أوبن جي ال و ديريكت اكس لمن يريد أن يصبح مبرمج ألعاب). كما أن هذا الرأي هو التوجه الأكبر لدى جمهرة مبرمجي الألعاب.

تم تعديل بواسطه علاء هماش
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بصراحة أنا أوافق هماش على ذلك.

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لماذا أكتب شيئاً كتبه غيري :haha:

الإجابة بسيطة لأتعلم كيف كتبه غيري

ولكن لمن سيلاحظ

مالفائدة من تعلم كيف كتبه فقد كتبه وإنتهى الأمر

الإجابه أبسط من الأولى

وهي أن أحاول فعل شيئ جديد أو إضافة لما قد كتبه

أنا في حيرة من أمـ ـري << جملة لطالما حلمت أن أكتبها ذات يوم

فأنا مقتنع تماماً بأن أستخدم المكتبات الجاهزة

ومع ذلك فأنا وكل واحد منا يمثل العرب

حلمي الأول في حياتي إسترداد مجد العرب

وليس بناء لعبة لغرض تجاري حتى وإن فعلت ذلك سيكون ذلك خطوة من خطوات بناء حلمي الأول

فـ كما كان الغرب يأتون ليتعلمون من عندنا أريدهم مرة أخرى يأتون يتعلمون من عندنا

فـ كما كنا نعتمد على أنفسنا في كل شيء وهم لايضرونا ولاينفعون أريد هذا الشيء من جديد

الآن لو ظهر مبدعاً منا "في أي مجال" سيذهب ليأخذ الجنسية الأمريكية

أو سيخرج إليهم وقد لايعود وقد يعود ليسلم على العرب وكله فخر بأنه يجلس مع الغرب ناسياً أصله أو جاحده أو حتى لايريد ذكراه

آه لو علمت الدولة العثمانية أو العباسية ما حدث معنا لأعلنوا علينا الحرب ومع كل أسلحتنا المتطورة متأكد من أننا سنخسر ..................نهاية العرب

------------------------------------------------

صلوا على الرسول

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اعتقد ان خلاصة الكلام هو التخصص

يختار الشخص بين احد التخصصين : اما برمجة الالعاب .. او برمجة محركات الالعاب

ويتوغل في التخصص الذي يفضله

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

تجربتى مع الديركت اكس

صنعت لعبتان 2d وعندما اردت ان اصنع لعبة 3d وجهت مشاكل لا حصر لها فانتقلت الى محرك irrlict وصنعت اللعبة بمنتهى السهولة و وجدت ان كل مااردت ان افعلة موجود بالمحرك وباقل الأكواد

و جدت ايضاً انى اضعت وقت فى تعلم الديركت اكس

الخلاصة كلام مضبوط 100%

تقبل تحياتى

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

قد يكون كلامي يعبر عن أفكار شخصية لذا لا تنزعج أكثر...

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

تعلمت الكثير الكثير إلا حد أعتبرني محترف بلدر , إذا ما الشيء الذي جعلني كذلك؟ حسنا...

إن فهمي الجيد لمكتبة الأوبن جي أل و محركات الألعاب التي كنت أسهر الليل في قراءة و تحليل أكوادها المصدرية أيا oger irrlicht bullet ode .... جعلني أدرك عالم الرسوميات ككل . فأنا لست من هوات محركات الألعاب ( copier -- coller ) و لكن من هوات برمجة الرسوميات كشكل عام .

أي مبرمج فأنا لا أنصحه بمحركات الألعاب في بداية مشواره التعليمي بل أنصحه بتعلم كل التراخيص التي يجهل تأثيرها الكثير من المبرمجين الفاشلين.

و من ثم يتعلم الأسس و ينتقل درجة درجة...

البرمجة ليس أن تتعلم مكتبة و تقول أنا مبرمج , لا , المبرمج هو الملم بكل جوانب الرسوميات .

فلا يغرنك ما تعلمته, حتى أنا لا أساوي شيئا أما المبرمجين العربيين البتة.

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

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مع قدم الموضوع إلى أنه لايزال يثير الجدل فأنا عندما بدأت أتعلم برمجة الألعاب توجهت إلى xna بعد الفشل الذي حققته في open GL أظنني معذور فأنا إلى الآن لم ألم بأي لغة

وأيضاً حققت فشل آخر في xna " مالنا إلى إنا ;) " وأنا الآن بدأت التعلم على Unity وهو أسهل بكثير من أن أحدد مكان المجسمات بالأكواد ! :P

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

انا شخصيا افضل العمل الكامل بكتابة الاكواد واشعر فيها بمتعة رائعة

ولا انقص من شأن من يهوى الدراج دروب .. تصميم الالعاب في النهاية يعود الى عقل المصمم

فوسائل التصميم كالفرشاه في يد الرسام .. عندما تنتج لوحة جميلة لا تعجب بالفرشاه بل تعجب بالرسام

---------------

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

انا شخصيا افضل العمل الكامل بكتابة الاكواد واشعر فيها بمتعة رائعة

ولا انقص من شأن من يهوى الدراج دروب .. تصميم الالعاب في النهاية يعود الى عقل المصمم

فوسائل التصميم كالفرشاه في يد الرسام .. عندما تنتج لوحة جميلة لا تعجب بالفرشاه بل تعجب بالرسام

---------------

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

أوافقك الرأي.

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

هناك مكتبة إسمها assimp كانت ما زالت في بدايتها إلا أنها قوية و لم تكن تدعم إلا المايكروسوفت ...

أضن أنه لم يكن هناك شيء إسمه الفشل , الحمد لله , ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

آه بس

أخوي 3ds max2010 يبدو أنك مبدع في البرمجة فهل أنت متخرج من جامعة أم دخلت معهد وإذا كنت دخلت جامعة فما كان تخصصك بضبط

أيضاً هل برمجة محررات ألعاب عمل شاق وماهي اللغة التي إستخدمتها

أخيراً : ماتلاحظ إن أسإلتي كثيرة :blush:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

آه بس

أخوي 3ds max2010 يبدو أنك مبدع في البرمجة فهل أنت متخرج من جامعة أم دخلت معهد وإذا كنت دخلت جامعة فما كان تخصصك بضبط

أيضاً هل برمجة محررات ألعاب عمل شاق وماهي اللغة التي إستخدمتها

أخيراً : ماتلاحظ إن أسإلتي كثيرة :blush:

السلام عليكم

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

حب المعرفة و التعلم هو ما يجعل الإنسان يسأل و لو القليل....

إليك هذا الموضــــــــــوع

الطريقة كانت نوعا ما تقليدية, تواصلت مع موقع الأبن جي أل و هم ينصحون بالإعتماديات الموجودة داخل تقنياتهم , طبعا glu لم تعد glu القديمة...

فهي الآن بإمكانها الوصول إلى التسريع بإستخدام OpenCL ...

تم تعديل بواسطه 3ds max2010
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكراً على الرد وكان عندي سؤال أخير :lol:

أنا الحمدلله هذا آخر ترم لي في الثانوية وقد قررت أن أدخل " هندسة البرمجيات " فهل تقام دورات داخل الكلية عن open Gl أو Direct X أم لا

أيضاً هل لها منهج

ملاحظة : أنا سعودي وقد يختلف المقررات من جامعة لأخرى لكني أقصد في الأغلب

وكالعادة : أتأسف على كثرة أسإلتي :blush:

حاولت قراءة الموضوع لكن الإنجليزي عندي مايسمح :sad:

n0I36992.png

تم تعديل بواسطه سي شربة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .