نظرة عامة على أداة Android Performance Tuner (الأصلية)

يشرح هذا الموضوع طريقة دمج أداة Android Performance Tuner، المعروفة أيضًا باسم مكتبةTuning Fork، لتسجيل بيانات وقت عرض اللقطة وتحميلها من محرّكات الألعاب الأصلية (C وC++ ).

بالنسبة إلى محرّك ألعاب Unity، يمكنك الاطّلاع على دليل برنامج Unity.

خلفية

يتمثل أحد العناصر الرئيسية لتجربة اللعبة في عرض الأداء. ينتج أداء العرض عن المدخلَين التاليَين:

  • عدد اللقطات في الثانية: عدد مرات رسم إطار
  • إعدادات الجودة الرسومية: مستوى الدقة الذي يتم عرض الإطار به، بما في ذلك دقة المحاكاة والرسومات.

بالنسبة إلى الألعاب، يتم تعريف الأداء الجيد للعرض على النحو التالي:

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

وتحدّ مكتبة معدل سرعة الإطارات في Android من التباين في عدد اللقطات في الثانية، ما يوفّر عددًا ثابتًا للقطات في الثانية في الألعاب. ويرجع التباين في وقت عرض الإطارات إلى مستوى التفاصيل المعروضة خلال مشاهد معينة من أسلوب اللعب والإمكانيات الرسومية للجهاز. وباستخدام Android Performance Tuner، يمكنك تحديد الأوقات التي يكون فيها عرض اللقطة أثناء اللعب أبطأ أو أسرع من الوقت المحدَّد، وربط هذه المشاكل والفرص المتاحة لإجراء ما يلي:

  • إعدادات الجودة الخاصة
  • مَشاهد محدَّدة في لعبتك
  • طُرز أجهزة أو مواصفات أجهزة محدّدة

تسجيل البيانات وتحميلها

تعتمد مكتبة Tuning Fork على إحدى دوال التجزئة التي يُطلق عليها اسم كل إطار من مكتبة Android Frame Pacing. داخل المكتبة، يتم تجميع معلومات علامات التجزئة هذه في مدرجات تكرارية يتم تحميلها بعد ذلك بشكل دوري إلى Google Play من خلال نقطة نهاية HTTP. يتم تسجيل كل علامة على أنّها مرتبطة بمفتاح أداة وتعليق توضيحي، وهو التعريفات التي تحدِّدها في ملف مخزن مؤقت للبروتوكول.

مفاتيح الآلة الموسيقية

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

التعليقات التوضيحية

تقدم التعليقات التوضيحية معلومات سياقية حول ما تفعله لعبتك عندما يتم تسجيل علامة. على سبيل المثال، يمكن أن يحدد التعليق التوضيحي أيًا مما يلي:

  • مستوى اللعبة الحالي
  • يظهر "وحش كبير" على الشاشة
  • أي معلومات أخرى ذات صلة بحالة اللعبة

يتم تحديد التعليقات التوضيحية من خلال رسالة المخزن المؤقت للبروتوكول com.google.tuningfork.Annotation. لضبط التعليق التوضيحي الحالي، يجب إدخال تسلسل من الرسالة التي حدّدتها إلى TuningFork_setCurrentAnnotation(). يتم بعد ذلك ربط جميع بيانات التجزئة اللاحقة بهذا التعليق التوضيحي حتى يتم تعيين تعليق توضيحي آخر. فيما يلي مثال على تعريف النموذج الأوّلي للتعليقات التوضيحية:

import "tuningfork.proto"
enum Level {
  INVALID_LEVEL = 0;
  Level_1 = 1;
  Level_2 = 2;
  Level_3 = 3;
}
message Annotation {
  optional Level level = 1;
}

مَعلمات الدقة

تؤثر معلمات الدقة في أداء اللعبة ودقتها التصويرية، مثل مستوى التفاصيل المتداخلة ودرجة دقة الهيئة وطريقة إزالة التشويش. كما هو الحال مع التعليقات التوضيحية، يتم تحديد معلَمات الدقة باستخدام رسالة المخزن المؤقت للبروتوكول com.google.tuningfork.FidelityParams. فيما يلي مثال على تعريف أولي لمعلمات الدقة:

import "tuningfork.proto"
message FidelityParams {
  int32 texture_quality_level = 1;
  int32 shadow_resolution = 2;
  float terrain_details_percent = 3;
  int32 post_processing_effects_level = 4;
}

عند إعداد "الشوكة الرنانة"، يتم تمرير تسلسل للمعلَمات التي تستخدمها اللعبة. يمكنك تغيير هذه المعلمات، على سبيل المثال، إذا غيّر المستخدم إعدادات عرض اللعبة، وكانت البيانات التي تم تحميلها لاحقًا مرتبطة بالمعلمات الجديدة.

ليتمكّن Google Play من فهم التعليقات التوضيحية ومعلَمات الدقة التي تحدّدها، يجب أن يكون ملف المخزن المؤقت للبروتوكول الذي يتضمن هذه التعريفات مجمعةً في ملف APK الخاص باللعبة، مع إعدادات التهيئة. عليك أيضًا توفير قيم تلقائية لمجموعات معلَمات الدقة الشائعة في حزمة APK حتى يتم تقسيم بياناتك حسب هذه التوليفات في واجهة مستخدم Google Play. لمزيد من المعلومات، راجِع تحديد مستويات الجودة.

النفقات العامة للذاكرة ووحدة المعالجة المركزية (CPU)

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

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

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

دمج مكتبة Tuning Fork

ينقسم دليل الدمج هذا إلى جزأين. يصف الجزء الأول كيفية إجراء اختبار شامل باستخدام تطبيق تجريبي وGoogle Play Console. يصف الجزء الثاني كيفية دمج مكتبة "الشوكة الرنانة" في سلسلة الأدوات الخاصة بك وكيفية استخدام الدوال التي توفرها المكتبة. انقر على الرابط التالي أدناه للبدء.