بازیهای Google Play در رایانه شخصی مستلزم این است که سازگاری رایانه و تغییرات بهینهسازی را در بازی خود ایجاد کنید. این تغییرات تضمین می کند که بازی شما می تواند روی رایانه شخصی اجرا شود و تجربه کاربری برای پلتفرم بهینه شده است.
بهعلاوه، «بازیهای Google Play» روی رایانه دارای الزامات گرافیک، ورودی دستگاه و بازی بین دستگاهی است. برای اطلاعات بیشتر، راهنمای شروع کار را ببینید.
هنگام ایجاد تغییرات سازگاری و بهینه سازی رایانه شخصی (غیر از پشتیبانی x86-64)، می توانید بازی خود را طوری تنظیم کنید که بازی های Google Play را در رایانه شخصی شناسایی کند و سپس ویژگی های خاص پلت فرم را غیرفعال یا فعال کنید. این به شما امکان میدهد از همان APK یا App Bundle برای نسخههای موبایل Android و رایانه شخصی خود استفاده کنید.
در اینجا خلاصه ای از الزامات و توصیه های موجود در این صفحه آمده است:
- شامل x86-64 ABI (الزامی)
- شناسایی بازیهای Google Play در زمان اجرا (توصیه میشود)
- مدیریت رویداد onPause (توصیه می شود)
- به روز رسانی عناصر UI (الزامی)
- غیرفعال کردن گفتگوهای مجوزهای برنامه Android (الزامی)
- غیرفعال کردن ویژگی ها و مجوزهای پشتیبانی نشده اندروید (الزامی)
- WebViews را با اهداف مرورگر جایگزین کنید (توصیه می شود)
- غیرفعال کردن API های پشتیبانی نشده Google Play Service (الزامی)
- فعال کردن فضای ذخیرهسازی محدوده (الزامی)
- مهاجرت به Google Analytics 4 (توصیه می شود)
شامل معماری x86-64 ABI
توسط فرآیند انتشار مورد نیاز است
تمام کتابخانههای موجود در بازی شما به نسخههای سازگار با x86-64 ABI نیاز دارند تا بهترین عملکرد و پایداری روی پلتفرم را تضمین کنند.
اگر از نظر فنی برای بازی شما غیرممکن است که یک فایل اجرایی 64 بیتی x86 را ارسال کنید، باید برای یک استثنا با تیم بررسی تماس بگیرید. بازی شما با استثنا نمیتواند به گواهینامه کامل برسد، اما میتواند به عنوان یک بازی "قابل پخش" در کاتالوگ قرار گیرد.
گردآوری کتابخانه
برای اطمینان از بیشترین سازگاری با پردازنده x86-64، هنگام کامپایل کتابخانه های خود از مجموعه دستورات atom استفاده نکنید. به عنوان مثال، هنگام استفاده از gcc
از -march=atom
خودداری کنید و در عوض از -march=x86-64
استفاده کنید.
معماری هدف در یونیتی
برخی از نسخه های Unity 2019 و 2020 فاقد پشتیبانی معماری x86-64 در اندروید هستند. مطمئن شوید که از Unity 2019.4.31f1، 2020.3.19f1 یا جدیدتر استفاده می کنید.
اگر بازی شما از نسخه سازگار موتور بازی یونیتی استفاده می کند، برای فعال کردن اهداف اندروید x86-64، موارد زیر را انجام دهید:
به Settings Player > Other Settings > Configuration > Scripting Backend بروید و IL2CPP را از منوی کشویی انتخاب کنید تا IL2CPP Scripting Backend فعال شود.
اهداف Android x86-64 را برای نسخه Unity خود فعال کنید:
Unity 2018 و نسخههای قبلی: به تنظیمات Player > Other Settings > Target Architecture بروید و کادر x86 را انتخاب کنید. از آنجایی که Unity 2018 فقط از اهداف x86 پشتیبانی می کند، نمی توانید x86-64 را بسازید. این ساخت به یک استثنا از تیم بازبینی نیاز دارد. لطفاً برای درخواست استثناء x86 با مخاطب Google خود تماس بگیرید.
نسخه Unity 2019 Long Term Support (LTS) و نسخههای بعدی : به تنظیمات Player > تنظیمات دیگر > 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")
سی شارپ
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 در رایانه شخصی بسیار مهم است. وقتی بازیکنی پوشش شبیه ساز را فعال می کند، بازی شما قابل مشاهده است، بنابراین عدم گوش دادن به رویداد onPause
می تواند منجر به تجربه کاربری ضعیف شود.
رابط کاربری را به روز کنید
برخی از عناصر و حرکات UI در رایانه شخصی مناسب نیستند و باید به روز شوند.
مورد نیاز:
- اقدامات رابط کاربری که به دو یا چند انگشت نیاز دارند را جایگزین کنید (حرکات چند لمسی). به عنوان مثال، باید ژستهای نزدیک به زوم و سایر حرکات چند لمسی را با ورودی ماوس و صفحه کلید مربوطه جایگزین کنید. برای جزئیات در مورد تغییرات ورودی دستگاه، به پشتیبانی ورودی مراجعه کنید.
توصیه شده:
- تمام متنهای قابل مشاهده توسط کاربر باید بهجای «ضربه»، «کلیک کنید» را بیان کند.
- لیست های قابل پیمایش باید دارای نوارهای پیمایشی باشند.
- مناطقی که کاربران می توانند حرکت کنند باید دارای نوارهای پیمایش یا راه دیگری برای پیمودن سریع فواصل بزرگ باشند.
- صفحه کلید قابل کلیک روی صفحه نمایش برای ورود متن نمایش داده نشود.
- تمام ورودی های متن باید در محدوده فیلد متنی باشند.
- کلیک روی عناصر قابل مشاهده باید:
- یک کلیک را در هر نقطه از محدوده قابل مشاهده عنصر بپذیرید.
- یک کلیک در ناحیه خارج از عنصر قابل مشاهده را قبول نکنید.
- دیالوگ ها باید دارای یک دکمه بسته قابل مشاهده باشند. یک کلیک خارج از مرزهای گفتگو تشخیص داده نشود.
اکثر گفتگوهای مجوزها را غیرفعال کنید
به استثنای مجوز میکروفون، بازیهای 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
وب سایت های خارجی و WebViews
هدف مرورگر در مرورگر وب بومی رایانه شخصی به جای مرورگر در Google Play Games در محیط رایانه بارگیری می شود. این یک تجربه ایده آل برای بازیکنان در اکثر شرایط است.
برای سهولت انتقال، Google Play Games روی رایانه شخصی از WebView پشتیبانی می کند. از آنجایی که این در محیط بازی های Google Play در رایانه شخصی باز می شود، فاقد مرورگر معمولی دسکتاپ خواهد بود. اگر قبلاً از WebView
برای اشتراکگذاری شرایط خدمات، خطمشی رازداری یا سایر محتوای مشابه خود استفاده میکردید، در عوض باید از قصد مرورگر استفاده کنید .
API های پشتیبانی نشده Google Play Service را غیرفعال کنید
توسط فرآیند انتشار مورد نیاز است
بازیهای Google Play در رایانه شخصی، نوع خدمات Google Play خود را ارائه میکند که فقط شامل زیرمجموعهای از APIهای خدمات Google Play است. باید تأیید کنید که برنامه شما به شدت به ماژول هایی که در رایانه شخصی حذف شده یا پشتیبانی نمی شوند بستگی ندارد. در نظر بگیرید که ممکن است برخی از ماژول ها در دسترس باشند، اما عملکرد آنها همیشه پشتیبانی نمی شود. برای مثال، وقتی بازیهای Google Play روی رایانه شخصی بسته است، Firebase Cloud Messaging کار نخواهد کرد.
ماژول های پشتیبانی شده
این ماژولها در حال حاضر توسط Google Play Games بر روی رایانه شخصی در دسترس و پشتیبانی میشوند، با برنامههایی برای پشتیبانی از ویژگیهای اضافی:
- ورود به سیستم Google (بدون شامل انتقال حساب ، SmartLock ، تأیید پیامک ، محاسبه پیچیدگی رمز عبور )
- کرونت
- خدمات بازی های Google Play
- وظایف
- چشم انداز
- Google Pay
پشتیبانی محدود
ماژول های زیر تا حدی کاربردی هستند. ما تمام تلاش خود را برای پشتیبانی از آنها در بازی های Google Play روی رایانه شخصی انجام خواهیم داد، اما نمی توانیم عملکرد آنها را تضمین کنیم.
- Google Cloud Messaging (منسوخ شده، از Firebase Cloud Messaging استفاده کنید)
- احراز هویت Firebase (تایید شماره تلفن کار نمی کند)
- Firebase Cloud Messaging
- کتابخانه های مشترک Firebase
- Firebase ML
- پیکربندی از راه دور Firebase
- تجزیه و تحلیل Firebase
پشتیبانی نمی شود
این ماژولها در بازیهای Google Play در رایانه شخصی پشتیبانی نمیشوند، اما در صورت خرابی در بازیهای Google Play روی رایانه شخصی مشکلی ایجاد نمیکنند:
- Google Analytics (منسوخ شده، از Firebase Analytics استفاده کنید)
- Google Cast
- Awareness API
- Drive (منسوخ شده، به زودی حذف خواهد شد)
- FIDO
- پایگاه داده بیدرنگ Firebase
- آتش نشانی
- تست Firebase A/B
- Google Fit
- آدرس API
- Instant Apps API
- مکان API
- Google Maps SDK
- همین نزدیکی
- پانوراما
- مکان ها
- SafetyNet (منسوخ شده، لطفاً فرم علاقه را برای شرکت در Play Integrity API آینده پر کنید)
- گوگل تگ منیجر
- سیستم عامل بپوشید
شکسته
توسط فرآیند انتشار مورد نیاز است
شما نباید از این ماژول ها در رایانه های شخصی استفاده کنید زیرا می توانند باعث رفتار غیرمنتظره در بازی های Google Play در رایانه شخصی شوند.
ذخیره سازی محدوده را فعال کنید
توسط فرآیند انتشار مورد نیاز است
اگر بازی شما در حافظه خارجی بخواند یا بنویسد، این بخش اعمال می شود. اجرای فضای ذخیرهسازی به عنوان روشی جایگزین برای خواندن و نوشتن در فضای ذخیرهسازی مورد نیاز است. انجام این کار نیاز به درخواست این مجوزهای حساس را از پخش کننده حذف می کند:
-
android.permission.READ_EXTERNAL_STORAGE
-
android.permission.WRITE_EXTERNAL_STORAGE
برای اطلاعات بیشتر در مورد فضای ذخیره سازی محدوده، نگاه کنید به:
تجزیه و تحلیل
محصولات قدیمی Google Analytics در بازیهای Google Play روی رایانه شخصی کار نمیکنند. اگر این مورد در مورد بازیهای شما صدق میکند، باید آن را به Google Analytics 4 منتقل کنید.
این فقط در صورتی روی بازی شما تأثیر می گذارد که در حال حاضر از Google Analytics 360 استفاده می کنید. اگر از Firebase SDK برای ردیابی رویدادهای تحلیلی در بازی خود استفاده میکنید و میتوانید بازی خود را به عنوان یک ویژگی در کنسول Google Analytics ببینید، دیگر نیازی به انجام هیچ اقدام دیگری ندارید.