כדי להשתמש ב-Google Play Games במחשב, צריך לבצע במשחק שינויים שיאפשרו תאימות למחשב ואופטימיזציה למחשב. השינויים האלה מבטיחים שהמשחק שלכם יוכל לפעול במחשב, וחוויית המשתמש תהיה אופטימלית לפלטפורמה.
בנוסף, יש דרישות לגבי גרפיקה, קלט מהמכשיר ומשחק בין מכשירים ב-Google Play Games במחשב. מידע נוסף זמין במדריך למתחילים.
כשמבצעים את השינויים בתאימות למחשב ובאופטימיזציה (מלבד תמיכה ב-x86-64), אפשר להגדיר את המשחק כך שיזהה את Google Play Games במחשב ואז ישבית או יפעיל תכונות ספציפיות לפלטפורמה. כך תוכלו להשתמש באותו קובץ APK או App Bundle לגרסאות של האפליקציה לנייד ולמחשב ב-Android.
סיכום הדרישות וההמלצות שבדף הזה:
- Include x86-64 ABI (חובה)
- זיהוי של Google Play Games בזמן הריצה (מומלץ)
- טיפול באירוע onPause (מומלץ)
- עדכון רכיבים בממשק המשתמש (חובה)
- השבתת תיבות דו-שיח של הרשאות לאפליקציות ל-Android (חובה)
- השבתת תכונות והרשאות של Android שלא נתמכות (חובה)
- החלפת WebViews ב-browser intents (מומלץ)
- השבתה של ממשקי API של Google Play Services שלא נתמכים (חובה)
- הפעלת אחסון בהיקף (נדרש)
- מעבר ל-Google Analytics 4 (מומלץ)
הכללת ארכיטקטורת ABI x86-64
נדרש במסגרת תהליך הפצת התוכן
כדי להבטיח את הביצועים והיציבות הטובים ביותר בפלטפורמה, כל הספריות שכלולות במשחק צריכות להיות גרסאות שתואמות ל-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:
עוברים אל 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. כדי להשתמש בגרסת ה-build הזו, צריך לקבל חריגה מצוות הבדיקה. כדי לבקש חריגה ל-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.
דרישות לבדיקות פונקציונליות
לפני ששולחים את גרסת הבדיקה הראשונה אל 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 Cloud Messaging)
- אימות ב-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
מידע נוסף על אחסון בהיקף מוגבל זמין במאמרים הבאים:
ניתוח נתונים
מוצרי Google Analytics מדור קודם לא פועלים ב-Google Play Games במחשב. אם זה המצב במשחקים שלכם, כדאי להעביר את ההגדרה אל Google Analytics 4.
השינוי הזה אמור להשפיע על המשחק רק אם אתם משתמשים כרגע ב-Google Analytics 360. אם אתם משתמשים ב-Firebase SDK כדי לעקוב אחרי אירועים אנליטיים במשחק שלכם, ואתם רואים את המשחק כנכס במסוף Google Analytics, לא צריך לבצע פעולות נוספות.