التوافق مع الكمبيوتر الشخصي وتحسينه لبرنامج "ألعاب Google Play على الكمبيوتر"

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

بالإضافة إلى ذلك، هناك متطلبات رسومات وعمليات إدخال على الجهاز و requirements لتشغيل الألعاب على أجهزة متعددة في "ألعاب Google Play على الكمبيوتر". لمزيد من المعلومات، يُرجى الاطّلاع على دليل البدء.

عند إجراء تغييرات على التوافق مع الكمبيوتر الشخصي وتحسين الأداء (باستثناء إتاحة الإصدار x86-64)، يمكنك إعداد لعبتك لرصد تطبيق "ألعاب Google Play على الكمبيوتر" ثم إيقاف ميزات محدّدة بالنظام الأساسي أو تفعيلها. يتيح لك ذلك استخدام حِزمة APK أو حِزمة التطبيق نفسهما لإصدارات Android للأجهزة الجوّالة وأجهزة الكمبيوتر الشخصي.

في ما يلي ملخّص للمتطلبات والاقتراحات الواردة في هذه الصفحة:

تضمين بنية ABI لنظام x86-64

مطلوبة من خلال عملية الإصدار

تتطلّب جميع المكتبات المضمّنة في لعبتك إصدارات متوافقة مع واجهة برمجة التطبيقات x86-64 ABI لضمان تحقيق أفضل أداء وثبات على النظام الأساسي.

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

مجموعة في المكتبة

لضمان أكبر توافق مع معالج x86-64، لا تستخدِم مجموعة تعليمات atom عند تجميع مكتباتك. على سبيل المثال، عند استخدام gcc تجنَّب استخدام -march=atom واستخدِم -march=x86-64 بدلاً منه.

البنية المستهدفة في Unity

لا تتوفّر بعض إصدارات Unity 2019 و2020 مع بنية x86-64 على Android. تأكَّد من استخدام الإصدار 2019.4.31f1 أو 2020.3.19f1 أو إصدار أحدث من Unity.

إذا كانت لعبتك تستخدم إصدارًا متوافقًا من محرّك ألعاب Unity، عليك تنفيذ الخطوات التالية لتفعيل استهدافات Android‏ x86-64:

  1. انتقِل إلى إعدادات اللاعب > الإعدادات الأخرى > الضبط > معالج كتابة النصوص الخلفي واختَر IL2CPP من القائمة المنسدلة لتفعيل معالج كتابة النصوص الخلفي IL2CPP.

  2. فعِّل استهدافات Android‏ x86-64 لإصدار Unity الذي تستخدمه:

    • Unity 2018 والإصدارات الأقدم: انتقِل إلى إعدادات اللاعب > الإعدادات الأخرى > البنية المستهدفة، وضَع علامة في مربّع الاختيار x86. بما أنّ Unity 2018 لا يتوافق إلا مع استهدافات x86، لن تتمكّن من إنشاء x86-64. سيتطلب هذا الإصدار الحصول على استثناء من فريق المراجعة. يُرجى التواصل مع جهة التواصل التي تتعامل معها في Google لطلب استثناء x86.

    • إصدار Unity 2019 Long Term Support (LTS) والإصدارات الأحدث: انتقِل إلى إعدادات اللاعب > الإعدادات الأخرى > التصاميم المعمارية المستهدَفة وفعِّل x86-64 (ChromeOS).

رصد تطبيق "ألعاب Google Play على الكمبيوتر"

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

تحقّق من ميزة النظام com.google.android.play.feature.HPE_EXPERIENCE لتحديد ما إذا كانت لعبتك تعمل على منصة "ألعاب Google Play على الكمبيوتر":

Kotlin

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

#C

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

التعامل مع أحداث دورة حياة Android

من المهم معالجة حدث onPause (c++) في بيئة "ألعاب Google Play على الكمبيوتر". تظهر لعبتك عندما يشغّل اللاعب تراكب المحاكي، لذا فإنّ عدم الاستماع إلى حدث onPause قد يؤدي إلى تقديم تجربة سيئة للمستخدم.

تعديل واجهة المستخدم

بعض عناصر واجهة المستخدم والإيماءات غير مناسبة على الكمبيوتر الشخصي ويجب تعديلها.

مطلوب:

  • استبدِل إجراءات واجهة المستخدم التي تتطلّب إصبعَين أو أكثر (إيماءات اللمس المتعدّد). على سبيل المثال، يجب استبدال ميزة التصغير/التكبير بإصبعَين وغيرها من إيماءات اللمس المتعدّد بإدخال الماوس ولوحة المفاتيح المقابل. لمعرفة تفاصيل عن التغييرات في ميزات إدخال البيانات على الأجهزة، يُرجى الاطّلاع على الأجهزة المتوافقة مع ميزات الإدخال.

