سازگاری و بهینه سازی رایانه برای بازی های Google Play در رایانه شخصی

بازی‌های گوگل پلی روی کامپیوتر مستلزم آن است که شما تغییرات سازگاری و بهینه‌سازی را در بازی خود اعمال کنید. این تغییرات تضمین می‌کنند که بازی شما می‌تواند روی کامپیوتر اجرا شود و تجربه کاربری برای پلتفرم بهینه شده است.

علاوه بر این، بازی‌های گوگل پلی روی کامپیوتر نیازمند گرافیک، ورودی دستگاه و بازی بین دستگاهی است. برای اطلاعات بیشتر، به راهنمای شروع به کار مراجعه کنید.

هنگام ایجاد تغییرات سازگاری و بهینه‌سازی برای رایانه شخصی (به غیر از پشتیبانی از x86-64)، می‌توانید بازی خود را طوری تنظیم کنید که بازی‌های Google Play را روی رایانه شخصی شناسایی کند و سپس ویژگی‌های خاص پلتفرم را غیرفعال یا فعال کند. این به شما امکان می‌دهد از همان APK یا بسته برنامه برای نسخه‌های موبایل و رایانه شخصی اندروید خود استفاده کنید.

خلاصه‌ای از الزامات و توصیه‌های این صفحه به شرح زیر است:

شامل معماری ABI x86-64

مورد نیاز فرآیند انتشار

تمام کتابخانه‌های موجود در بازی شما برای اطمینان از بهترین عملکرد و پایداری روی پلتفرم، به نسخه‌های سازگار با x86-64 ABI نیاز دارند.

اگر از نظر فنی امکان انتشار یک فایل اجرایی ۶۴ بیتی x86 برای بازی شما وجود ندارد، باید برای دریافت استثنا با تیم بررسی تماس بگیرید. بازی شما با وجود استثنا نمی‌تواند به گواهینامه کامل برسد، اما می‌تواند به عنوان یک بازی "قابل بازی" در کاتالوگ قرار گیرد.

گردآوری کتابخانه

برای اطمینان از حداکثر سازگاری با پردازنده‌های x86-64، هنگام کامپایل کتابخانه‌های خود از مجموعه دستورالعمل‌های atom استفاده نکنید. برای مثال، هنگام استفاده از gcc از استفاده -march=atom خودداری کنید و در عوض -march=x86-64 استفاده کنید.

معماری هدف در یونیتی

برخی از نسخه‌های Unity 2019 و 2020 فاقد پشتیبانی از معماری x86-64 در اندروید هستند. مطمئن شوید که از Unity 2019.4.31f1، 2020.3.19f1 یا بالاتر استفاده می‌کنید.

اگر بازی شما از نسخه سازگار موتور بازی Unity استفاده می‌کند، برای فعال کردن اهداف اندروید x86-64 مراحل زیر را انجام دهید:

  1. به تنظیمات پخش‌کننده > سایر تنظیمات > پیکربندی > اسکریپت‌نویسی بک‌اند بروید و از منوی کشویی، IL2CPP را انتخاب کنید تا اسکریپت‌نویسی بک‌اند IL2CPP فعال شود.

  2. اهداف اندروید x86-64 را برای نسخه Unity خود فعال کنید:

    • یونیتی ۲۰۱۸ و قبل از آن: به تنظیمات پخش‌کننده > سایر تنظیمات > معماری هدف بروید و کادر انتخاب x86 را انتخاب کنید. از آنجایی که یونیتی ۲۰۱۸ فقط از اهداف x86 پشتیبانی می‌کند، نمی‌توانید x86-64 بسازید. این ساخت نیاز به یک استثنا از تیم بررسی دارد. لطفاً برای درخواست استثنای x86 با مسئول گوگل خود تماس بگیرید.

    • نسخه پشتیبانی بلندمدت (LTS) یونیتی ۲۰۱۹ و نسخه‌های بعدی : به تنظیمات پخش‌کننده > سایر تنظیمات > معماری‌های هدف بروید و x86-64 (ChromeOS) را فعال کنید.

شناسایی بازی‌های گوگل پلی در کامپیوتر

شما می‌توانید بازی‌های گوگل پلی را روی پلتفرم کامپیوتر شخصی در زمان اجرا تشخیص دهید و به شما این امکان را می‌دهد که ویژگی‌های خاص پلتفرم را در بازی خود فعال یا غیرفعال کنید.

برای اینکه بفهمید بازی شما روی پلتفرم Google Play Games on PC اجرا می‌شود یا نه، ویژگی سیستمی com.google.android.play.feature.HPE_EXPERIENCE را بررسی کنید:

کاتلین

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

جاوا

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

سی شارپ

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");
  

مدیریت رویدادهای چرخه حیات اندروید

مدیریت رویداد onPause ( c++ ) در محیط Google Play Games on PC بسیار مهم است. بازی شما زمانی قابل مشاهده است که یک بازیکن لایه رویی شبیه‌ساز را فعال کند، بنابراین عدم توجه به رویداد onPause می‌تواند منجر به تجربه کاربری ضعیف شود.

