تعمل واجهات برمجة تطبيقات الرسومات ، مثل OpenGL و DirectX ، كجسر بين البرامج وأجهزة الرسومات المستخدمة لتشغيل الألعاب. توفر واجهات برمجة التطبيقات هذه طرقًا قياسية لعرض رسومات ثنائية وثلاثية الأبعاد على الشاشة. لقد أصبحت أساسية لتطوير اللعبة على مدار العقدين الماضيين.
توفر محركات مثل Unity خيارًا بين واجهات برمجة تطبيقات الرسومات التي يستخدمونها ، ولكن كيف يفترض بك اختيار الخيار الصحيح للعبتك؟ انضم إلينا حيث نقارن OpenGL مع DirectX لنمنحك فكرة عن أي من هذه الأدوات هو الأفضل لك.
DirectX مقابل. OpenGL: نظرة عامة على الميزة الرئيسية
في جوهرهما ، يشترك كل من DirectX و OpenGL في نفس خط أنابيب الرسومات ، وهما لديهما لسنوات عديدة. تستخدم كلتا واجهات برمجة التطبيقات (API) نقاطًا تسمى الرؤوس لبناء أساسيات رسومات معقدة. يخزن كل رأس إحداثياته الخاصة ومعلومات مهمة أخرى. لكن الطريقة التي تستخدم بها كل مكتبة الرؤوس مختلفة.
قد يؤدون وظائف مماثلة ، لكنك ستلاحظ الفرق بين OpenGL و DirectX إذا كنت تعمل معهم.
DirectX مقابل. OpenGL: نطاق API
قبل الذهاب إلى أبعد من ذلك ، من المهم ملاحظة أنه على الرغم من أن كلاهما من واجهات برمجة تطبيقات الرسومات ، فإن 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 من خلال التفاعل مع واجهات برمجة التطبيقات للرسومات خلف الكواليس ، لا يتطلب الأمر سوى نقرة زر واحدة لتبديل واجهة برمجة التطبيقات التي تستخدمها. ما لم تكن تنشئ لعبة من البداية ، فمن غير المرجح أن تلاحظ اختلافًا في سهولة استخدام كل واجهة برمجة تطبيقات.
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 للرسومات مهمة فقط لأولئك الذين يبحثون عن ميزات متخصصة محددة.