قيمة مُقترَحة:

  • يجب أن يظهر النص المرئي للمستخدمين على أنّه "انقر" بدلاً من "نقر".
  • يجب أن تحتوي القوائم القابلة للتنقّل على أشرطة تمرير.
  • يجب أن تحتوي المناطق التي يمكن للمستخدمين تمرير محتواها على أشرطة تمرير أو طريقة أخرى ل التنقّل لمسافات كبيرة بسرعة.
  • لا تعرض لوحة مفاتيح قابلة للنقر على الشاشة لإدخال النص.
  • يجب أن تكون جميع إدخالات النصوص ضمن حدود الحقل النصي.
  • يجب أن تؤدي النقرات على العناصر المرئية إلى ما يلي:
    • قبول النقر في أي مكان ضمن الحدود المرئية للعنصر
    • عدم قبول نقرة في المنطقة خارج العنصر المرئي
  • يجب أن تحتوي مربّعات الحوار على زر إغلاق مرئي. لا ترصد النقرات خارج حدود مربّع الحوار.

إيقاف معظم مربّعات حوار الأذونات

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

ميزات Android وأذوناته غير المتوافقة

مطلوبة من خلال عملية الإصدار

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

يمكنك الاطّلاع على قائمة كاملة بالميزات المتاحة عن طريق كتابة:

adb shell pm list features

لجعل لعبتك متوافقة مع أجهزة الكمبيوتر، يجب إجراء التغييرات التالية:

  • يجب وضع علامة على الميزات كاختيارية في بيان تطبيقك من خلال إضافة android:required="false" إلى بيان <uses-feature>. لا ينطبق ذلك إلا على الميزات التي سبق أن تم الإفصاح عنها في بيان تطبيقك.

  • لا تحاول استخدام الميزات غير المتوفّرة أثناء التشغيل. إذا كنت تستخدم ملف APK نفسه في مسارَي الإصدار على الأجهزة الجوّالة والكمبيوتر الشخصي، عليك رصد بيئة الكمبيوتر الشخصي في وقت التشغيل وتجنُّب مسارات الرمز البرمجي ذات الصلة.

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

لمزيد من المعلومات حول توافق بيان التطبيق، يُرجى الاطّلاع على دليل توافق بيان تطبيق Chromebook.

متطلبات الاختبار الوظيفي

أزِل ميزات الأجهزة هذه قبل إرسال أول إصدار تجريبي إلى Google Play Console:

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

قد يتم إدراج بعض هذه الميزات على أنّها متوافقة عند تشغيل pm list features لأسباب تتعلّق بالتوافق، ولكنّها لا يتم تنفيذها بالكامل. لمزيد من المعلومات حول كيفية إزالة ميزة android.hardware.wifi، يُرجى الاطّلاع على مقالة مراقبة حالة الاتصال وقياس عمليات الاتصال. للحصول على قائمة كاملة بالميزات غير المتوافقة، يُرجى الاطّلاع على دليل توافق بيان التطبيق لأجهزة Chromebook.

متطلبات اختبار الجودة

لا تتوافق ميزات الأجهزة الشائعة هذه مع أجهزة الكمبيوتر الشخصي، لذا عليك إزالتها قبل إرسالها نهائيًا إلى Google Play Console:

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

الأذونات غير المتوافقة

لا تتوفّر الأذونات التالية الشائعة الاستخدام على أجهزة الكمبيوتر، لذا يجب أن تُوقِف لعبتك هذه الأذونات في برنامج "ألعاب Google Play على الكمبيوتر":

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.CAMERA
  • android.permission.FOREGROUND_SERVICE
  • android.permission.GET_ACCOUNTS
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_CONTACTS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION

المواقع الإلكترونية ومكوّنات WebView الخارجية

نية المتصفّح: يتم تحميلها في متصفّح الويب المضمّن في الكمبيوتر الشخصي بدلاً من المتصفّح في بيئة "ألعاب Google Play على الكمبيوتر". هذه تجربة مثالية للّاعبين في معظم الحالات.

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

إيقاف واجهات برمجة تطبيقات "خدمات Google Play" غير المتوافقة

مطلوبة من خلال عملية الإصدار

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

الوحدات المتوافقة

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

دعم محدود

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

غير متوافق

لا تتوفّر هذه الوحدات في برنامج "ألعاب Google Play على الكمبيوتر"، ولكنّها لا تتسبّب في مشاكل في برنامج "ألعاب Google Play على الكمبيوتر" عند تعذّر تشغيلها:

مُعطَّل

مطلوبة من خلال عملية الإصدار

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

تفعيل ميزة "مساحة التخزين على مستوى التطبيق"

مطلوبة من خلال عملية الإصدار

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

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

لمزيد من المعلومات عن مساحة التخزين ذات النطاق المحدّد، يُرجى الاطّلاع على:

الإحصاءات

لا تعمل منتجات "إحصاءات Google" القديمة في "ألعاب Google Play على الكمبيوتر". إذا كان هذا ينطبق على ألعابك، عليك نقلها إلى إحصاءات Google‏ 4.

من المفترض ألا يؤثر ذلك في لعبتك إلا إذا كنت تستخدِم حاليًا إحصاءات Google‏ 360. إذا كنت تستخدِم حزمة تطوير البرامج (SDK) لمنصّة Firebase لتسجيل أحداث الإحصاءات في لعبتك وكان بإمكانك الاطّلاع على لعبتك كمَعلمة في وحدة تحكّم "إحصاءات Google"، ليس عليك اتخاذ أي إجراء إضافي.