כדי להשתמש ב-Google Play Games במחשב, צריך לבצע במשחק שינויים שיאפשרו תאימות למחשב ואופטימיזציה למחשב. השינויים האלה מבטיחים שהמשחק יוכל לפעול במחשב ושהחוויה של המשתמש תהיה אופטימלית לפלטפורמה.
בנוסף, יש דרישות לגבי גרפיקה, קלט מהמכשיר ומשחק מקושר למכשיר אחר ב-Google Play Games במחשב. מידע נוסף זמין במדריך לתחילת העבודה.
כשמבצעים את השינויים לצורך תאימות למחשב ואופטימיזציה (מלבד תמיכה ב-x86-64), אפשר להגדיר את המשחק כך שיזהה את Google Play Games במחשב ואז ישבית או יפעיל תכונות ספציפיות לפלטפורמה. כך אפשר להשתמש באותו קובץ APK או באותו קובץ AAB לגרסאות של המשחק לנייד ולמחשב.
סיכום הדרישות וההמלצות שבדף הזה:
- Include x86-64 ABI (מומלץ)
- זיהוי של Google Play Games בזמן הריצה (מומלץ)
- טיפול באירוע onPause (מומלץ)
- עדכון רכיבים בממשק המשתמש (חובה)
- השבתת תיבות דו-שיח של הרשאות שניתנות לאפליקציה ב-Android (חובה)
- השבתת תכונות והרשאות של Android שלא נתמכות (חובה)
- החלפת רכיבי WebViews בכוונות של דפדפן (מומלץ)
- השבתה של ממשקי API של Google Play Services שלא נתמכים (חובה)
- הפעלת נפח אחסון ייעודי לאפליקציות (נדרש)
- מעבר ל-Google Analytics 4 (מומלץ)
הכללת ארכיטקטורת ABI x86-64
אם אפשר, צריך לוודא שכל הספריות שכלולות במשחק מיועדות ל-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:
עוברים אל Player Settings > Other Settings > Configuration > Scripting Backend (הגדרות הפעלה > הגדרות אחרות > הגדרות > Scripting Backend) ובוחרים באפשרות IL2CPP בתפריט הנפתח כדי להפעיל את IL2CPP Scripting Backend.
מפעילים יעדי Android x86-64 בגרסה של Unity:
Unity 2018 ואילך: עוברים אל Player Settings > Other Settings > Target Architecture ומסמנים את תיבת הסימון 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 Games במחשב
אתם יכולים לזהות את פלטפורמת Google Play Games במחשב בזמן הריצה, וכך להפעיל או להשבית תכונות ספציפיות לפלטפורמה במשחק.
כדי לבדוק אם המשחק פועל בפלטפורמת Google Play Games במחשב, מחפשים את תכונת המערכת com.google.android.play.feature.HPE_EXPERIENCE:
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 Games במחשב. המשחק שלכם גלוי כששחקן מפעיל את שכבת העל של האמולטור, ולכן אם לא תזהו את האירוע onPause, חוויית המשתמש עלולה להיות גרועה.
עדכון ממשק המשתמש
יש אלמנטים ומחוות מסוימים בממשק המשתמש שלא מתאימים למחשב, וצריך לעדכן אותם.
נדרש:
- להחליף פעולות בממשק המשתמש שדורשות שתי אצבעות או יותר (תנועות מגע מרובות). לדוגמה, צריך להחליף את תנועת הצביטה לשינוי גודל ואת תנועות המגע המרובות האחרות בקלט המקביל של העכבר והמקלדת. לפרטים על שינויים בקלט של המכשיר, אפשר לעיין במאמר בנושא תמיכה בקלט.
המלצה:
- בכל הטקסט שגלוי למשתמשים צריך להופיע המילה 'click' (לחיצה) במקום 'tap' (הקשה).
- ברשימות שאפשר לגלול בהן צריכים להיות סרגלי גלילה.
- באזורים שבהם המשתמשים יכולים להזיז את התצוגה, צריכים להיות פסי גלילה או דרך אחרת לנוע במהירות למרחקים גדולים.
- לא להציג מקלדת וירטואלית במסך להזנת טקסט.
- כל ערכי הטקסט צריכים להיות בתוך גבולות שדה הטקסט.
- קליקים על רכיבים גלויים צריכים:
- קבלת קליק בכל מקום בגבולות הגלויים של הרכיב.
- לא לאשר קליק באזור שמחוץ לרכיב הגלוי.
- בתיבות דו-שיח צריך להיות לחצן סגירה גלוי. אין לזהות קליק מחוץ לגבולות תיבת הדו-שיח.
השבתה של רוב תיבות הדו-שיח של ההרשאות
למעט הרשאות למיקרופון ולהתראות, ב-Google Play Games במחשב לא מוצגים דיאלוגים של הרשאות, ולכן לא כדאי לנסות להציג אותם או לבקש הרשאות בזמן הריצה. אם הצגתם בעבר תיבות דו-שיח לבקשת הרשאה, עליכם לעדכן את המשחק כך שהוא לא יציג אותן יותר במחשבים.
תכונות והרשאות ב-Android שלא נתמכות
נדרש במסגרת תהליך הפצת התוכן
חלק מתכונות החומרה הנפוצות בטלפונים ניידים ובטאבלטים לא זמינות במחשב. זה כולל תכונות חומרה כמו המצלמה או המיקום של השחקן. אי אפשר להוריד ולהתקין במחשב של השחקן משחקים שדורשים תכונות חסרות. בקשות לתכונות חסרות במחשב נכשלות באופן אוטומטי.
כדי לראות רשימה מלאה של התכונות הזמינות, מקלידים:
adb shell pm list featuresכדי שהמשחק שלכם יהיה תואם למחשבים, צריך לבצע את השינויים הבאים:
חשוב לסמן תכונות כאופציונליות בקובץ מניפסט של אפליקציה על ידי הוספת
android:required="false"להצהרת<uses-feature>. זה רלוונטי רק לתכונות שכבר הוצהרו בקובץ מניפסט של אפליקציה.אל תנסו להשתמש בתכונות חסרות בזמן הריצה. אם אתם משתמשים באותו קובץ APK גם בנייד וגם במחשב, עליכם לזהות את סביבת המחשב בזמן הריצה ולהימנע מנתיבי הקוד הרלוונטיים.
אל תבקשו הרשאות ל-Android שלא נתמכות בזמן ריצה. אם אתם משתמשים באותו קובץ APK גם במסלול לנייד וגם במסלול למחשב, עליכם לזהות את סביבת המחשב בזמן הריצה ולהימנע מנתיבי הקוד הרלוונטיים. אין צורך לעדכן את המניפסט.
מידע נוסף על תאימות של קובץ מניפסט של אפליקציה זמין במדריך בנושא תאימות של קובץ מניפסט של אפליקציה ב-Chromebook.
דרישות לבדיקות פונקציונליות
לפני ששולחים את גרסת build לבדיקה הראשונה אל Google Play Console, צריך להסיר את תכונות החומרה הבאות:
android.hardware.wifiandroid.hardware.bluetoothandroid.hardware.cameraandroid.hardware.location
יכול להיות שחלק מהתכונות האלה יופיעו כנתמכות כשמריצים את pm list features מסיבות של תאימות, אבל הן לא מיושמות באופן מלא. מידע נוסף על הסרת התכונה android.hardware.wifi זמין במאמר מעקב אחרי סטטוס החיבור ומדידת השימוש בחיבור. רשימה מלאה של תכונות שלא נתמכות מופיעה במדריך לתאימות של קובץ מניפסט של אפליקציה ל-Chromebook.
דרישות לבדיקות איכות
תכונות החומרה הנפוצות האלה לא תואמות למחשבים, ולכן צריך להסיר אותן לפני השליחה הסופית אל Google Play Console:
android.hardware.audio.proandroid.hardware.bluetoothandroid.hardware.cameraandroid.hardware.consumerirandroid.hardware.locationandroid.hardware.nfcandroid.hardware.sensor.lightandroid.hardware.sensor.accelerometerandroid.hardware.sensor.barometerandroid.hardware.sensor.compassandroid.hardware.sensor.gyroscopeandroid.hardware.sensor.proximityandroid.hardware.telephonyandroid.hardware.touchscreenandroid.hardware.usb.accessoryandroid.hardware.usb.hostandroid.hardware.wifiandroid.software.midi
הרשאות לא נתמכות
ההרשאות הבאות שנמצאות בשימוש נפוץ לא נתמכות במחשבים, ולכן המשחק שלכם צריך להשבית אותן ב-Google Play Games במחשב:
android.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_WIFI_STATEandroid.permission.BLUETOOTHandroid.permission.CAMERAandroid.permission.FOREGROUND_SERVICEandroid.permission.GET_ACCOUNTSandroid.permission.INSTALL_PACKAGESandroid.permission.READ_CONTACTSandroid.permission.READ_EXTERNAL_STORAGEandroid.permission.READ_PHONE_STATEandroid.permission.RECEIVE_BOOT_COMPLETEDandroid.permission.REQUEST_INSTALL_PACKAGESandroid.permission.SYSTEM_ALERT_WINDOWandroid.permission.USE_CREDENTIALSandroid.permission.WRITE_EXTERNAL_STORAGEandroid.permission.WRITE_SETTINGScom.google.android.gms.permission.ACTIVITY_RECOGNITION
אתרים חיצוניים ורכיבי WebView
פעולת Intent של דפדפן נטענת בדפדפן האינטרנט המקורי של המחשב במקום בסביבה של Google Play Games במחשב. זו חוויה אידיאלית לשחקנים ברוב המצבים.
כדי להקל על ההעברה, Google Play Games במחשב תומך ב-WebView. הדף ייפתח בסביבה של Google Play Games במחשב, ולכן לא יהיה בו דפדפן רגיל למחשב. אם השתמשתם בעבר ב-WebView כדי לשתף את התנאים וההגבלות, מדיניות הפרטיות או תוכן דומה אחר, עכשיו אתם צריכים להפעיל כוונת שימוש בדפדפן.
השבתת ממשקי API של Google Play Services שלא נתמכים
נדרש במסגרת תהליך הפצת התוכן
Google Play Games במחשב כולל גרסה משלו של Google Play Services, שמכילה רק קבוצת משנה של ממשקי ה-API של Google Play Services. עליך לאשר שהאפליקציה שלך לא תלויה באופן משמעותי במודולים שמושמטים או שלא נתמכים במחשב. חשוב לזכור שיכול להיות שחלק מהמודולים יהיו זמינים, אבל הפונקציונליות שלהם לא תמיד נתמכת. לדוגמה, העברת הודעות בענן ב-Firebase לא תפעל כש-Google Play Games במחשב סגורה.
מודולים נתמכים
המודולים האלה זמינים כרגע ונתמכים על ידי Google Play Games במחשב, ויש תוכניות להוסיף תמיכה בתכונות נוספות:
- כניסה באמצעות חשבון Google (לא כולל העברת חשבון, SmartLock, אימות באמצעות SMS, חישוב מורכבות הסיסמה)
- Cronet
- Google Play Games Services
- Tasks
- ראייה
- Google Pay
תמיכה מוגבלת
המודולים הבאים פועלים באופן חלקי. אנחנו נעשה כמיטב יכולתנו כדי לתמוך בהם ב-Google Play Games במחשב, אבל אנחנו לא יכולים להבטיח שהם יפעלו.
- Google Cloud Messaging (יצא משימוש, צריך להשתמש ב-העברת הודעות בענן ב-Firebase)
- אימות ב-Firebase (אימות באמצעות מספר טלפון לא פועל)
- העברת הודעות בענן ב-Firebase
- ספריות משותפות של Firebase
- Firebase ML
- הגדרת תצורה מרחוק ב-Firebase
- Firebase Analytics
לא נתמך
המודולים האלה לא נתמכים ב-Google Play Games במחשב, אבל הם לא גורמים לבעיות ב-Google Play Games במחשב כשהם נכשלים:
- Google Analytics (יצא משימוש, צריך להשתמש ב-Firebase Analytics)
- Google Cast
- Awareness API
- Drive (הוצא משימוש ויוסר בקרוב)
- FIDO
- מסד נתונים בזמן אמת ב-Firebase
- Firestore
- Firebase A/B Testing
- Google Fit
- Address API
- Instant Apps API
- Location API
- Google Maps SDK
- בקרבת מקום
- Panorama
- מקומות
- Google+
- SafetyNet (יצא משימוש. כדי להצטרף לתוכנית הבטא של Play Integrity API, צריך למלא את טופס הבעת ההתעניינות)
- Google Tag Manager
- Wear OS
קטוע
נדרש במסגרת תהליך הפצת התוכן
אסור להשתמש במודולים האלה במחשבים כי הם עלולים לגרום להתנהגות לא צפויה ב-Google Play Games במחשב.
הפעלת נפח אחסון ייעודי לאפליקציות
נדרש במסגרת תהליך הפצת התוכן
הקטע הזה רלוונטי אם המשחק שלכם קורא או כותב לזיכרון חיצוני. נדרש היקף אכיפה של אחסון כדרך חלופית לקריאה וכתיבה באחסון. הפעולה הזו מייתרת את הצורך לבקש מהשחקן את ההרשאות הרגישות הבאות:
android.permission.READ_EXTERNAL_STORAGEandroid.permission.WRITE_EXTERNAL_STORAGE
מידע נוסף על נפח אחסון ייעודי לאפליקציות זמין במאמרים הבאים:
Analytics
מוצרי Google Analytics מדור קודם לא פועלים ב-Google Play Games במחשב. אם זה המצב במשחקים שלכם, כדאי להעביר את ההגדרה אל Google Analytics 4.
השינוי הזה ישפיע על המשחק רק אם אתם משתמשים כרגע ב-Google Analytics 360. אם אתם משתמשים ב-Firebase SDK כדי לעקוב אחרי אירועים אנליטיים במשחק ואתם רואים את המשחק כנכס ב-Google Analytics Console, לא צריך לבצע פעולות נוספות.