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

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

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

معلومات أساسية

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

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

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

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

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

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

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

تعتمد مكتبة "الشوكة الرنانة" على إحدى دوال التجزئة الخاصة بها والتي يُطلق عليها اسم كل إطار بواسطة مكتبة سرعة إطار Android. وضمن المكتبة، يتم تجميع معلومات المؤشرات هذه في مدرجات تكرارية ثم يتم تحميلها بشكل دوري إلى 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)

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

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

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

دمج مكتبة "الشوكة الرنانة"

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