هاردوير ألعاب

الواجهة الرسومية الأحدث تصعد نحو القمة، Vulkan في مواجهة DX12 و OGL

منذ 5 أشهر - بتاريخ 2021-07-25

لا شك أن الكثير منا يلعب ألعاب الفيديو، وجميعنا نعرف جيداً كيف نلعب هذه الألعاب. ولكن، هل تعرف كيف تتم عملية التطوير؟!

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

ولعلنا تحدثنا هُنا في عرب هاردوير مراراً وتكراراً عن هذه المُحركات المُختلفة بشكل من التفصيل. ولكن في الحقيقة فأنا لم آت اليوم هُنا للحديث عن مُحركات الألعاب، ولكن عن أمر آخر مُرتبط بها إرتباطاً وثيقاً. ألا وهو واجهة البرمجيات الرسومية أو الـ "API" التي تتعامل معها هذه المُحركات برُمّتها، وعند ذكر واجهات البرمجيات الرسومية لابد لنا من ذكر الواجهة الأشهر على الإطلاق وهي مكتبة DX أو DirectX من مايكروسوفت. وبما أننا تحدثنا في موضوع غابر عن واجهة DX 12 بشئ من التفصيل، فاليوم سنتطرق قليلاً لعضو نشيط وواعد في هذا المجال، سنتحدث اليوم عن واجهة Vulkan ....

محور حديثنا اليوم سيتضمّن بعض التوضيحات بالطبع، مثل ماهية واجهة البرمجيات أو الـAPI ومن ثم سنتطرق سريعاً للحديث عن واجهة DX و Vulkan وسنتحدث أيضاً عن واجهة Open GL، وما هي الفوارق بينهم جميعاً وما هي الواجهة الأفضل. لذا فدعونا نتسلم أطراف الحديث ونبدأ.

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

عندما يتعلق الأمر بتطوير الألعاب على منصات الألعاب المنزلية، فإن المطورين لديهم أجهزة مُعينة لعلامة تجارية مُعيّنة مثل PlayStation أو Nintendo ، Xbox وما إلى ذلك. وهذا بالطبع يعني أنهم أمام معالج واحد ، وبطاقة رسومية واحدة ، وتكوينات ذاكرة متشابهة ، ونفس نظام إدخال التحكم ، ومكونات الأجهزة المماثلة الأخرى، أي أنهم بشكل أحرى أمام عدد كبير من نفس العتاد المُحدد.  

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

ولهذا السبب ، يتجه المطورون على الأرجح وبشكل أكبر نحو منصات الألعاب بسبب وجود العتاد القادر على تشغيل الألعاب،  مع فرص أقل للقرصنة ، كما يتمتع المبرمجون والمطورون بوصول مباشر إلى العتاد الداخلي أثناء برمجة برامجهم وألعابهم. حيث تُتيح هذه الميزة الموجودة في منصات الألعاب الفرصة للمطورين للاستفادة الكاملة من إمكانات الأجهزة.  بل ولعل هذا هو السبب الرئيسي وراء أهمية واجهات التطبيقات الرسومية مثل Direct X و Vulkan API لأجهزة الكمبيوتر وألعاب Android بشكل عام، فكيف ذلك ؟!.

ما هي واجهة برمجة التطبيقات (API) ؟

يتم تعريف مُصطلح API (واجهة برمجة التطبيقات) على أنها مجموعة من الوظائف التي قد يستدعيها أحد البرامج الثانوية (وفي حالتنا هذه هذه البرامج هي الألعاب أو مُحركات الألعاب)،  جنبًا إلى جنب مع مجموعة من ثوابت الأعداد الصحيحة ذات التسميات المُحددة، على سبيل المثال الثابت ، GL_TEXTURE_2D يتوافق مع الرقم العشري 3553. وعلى الرغم من أن تعريفات الوظائف تشبه بشكل نظري تلك الخاصة بلغة البرمجة C، إلا أنها مستقلة عن اللغات بشكل عام.

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

