التدخلات في "وضع الألعاب"

التدخلات في "وضع الألعاب" هي تحسينات خاصة بالألعاب تحدّدها الشركات المصنّعة الأصلية للأجهزة (OEM) لتحسين أداء الألعاب التي لم يعُد المطوّرون يحدّثونها. مثلاً:

  • استخدام تغيير حجم ذاكرة التخزين المؤقت الخلفية في WindowManager
  • استخدام ANGLE بدلاً من برامج تشغيل GLES الأصلية

يمكنك إتاحة واجهة برمجة التطبيقات Game Mode API في لعبتك وإدارتها، لكي تلغي تدخلات "وضع الألعاب" التي يوفّرها المصنّع الأصلي للجهاز.

تتوفّر واجهة برمجة التطبيقات Game Mode API والتدخلات على:

  • أجهزة Android 12 المحدّدة
  • الأجهزة التي تعمل بالإصدار Android 13 أو إصدار أحدث

يمكن لكل لعبة إجراء ما يلي:

  • تنفيذ سلوك واجهة برمجة التطبيقات لميزة "وضع الألعاب"
  • اقتراح إعدادات التدخلات في "وضع الألعاب" على المصنّعين الأصليين للأجهزة
  • إيقاف التدخلات في "وضع الألعاب" صراحةً

خلفية

يوضّح هذا القسم الإجراءات التي تتّخذها ميزة "وضع الألعاب" وكيفية تحسين اللعبة لكل وضع.

تغيير حجم ذاكرة التخزين المؤقت الخلفية في WindowManager

يمكن أن يؤدي التدخل في عملية تغيير حجم المساحة الاحتياطية في WindowManager إلى تقليل عبء وحدة معالجة الرسومات في الجهاز. ويمكن أن يؤدي ذلك أيضًا إلى تقليل استهلاك البطارية عند ضبط وتيرة اللعبة على عدد لقطات في الثانية مستهدَف.

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

من المرجّح أن تحقّق لعبة غير مُعدّة للسرعة وتعتمد على وحدة معالجة الرسومات معدلات لقطات أعلى أثناء انخفاض عبء وحدة معالجة الرسومات.

ننصحك بشدة بأن تكون جميع الألعاب مدروسة، لأنّ معدّلات اللقطات غير المتّسقة تؤثر بشكلٍ كبير في طريقة تقييم المستخدمين للأداء.

تقييد عدد اللقطات في الثانية

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

تقييم التدخلات في "وضع الألعاب"

يستخدم هذا القسم الأمر adb.

إعداد الأوضاع

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

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(اختياري) الاحتفاظ بنسخة احتياطية من إعدادات الجهاز الحالية

بالنسبة إلى هواتف Pixel أو الأجهزة الأخرى، قد يكون هناك إعداد مسبق لميزة "التدخل في الألعاب" في إعدادات جهازك. يمكنك الاستعلام عن الإعدادات باستخدام الأمر التالي:

adb shell device_config get game_overlay <PACKAGE_NAME>

إذا عرض الطلب القيمة null، تجاهل الإعدادات الحالية. وإلا، احفظه وأعِد ضبطه عليه بعد التقييم.

تقييم التدخلات

لتقييم تدخل تغيير حجم الإطار الاحتياطي في WindowManager بمفرده، استخدِم العبارة التالية لضبط قيم مختلفة لتغيير حجم الإطار الاحتياطي في WindowManager على مستوى مختلف أوضاع اللعب.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

في المثال أعلاه، mode=2 هو "الأداء" وmode=3 هو "توفير البطارية". يتم تحديد قيمة downscaleFactor كنسبة مئوية تنطبق على إعداد تغيير الحجم (على سبيل المثال، 0.7 هي% 70 و0.8 هي %80). إنّ تغيير حجم الصورة بنسبة %90 (0.9) يكاد يكون غير ملحوظ، في حين أنّ تغيير حجمها بنسبة %50 (0.5) يكون ملحوظًا.

تحذير: قد لا يتم تغيير حجم العمليات الفرعية بشكل صحيح في Android 12. وعلى وجه التحديد، تأكَّد من أنّ النوافذ المنبثقة والرسائل المنبثقة تظهر بشكل صحيح. ننصحك بحصر إعداد تغيير الحجم على ‎70% على الأقل.

بعد إعداد قيم إعادة الحجم الجديدة، يمكنك التبديل بين أوضاع اللعبة لمعرفة مدى تأثير عملية التدخل في إعادة حجم مساحة التخزين المؤقتة لعرض الخلفية في WindowManager على لعبتك:

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

احرص على إعادة تشغيل اللعبة بعد اختيار كل وضع لعبة. يتطلب التدخل لخفض الدقة إعادة تشغيل التطبيق.

إيقاف التدخلات

يمكنك التحكّم في ما إذا كنت تريد تطبيق تدخّل على لعبتك من خلال إيقاف هذه الميزة. ولكلّ تدخّل إعداد إيقاف خاص به.

  1. يتم أيضًا استخدام ملف الإعدادات XML نفسه المستخدَم للتحكّم في تفعيل "أوضاع الألعاب" وإيقافها لضبط إعدادات التدخل:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. أعِد إنشاء لعبتك وأعِد إرسالها لإيقاف هذه الميزة.

سيتم تلقائيًا استخدام الإجراءات التي تحدّدها الشركات المصنّعة الأصلية للأجهزة ما لم تختار إيقاف استخدامها في لعبتك صراحةً.

المراجع

لمزيد من المعلومات عن قياس أداء اللعبة وتحسينه: