
Mir 2: Return of the King هي لعبة موبايل عالية الجودة من IP Legend مرخّصة من Actoz Soft وطوّرتها شركة HK ZHILI YAOAN LIMITED باستخدام Unity Engine.
لا تعيد هذه اللعبة فقط بشكلٍ مثالي شعور "مير 2"، وهو أحد ألعاب تقمّص الأدوار الخيالية الكورية المتعدّدة اللاعبين على الإنترنت، بل تقدّم أيضًا العديد من محتويات الألعاب الأكثر رواجًا، مثل جمع المعدّات والهجوم بالرمل على نطاق واسع وغيرها من أساليب اللعب الأساسية.
استخدمت اللعبة واجهة برمجة التطبيقات Frame Pacing API (Swappy) لتحسين ثبات عدد اللقطات في الثانية، وتحقيق عرض سلس، وتحسين "مؤشرات Android الحيوية" (مقياس الجلسات البطيئة) بشكل كبير.
إطلاق ميزة "الجلسة البطيئة" في "مؤشرات Android الحيوية"
الجلسة البطيئة هو مقياس من "مؤشرات Android الحيوية" في وحدة تحكّم Google Play. الجلسة البطيئة هي جلسة تضمّ أكثر من% 25 من اللقطات البطيئة. وتكون اللقطة بطيئة في الحالات التالية:
1) عند 20 لقطة في الثانية، لا يتم عرض اللقطة خلال 50 ملي ثانية بعد اللقطة السابقة. 2) عند 30 لقطة في الثانية، لا يتم عرض اللقطة خلال 34 ملي ثانية بعد اللقطة السابقة.
وفي الوقت المناسب، سيبدأ Play بإبعاد المستخدمين عن الألعاب التي لا يمكنها تحقيق معدّل 20 لقطة في الثانية على هواتفهم.
هناك العديد من الأسباب التي قد تؤدي إلى عرض إطار أو معالجته على الشاشة لفترة أطول مما هو مستهدف من المطوّر. قد تكون اللعبة مرتبطة بوحدة المعالجة المركزية أو وحدة معالجة الرسومات، أو قد ترتفع درجة حرارتها مما يؤدي إلى تنشيط حالة حرارية متباطئة، أو قد يكون هناك عدم تطابق في معدل التحديث للعبة ومعدل تحديث شاشة الجهاز.
ما هو تطبيق Swappy
مكتبة Android Frame Pacing، المعروفة أيضًا باسم Swappy، هي جزء من مكتبات AGDK. يساعد Swappy ألعاب OpenGL وVulkan في تحقيق عرض سلس و معدّل عرض لقطات صحيح على Android.
تتعامل المكتبة مع معدّلات تكرار عرض متعددة إذا كان الجهاز متوافقًا معها، ما يمنح اللعبة مرونة أكبر في عرض اللقطة. على سبيل المثال، بالنسبة إلى الجهاز المتوافق مع معدّل تحديث 60 هرتز و90 هرتز، يمكن أن تنخفض معدّل اللقطات في الثانية للعبة التي لا يمكنها توليد 60 لقطة في الثانية إلى 45 لقطة في الثانية بدلاً من 30 لقطة في الثانية للحفاظ على fluidity. ترصد المكتبة عدد اللقطات في الثانية المتوقّع في اللعبة وتضبط أوقات عرض اللقطات تلقائيًا وفقًا لذلك.
تعمل مكتبة "معدّل عرض اللقطات" أيضًا على إطالة عمر البطارية لأنّها تتجنّب إجراء تعديلات غير ضرورية على الشاشة. على سبيل المثال، إذا كانت سرعة عرض اللقطات في لعبة فيديو تبلغ 60 لقطة في الثانية، ولكن يتم تعديل الشاشة بمعدّل 120 هرتز، يتم تعديل الشاشة مرّتين لكل لقطة. تتجنّب مكتبة "معدّل عرض اللقطات" حدوث ذلك من خلال ضبط معدّل التحديث على القيمة المتوافقة مع الجهاز الأقرب إلى معدّل اللقطات المستهدَف في الثانية.
كيفية تحسين Mir 2 لأداء العرض باستخدام Swappy
كان تطبيق Mir 2 (미르2: 왕의 귀환) يواجه مشكلة في ثبات أداء العرض، حيث شهد 40% من الجلسات بطءًا في عرض المحتوى عند رصد معدّل عرض تصاعدي يبلغ 20 لقطة في الثانية، وهو أعلى بكثير من الحدّ المسموح به في Google Play الذي يبلغ 20%.

لعبة Mir 2 (미르2: 왕의 귀환) هي لعبة ذات رسومات عالية الدقة، وتواجه بعض الأجهزة تحديات في الحفاظ على عدد ثابت من اللقطات في الثانية. يُظهر توزيع عدد اللقطات في الثانية أنّ الكثير من الجلسات يتم تشغيلها عند عدد لقطات في الثانية أقل من 20 لقطة في الثانية.

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

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

دمج فريق Mir 2 مكتبة Swappy بسهولة من خلال الاستفادة من ميزة معدل عرض اللقطات المحسَّن المضمّنة في Unity. أدّى الإجراء إلى تحسُّن ملحوظ في أداء العرض، لا سيما خفض قيمة مقياس الجلسات البطيئة من %40 إلى %10.

انخفض عدد الجلسات البطيئة بشكل كبير في Mir2 بعد أن دمج فريق Mir2 أداة Swappy.

يمثّل كلّ مجموعة النسبة المئوية للجلسات التي كانت فيها 75% من اللقطات أسرع من تصنيف المجموعة.
بدء استخدام Swappy
كيفية استخدام Swappy في محرّكات الألعاب الأصلية
اطّلِع على الأدلة التالية لدمج مكتبة Android Frame Pacing في لعبتك:
- دمج ميزة "معدّل عرض اللقطات" في Android مع أداة عرض Vulkan
- دمج ميزة "معدّل عرض اللقطات" في Android مع أداة عرض OpenGL
كيفية استخدام Swappy في محرّك ألعاب Unity
دمج Unity ميزة "معدّل عرض اللقطات" في Android في محرّكها لتفعيل هذه الميزة في Unity، ضَع علامة في مربّع الاختيار معدل عرض اللقطات المحسَّن ضمن إعدادات المشروع > المشغّل > إعدادات Android > الدقة وعرض الفيديو:

بدلاً من ذلك، يمكنك تفعيل خيار "معدّل عرض اللقطات المحسّن" برمجيًا في رمز المنطق للسماح لـ Unity بتوزيع اللقطات بالتساوي لتقليل التباين في معدّل عرض اللقطات، ما يؤدي إلى تحسين تجربة اللعب.
كيفية استخدام Swappy في محرّك ألعاب Unreal Engine
يدمج الإصدار 4.25 من Unreal والإصدارات الأحدث مكتبة Android Frame Pacing Library، التي تشكل جزءًا من مجموعة تطوير ألعاب Android. توضّح مقالة معدل عرض اللقطات في الأجهزة الجوّالة كيفية تفعيل مكتبة معدل عرض اللقطات في Android وكيفية التحكّم في معدل عرض اللقطات من رمز C++.
لمزيد من المعلومات، يمكنك الاطّلاع على الجلسات البطيئة وSwappy.