تطوير التطبيق باستخدام محاكي مطوّر برامج "ألعاب Google Play على الكمبيوتر"

محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين هو محاكي يركّز على المطوّرين لتطبيق "ألعاب Google Play على الكمبيوتر". على عكس تجربة اللاعب، يمكنك تثبيت حزمك وتصحيح الأخطاء فيها. يمكنك أيضًا محاكاة إعدادات مختلفة للاعبين، مثل نسبة العرض إلى الارتفاع ومحاكاة الماوس والواجهة الخلفية للرسومات، لمساعدتك في التأكّد من أنّ لعبتك تعمل على النحو المتوقّع على مجموعة متنوّعة من إعدادات الكمبيوتر.

بدء المحاكي

بعد التثبيت، سيظهر لك عنصر قائمة ابدأ باسم "محاكي ألعاب Google Play المخصّص للمطوّرين" واختصار على سطح المكتب لتشغيل المحاكي. سيظل المحاكي مقيمًا في علبة النظام عند إغلاق النافذة.

تسجيل الدخول

سيُطلب منك تسجيل الدخول إلى حساب Google الخاص بك في المرة الأولى التي تشغّل فيها المحاكي. استخدِم بيانات تسجيل الدخول نفسها التي تخطط لاستخدامها في التطوير.

يمكنك تسجيل الخروج من خلال النقر بزر الماوس الأيمن على رمز علبة النظام، ثم النقر على Developer Options ، ثم على Force sign out. عند إجراء ذلك، تتم إعادة تشغيل المحاكي على الفور ويُطلب منك تسجيل الدخول مرة أخرى.

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

بالإضافة إلى ترجمة الماوس، يوفّر محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين اختصارات لوحة المفاتيح لتحسين التنقّل:

  • ctrl + h: اضغط على زر الشاشة الرئيسية
  • ctrl + b: اضغط على زر الرجوع
  • F11 أو alt + enter: التبديل بين وضع ملء الشاشة و الوضع في نافذة
  • shift + tab: فتح النافذة المرافقة لتطبيق "ألعاب Google Play على الكمبيوتر"، بما في ذلك عمليات ربط المفاتيح الحالية لحزمة تطوير البرامج (SDK) الخاصة بالإدخال

تثبيت لعبة

يستخدم محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين أداة Android Debug Bridge‏ (adb) لتثبيت الحزم.

التوافق مع adb

تتوافق الإصدارات الحالية من adb مع محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين. بالإضافة إلى ذلك، يتم تثبيت إصدار متوافق في C:\Program Files\Google\Play Games Developer Emulator\current\emulator عند تثبيت المحاكي.

لاتّباع هذه التعليمات، يجب أن تكون `adb` متاحة في $PATH. يمكنك التأكّد من ضبط adb بشكلٍ صحيح باستخدام الأمر adb devices

adb devices
List of devices attached
localhost:6520  device

تثبيت اللعبة

  • شغِّل Google Play Games for PC Emulator
  • اكتب adb devices في موجّه الأوامر. من المفترض أن يظهر لك ما يلي:

    adb devices
    List of devices attached
    localhost:6520 device
  • تحديد المشاكل وحلّها:

    • إذا ظهرت لك رسالة خطأ، تأكَّد من اتّباع التعليمات الواردة في التوافق مع adb.
    • إذا لم يظهر لك أي جهاز، حاوِل إعادة الاتصال عبر المنفذ 6520:
    adb connect localhost:6520
  • اكتب adb install path\to\your\game.apk لتثبيت لعبتك. إذا أنشأت مجموعة حزمات تطبيق Android‏ (‎.aab)، اطّلِع على تعليمات bundletool واستخدِم bundletool install-apks بدلاً من ذلك.

  • شغِّل لعبتك بأي من الطريقتَين التاليتَين:

    • اكتب adb shell monkey -p your.package.name 1 لتشغيل لعبتك، مع استبدال your.package.name باسم حزمة لعبتك.
    • في محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين، انقر على الرمز لتشغيل لعبتك. تمامًا كما هو الحال على هاتف Android، عليك "التمرير سريعًا للأعلى" على الشاشة الرئيسية للاطّلاع على قائمة الألعاب المثبّتة.

تصحيح أخطاء لعبة

