windows بين أوبنغل أو Direct3D لمشروع جديد لعبة ويندوز؟ أو أي شيء آخر؟




الفرق بين directx و opengl (16)

أنا بدأت مشروع لعبة هواية على ويندوز من شأنها أن تجعل الاستخدام الكثيف للرسوم 3D الرسومات. ومن المرجح أن تكون مكتوبة في C ++.

هل يجب استخدام برنامج أوبنغل أو Direct3D لرسوماتي الخلفية؟ لماذا ا؟

أو يجب استخدام محرك الرسومات الجاهزة مثل أوغر 3D ؟ أي واحد؟

بعض الروابط "كيفية البدء" ستكون مفيدة. (على أي من التكنولوجيا أو كليهما.)

تحرير - نعم أنا حقا يعني Direct3D، وليس ديريكتكس، وذلك بفضل graham.reeds للتوضيح

تحرير - أشار ميهاي لازار إلى أنني يمكن أيضا استخدام محرك الرسومات مثل أوغر 3D. عدل السؤال ليعكس هذا البديل.


Ogre3D كبيرة إذا كنت تريد أن تفعل عبر منصة الترميز وإذا كنت تريد أن تترك كل تقديم إلى المحرك. برنامج أوبنغل هو أيضا كبيرة ل عبر منصة الترميز، ولكنه أيضا يجعلك تفعل كل أجزاء مملة - ومع ذلك فإنه يوفر المزيد من السيطرة.

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

أنا الترميز مع برنامج أوبنغل لبعض الوقت الآن ومع Ogre3D لبضعة أشهر الآن وأنا لا أستطيع أن أقول أريد أي شيء آخر. حصلت مؤخرا على كتاب على ديريكتكس 7 وأعتبر أنه فوضوي. ربما تغيرت الأمور، ولكن من ما لاحظت أنا لا أجد ديريكتكس، والاستقراء Direct3D، جذابة.


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

إذا كنت بالفعل يتقن بشكل معقول في C ++، أي واحد سوف تخدم، ولكن هناك عدد من الاعتبارات الأخرى لجعل في اختيارك:

  • قابلية النقل: أوبنغل (و أوبنغل إس) متاح على ويندوز، لينكس، أوس X، دائرة الرقابة الداخلية، الروبوت، وأنظمة أخرى. D3D / ديريكتكس أقفال لكم في منصات مس فقط.
  • لعبة الإدخال: في ديريكتكس، أبي ديركتينبوت يتيح لك الوصول إلى وحدات التحكم. ليس لدى برنامج أوبنغل ما يعادله هنا.
  • الأصوات: ديريكتوديو يدعم الأصوات، برنامج أوبنغل لا يوجد لديه أي ما يعادل (ولكن غالبا ما يستخدم أوبينال)
  • الفيزياء: اعتمادا على احتياجات اللعبة الخاصة بك، قد تحتاج إلى بعض محاكاة الفيزياء المتقدمة

عادة التركيز الفعلي "اللعب" هو على منظمة العفو الدولية، والقتال، قصة، الخ.

إذا كنت لا تزال تسلق منحنى التعلم C ++ (جديرة بالاهتمام، ولكن يستغرق بعض الوقت)، قد بدلا من ذلك استخدام C # و أوبنتك . وهذا من شأنه أن يوفر لك فوائد "إطار الألعاب" مثل أوجر، والوصول المباشر إلى برنامج أوبنغل بشكل معقول، والفوائد الهامة لاستخدام التعليمات البرمجية المدارة (و إيد) لمنطق اللعبة. أوبنتك هو عبر منصة عبر مونو، لذلك يمكن تشغيل التعليمات البرمجية الخاصة بك على أوس X ولينكس كذلك.

إستمتع!


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

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


للإجابة على هذا السؤال يتطلب المزيد من المعلومات عنك:

  • ما هي قدرة البرمجة الخاصة بك؟

إذا كنت عالية، وربما كنت تبدأ مع أوجر (أفضل صارم جعل محرك مفتوح المصدر، إمهو) أو محرك لعبة مفتوحة المصدر آخر، مثل Delta3D، إذا كنت تريد ميزات إضافية (الصوت والفيزياء، وما إلى ذلك) أن محرك اللعبة يجلب .

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

