תאימות ואופטימיזציה של Google Play Games במחשב

כדי להשתמש ב-Google Play Games במחשב, עליכם לבצע שינויים במשחק כדי להתאים אותו למחשב ולבצע אופטימיזציה שלו. השינויים האלה מבטיחים שהמשחק יוכל לפעול במחשב וחוויית המשתמש תהיה מותאמת לפלטפורמה.

בנוסף, ל-Google Play Games במחשב יש דרישות לגבי גרפיקה, קלט מהמכשיר ושימוש במכשירים שונים. מידע נוסף זמין במדריך למתחילים.

כשמבצעים את השינויים בתאימות למחשב ובאופטימיזציה (מלבד תמיכה ב-x86-64), אפשר להגדיר את המשחק כך שיוכל לזהות את Google Play Games במחשב, ואז להשבית או להפעיל תכונות ספציפיות לפלטפורמה. כך תוכלו להשתמש באותו קובץ APK או באותה חבילת אפליקציות לגרסאות לנייד ולמחשב של Android.

לפניכם סיכום של הדרישות וההמלצות שבדף הזה:

הוספת ארכיטקטורת 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:

  1. עוברים אל Player Settings (הגדרות נגן) > Other Settings (הגדרות אחרות) > Configuration (הגדרה) > Scripting Backend (קצה עורפי ל-Scripting) ובוחרים באפשרות IL2CPP בתפריט הנפתח כדי להפעיל את הקצה העורפי ל-Scripting של IL2CPP.

  2. מפעילים יעדים של Android מסוג x86-64 בגרסה של Unity:

    • Unity 2018 וגרסאות קודמות: עוברים אל הגדרות Player‏ > הגדרות אחרות > ארכיטקטורת יעד ובוחרים את התיבה x86. מכיוון ש-Unity 2018 תומכת רק ביעדים מסוג x86, לא תוכלו ליצור build ל-x86-64. כדי לפרסם את הגרסה הזו, תצטרכו לקבל אישור חריג מצוות הבדיקה. יש לפנות לאיש הקשר ב-Google כדי לבקש חריגה ל-x86.

    • גרסה עם תמיכה לטווח ארוך (LTS) של Unity 2019 ואילך: עוברים אל הגדרות Player > הגדרות אחרות > ארכיטקטורות יעד ומפעילים את האפשרות 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 עלולה להוביל לחוויית משתמש גרועה.

עדכון ממשק המשתמש

יש רכיבים מסוימים בממשק המשתמש תנועות מסוימות שלא מתאימים למחשב PC, וצריכים לעדכן אותם.

נדרש:

  • החלפת פעולות בממשק המשתמש שדורשות שתי אצבעות או יותר (תנועות של מגע רב-אצבעות). לדוגמה, צריך להחליף את הצמדת האצבעות כדי להגדיל ואת תנועות מגע אחרות בקלט המתאים של העכבר והמקלדת. פרטים על השינויים בקלט המכשיר זמינים במאמר תמיכה בקלט.

המלצה:

  • בכל הטקסט שגלוי למשתמשים צריך להופיע 'לחיצה' במקום 'הקשה'.
  • לרשימות שניתן לגלול בהן צריכות להיות סרגליות גלילה.
  • באזורים שבהם המשתמשים יכולים לבצע תנועת פאן, צריכות להיות סרגליות גלילה או דרך אחרת לעבור במהירות מרחקים גדולים.
  • לא להציג מקלדת שניתן ללחוץ עליה במסך להזנת טקסט.
  • כל הטקסט צריך להיכנס למסגרת של שדה הטקסט.
  • קליקים על רכיבים גלויים צריכים:
    • לקבל לחיצה בכל מקום בתוך הגבולות הגלויים של הרכיב.
    • לא לקבל קליק באזור שמחוץ לרכיב הגלוי.
  • בתיבת הדו-שיח צריך להיות כפתור סגירה גלוי. לא לזהות לחיצה מחוץ למסגרת של תיבת הדו-שיח.

השבתה של רוב תיבות הדו-שיח של ההרשאות

לאפליקציית Google Play Games במחשב אין תיבת דו-שיח לבקשת הרשאות, מלבד הרשאות המיקרופון וההתראות. לכן, אל תנסה להציג תיבת דו-שיח כזו או לבקש הרשאות במהלך זמן הריצה. אם הצגתם בעבר תיבת דו-שיח לבקשת הרשאה, עליכם לעדכן את המשחק כך שלא יוצגו יותר תיבת דו-שיח כזו במחשבים.

