Pokémon TCG Pocket: استخدام Vulkan فقط لتطوير الألعاب البسيطة

لقطة شاشة لشعار عنوان اللعبة من Pokémon TCG Pocket

تُلعب لعبة Pokémon Trading Card Game (TCG) في جميع أنحاء العالم منذ 30 عامًا تقريبًا. تم تصميم لعبة Pokémon TCG Pocket التي تم إطلاقها مؤخرًا للسماح للاعبين بالاستمتاع بتجربة مجموعات وحوش Pokémon ومعاركها في أي وقت وأي مكان بدون الحاجة إلى استخدام البطاقات المطبوعة. ساهمت سهولة استخدام اللعبة على الهواتف الذكية في انتشارها على نطاق واسع بين المستخدمين.

على الرغم من أنّها قد تبدو كلعبة بطاقات عادية، تستخدم لعبة Pokemon TCG Pocket shaders معقدة، ما يشكّل تحديًا كبيرًا في تقليل وقت التجميع. ولتلبية هذه المتطلبات وضمان تقديم رسومات عالية الجودة وتجربة لعب سلسة، تم استخدام Vulkan، وهي واجهة برمجة تطبيقات رسومات من الجيل التالي، في إصدار Android من لعبة Pokémon TCG Pocket.

يتناول هذا المستند استخدام فريق تطوير Pokémon TCG Pocket لتكنولوجيا رسوم Vulkan والتحدّيات التي واجهها والمزايا التي تقدّمها هذه التكنولوجيا.

الشكل 1. مشاهد من أسلوب اللعب في لعبة Pokémon TCG Pocket

أسباب استخدام Vulkan

في البداية، خطط فريق تطوير Pokémon TCG Pocket لاستخدام OpenGL ES. ومع ذلك، قرّروا استخدام Vulkan، وهي واجهة برمجة تطبيقات للرسومات ذات مستقبل واعد. إليك الأسباب الرئيسية لاختيار Vulkan:

  • إدارة التطبيقات على المدى الطويل: مع إدراك الفريق لاتجاه أن تصبح Vulkan هي واجهة برمجة التطبيقات المهيمنة للرسومات على Android، اتّخذ الفريق قرارًا بأنّ Vulkan هي الخيار الأمثل لإدارة التطبيقات على المدى الطويل.
  • الأداء الثابت على الأجهزة ذات المواصفات المنخفضة: لتوفير تجربة سلسة لمجموعة كبيرة من المستخدمين، يجب أن يكون الأداء ثابتًا على الأجهزة ذات المواصفات المنخفضة. من المتوقّع أن تؤدي قدرة Vulkan على تقليل عبء وحدة المعالجة المركزية (CPU) إلى تحسين عدد اللقطات في الثانية واستهلاك البطارية.
  • تجنُّب إجراء تغييرات كبيرة بعد الإصدار: سيؤدي التبديل من OpenGL ES إلى Vulkan بعد الإصدار إلى إجراء تعديلات كبيرة، ما قد يؤدي إلى تعطيل تجربة المستخدم. وقد ساعد استخدام Vulkan منذ البداية في تقليل الحاجة إلى إجراء تغييرات كبيرة كهذه.

استخدام Vulkan مع Unity

تستخدم لعبة Pokémon TCG Pocket Unity كمحرّك لألعابها. تقدّم Unity عملية مبسّطة لتنفيذ Vulkan بنقرة واحدة. باستخدام Unity، دمج فريق التطوير واجهة برمجة التطبيقات Vulkan بسلاسة بدون الحاجة إلى تدريب متخصص. بالإضافة إلى ذلك، ساهم عدم توفّر عمليات تكييف خاصة بـ Vulkan لأدوات تطوير البرامج وبيئات التشغيل في تحقيق الكفاءة من حيث التكلفة.

Auto Graphics API في Unity
الشكل 2. Auto Graphics API في Unity

التحديات في تنفيذ Vulkan

على الرغم من أنّ تنفيذ Vulkan كان مباشرًا نسبيًا، واجه فريق التطوير بعض التحديات بعد ذلك:

  • المشاكل المتعلّقة بالأجهزة: مقارنةً بـ OpenGL ES، أظهرت برامج تشغيل بعض المصنّعين ثباتًا أقل مع Vulkan، ما أدّى إلى حدوث مشاكل خاصة بالأجهزة.
  • عدم اكتمال توافق Vulkan في الوسيط: لم يكن بعض الوسائط متوافقًا بالكامل مع Vulkan، ما اضطر الفريق إلى انتظار تحديثات الوسائط.

وقد عالج فريق التطوير هذه التحديات من خلال استراتيجيات متعدّدة، بما في ذلك تجميع فريق من المطوّرين المتمرّسين في ألعاب المستهلكين لتحديد الصعوبات وحلّها (لأنّهم يمتلكون خبرة كبيرة في واجهة برمجة التطبيقات المخصّصة للرسومات المنخفضة المستوى أو المحرك المخصّص) والتعاون مع فِرق Google وUnity لحلّ الصعوبات الفردية. لتوسيع نطاق التوافق مع الأجهزة، شمل الاختبار الأجهزة المتوسطة والقديمة المزوّدة بميزات عالية المستوى (التي تم طرحها قبل عامين أو 3 أعوام) لتحديد مواصفات الأجهزة المقترَحة.

مزايا Vulkan

وفّرت تقنية Vulkan العديد من المزايا للعبة Pokémon TCG Pocket:

  • تقليل وقت تجميع أدوات التظليل: خفّض Vulkan بشكل كبير وقت تجميع أدوات التظليل، حتى مع استخدام عدد كبير منها. على سبيل المثال، يمكن أن يتجاوز وقت تجميع OpenGL ES ثانية واحدة، ولكن لم يعُد ذلك مصدر قلق عند استخدام ميزة العرض في Vulkan.
  • مجموعة موسّعة من الأجهزة المتوافقة: من خلال التحسينات التي تم إجراؤها على معدّل عرض اللقطات واستهلاك البطارية، أصبح بإمكان مجموعة أكبر من الأجهزة المتوافقة استخدام التطبيق، ما يضمن تجربة سلسة لعدد أكبر من المستخدمين.
  • تحسين بيانات التتبُّع باستخدام طبقات التحقّق من Vulkan: كانت طبقة التحقّق من Vulkan مفيدة جدًا في تحديد السبب الجذري للمشاكل، ما يكمل البيانات المقدَّمة من تقارير Vitals حول أخطاء ANR/الأعطال.

رسالة إلى المطوّرين

يقدّم فريق تطوير Pokémon TCG Pocket النصائح التالية للمطوّرين الذين يفكرون في استخدام Vulkan لمشاريعهم:

  • بالإضافة إلى تقليل وقت تجميع أدوات التظليل، يوفّر Vulkan مزايا كبيرة في الأداء.
  • يمكن أن يؤدي استخدام vkQuality للرجوع إلى OpenGL ES إلى توسيع نطاق الأجهزة المتوافقة، على الرغم من أنّ لعبة Pokémon TCG Pocket لا تستخدمه بعد.

الخاتمة

من خلال استخدام Vulkan، تمكّن فريق تطوير Pokémon TCG Pocket من تحسين الرسومات على مجموعة واسعة من الأجهزة لضمان تجربة سلسة وتفاعلية لكل لاعب. ومن خلال إضافة ميزات جديدة باستمرار وتطوير إمكاناتها المستقبلية، من المتوقّع أن يوفّر Vulkan المزيد من المزايا بمرور الوقت.