إذا كانت قدرة البرمجة الخاصة بك ليست عالية جدا، وكنت تفعل ذلك لتعلم البرمجة، وأود أن تبدأ مع برنامج أوبنغل، لأنه من الأسهل للتعلم وهناك المزيد من الموارد على شبكة الإنترنت (انظر http://nehe.gamedev.net ل مثال).


إذا كنت ترغب في النظر في C #، فانتظر نظرة سريعة على شنا. لمشاريع هواية، على افتراض ما تريد هو في الواقع الحصول على لعبة وتشغيلها بدلا من ترقيع مع رمز أبي معقدة، لا أستطيع أن أوصي به بما فيه الكفاية بما فيه الكفاية. فمن ناضجة على نحو متزايد، موثقة جيدا، وبالمقارنة مع D3D / برنامج أوبنغل، سريعة جدا وسهلة الاستخدام. كمكافأة، مع عضوية نادي المبدعين 100 دولار / سنة، يمكنك حتى استخدامها لتطوير الألعاب ل زبوكس 360.


أنا أتفق حقا مع أولئك يقولون لك لتعلم Ogre3D. قلت أنك سوف تستخدم C ++، لذلك Ogre3D هو خيار كبير. يستخدم شنا C # وكان لديك لمعرفة الاختلافات بينه وبين C ++، وبصرف النظر عن تعلم شنا جدا. أيضا شنا ليست مفتوحة المصدر ولا عبر منصة، لذلك إذا كنت تريد أن يكون لديك معرفة أوسع حول تطوير اللعبة، أود أن أقترح التعلم الأول سدل، ثم Ogre3D.


بالنسبة للحالة التي تصفها، أود أن أوصي Direct3D.

السبب الرئيسي لاستخدام Direct3D بدلا من برنامج أوبنغل هو أن البائعين بطاقة الفيديو في كثير من الأحيان القيام بعمل جيد فقط على السائقين برنامج أوبنغل لبطاقاتهم "الراقية".

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

إذا قابلية مهمة، فإن ذلك سيكون سببا كبيرا للنظر في أوبنغل أو أوجر بدلا من ذلك.

ولكن إذا كنت لا تخطط للميناء، ثم التركيز على Direct3D لأنه هو منصة مستقرة على نطاق واسع مع أفضل دعم السائق إهف.


تبدأ مع برنامج أوبنغل لأن هناك كتب جيدة وغيرها من المراجع على الانترنت على ذلك. بمجرد الحصول على تعليق من لعبة 3D الكتابة، سوف تكون قادرة على جعل الحكم لنفسك.

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


يجب أن نتذكر أن ديريكتكس هو عبارة عن مجموعة من التقنيات - الإدخال والصوت والرسومات. ومع ذلك بالنسبة لمعظم الناس دكس هو مرادف للعارض.

في رأيي D3D (أو ديريكترافيكس) لم يكن حقا أن الصعب منذ DX8. لم أحاول DX9 أو DX10.

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


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

وهذا يسمح للمطورين Direct3D لاستخدام أفضل أساليب التخصيص والإدارة المناسبة للتطبيق، ولكن هو أيضا عمل إضافي.

لقد فعلت نموذجي "مرحبا العالم" التطبيقات في كل، وأنا أفضل برنامج أوبنغل على Direct3D، ولكن هذا هو مجرد رأيي. يجب أن تحاول الخروج على حد سواء، وقضاء يوم أو اثنين من التعلم واللعب حولها مع كل، وتقرر لنفسك.


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

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

بدأت مع برنامج أوبنغل للسجل، وبعد حوالي شهر ذهبت إلى Direct3d (الإصدار 7 في ذلك الوقت). لقد وجدت Direct3D أجبرني على أن أكون أكثر وعيا بما كنت أرغب في القيام به وكيف كنت أضع الأمور ولكنني فضلت هذا المستوى من الفهم.

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


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

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



ليس لدي أي برنامج أوبنغل سابق، ديريكتكس أو تجربة ألعاب الفيديو ولقد جعلت لها مفتوحة المصدر سباق ألعاب الفيديو مع Ogre3d . هو إطار جيد جدا للبدء في ألعاب الفيديو: كود فعلت جيدا، والكثير من المستندات والمعلومات في صافي ودروس البداية جيدة جدا .

محرك تقديم هو ديريكتكس / أوبنغل الملحد، يمكنك اختيار في وقت لاحق لتقديم اللعبة مع برنامج أوبنغل أو ديريكتكس (التغييرات ويثوث في التعليمات البرمجية)



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

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





directx