رابط کاربری را به‌روزرسانی کنید

برخی از عناصر و حرکات رابط کاربری روی کامپیوتر مناسب نیستند و باید به‌روزرسانی شوند.

مورد نیاز:

  • عملکردهای رابط کاربری که به دو یا چند انگشت نیاز دارند (حرکات چند لمسی) را جایگزین کنید. به عنوان مثال، باید حرکات زوم با نیشگون گرفتن و سایر حرکات چند لمسی را با ورودی مربوطه از ماوس و صفحه کلید جایگزین کنید. برای جزئیات بیشتر در مورد تغییرات ورودی دستگاه، به پشتیبانی ورودی مراجعه کنید.

توصیه شده:

  • تمام متن‌های قابل مشاهده برای کاربر باید به جای «ضربه زدن»، «کلیک» باشند.
  • لیست‌های قابل اسکرول باید دارای نوارهای اسکرول باشند.
  • مناطقی که کاربران می‌توانند در آنها حرکت کنند باید یا دارای نوارهای پیمایش باشند یا راه دیگری برای پیمایش سریع فواصل طولانی وجود داشته باشد.
  • برای ورود متن، صفحه‌کلید قابل کلیک را روی صفحه نمایش ندهید.
  • تمام ورودی‌های متن باید در محدوده فیلد متن باشند.
  • کلیک روی عناصر قابل مشاهده باید:
    • کلیک در هر نقطه‌ای از محدوده‌ی قابل مشاهده‌ی عنصر را می‌پذیرد.
    • کلیک در ناحیه خارج از عنصر قابل مشاهده را نمی‌پذیرد.
  • دیالوگ‌ها باید یک دکمه‌ی بستن قابل مشاهده داشته باشند. کلیکی خارج از محدوده‌ی دیالوگ تشخیص داده نشود.

غیرفعال کردن اکثر پنجره‌های محاوره‌ای مجوزها

به استثنای مجوزهای میکروفون و اعلان‌ها، Google Play Games در رایانه شخصی، پنجره‌های مجوز را نمایش نمی‌دهد، بنابراین نباید سعی کنید آنها را نمایش دهید یا در زمان اجرا درخواست مجوز کنید. اگر قبلاً پنجره‌های مجوز را نمایش می‌دادید ، باید بازی خود را به‌روزرسانی کنید تا دیگر آنها را در رایانه‌های شخصی نمایش ندهد.

ویژگی‌ها و مجوزهای پشتیبانی نشده اندروید

مورد نیاز فرآیند انتشار

برخی از ویژگی‌های سخت‌افزاری رایج در تلفن‌های همراه و تبلت‌ها در رایانه شخصی در دسترس نیستند. این شامل ویژگی‌های سخت‌افزاری مانند دوربین یا موقعیت مکانی بازیکن می‌شود. هر بازی که به ویژگی‌های از دست رفته نیاز داشته باشد، نمی‌تواند روی رایانه شخصی بازیکن دانلود و نصب شود. درخواست‌ها برای هرگونه ویژگی از دست رفته در رایانه شخصی به طور خودکار رد می‌شوند.

می‌توانید لیست کاملی از ویژگی‌های موجود را با تایپ کردن دستور زیر مشاهده کنید:

adb shell pm list features

برای اینکه بازی شما با رایانه‌های شخصی سازگار شود، تغییرات زیر لازم است:

  • با اضافه کردن android:required="false" به تعریف <uses-feature> در مانیفست برنامه خود، ویژگی‌ها را به عنوان اختیاری علامت‌گذاری کنید . این فقط برای ویژگی‌هایی که قبلاً در مانیفست برنامه شما تعریف شده‌اند، اعمال می‌شود.

  • سعی نکنید از ویژگی‌های از دست رفته در زمان اجرا استفاده کنید. اگر از یک فایل APK یکسان در هر دو مسیر موبایل و کامپیوتر خود استفاده می‌کنید، محیط کامپیوتر را در زمان اجرا تشخیص دهید و از مسیرهای کد مربوطه اجتناب کنید.

  • در زمان اجرا، مجوزهای پشتیبانی نشده اندروید را درخواست نکنید . اگر از یک فایل APK یکسان در هر دو مسیر موبایل و کامپیوتر خود استفاده می‌کنید، محیط کامپیوتر را در زمان اجرا تشخیص دهید و از مسیرهای کد مربوطه اجتناب کنید. نیازی به به‌روزرسانی مانیفست خود ندارید.

برای اطلاعات بیشتر در مورد سازگاری مانیفست برنامه، به راهنمای سازگاری مانیفست برنامه Chromebook مراجعه کنید.

الزامات تست عملکردی

قبل از ارسال اولین نسخه آزمایشی به کنسول گوگل پلی، این ویژگی‌های سخت‌افزاری را حذف کنید:

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