دعونا نفهم أولاً ما هو Directx أو  DirectX 12 ؟

تُعتبر واجهة DirectX باختصار هي عبارة عن واجهة برمجة تطبيقات (API) يتمثل عملها الرئيسي بشكل أساسي في التعامل مع المهام المتعلقة بالوسائط المتعددة ، وبرمجة الألعاب ، وفك تشفير الفيديو ، وما إلى ذلك (أي يمكننا القول إختصاراً أنها تتعلق بمعظم المهام المُتعلقة بالصورة). وتُعد مكتبة DirectX (كما نُطلق عليها عادة) هي ملكية فكرية خاصة لشركة Microsoft ، ويتم استخدامها بشكل أساسي في أنظمة التشغيل ومنصة ألعاب  Xbox التابعة للشركة. والسبب الرئيسي لتطوير هذه الواجهة، هو السماح بالوصول المباشر إلى البطاقة الرسومية ولوحة المفاتيح والماوس ومكونات النظام الأخرى.

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

الجدير بالذكر أن أول نسخة من واجهة DirectX صدرت في عام 1995 وذلك عندما تم إطلاقها مع نظام التشغيل  Windows 95. وفي خلال طوال تلك المُدّة قامت Microsoft بتسويق واجهة Directx كمنصة للألعاب واعتمدها المبرمجون بشكل جيد،  وذلك لأن تلك الفترة وبالرغم من أن واجهة OpenGL كانت موجودة بالفعل، فقد كانت تحتاج لأجهزة متطورة . وقد كانت واجهة OGL نفسها أكثر تركيزًا على التطبيقات الهندسية واستخدامات  CAD.

أحد الأمور الأُخرى التي سيُلاحظها القارئ هو أن جميع واجهات برمجة التطبيقات التي تصنعها Microsoft تبدأ بنفس الكلمة وهي : "Direct" مثل Direct3D و DirectSound و DirectPlay و DirectMusic و DirectDraw و DirectCompute و DirectWrite و Direct2D و DirectGL و DxDiag وما إلى ذلك ، وهي تأتي في هيئة SDK (مجموعة تطوير برمجية أو Software Development Kit) التي تتكون من مكتبات قابلة للتشغيل بطبيعة ثُنائية ( binary).

أكس بوكس Xbox

ولعل الفارق الوحيد هُنا هو أن منصات الألعاب الخاصة بمايكروسوفت تقوم باستخدام نسخة خاصة من DirectX كأساس لمنصاتها مثل Microsoft Xbox و Xbox 360 و Xbox One. ولقد تم تطوير هذه النسخة من الـ API بالاشتراك بين Microsoft و Nvidia ، اللتين طورتا العتاد الرسومي المخصص المستخدم في جهاز Xbox الأصلي.

ماذا عن مكتبة  OpenGL ؟!

تُعتبر اوجهة أو مكتبة OpenGL أو (مكتبة الرسومات المفتوحة Open Graphics Library) من ناحية الوظيفة، هي واجهة برمجة تطبيقات مثل  Directxتماماً. حيث يتمثل عملها في تصيير الرسوميات المتجّهة (حيث أن الرسم على الحاسوب له أكثر من طريقة) ثنائية وثلاثية الأبعاد باستخدام المُعالج الرسومي . وتُعتبر OGL واجهة برمجة تطبيقات مرنة جدًا، حيث أنه من وقت لآخر يتم إصدار إصدارات جديدة من OpenGL مع إدخال ميزات جديدة. وبشكل عام ، يتم تطوير ميزات جديدة من قبل الأعضاء بمساعدة الامتدادات المقدمة من مطوري البرنامج.  ويرتبط كل امتداد جديد بمعرف قصير ، بناءً على اسم الشركة التي طورته (أي كأنك في جمعية تعاونية يُشارك فيها الجميع بما يستطيع ويتم تدوين صاحب هذا التطوير "يا لبشاعة هذا التشبيه").  