استخدِم أداة Android Debug Bridge‏ (adb) لتصحيح الأخطاء كما تفعل مع أي لعبة أخرى. يظهر المحاكي كجهاز متصل عبر localhost:6520.

تعمل adb logcat على النحو المتوقّع، وكذلك الأدوات التي تساعد في تنسيق أو فلترة ناتج أداة Logcat، بما في ذلك استوديو Android.

بالإضافة إلى adb، يمكن الوصول إلى السجلّات في الدليل %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs. الأكثر فائدة هنا هو AndroidSerial.log الذي يمثّل كل ما يعرضه adb logcat من لحظة بدء المحاكي.

إعدادات مطوّر البرامج

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

اختبار إدخالات الماوس

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

يتضمّن تطبيق "ألعاب Google Play على الكمبيوتر" وضعَين للماوس: وضع محاكاة يترجم نقرات الماوس إلى نقرات فردية، و"وضع الكمبيوتر" الذي يتيح للألعاب التعامل مع إجراءات الماوس بشكلٍ أصلي وتنفيذ عملية التقاط المؤشر. للحصول على تفاصيل حول إدخالات الماوس في "ألعاب Google Play على الكمبيوتر"، اطّلِع على إعداد إدخالات الماوس.

في برنامج اللاعب، يتم إيقاف المحاكاة من خلال إضافة ما يلي إلى ملف البيان:

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

لا يؤثر رمز الميزة هذا في بيئة التطوير.

اختبار نِسب العرض إلى الارتفاع

يتم تشغيل محاكي المطوّرين بنسبة عرض إلى ارتفاع تبلغ 16:9، على عكس برنامج اللاعب الذي يستمد نسبة العرض إلى الارتفاع من الشاشة الرئيسية. من خلال النقر بزر الماوس الأيمن على رمز علبة النظام، ثم النقر على خيارات المطوّر ، ثم على أي خيار في قسم نسبة العرض ، يمكنك اختبار شكل اللعبة على شاشات اللاعبين المختلفة.

الطريقة المفضّلة لضبط نسبة العرض إلى الارتفاع هي استخدام android:minAspectRatio وandroid:maxAspectRatio.

على سبيل المثال، ستكون نسبة العرض إلى الارتفاع للعبة عمودية 9/16 أو 0.5625، لذا قد تحتاج إلى ضبط نسبة عرض إلى ارتفاع قصوى تبلغ 1 لمنع لعبتك من أن تصبح أعرض من المربّع:

<activity android:maxAspectRatio="1">
 ...
</activity>

وبالمثل، ستكون نسبة العرض إلى الارتفاع للعبة أفقية 16/9 أو 1.778 تقريبًا، لذا قد تحتاج إلى ضبط نسبة عرض إلى ارتفاع دنيا تبلغ 1 لمنعها من أن تصبح أضيق من المربّع:

<activity android:minAspectRatio="1">
 ...
</activity>

ما يجب اختباره

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

اختبار الواجهات الخلفية للعرض

يستخدم تطبيق "ألعاب Google Play على الكمبيوتر" Vulkan لعرض ألعابك، وهو أمر شائع في كلّ من بيئتَي Android والكمبيوتر. يتم استخدام طبقة وضع الحماية لعزل بيئتَي الكمبيوتر وAndroid. بما أنّ العديد من الألعاب لا تزال تستخدم OpenGL ES للعرض، سيحوّل ANGLE أوامر OpenGL ES إلى أوامر Vulkan المتوافقة مع الكمبيوتر المضيف.

وبالمثل، يزيد تطبيق "ألعاب Google Play على الكمبيوتر" من توافق الألعاب ويقلّل من جهد المطوّر من خلال التحويل التلقائي لتنسيقات الزخارف المتوافقة مع الأجهزة الجوّالة، مثل ETC1 وETC2، إلى تنسيقات ملائمة للكمبيوتر في وقت التشغيل. للحصول على أفضل النتائج، تجنَّب هذا التحويل من خلال استخدام التنسيقات التي تتوافق مع وحدات معالجة الرسومات على الكمبيوتر، مثل DXTC أو BPTC.

ما يجب اختباره

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

سيؤدي تحويل ANGLE لأوامر OpenGL ES إلى Vulkan إلى إضافة بعض النفقات العامة. تأكَّد من أنّك تحقّق أهداف الأداء المتوقّعة وفكِّر في التبديل إلى أداة عرض تستند إلى Vulkan.

