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

مبتدئ  marwa مشاركة 1

السلام عليكم :
ممكن حدا يعطيني فكرة عن ال direct x
وإذا في كتاب مفيد أو شي موقع نت
شكرا

IT Engineering
3d year

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

سأحاول تقديم شرح بسيط بدلاً من استخدام مصطلحات تحتاج لشرح هي الأخرى...
 
DirectX هي مجموعة وحدات برمجية تتيح لمستخدميها بناء الألعاب على ويندوز بسهولة. فأي لعبة مثلاً تحتاج إلى الرسم على الشاشة، أو لعب الأصوات، أو استقبال الأزرار من اللاعب. كل هذه العمليات متاحة لنا بشكل مبسط عن طريق DirectX.
كما قلت، هي مجموعة وحدات، كل منها مختصة بجانب من جوانب بناء اللعبة. هذه هي أهم الوحدات المكونة لـ DirectX 9 مثلاً:
 
* Direct3D وهي الوحدة التي نستخدمها لرسم المشاهد ثلاثية الأبعاد أو فلنقل الرسم بشكل عام.
* DirectSound وهي الوحدة الخاصة بتخريج الأصوات أو حتى تسجيلها.
* DirectInput وهي الوحدة التي تخبرنا بالأزرار التي يضغطها اللاعب أو حركات الماوس أو الجويستيك.
* DirectPlay وهي الوحدة التي -كانت- تقدم لنا إمكانية تشغيل اللعبة على الشبكة ليلعب بها أكثر من لاعب ضد بعضهم البعض.
 
يمكننا استخدام DirectX لبناء ألعابنا عن طريق لغة الـ C أو الـ ++C.  ففي ++C تظهر لنا وحدات DirectX ككلاسات classes يمكننا استخدامها كما نشاء في اللعبة... مثلاً السطر التالي يقوم بتشغيل صوت تم فتحه باستخدام DirectSound:
 


IDirectSoundBuffer8 *pSound = LoadSound("C:\\Jump.wav"); // تحميل الصوت من الملف
pSound->Play(0,0,DSBPLAY_LOOPING); // لعب الصوت مع إعادته من البداية عندما يصل لنهايته
 
والموقف مشابه أيضاً بالنسبة لبقية الوحدات.
 
الآن قد يتبين لنا أمراً نراه في كل ألعاب اليوم عندما نريد تنصيبها على الجهاز، فهي تقوم بتنصيب مكتبة DirectX أيضاً على جهاز اللاعب كي تستطيع اللعبة أن تستخدم المكتبة وتعمل كما يجب. فلو لم يتم تنصيب DirectX على الجهاز بشكل سليم، فإن اللعبة ببساطة لا تستطيع العمل.
 
من الجدير بالذكر أن استخدام DirectX ليس محصوراً في الألعاب فقط. كما أننا نستطيع استخدام الوحدات التي نريدها فقط دون استخدام كامل المجموعة. فكل وحدة مستقلة عن الأخرى (مثلاً يمكننا فقط استخدام وحدة الرسم دون لعب أي أصوات، وهكذا).
 
بالنسبة للكتب فأنا أعلم أن هناك كتاباً عربياً للبرمجة بـ DirectX (تأليف بنكين مصطفى) وهو موجود في دار شعاع:
http://www.raypub.com/catalog/book_info.php?products_id=367


 
 
أما الكتب الإنجليزية فحدث ولا حرج. هذه بعض الكتب التي أعتقد أنه من الممكن الحصول عليها من مكتباتنا المحلية في سوريا:
 
http://www.amazon.com/Beginning-DirectX-9-Game-Development/dp/1592003494/ref=sr_1_23?ie=UTF8&s=books&qid=1208209125&sr=8-23



 
http://www.amazon.com/Introduction-Programming-DirectX-Wordware-Graphics/dp/1556229135/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1208209027&sr=8-3

 
 
وهذا برأيي أفضل كتاب قرأته أنا عن DirectX، فهو يشرح المفاهيم والفلسفة وراء كل عملية في DirectX بشكل يجعلك تستطيعين التعامل مع جميع وحدات DirectX من أي إصدار كان:
 
http://www.amazon.com/Inside-Directx-Microsoft-Programming-Bradley/dp/B00007FYBP/ref=sr_1_19?ie=UTF8&s=books&qid=1208209125&sr=8-19

 
للأسف هو يغطي DirectX 5 ولا يحوي قسم للـ 3D، لكنني ما زلت أعتبره حجر الأساس.
 
 
أما بالنسبة للمواقع فهو حقاً سؤال محرج... فحتى الآن لا أعرف موقعاً مختصاً بتقديم tutorials ممتازة في DirectX، وأرجو من الأعضاء إرشادنا إلى النخبة منها. لكني طبعاً أذكر أن هذه الشبكة تسعد بتلقي الأسئلة والمشاركات في DirectX طبعاً، وأعلم أنه يوجد بيننا العديد من المختصين فيه.
 