وعلى كل حال، عادةً ما تتشكل الميزات التي يقدمها كل إصدار جديد من OpenGL من خلال دمج مجموعة الميزات التي توفرها الامتدادات المُضافة.  في الوقت الحالي ، تتم إدارة OpenGL من قبل منظمة Khronos Group غير الربحية. والتي تأسست في عام 2000 من قبل شركات مثل ATI Technologies و Discreet و Evans & Sutherland و Intel Corporation و NVIDIA و Silicon Graphics (SGI) و Sun Microsystems. ولديها الآن ما يقرب من 120 شركة كعضو مُساهم في عمليات التطوير،  وأكثر من 30 متبنيًا ، و 24 عضوًا مستديم.  

أما من ناحية الدعم الخاص بها، فأهم مروجي هذه المكتبة هم شركات AMD و Huawei و Qualcomm و Apple و Google و Nokia و Nvidia و Sony و ARM و Valve Corporation و Samsung و Intel و Epic Games و VeriSilicon و Imagination Technologies. ، في حين أن لديها العديد من الأعضاء المساهمين مثل Adobe و Amazon و Dell و LG و HTC و HP و Microsoft و MediaTek و Mozilla و Panasonic وغيرها الكثير.

والآن أيهما أفضل، Directx  أم OpenGL (Vulkan) API ولماذا ؟

باستخدام نفس العتاد،  يوفر OpenGL عادة عدد أكبر من الإطارات في الثانية مقارنةً بمكتبة DirectX . أي أن OpenGL ببساطة أسرع من  DirectX. وبالطبع قد يطرح أحدهم سؤالاً هاماً هُنا. لماذا لا يزال DirectX هو واجهة برمجة التطبيقات الأكثر إنتشاراً بالرغم من كونها أبطاً بي بعض الحالات (أو الكثير منها)؟. هل السبب هو جودة الرسوم مثلاً ؟. الإجابة هي لا، ليس بسبب جودة الصورة أو حتى بسبب بعض الميزات الغير موجودة في OGL . حيث تحتوي أحدث نسخة من OpenGL على جميع أدوات التظليل والأدوات التي يمتلكها  DX. ولا يرجع ذلك إلى الدعم العتادي أيضاً، حيث تدعم جميع البطاقات الرسومية من Nvidia و AMD أحدث إصدار من OpenGL مع  DirectX.

ولكن الفارق الوحيد هو سهولة العمل علىDirectX بالنسبة للمطورين. حيث أن DX هي واجهة برمجة أكثر نظافة كما أن التوثيق الأفضل لها أسهل في التعلم. لذا فالناتج النهائي هو: المزيد من المطورين الذين يستخدمون DirectX ، وبالتالي المزيد من ألعاب الداعمة لـ DirectX ، وهو بدوره يعني دعم أفضل في التعريفات.  ولأن الوضح الحالي كذلك، فنحن في حلقة مُفرغة تؤدي مرة أخرى إلى المزيد من مطوري DX الجدد، والمزيد من ألعاب DX وبرامج تشغيل / أو الأدوات / أو الوثائق الأفضل.

وهنا يظهر Vulkan ، هذا الوافد الجديد الذي أتى للتعامل مع Directx ، والذي قد نراه بشكل أكبر شيئاً فشيئاً. وفي غضون بضع سنوات من الآن،  سنرى الفرق حيث ينضم مبرمجون جدد إلى خط التطوير.

ما هي طبيعة عمل  Direct X و  OpenGL API ؟

 من ناحية التعريف البسيط، فإن DirectX ببساطة هو برنامج تم تطويره بواسطة Microsoft ويعمل مع مكونات أجهزة الكمبيوتر. لذا وبشكل عام ، فهو عبارة عن مجموعة من واجهات برمجة التطبيقات ، أوAPI المُجمّعة، والقادرة على التعامل مع المهام المتعلقة برندرة الرسوميات المتجهة ثنائية وثلاثية الأبعاد ، وعرض الفيديو ، وتشغيل الصوت على نظام Windows .