توصيف أداء لعبتك على الكمبيوتر

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

Perfetto هي أداة لتحليل الأداء على Android. يمكنك جمع وعرض عملية تتبُّع Perfetto باتّباع الخطوات التالية:

  1. في موجّه أوامر PowerShell، ابدأ عملية تتبُّع باستخدام adb

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. تحدّد العلامة --time مدة عملية التتبُّع التي سيتم جمعها. في هذا المثال، تبلغ مدة عملية التتبُّع 10 ثوانٍ.
    2. تشير الوسيطات بعد العلامة --time إلى الأحداث التي سيتم تتبُّعها. في هذا المثال، تشير gfx إلى الرسومات، وwm إلى إدارة النوافذ، وsched إلى معلومات جدولة العمليات. هذه علامات شائعة لتوصيف أداء الألعاب، ويتوفّر مرجع كامل لها.
    3. تحدّد العلامة --out ملف الإخراج، الذي يتم سحبه من المحاكي إلى الجهاز المضيف في الخطوة التالية.
  2. اسحب عملية التتبُّع من جهازك المضيف

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. افتح عملية التتبُّع في واجهة مستخدم Perfetto

    1. افتح ui.perfetto.dev.
    2. انقر على فتح ملف عملية التتبُّع من أعلى يمين الصفحة ضِمن التنقّل.
    3. افتح ملف example.trace الذي نزّلته في الخطوة السابقة إلى الدليل Downloads/.
  4. افحص عملية التتبُّع في واجهة مستخدم Perfetto. في ما يلي بعض الملاحظات المفيدة:

    1. لكل عملية صفها الخاص، الذي يمكن توسيعه لعرض جميع سلاسل المحادثات في تلك العملية. إذا كنت توصّف أداء لعبة، من المحتمل أن يكون صفها هو الصف الأول.
    2. يمكنك التكبير والتصغير من خلال الضغط مع الاستمرار على Control واستخدام عجلة التمرير.
    3. عند استخدام الحدث sched، يظهر صف لكل سلسلة محادثات يوضّح متى تكون حالة سلسلة المحادثات قيد التشغيل أو قابلة للتشغيل أو في وضع السكون أو محظورة.
    4. عند تفعيل حدث مثل gfx، يمكنك الاطّلاع على طلبات الرسومات المختلفة التي تقدّمها سلاسل المحادثات المختلفة. يمكنك النقر على "مقاطع" فردية للاطّلاع على المدة التي استغرقتها، أو يمكنك السحب على طول صف ما ما يؤدي إلى فتح قسم "مقاطع" في الأسفل وعرض المدة التي استغرقتها جميع المقاطع في نافذة الوقت المحدّدة.

توصيف أداء الرسومات

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

  1. اضبط متغيّر البيئة ANDROID_EMU_RENDERDOC على سلسلة غير فارغة (مثل "1").
  2. اضبط متغيّر البيئة TMP على %USERPROFILE%\AppData\LocalLow. يطلب هذا من Renderdoc وضع ملفات السجلّ في مكان يمكن الوصول إليه ضِمن وضع الحماية للمحاكي.

  3. إذا كنت تستخدم الواجهة الخلفية Vulkan. انقر على إعدادات الرسومات > طبقات Vulkan الضمنية للنموذج وتأكَّد من وضع علامة في المربّع VKLAYER_RENDERDOC_Capture.

  4. شغِّل محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين. يتم رسم نافذة مرافقة لـ RenderDoc في أعلى الصفحة طالما أنّ الدعم مفعّل.

  5. شغِّل RenderDoc في أي وقت قبل أو بعد تشغيل محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين.

  6. انقر على ملف > الإرفاق بمثيل قيد التشغيل واختَر crosvm.

تحديد متغيّرات البيئة

لكي يعمل Renderdoc، عليك إضافة متغيّرات البيئة أو تغييرها في Windows. يمكنك تغيير متغيّرات البيئة باستخدام واجهة المستخدم أو PowerShell أو cmd.exe.

استخدام واجهة المستخدم
  • اضغط على Win+R لفتح مربّع الحوار "تشغيل".
  • اكتب sysdm.cpl لفتح نافذة خصائص النظام.
  • انقر على علامة التبويب خيارات متقدّمة إذا لم تكن نشطة.
  • انقر على الزر متغيّرات البيئة.

