أيهما يجب أن تستخدم لتطوير الألعاب OpenGL او DirectX
كيف يمكنك تحديد واجهة برمجة تطبيقات الرسومات التي تريد استخدامها؟
قد يعود الأمر إلى الأنظمة الأساسية التي تستهدفها أو ببساطة أيهما لديه أفضل أداء أولي.
تعمل واجهات برمجة تطبيقات الرسومات ، مثل OpenGL و DirectX ،
كجسر بين البرامج وأجهزة الرسومات المستخدمة لتشغيل الألعاب.
توفر واجهات برمجة التطبيقات هذه طرقًا قياسية لعرض رسومات ثنائية وثلاثية الأبعاد على الشاشة.
لقد أصبحت أساسية لتطوير اللعبة على مدار العقدين الماضيين.
توفر محركات مثل Unity خيارًا بين واجهات برمجة تطبيقات الرسومات التي يستخدمونها ،
ولكن كيف يفترض بك اختيار الخيار الصحيح للعبتك؟
انضم إلينا حيث نقارن OpenGL مع DirectX لنمنحك فكرة عن أي من هذه الأدوات هو الأفضل لك.
نظرة عامة على الميزة الرئيسية بين DirectX مقابل OpenGL
في جوهرهما ، يشترك كل من DirectX و OpenGL في نفس خط
أنابيب الرسومات ، وهما لديهما لسنوات عديدة. تستخدم كلتا واجهات برمجة
التطبيقات (API) نقاطًا تسمى الرؤوس لبناء أساسيات رسومات معقدة.
يخزن كل رأس إحداثياته الخاصة ومعلومات مهمة أخرى.
لكن الطريقة التي تستخدم بها كل مكتبة الرؤوس مختلفة.
قد يؤدون وظائف مماثلة ، لكنك ستلاحظ الفرق بين OpenGL و DirectX إذا كنت تعمل معهم.
DirectX مقابل OpenGL: API Scope
قبل الذهاب إلى أبعد من ذلك ، من المهم ملاحظة أنه على الرغم من أن
كلاهما من واجهات برمجة تطبيقات الرسومات ، فإن OpenGL و DirectX لهما نطاقات مختلفة.
OpenGL هي واجهة برمجة تطبيقات رسومية أصيلة ، وهذا يعني أنها لا تتعامل
مع أي شيء بخلاف الرسومات ثنائية وثلاثية الأبعاد. من ناحية أخرى ،
فإن DirectX عبارة عن مجموعة من الرسومات والصوت والشبكات وواجهات
برمجة تطبيقات الأجهزة الأخرى التي تعمل جميعها معًا.
في بعض الحالات ، سيستخدم OpenGL DirectX لأداء وظائف لا يمكنه القيام بها بمفرده.
ستتجاهل بقية هذه المقالة هذا الاختلاف بين واجهتي API ، مع التركيز على عناصر الرسوم لكل أداة.
OpenGL مقابل DirectX: الأنظمة الأساسية
OpenGL هي واجهة برمجة تطبيقات مجانية تديرها شركة غير ربحية
تسمى Khronos Group ، بينما يتم تصنيع DirectX بواسطة Microsoft.
يعمل DirectX على نظامي التشغيل Windows و Xbox بشكل أساسي ،
مع الأنظمة الأساسية الأخرى ، مثل Linux ، التي تحصل على الدعم ببطء.
OpenGL عبارة عن منصة مشتركة ، مما يجعلها قابلة للاستخدام في تطوير
الألعاب عبر مجموعة من أنظمة التشغيل ووحدات التحكم في الألعاب.
DirectX مقابل OpenGL: موارد الأجهزة
يترك DirectX إدارة الأجهزة للمطور ، مما يمنحك القدرة على تخصيص
الموارد بكفاءة ، حسب حاجتك إليها. يتعامل OpenGL مع إدارة الأجهزة ،
ولكن هذا يمكن أن يكون له فوائده الخاصة ، حيث لا داعي للقلق بشأن إدارة الموارد بنفسك.
DirectX مقابل OpenGL: التوثيق
يمكن أن يجعل الوصول إلى الوثائق التفصيلية تطوير اللعبة أسهل بكثير
عند العمل مع واجهات برمجة التطبيقات. يوفر DirectX و OpenGL
وثائق محدثة بانتظام ومجتمعات مطورين مفيدة. تتلقى كل من واجهات برمجة
التطبيقات هذه تحديثات سنوية كبيرة للتأكد من أنها توفر أفضل الميزات المتاحة.
استخدام OpenGL مقابل DirectX لتطوير الألعاب
لقد صنع المطورون العديد من الألعاب الجميلة والمحسنة في السوق الحديثة
باستخدام كل من OpenGL و DirectX.
هناك العديد من الأشياء التي يجب مراعاتها عند اختيار واجهة برمجة تطبيقات
رسومات ثنائية الأبعاد / ثلاثية الأبعاد. سيعتمد بعض المطورين ببساطة على الأداة الأكثر راحة لهم.
OpenGL أو DirectX: الأنظمة الأساسية
لقد تطرقنا بالفعل إلى الأنظمة الأساسية ، لكن هذا اعتبار حاسم للمطورين.
إذا كنت ترغب في إنشاء ألعاب لـ Nintendo Switch أو Playstation 4 أو Linux ،
فستحتاج إلى العمل مع OpenGL أو واجهة برمجة تطبيقات أخرى تدعمها.
تم تصميم DirectX لنظامي التشغيل Windows و Xbox ولديه توافق محدود مع الأنظمة الأخرى.
OpenGL أو DirectX: توافق المحرك
يستخدم معظم مطوري الألعاب محركات مثل Unity و Unreal لإنشاء
ألعابهم في الوقت الحاضر. يدعم كلا المحركين OpenGL و DirectX ،
كما تفعل محركات تطوير الألعاب عبر الأنظمة الأساسية الأخرى.
برنامج OpenGL أو DirectX: سهولة الاستخدام
قد يجادل البعض بأن OpenGL أسهل في العمل مع DirectX.
إلى جانب موارد الأجهزة ، يتعامل OpenGL فقط مع الرسومات ، مما يجعلها أبسط بطبيعتها.
حقيقة أنه يعمل عبر المزيد من الأنظمة الأساسية يجعل من السهل إصدار الألعاب مع هذا المطلب.
سهولة استخدام واجهة برمجة تطبيقات الرسومات ليست بنفس الأهمية
التي كانت عليها من قبل لمطوري الألعاب. باستخدام محركات مثل Unity
التي تتفاعل مع واجهات برمجة تطبيقات الرسومات خلف الكواليس ،
لا يتطلب الأمر سوى نقرة زر واحدة لتبديل API الذي تستخدمه.
ما لم تكن تنشئ لعبة من البداية ، فمن غير المحتمل أن تلاحظ اختلافًا
في سهولة استخدام كل واجهة برمجة تطبيقات.
OpenGL أو DirectX: ميزات الرسومات
ما لم تكن حالة هامشية ، فمن غير المرجح أن ترى فرقًا كبيرًا في
الميزات المتوفرة لديك بين واجهات برمجة التطبيقات هذه. كلاهما يدعمان
قدرات بطاقة الرسوميات الخاصة بك ، وهذا سيتغير فقط إذا شهدت
وحدات معالجة الرسومات تغييرات جذرية في المستقبل.
OpenGL أو DirectX: أداء الألعاب
هناك الكثير من الجدل بين المطورين فيما يتعلق بأداء واجهات برمجة التطبيقات هذه.
من الصعب تخيل وجود اختلافات كبيرة في الأداء بين OpenGL أو DirectX ،
على الرغم من أن الادعاء بأن OpenGL أكثر سلاسة وكفاءة أمر شائع عبر الإنترنت.
الطريقة الوحيدة لمعرفة أي من واجهات برمجة التطبيقات هذه هي الأفضل من خلال الاختبار.
بفضل توافق Unity مع كل من واجهات برمجة التطبيقات ،
يمكننا إنشاء مشروع واختبار لعبة نموذجية باستخدام كل من واجهات برمجة التطبيقات لإنشاء معيار أداء .
تم إجراء هذه الاختبارات باستخدام رسومات ثنائية وثلاثية الأبعاد على حد سواء للتأكد من
أن خطوط الأنابيب المختلفة ليست عاملاً مهمًا. يتم تشغيل كل اختبار
لمدة 120 ثانية من اللعب العادي ويتم قياس الإطارات في الثانية لتحديد الأداء.
تم إجراء جميع الاختبارات على نفس جهاز الكمبيوتر.
اختبار الأداء ثلاثي الأبعاد: Unity Carting Microgame
Unity Carting Microgame هو قالب مجاني يحتوي على كل ما تحتاجه لبناء لعبة سباق بسيطة.
إنها تأتي مع دروس تعليمية ، لكننا مهتمون أكثر باللعبة نفسها.
لقد صممنا لعبة Carting Microgame باستخدام كل من OpenGL و
DirectX لمقارنة أدائها وكانت النتائج على النحو التالي:
*برنامج DirectX:
- أدنى :331
- الأعلى : 848
- متوسط : 365.05
*برنامج OpenGL:
- أدنى : 247
- الأعلى : 819
- متوسط : 283.7
تفوق DirectX على OpenGL في معيارنا ثلاثي الأبعاد ، وحقق
معدلات إطارات رائعة طوال الوقت. لا تزال نتائج OpenGL أكثر من قابلة للتشغيل.
اختبار الأداء ثنائي الأبعاد: Unity Platformer Microgame
يشبه إلى حد كبير لعبة Carting Microgame ، فإن
Unity Platformer Microgame مجانية ومليئة بأدوات التعلم الرائعة.
كما هو متوقع ، فإن أداء اللعبة ثنائية الأبعاد في اختباراتنا أفضل من أداء اللعبة ثلاثية الأبعاد ،
ولكن يمكنك تقييم النتائج بنفسك.
*برنامج DirectX :
- أدنى : 599
- الأعلى : 850
- متوسط : 767.367
*برنامج OpenGL :
- أدنى : 302
- الأعلى : 604
- متوسط : 515.417
كما ترى من النتائج أعلاه ، حقق DirectX متوسط معدل إطارات أعلى بكثير في اختباراتنا.
في حين أن الاختلاف قد يبدو دراماتيكيًا ، فإن كلا النتيجتين قابلتان للعب إلى حد كبير.
OpenGL أو DirectX 11: استنتاج الأداء
بينما يقول الكثير من الناس أن OpenGL يعمل بشكل أفضل من DirectX ،
فإن API الأخير حقق نتائج أفضل في كلا المعيارين.
هذا بعيد كل البعد عن أن يكون قاطعًا ، حيث تلعب العديد من العوامل دورًا في
إملاء أداء اللعبة ، خاصةً عندما تصبح أكثر تعقيدًا.
DirectX أو OpenGL: أيهما يجب أن تستخدم لتطوير الألعاب؟
يعتمد اختيار API المناسب للرسومات على عدة عوامل. DirectX هو
واجهة برمجة تطبيقات الرسومات الأكثر استخدامًا. ينشئ العديد من مطوري
الألعاب ألعابهم لنظامي التشغيل Windows و Xbox قبل نقلها إلى
OpenGL للأنظمة الأساسية الأخرى. إذا كنت تنشر لعبة حصريًا خارج
Windows و Xbox ، فقد تستفيد من استخدام OpenGL من البداية.
يعد الأداء أيضًا عاملاً يجب مراعاته ، على الرغم من أن اختباراتنا تظهر
أن هذا لا يكاد يذكر عند استخدام أدوات المحرك مثل Unity. في جوهرها ،
الاختلافات بين هاتين واجهتي API للرسومات مهمة فقط لأولئك الذين يبحثون عن ميزات متخصصة محددة.