برخی از این ویژگی‌ها ممکن است به دلایل سازگاری، هنگام اجرای pm list features به عنوان پشتیبانی‌شده فهرست شوند، اما به طور کامل پیاده‌سازی نشده‌اند. برای اطلاعات بیشتر در مورد نحوه حذف ویژگی android.hardware.wifi ، به بخش نظارت بر وضعیت اتصال و اندازه‌گیری اتصال مراجعه کنید. برای فهرست کاملی از ویژگی‌های پشتیبانی‌نشده، به راهنمای سازگاری مانیفست برنامه برای کروم‌بوک‌ها مراجعه کنید.

الزامات آزمایش کیفیت

این ویژگی‌های سخت‌افزاری رایج با رایانه‌های شخصی سازگار نیستند ، بنابراین باید قبل از ارسال نهایی به کنسول گوگل پلی، آنها را حذف کنید:

  • 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

وب‌سایت‌ها و وب‌ویوهای خارجی

هدف مرورگر به جای بارگذاری در محیط Google Play Games on PC، در مرورگر وب بومی رایانه شخصی بارگذاری می‌شود. این یک تجربه ایده‌آل برای بازیکنان در بیشتر مواقع است.

برای سهولت در انتقال، Google Play Games روی کامپیوتر از WebView پشتیبانی می‌کند. از آنجایی که این برنامه در محیط Google Play Games روی کامپیوتر باز می‌شود، فاقد مرورگر دسکتاپ معمولی خواهد بود. اگر قبلاً از WebView برای اشتراک‌گذاری شرایط خدمات، سیاست حفظ حریم خصوصی یا سایر محتوای مشابه استفاده می‌کردید، باید یک مرورگر را فراخوانی کنید .

غیرفعال کردن APIهای پشتیبانی نشده سرویس گوگل پلی

مورد نیاز فرآیند انتشار

Google Play Games روی کامپیوتر، نسخه‌ی مخصوص به خود از Google Play Services را ارائه می‌دهد که تنها شامل زیرمجموعه‌ای از APIهای Google Play Services است. شما باید تأیید کنید که برنامه‌ی شما به ماژول‌هایی که در کامپیوتر حذف یا پشتیبانی نمی‌شوند، وابستگی زیادی ندارد. در نظر داشته باشید که برخی از ماژول‌ها ممکن است در دسترس باشند، اما عملکرد آنها همیشه پشتیبانی نمی‌شود. به عنوان مثال، Firebase Cloud Messaging وقتی Google Play Games روی کامپیوتر بسته باشد، کار نخواهد کرد.

ماژول‌های پشتیبانی‌شده

این ماژول‌ها در حال حاضر توسط Google Play Games در رایانه شخصی در دسترس و پشتیبانی می‌شوند و برنامه‌هایی برای پشتیبانی از ویژگی‌های اضافی وجود دارد:

پشتیبانی محدود

ماژول‌های زیر تا حدی کاربردی هستند. ما تمام تلاش خود را خواهیم کرد تا از آنها در Google Play Games روی رایانه شخصی پشتیبانی کنیم، اما نمی‌توانیم عملکرد آنها را تضمین کنیم.

پشتیبانی نمی‌شود

این ماژول‌ها در Google Play Games روی کامپیوتر پشتیبانی نمی‌شوند، اما در صورت از کار افتادن، مشکلی در Google Play Games روی کامپیوتر ایجاد نمی‌کنند:

شکسته

مورد نیاز فرآیند انتشار

شما نباید از این ماژول‌ها در رایانه‌های شخصی استفاده کنید زیرا می‌توانند باعث بروز رفتارهای غیرمنتظره در بازی‌های Google Play در رایانه شخصی شوند.

فعال کردن ذخیره‌سازی محدود

مورد نیاز فرآیند انتشار

این بخش در صورتی اعمال می‌شود که بازی شما در حافظه خارجی بخواند یا بنویسد. اعمال محدودیت در فضای ذخیره‌سازی به عنوان روشی جایگزین برای خواندن و نوشتن در فضای ذخیره‌سازی الزامی است. انجام این کار نیاز به درخواست مجوزهای حساس از بازیکن را از بین می‌برد:

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

برای اطلاعات بیشتر در مورد ذخیره‌سازی محدود، به موارد زیر مراجعه کنید:

تجزیه و تحلیل

محصولات قدیمی گوگل آنالیتیکس در بازی‌های گوگل پلی روی کامپیوتر کار نمی‌کنند. اگر این مشکل در مورد بازی‌های شما صدق می‌کند، باید آن‌ها را به گوگل آنالیتیکس ۴ منتقل کنید.

این موضوع فقط در صورتی روی بازی شما تأثیر می‌گذارد که در حال حاضر از Google Analytics 360 استفاده می‌کنید. اگر از Firebase SDK برای ردیابی رویدادهای تحلیلی در بازی خود استفاده می‌کنید و می‌توانید بازی خود را به عنوان یک ویژگی در کنسول Google Analytics ببینید، لازم نیست اقدام دیگری انجام دهید.