أما Open Graphics Library (OpenGL)، فهي واجهة برمجة تطبيقات متعددة اللغات ومتعددة الدعم للأجهزة أو العتاد (cross-platform) لعمل رندر (تصيير) للرسوميات المتجهة ثنائية وثلاثية الأبعاد. وتُستخدم واجهة برمجة التطبيقات هذه عادةً للتفاعل مع وحدة المُعالجة الرسومية بشكل أساسي ، لتحقيق تسريع عتادي لعملية التصيير أو الريندر.  

وبسبب بعض العقبات التي ظهرت مع الأجيال الأولى من OGL ، ظهر كما أشرنا للتو جيل جديد أو ما نُسميه بمبادرة OpenGL من الجيل التالي، والتي تُدعى "Vulkan" . وهي عبارة عن واجهة برمجة تطبيقات جديدة منخفضة التكلفة ومتعددة المنصات للرسومات ثلاثية الأبعاد والعمليات الحسابية. وقد تم إصدارها في 16 فبراير 2016 . ولكن الأمر المُميز مع Vulkan أنه وبمجرد إطلاقها، فقد لاقت المكتبة الكثير من القبول، وبدأت الأقاويل تتناقل بين المتابعين للتقنية في أنها هي أداة المستقبل.  حيث أنها تستهدف تطبيقات الرسومات ثلاثية الأبعاد عالية الأداء في الوقت الفعلي مثل ألعاب الفيديو والوسائط التفاعلية عبر جميع الأنظمة الأساسية.

ومقارنةً بـ OpenGL و Direct3D 11 ومثل Direct3D 12 و Mantle ، يهدف "Vulkan" إلى تقديم أداء أعلى واستخدام أكثر توازناً لوحدة المعالجة المركزية / ووحدة المعالجة الرسومية.  الاختلافات الرئيسية الأخرى عن Direct X 11 و OpenGL السابقة مع"Vulkan"  هو كونها واجهة برمجة تطبيقات ذات مستوى أقل إلى حد كبير وتقدم مهام متوازية.

كما تمتلك "Vulkan" أيضًا القدرة على تقديم تطبيقات رسومات ثنائية الأبعاد. بالإضافة إلى ذلك، تُقدّم "Vulkan" في الواقع أفضل توزيع للعمل بين أنوية وحدات المعالجة المركزية المتعددة الأنوية، مما يجعلها أكثر قدرة على القيام بمهام عالية الأداء بسهولة أكبر. ولهذه الأسباب التي ذكرناها للتو، يتحول معظم المطورين اليوم نحو "Vulkan" نظرًا لكونها واجهة برمجة التطبيقات الأكثر ديناميكية وقدرة وتوافق.

الدعم !...ما هو مقدار الدعم الذي يحظى به كل من مكتبات الألعاب (API) التي ذكرناها ؟

كما أشرنا من قبل، تُعد مكتبة"Direct X"  هي المكتبة المُسيطرة على العالم الرسومي في الوقت الحالي. حيث أنك ستجد "في الغالب" أن كل البرامج ومحركات الألعاب والألعاب في السوق حتى الآن داعمة لها.  فنظرها لأنها واجهة برمجة التطبيقات الأقدم والأكثر دعماً، فهي قوية جدًا "من ناحية الدعم" لدرجة أن كل مطور يفكر فيها قبل تطوير أي برنامج أو لعبة.  فبالنسبة للكثيرين ، تُعد مكتبة DX هي الأساس لكل تطوير، وهذا هو سبب شهرة  Directx الواسعة.  يعتمد Xbox بالكامل على DirectX API ، وهي أحد منصات الألعاب المنزلية الأكثر شهرة بجوار PS .

بعد ذلك تأتي واجهة  OpenGL API. والتي "كما هو الحال معDirectx  " تُعد أيضًا منصة تطوير قوية للغاية. وإذا تحدثنا عن الدعم الذي تضخّه كل شركة تقنية كبرى لتطوير هذه المنصة، فسنجد الناتج واضح أمامنا. حيث أن جميع المحاكيات الموجودة اليوم لديها خياران أحدهما Directx والآخر هو  OpenGL.

