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

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

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

כשמבצעים את השינויים בתאימות למחשב ובאופטימיזציה (מלבד תמיכה ב-x86-64), אפשר להגדיר את המשחק כך שיזהה את Google Play Games במחשב ואז ישבית או יפעיל תכונות ספציפיות לפלטפורמה. כך תוכלו להשתמש באותו קובץ APK או App Bundle לגרסאות של האפליקציה לנייד ולמחשב ב-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 Backend) ובוחרים באפשרות IL2CPP בתפריט הנפתח כדי להפעיל את IL2CPP Scripting Backend.

  2. מפעילים יעדי 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.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

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

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

תכונות החומרה הנפוצות האלה לא תואמות למחשבים, ולכן צריך להסיר אותן לפני השליחה הסופית אל 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

פעולת 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 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, לא צריך לבצע פעולות נוספות.