من هنا، يمكنك إما النقر على الزر جديد لإنشاء متغيّر بيئة جديد أو اختيار متغيّر والنقر على الزر تعديل لتعديله.

استخدام PowerShell

في نافذة PowerShell، اكتب:

$Env:VARIABLE_NAME=VALUE

استبدِل VARIABLE_NAME وVALUE بالقيم التي تريد ضبطها. على سبيل المثال، لضبط ANDROID_EMU_RENDERDOC على "1"، اكتب:

$Env:ANDROID_EMU_RENDERDOC="1"
استخدام cmd.exe

في نافذة cmd.exe، اكتب:

set VARIABLE_NAME=VALUE

استبدِل VARIABLE_NAME وVALUE بالقيم التي تريد ضبطها. على سبيل المثال، لضبط ANDROID_EMU_RENDERDOC على "1"، اكتب:

set ANDROID_EMU_RENDERDOC="1"

نصائح لاستخدام Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدار أحدث

يتم تحديث "ألعاب Google Play على الكمبيوتر" بأحدث إصدارات Android. في ما يلي بعض النصائح لاستخدام أحدث إصدار من Android.

الحفاظ على تحديث الأدوات

يُثبِّت استوديو Android إصدارًا من Adb متوافقًا مع محاكي المطوّرين، ولكن تتضمّن بعض محرّكات الألعاب إصدارًا أقدم من Adb. في هذه الحالة، بعد تثبيت محاكي المطوّرين، يمكنك العثور على إصدار متوافق من adb في C:\Program Files\Google\Play Games Developer Emulator\current\emulator.

إذا شغّلت إصدارًا واحدًا من adb، سيتم إنهاء الإصدار الآخر. وهذا يعني أنّه إذا كان محرك الألعاب يشغّل تلقائيًا مثيل adb الخاص به، قد تحتاج إلى إعادة تشغيل الإصدار من adb الذي يأتي مع محاكي المطوّرين وإعادة ربطه في كل مرة تنشر فيها لعبتك.

إذا كنت تستخدم حزمة تطبيق Android، عليك تثبيت أحدث إصدار من Bundletool من مستودع GitHub.

التخزين الفرعي

يتضمّن Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدار أحدث ميزة التخزين الفرعي، التي توفّر حماية أفضل لبيانات التطبيقات والمستخدمين على مساحة التخزين الخارجية. بالإضافة إلى جعل لعبتك متوافقة مع متطلبات التخزين الفرعي، عليك اتّخاذ خطوات إضافية لتحميل ملفات توسيع APK‏ (‎.obb) أو بيانات مواد العرض إلى محاكي "ألعاب Google Play على الكمبيوتر" المخصّص للمطوّرين. اتّبِع هذه الخطوات إذا واجهتك مشاكل في الوصول إلى هذه الملفات من لعبتك:

  1. أنشئ دليلًا يمكن لتطبيقك قراءته.
  2. انقل ملفات التوسيع إلى المحاكي.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

إذن الوصول إلى الحِزم

بسبب قواعد إذن الوصول إلى الحِزم الجديدة، يتم منع التطبيقات التي تستهدف Android 11 (المستوى 30 لواجهة برمجة التطبيقات) أو إصدار أحدث من طلب معلومات عن التطبيقات الأخرى المثبّتة على الجهاز. وهذا يعني أنّه يتم منع لعبتك من الوصول إلى "خدمات Play" عند تثبيتها من مصدر غير معروف عبر adb بدلاً من تثبيتها عبر "متجر Play". لاختبار عمليات الشراء داخل التطبيق باستخدام لعبة تم تثبيتها من مصدر غير معروف، عليك إضافة طلب بحث إلى الحزمة "com.android.vending" في ملف AndroidManifest.xml على النحو التالي:

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

تثبيت لعبتك في برنامج المستهلك

لا يمكنك تثبيت لعبة على برنامج المستهلك إلى أن يتم إدراجها في كتالوج "خدمات ألعاب Play". بعد إصدار لعبتك مرة واحدة، يمكنك إنشاء مسار اختبار داخلي للتحقّق من صحة التحديثات المستقبلية قبل إصدارها.

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