وأخيراً، تُعتبر واجهة  Vulkanوالتي بدورها ليست واجهة برمجة تطبيقات قديمة -كما هو الحال مع DX أو OGL - أحد واجهات برمجة التطبيقات الأكثر تألقاً في الفترة الأخيرة. فبالرغم من أن دعمها لا يزال محدودًا مقارنة بالبقية، ولكنه يزداد بشكل كبير على مدار فترة زمنية تبلغ 4 سنوات منذ إطلاقها.  فمنذ الإعلان عن "Vulkan" وحتى الآن، يتزايد توافق ودعم "Vulkan" بسرعة كبيرة للغاية بحيث أنها قد تلحق بركب Direct X قريبًا مثل أُختها الكُبرى  OpenGLمن قبل.  

وبشكل عام ، فإن أداء الألعاب مع Vulkan API مرتفع جدًا مقارنة بـ Directx و  OpenGLنفسها. فمع العديد من المحاكيات الخاصة بالألعاب،  تجاوز أداء Vulkan بالفعل DirectX و OpenGL .

محاكيات الألعاب الرئيسية التي تدعمها  Vulkan:

1) Beetle/Mednafen PSX

2) Dolphin

3) Libretro port of Mupen64Plus

4) RPCS3

5) PPSSPP

محركات الألعاب الرئيسية التي تدعمها واجهة Vulkan :

1) Source 2

2) Unreal Engine

3) Torque 3D

4) Quake Engine

5) Unity Engine

6) Cry Engine

7) Unigine

8) UX3D Engine

9) Rockstar Advanced Game Engine

10) Xenko

11) Frostbite

وبالرغم من كل هذه الوعود التي تعد بها مكتبة Vulkan إلا أنه وفي نهاية المطاف، فإن الدعم المادي للمطورين سيكون له الحكم الأخير في إنتشار Vulkan على حساب مكتبة مثل DirectX أم لا. ولكن وبالنظر لعالم الألعاب في الوقت الحالي، سنجد أن الكثير من الألعاب الحديثة تأتي بالفعل مع دعم لكل من Vulkan و DirectX على حد سواء "مثل لعبة RDR2 أو Doom على سبيل المثال. ولأن كل من واجهات البرمجة هذه لها وظائف ومزايا مُعيّنة مع العتاد المُختلف. يتوقع البعض أن تنمو "Vulkan" بشكل أكبر في نظام تشغيل Android الأساسي والمُحاكيات Emulators ، فيما ستستمر DirectX في السيطرة على نظام Windows الأساسي.

بعض الإختلافات المُهمة بين DirectX VS OpenGL

 Microsoft هي الشركة الكاملة والوحيدة التي تصمم وتطور واجهة DirectX ناهيك عن برامج التشغيل الأساسية. في حين تتم صيانة OpenGL بواسطة مجموعة  Khronos"التي تحدثنا عنها في البداية". ويتم تطوير التعريفات الأساسية بواسطة بائعين فرديين مثل  Nvidia.

 كما يعلم الجميع فشركةMicrosoft هي منظمة ربحية، ولكن Khronos هي منظمة مفتوحة المصدر لا تعتمد على الربحية.  

تحتوي مكتبة OpenGL على مجموعة فرعية تُعرف باسم OpenGL ES تستهدف الأجهزة المضمنة. وفي الوقت الحالي ، تُعد OGL هي المعيار الرسومي الأكثر قبولًا على نطاق واسع للأجهزة المضمنة، أي أنOpenGL  يفوز على DirectX هنا.

يحتاج DirectX إلى نظام تشغيل Windowsللعمل في حين أن OpenGL مستقل عن نظام التشغيل المُستخدم.

 عند الحديث عن أداء الرسوميات بشكل عام في الوقت الحالي (بعد ظهور DX12)، يفوز DirectX بالسباق على OpenGL .