بصراحة أشعر بتأنيب ضمير لأنني لم أقم بتأليف كتاب أو بناء مجموعة دروس تعليمية للبداية في DirectX للقراء العرب. لكن مشاركتك هذه بصراحة كانت بمثابة صفعة نبهتني إلى عدة أمور كنت غافلاً عنها... فشكراً جزيلاً (على المشاركة وليس الصفعة☺

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

مبتدئ  marwa مشاركة 3

شكرا كتير للإجابة وفي سؤال تاني
شو الفرق بين openGl و direcrtX

ومشان موقع نت لقيت هدول الموقعين إن شاء الله يكونوا مفيدين
 

واحد  #directx &&  c
http://www.c-unit.com/tutorials/mdirectx

 
والتاني

      ++directx &&  c                    
http://www.c-unit.com/tutorials/directx

IT Engineering
3d year

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

قد تواجهين مشكلة مع الدروس الخاصة بالـ Managed DirectX (المتعلقة بـ DirectX و #C) لأنها تتكلم عن النسخة 2.0 التي تم إلغائها, أما النسخة القديمة 1.1 ففيها بعض المشاكل, من الأفضل التوجه إلى XNA بدل الـ Managed DirectX.
 
أما عن الـ DirectX9, فيبدو إن المجموعة التي عثرتي عليها جيدة. 
وقد وجدت هذا الموقع والذي يحتوي على مجموعة جيدة من الدروس ايضاً, رغم إن الدروس المتقدمة تحتاج الإشتراك, إلا إن الموجود مجاناً أكثر من كافي:
http://www.directxtutorial.com/Tutorial9/tutorials.aspx
 
أتمنى أن اكون قد ساعدت
تمنياتي لك بالتوفيق

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

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



وفي 16 ابريل 2008 11:46 ص، ظهر شبح ابتسامة على وجه marwa وهو يقول:

شو الفرق بين openGl و direcrtX

الاثنان يعملان على نفس المبدأ، إلا أن خدمات OpenGL تقتصر على الرسم فقط، ولا تشمل بقية المكونات. لذا يمكننا اعتبار السؤال هو: ما الفرق بين Direct3D و OpenGL؟
 
هناك فروق من عدة نواحي. مكتبة Direct3D طبعاً من مايكروسوفت، وتعمل على أنظمة ويندوز حيثما وجدت تقريباً (بالإضافة إلى الـ XBox والـ XBox360).
أما مكتبة OpenGL فترعاها منظمة مكونة من عدة جهات تضع المواصفات بعد الاتفاق فيما بينها على ما يشكل العامل المشترك الأصغر بين أنظمتها وأفكارها، لذا تعتبر مكتبة OpenGL "مفتوحة للجميع". المكتبة مدعومة على أغلب أنظمة التشغيل التي تعمل على الحاسوب الشخصي ومحطات العمل (بما فيها ويندوز). ويوجد نسخة مصغرة منها على الـ Playstation3. أما الـ XBox والـ XBox360 فلا تتضمن أي دعم لـ OpenGL.
 
من ناحية أخرى فإن مكتبة OpenGL تتبع فلسفة البرمجة الإجرائية (procedural) كما هو الحال مع مكاتب لغة C الأساسية. بينما مكتبة DirectX تعتمد على فلسفة غرضية التوجه (Object Oriented) كما رأينا في المثال.
 
من ناحية الجودة والأداء، فلا يمكننا المقارنة بشكل عادل، لأن ذلك يتوقف على كفاءة من يدعمون كل من المكتبتين ضمن النظام. مثلاً، لو قام كتاب الـ drivers في nvidia بكتابة driver ذكي لـ Direct3D وآخر غبي لـ OpenGL فإننا قد نرى أداءً متدنياً في OpenGL أو جودة منخفضة، وهكذا...
 
أخيراً أحب أن أوضح أن كلاً من OpenGL و Direct3D هما في الأساس مواصفات وواجهة برمجية API وليس مكتبة كاملة. بعبارة أخرى، هما لغة مشتركة نستطيع نحن مبرمجين الألعاب التحدث من خلالهما مع الـ driver لكرت الشاشة...

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

خبير  algeria مشاركة 6

شكرا أخي وسام سجلت جديدا ولاحظت دائما مساعداتك وإفاداتك للجميع
الله يجعلها في ميزان حسناتك

أتمنى تضع لنا مكتبة Directx9 SDK
وكيفية تركيبها على Visual C++ 2008 EXpress EDition

الجزائر قلبي وغزة نبضه