תכונות והרשאות של Android שלא נתמכות

חובה לפי תהליך הפיתוח

חלק מתכונות החומרה הנפוצות בטלפונים ניידים ובטאבלטים לא זמינות במחשב. זה כולל תכונות חומרה כמו המצלמה או המיקום של השחקן. אי אפשר להוריד ולהתקין במחשב של השחקן משחק שדורש תכונות חסרות. בקשות לתכונות חסרות במחשב נכשלות באופן אוטומטי.

כדי להציג רשימה מלאה של התכונות הזמינות, מקלידים:

adb shell pm list features

כדי שהמשחק יהיה תואם למחשבים, צריך לבצע את השינויים הבאים:

  • צריך לסמן תכונות כאופציונליות במניפסט של האפליקציה על ידי הוספת android:required="false" להצהרה <uses-feature>. ההגבלה הזו חלה רק על התכונות שכבר הוצהרו במניפסט של האפליקציה.

  • אל תנסה להשתמש בתכונות חסרות בזמן הריצה. אם אתם משתמשים באותו קובץ APK גם בנייד וגם במחשב, זיהוי סביבת המחשב בזמן הריצה והימנעות מנתיבי הקוד הרלוונטיים.

  • לא מבקשים הרשאות Android שלא נתמכות בזמן ריצה. אם אתם משתמשים באותו קובץ APK גם במסלולים לנייד וגם במסלולים למחשב, זיהוי סביבת המחשב בזמן הריצה והימנעות מנתיבי הקוד הרלוונטיים. אין צורך לעדכן את המניפסט.

מידע נוסף על תאימות של מניפסט אפליקציה זמין במדריך תאימות של מניפסט אפליקציה ל-Chromebook.

דרישות לבדיקות פונקציונליות

לפני ששולחים את גרסת ה-build הראשונה לבדיקה ל-Google Play Console, צריך להסיר את תכונות החומרה הבאות:

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

יכול להיות שחלק מהתכונות האלה יופיעו כתכונות נתמכות כשמריצים את pm list features מסיבות תאימות, אבל הן לא יושמו באופן מלא. למידע נוסף על הסרת התכונה android.hardware.wifi, ראו מעקב אחרי סטטוס הקישוריות ומדידה של חיבורים. במדריך התאימות של מניפסט האפליקציה ל-Chromebooks מפורטת רשימה מלאה של התכונות שלא נתמכות.

דרישות לבדיקות איכות

תכונות החומרה הנפוצות האלה לא תואמות למחשבים, לכן עליכם להסיר אותן לפני שליחת הגרסה הסופית ל-Google Play Console:

  • 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 Games במחשב:

  • 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 Games במחשב. זוהי חוויית המשחק האידיאלית לרוב השחקנים.

כדי להקל על ההעברה, אפליקציית Google Play Games במחשב תומכת ב-WebView. מכיוון שהיא נפתחת בסביבה של Google Play Games במחשב, היא לא תכלול את הדפדפן הרגיל למחשב. אם השתמשתם בעבר ב-WebView כדי לשתף את התנאים וההגבלות, מדיניות הפרטיות או תוכן דומה אחר, עליכם להפעיל כוונת דפדפן במקום זאת.

השבתת ממשקי API של Google Play Services שלא נתמכים

חובה לפי תהליך הפצת הגרסה

ב-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 Games במחשב.

הפעלת אחסון ברמת ההיקף

חובה לפי תהליך הפיתוח

הקטע הזה רלוונטי אם המשחק קורא או כותב לאחסון חיצוני. אכיפת אחסון ברמת ההיקף נדרשת כדרך חלופית לקריאה ולכתיבה באחסון. כך לא תצטרכו לבקש מהשחקן את ההרשאות הרגישות הבאות:

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

מידע נוסף על אחסון ברמת ההיקף זמין במאמרים הבאים:

ניתוח נתונים

מוצרי Google Analytics מדור קודם לא פועלים ב-Google Play Games במחשב. אם זה רלוונטי למשחקים שלכם, עליכם להעביר אותם אל Google Analytics 4.

השינוי הזה אמור להשפיע על המשחק רק אם אתם משתמשים כרגע ב-Google Analytics 360. אם אתם משתמשים ב-Firebase SDK כדי לעקוב אחרי אירועי ניתוח נתונים במשחק, ואתם יכולים לראות את המשחק כנכס במסוף Google Analytics, אין צורך לבצע פעולה נוספת.