مكتبة OpenGL ، هي مكتبة مُخصصة فقط للرسومات وعمليات الريندر فحسب.  بينما يتحكم DirectX في الصوت والشبكات والوسائط المتعددة أيضاً.

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

دعونا نتطرق للسؤال الأهم، وهو " لماذا لا تزال الشركات تستخدم Directx بدلاً من  Vulkan API" ؟

 والإجابة على هذا السؤال بسيطة نسبياً، فكما أشرت في البداية، فإن مكتبة DirectX أكثر قدماً , وهو ما يعني أن المبرمجين ظلوا يستخدمونها لسنوات طويلة، ومن الصعب جدًا على المبرمجين التبديل إلى  Vulkan API في يوم وليلة.  حيث أنه لاستخدام  Vulkan API، سيتحتم على المطورين التعلم مرة أُخرى من أجل التطوير. وهذا أمر مكلف للغاية ويستغرق وقتا طويلاً جداً.  وهو ما سيؤثر بالسلب على عملهم بالطبع.  

السبب الثاني هو أن مكتبة Vulkan API لا تزال في بداياتها، وهو ما يعني أنها مازالت مليئة بالأخطاء، ولا يتوفر سوى القليل جدًا من المعلومات التقنية للتطوير مقارنةً بـ  DirectX. فبالرغم من نجاح عدد قليل جدًا من الاستوديوهات مع Vulkan في الماضي، إلا أن غالبية الاستوديوهات لا تزال تلتزم بـ D3D9 و D3D11 و D3D12في عملية التطوير.  لذا فمن الجانب الواقعي، من الصعب أن يقوم هؤلاء الموجودين بالفعل أو الذين يعملون بالفعل مع DX منذ مدة بالتحول للمكتبة الجديدة. ولكن هذا سيتغير بالطبع مع دخول المواهب الجديدة إلى مجال التطوير الذي يتسع نطاقه بشكل كبير.  

لذا فقريباً ستستخدم الكثير والكثير من الألعاب والبرامج واجهة Vulkan API كخيار بديل لـ  DirectX، أو على الأقل في نفس مستوى المنافسة.

بالطبع أحد الأسباب الرئيسية في سيطرة DirectX هو  Xbox نفسه. حيث يتعين على مطوري الألعاب تطوير الألعاب لأجهزة Xbox أيضًا، والتي بدورها تعتمد تماماً على  Directx 12 API. وهذا يجعل المهمة صعبة على المطورين للتبديل إلى Vulkan API ، لأن ذلك سيعني أنهم سيطوروا نسخة مع Vulkan للحواسيب وأُخرى مع DX12 لأجهزة Xbox مثلاً (ولم كل هذا التعب، أليس كذلك).

أحد الأمور الأُخرى المتسببة في الدعم الأقل هو أن كُلاً من Vulkan و OpenGL ، هما مشروعان مفتوحان المصدر. لذلك فهما لا يملكان نفس الترسانة التسويقية الضخمة الموجودة لدى Microsoft . ولعل هذا هو السبب في أن نمو Vulkan API بطيء مقارنة بـ  Directx. بالطبع لا يزال Vulkan في مراحله الأولى وهو ليس قريبًا من الوظيفة المكافئة لـ DX12حتى الآن.  كما أنه وبلا شك، لا تريد Microsoft أن تتخلى عن ​​منتجها، أو أن تُقلل من قيمته السوقية، وهذا هو السبب الرئيسي في أنها تلتزم بـ Directx API في معظم أعباء العمل الخاصة بها، حتى ولو على حساب القليل "أو الكثير" من الأداء.

الخلاصة

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

ولكن ومع هذا التطور الهائل في القوة الرسومية والبصريات الخاصة بالألعاب، فالأمر سيحتاج منك كمستخدم عتاد أكثر حداثة لمجاراة هذا التدفق الهائل في التقنية، فهل أنت مستعد ؟!

أضف تعليق (0)
ذات صلة