سازگاری و بهینه‌سازی رایانه برای «بازی‌های Google Play در رایانه»

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

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

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

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

افزودن معماری x86-64 ABI

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

مجموعه کتابخانه

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

معماری هدف در Unity

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

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

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

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

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

    • نسخه Unity 2019 Long Term Support (LTS) و نسخه‌های جدیدتر: به Player Settings > Other Settings > Target Architectures بروید و x86-64 (ChromeOS) را فعال کنید.

شناسایی کردن «بازی‌های Google Play در رایانه»

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

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

کاتلین

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

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»، این ویژگی‌های سخت‌افزاری را بردارید:

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

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

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

این ویژگی‌های سخت‌افزاری رایج با رایانه‌های شخصی سازگار نیستند، بنابراین باید آن‌ها را قبل‌از ارسال نهایی به «کنسول Google Play» بردارید:

  • 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» است. باید تأیید کنید که برنامه‌تان وابستگی شدیدی به ماژول‌هایی که در رایانه حذف شده‌اند یا پشتیبانی نمی‌شوند ندارد. توجه داشته باشید که ممکن است برخی‌از ماژول‌ها دردسترس باشند، اما عملکرد آن‌ها همیشه پشتیبانی نشود. برای مثال، وقتی «بازی‌های Google Play در رایانه» بسته باشد، Firebase Cloud Messaging کار نخواهد کرد.

واحدهای پشتیبانی‌شده

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

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

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

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

این واحدها در «بازی‌های Google Play در رایانه» پشتیبانی نمی‌شوند، اما درصورت ناموفق بودن، مشکلی در «بازی‌های Google Play در رایانه» ایجاد نمی‌کنند:

خراب است

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

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

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

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

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

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

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

تجزیه‌وتحلیل

محصولات قدیمی Google Analytics در «بازی‌های Google Play در رایانه» کار نمی‌کنند. اگر این موضوع برای بازی‌های شما صدق می‌کند، باید آن را به Google Analytics 4 منتقل کنید.

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