אמולטור Google Play Games במחשב למפתחים הוא אמולטור שמתמקד במפתחים ומיועד ל-Google Play Games במחשב. בניגוד לחוויית השחקן, אתם יכולים להתקין ולנפות באגים בחבילות שלכם. אתם יכולים גם לדמות תצורות שונות של שחקנים, כמו יחס גובה-רוחב, אמולציית עכבר וקצה עורפי של גרפיקה, כדי לוודא שהמשחק פועל כמצופה במגוון תצורות של מחשבים.
הפעלת האמולטור
אחרי ההתקנה, יתווספו לתפריט ההתחלה ולשולחן העבודה קיצור דרך להפעלת האמולטור ורכיב בשם Google Play Games Developer Emulator. האמולטור יישאר במגש המערכת גם אחרי שתסגרו את החלון.
כניסה
בפעם הראשונה שמריצים את האמולטור, מתבקשים להיכנס לחשבון Google. צריך להשתמש באותם פרטי כניסה שמתכננים להשתמש בהם לפיתוח.
כדי להתנתק, לוחצים לחיצה ימנית על הסמל של מגש המערכת, בוחרים באפשרות אפשרויות למפתחים ואז לוחצים על התנתקות מאולצת. כשעושים את זה, האמולטור מופעל מחדש באופן מיידי ומבקש להיכנס שוב.
ניווט
אחרי ההפעלה, יוצג מסך הבית הרגיל של Android. לחיצות שמאליות בעכבר מתורגמות ישירות להקשות באצבע, כמו במצב אמולציית עכבר. משחקים שהועלו באמצעות Sideloading לצורך פיתוח מופיעים ברשימת האפליקציות, שאליה אפשר להגיע בלחיצה וגרירה למעלה בשולחן העבודה (אמולציה של החלקה למעלה בטלפון או בטאבלט).
בנוסף לתרגום של העכבר, אמולטור המפתחים של Google Play Games במחשב מספק קיצורי דרך במקלדת לשיפור הניווט:
-
Ctrl + h : לחיצה על לחצן הבית -
Ctrl + b : לחיצה על הכפתור "הקודם" -
F11 אוAlt + Enter : מעבר בין מסך מלא למצב חלון -
Shift + Tab : פתיחת שכבת העל של Google Play Games במחשב, כולל מיפוי המקשים הנוכחי של Input SDK
התקנת משחק
אמולטור המפתחים של Google Play Games במחשב משתמש ב-Android Debug Bridge (adb) כדי להתקין חבילות.
תאימות ל-adb
הגרסאות הנוכחיות של adb תואמות לאמולטור למפתחים של Google Play Games במחשב.
בנוסף, כשמתקינים את האמולטור, מותקנת גרסה תואמת בנתיב C:\Program
Files\Google\Play Games Developer Emulator\current\emulator.
כדי לפעול לפי ההוראות האלה, צריך לוודא ש-adb זמין ב-$PATH. אפשר לוודא שהגדרתם את adb בצורה נכונה באמצעות הפקודה adb devices
adb devices
List of devices attached
localhost:6520 deviceהתקנת המשחק
- הפעלת
Google Play Games for PC Emulator מקלידים
adb devicesבשורת הפקודה. הפרטים שמוצגים הם:adb devices List of devices attached localhost:6520 deviceפתרון בעיות:
- אם מופיעה שגיאה, צריך לוודא שפעלתם לפי ההוראות שבמאמר תאימות ל-ADB.
- אם לא מופיע מכשיר, מנסים להתחבר מחדש דרך יציאה
6520:
adb connect localhost:6520מקלידים
adb install path\to\your\game.apkכדי להתקין את המשחק. אם יצרתם קובץ Android App Bundle (aab), עליכם לעיין בהוראות לשימוש ב-bundletool ולהשתמש ב-bundletool install-apksבמקום זאת.מפעילים את המשחק באחת מהדרכים הבאות:
- מקלידים
adb shell monkey -p your.package.name 1כדי להריץ את המשחק, ומחליפים אתyour.package.nameבשם החבילה של המשחק. - באמולטור למפתחים של Google Play Games למחשב, לוחצים על הסמל כדי להפעיל את המשחק. בדיוק כמו בטלפון Android, צריך להחליק למעלה במסך הבית כדי לראות את רשימת המשחקים המותקנים.
- מקלידים
ניפוי באגים במשחק
משתמשים ב-Android Debug Bridge (adb) כדי לבצע ניפוי באגים כמו בכל משחק אחר.
האמולטור מופיע כמכשיר שמחובר דרך localhost:6520.
adb logcat פועל כמצופה, וכך גם כלים שעוזרים לעצב או לסנן את הפלט של logcat – כולל Android Studio.
בנוסף ל-adb, אפשר לגשת ליומנים בספרייה %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs. האפשרות הכי שימושית כאן היא AndroidSerial.log שמייצגת את כל מה שadb logcat ישתקף מהרגע שהאמולטור מתחיל.
הגדרות למפתחים
האמולטור למפתחים של Google Play Games במחשב מתמקד ביעילות המפתחים ולא בחוויית משתמשי הקצה. המשמעות היא שיש לכם גישה חופשית למערכת Android, כולל שימוש במפעיל Android הרגיל במקום בחוויית השימוש של Google Play Games במחשב, ושליטה בתכונות שאחרת מופעלות ומושבתות באופן אוטומטי עבור השחקנים.
בדיקת קלט העכבר
במהלך הפיתוח, אמולטור המפתחים של Google Play Games במחשב מוגדר כברירת מחדל לאמולציית מגע, במקום לספק קלט עכבר ישיר. כדי להפעיל קלט ישיר של העכבר, לוחצים לחיצה ימנית על הסמל של מגש המערכת, בוחרים באפשרות אפשרויות למפתחים ואז באפשרות מצב מחשב (KiwiMouse).
ל-Google Play Games במחשב יש שני מצבי עכבר: מצב מדומה שמתרגם קליקים בעכבר להקשות בודדות, ומצב 'העברה' או 'מצב מחשב' שמאפשר למשחקים לטפל בפעולות העכבר באופן מקורי ולבצע לכידת מצביע. לפרטים על קלט עכבר ב-Google Play Games במחשב, אפשר לעיין במאמר הגדרת קלט עכבר.
בלקוח הנגן, ההדמיה מושבתת על ידי הוספת השורה הבאה למניפסט:
<manifest ...>
<uses-feature
android:name="android.hardware.type.pc"
android:required="false" />
...
</manifest>
לדגל התכונה הזה אין השפעה בסביבת הפיתוח.
בדיקה של יחסי גובה-רוחב
האמולטור למפתחים מופעל ביחס גובה-רוחב של 16:9 – בניגוד ללקוח של נגן שמפיק את יחס הגובה-רוחב שלו מהתצוגה הראשית. כדי לבדוק איך המשחק נראה במסכים של שחקנים שונים, לוחצים לחיצה ימנית על הסמל במגש המערכת, בוחרים באפשרות אפשרויות למפתחים ואז בוחרים באפשרות כלשהי בקטע יחס התצוגה.
השיטה המומלצת להגדרת יחס הגובה-רוחב היא באמצעות התגים android:minAspectRatio ו-android:maxAspectRatio.
לדוגמה, במשחק בפריסה לאורך יחס הגובה-רוחב יהיה 9/16 או 0.5625, ולכן כדאי להגדיר יחס גובה-רוחב מקסימלי של 1 כדי למנוע מצב שבו המשחק רחב יותר מריבוע:
<activity android:maxAspectRatio="1">
...
</activity>
באופן דומה, משחק לרוחב יהיה 16/9 או בערך 1.778, ולכן כדאי להגדיר יחס גובה-רוחב מינימלי של 1 כדי למנוע ממנו להיות צר יותר מריבוע:
<activity android:minAspectRatio="1">
...
</activity>
מה כדאי לבדוק
אם המשחק שלכם תומך רק במצבי פורטרט במניפסט, אתם יכולים לבחור באפשרות 9:16 (פורטרט) בתפריט הנפתח כדי לראות איך הוא נראה במחשבים של השחקנים. אחרת, צריך לוודא שהמשחק פועל ביחסי הגובה-רוחב הרחבים והצרים ביותר לרוחב שאתם תומכים בהם במניפסט. חשוב לזכור שיחס הגובה-רוחב 16:9 (ברירת מחדל) (או 9:16 (פורטרט) אם המשחק הוא רק בפורטרט) נדרש לצורך קבלת אישור מלא.
בדיקת שרתים עורפיים לעיבוד
Google Play Games במחשב משתמש ב-Vulkan כדי לעבד את המשחקים, וזה נפוץ בסביבות Android וגם בסביבות מחשב. שכבת ארגז חול משמשת לבידוד הסביבות של המחשב ושל Android. מכיוון שמשחקים רבים עדיין משתמשים ב-OpenGL ES לעיבוד, ANGLE ימיר פקודות OpenGL ES לפקודות Vulkan שתואמות למחשב המארח.
באופן דומה, Google Play Games במחשב ממקסם את תאימות המשחקים ומצמצם את המאמץ של המפתחים על ידי המרה אוטומטית של פורמטים של טקסטורות שמתאימים לנייד, כמו ETC1 ו-ETC2, לפורמטים שמתאימים למחשב בזמן הריצה. כדי לקבל את התוצאות הטובות ביותר, מומלץ להימנע מההמרה הזו ולהשתמש בפורמטים שנתמכים על ידי מעבדים גרפיים במחשב, כמו DXTC או BPTC.
מה כדאי לבדוק
אם במשחק שלכם מופיעים פריטי מידע חזותי לא צפויים, כדאי לבדוק את הגרפיקה של המקור ולשקול מעבר לפורמט שמתאים למחשב. חשוב לשים לב במיוחד לטקסטורות שמשמשות לאפקטים מתקדמים יותר, כי בדרך כלל קשה יותר לזהות בעיות במפות רגילות או במפות קובייה מאשר בעיות באלבדו.
ההמרה של הפקודות שלכם ב-OpenGL ES ל-Vulkan על ידי ANGLE תוסיף תקורה מסוימת. מוודאים שאתם עומדים ביעדי הביצועים הצפויים ושוקלים לעבור ל-renderer מבוסס Vulkan.
יצירת פרופיל של משחק למחשב
האמולטור משתמש באותה טכנולוגיה כמו לקוח הצרכנים, ולכן הוא סביבה מתאימה ליצירת פרופיל ביצועים.
Perfetto הוא כלי לניתוח הביצועים ב-Android. כדי לאסוף ולצפות בנתוני מעקב של Perfetto:
בהנחיית PowerShell, מתחילים מעקב באמצעות
adbadb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace- הדגל
--timeמציין את משך הזמן של הנתונים שייאספו. בדוגמה הזו, משך הזמן הוא 10 שניות. - הארגומנטים אחרי הדגל
--timeמציינים אילו אירועים צריך לעקוב אחריהם. בדוגמה הזו,gfxמציין גרפיקה,wmמציין ניהול חלונות ו-schedמציין מידע על תזמון תהליכים. אלה דגלים נפוצים ליצירת פרופילים של משחקים, והפניה מלאה זמינה. - הדגל
--outמציין את קובץ הפלט, שנשלף מהאמולטור למחשב המארח בשלב הבא.
- הדגל
שליפת נתוני המעקב מהמארח
adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.traceפתיחת הנתונים בממשק המשתמש של Perfetto
- פותחים את ui.perfetto.dev.
- בפינה הימנית העליונה, בקטע ניווט, בוחרים באפשרות פתיחת קובץ פרטי העברה.
- פותחים את קובץ
example.traceשהורדתם בשלב הקודם בספרייהDownloads/.
בודקים את הנתונים בממשק המשתמש של Perfetto. טיפים:
- לכל תהליך יש שורה משלו, שאפשר להרחיב כדי לראות את כל השרשורים בתהליך הזה. אם אתם יוצרים פרופיל של משחק, סביר להניח שהתהליך שלו יהיה בשורה הראשונה.
- כדי להתקרב או להתרחק, מחזיקים את המקש Control ומשתמשים בגלגל הגלילה.
- כשמשתמשים באירוע
sched, יש שורה לכל שרשור שמראה מתי הסטטוס של השרשור הוא running, runnable, sleeping או blocked. - כשמפעילים אירוע כמו
gfx, אפשר לראות את הקריאות השונות לגרפיקה שבוצעו על ידי שרשורים שונים. אפשר לבחור 'פרוסות' בודדות כדי לראות כמה זמן הן נמשכו, או לגרור לאורך שורה כדי לפתוח את הקטע 'פרוסות' בתחתית ולראות כמה זמן נמשכו כל הפרוסות בחלון הזמן שנבחר.
יצירת פרופילים של גרפיקה
אפשר לבצע פרופיל גרפיקה מסוים באמצעות RenderDoc.
- מגדירים את משתנה הסביבה
ANDROID_EMU_RENDERDOCלמחרוזת לא ריקה (למשל"1"). מגדירים את משתנה הסביבה
TMPלערך%USERPROFILE%\AppData\LocalLow. ההגדרה הזו אומרת ל-Renderdoc למקם את קובצי היומן שלה במקום שאפשר להגיע אליו בארגז החול של האמולטור.אם אתם משתמשים בקצה העורפי Vulkan. בוחרים באפשרות Graphics Settings (הגדרות גרפיקה) > Vulkan Instance Implicit Layers (שכבות משתמעות של מופע Vulkan) ומוודאים שתיבת הסימון VKLAYER_RENDERDOC_Capture מסומנת.
מפעילים את אמולטור המפתחים של Google Play Games במחשב. שכבת-על של RenderDoc מצוירת בחלק העליון כל עוד התמיכה מופעלת.
מפעילים את RenderDoc בכל שלב לפני או אחרי ההפעלה של אמולטור המפתחים של Google Play Games במחשב.
לוחצים על קובץ > צירוף למופע פעיל ובוחרים באפשרות crosvm.
ציון משתני סביבה
כדי ש-Renderdoc יפעל, צריך להוסיף או לשנות משתני סביבה ב-Windows. אפשר לשנות את משתני הסביבה באמצעות ממשק המשתמש, PowerShell או cmd.exe.
שימוש בממשק המשתמש
- מקישים על
Win+R כדי לפתוח את תיבת הדו-שיח של ההפעלה. - מקלידים
sysdm.cplכדי לפתוח את החלון System Properties (מאפייני המערכת). - בוחרים בכרטיסייה מתקדם אם היא לא פעילה.
- לוחצים על הלחצן Environment Variables (משתני סביבה).
מכאן אפשר ללחוץ על הלחצן חדש כדי ליצור משתנה סביבה חדש, או לבחור משתנה וללחוץ על הלחצן עריכה כדי לערוך אותו.
שימוש ב-PowerShell
בחלון PowerShell, מקלידים:
$Env:VARIABLE_NAME=VALUE
מחליפים את VARIABLE_NAME ואת VALUE בערכים שרוצים להגדיר. לדוגמה, כדי להגדיר את הסוג ANDROID_EMU_RENDERDOC ל-"1":
$Env:ANDROID_EMU_RENDERDOC="1"
שימוש ב-cmd.exe
בחלון cmd.exe, מקלידים:
set VARIABLE_NAME=VALUE
מחליפים את VARIABLE_NAME ואת VALUE בערכים שרוצים להגדיר. לדוגמה, כדי להגדיר את הסוג ANDROID_EMU_RENDERDOC ל-"1":
set ANDROID_EMU_RENDERDOC="1"
טיפים ל-Android מגרסה 11 (רמת API 30) ומעלה
אפליקציית Google Play Games במחשב מתעדכנת עם הגרסאות האחרונות של Android. ריכזנו כאן כמה טיפים לשימוש בגרסה העדכנית של Android.
שמירה על עדכניות הכלים
Android Studio מתקין גרסה של adb שתואמת לאמולטור של המפתחים, אבל חלק ממנועי המשחקים כוללים גרסה ישנה יותר של adb. במקרה כזה, אחרי שמתקינים את האמולטור למפתחים, אפשר למצוא גרסה תואמת של adb בכתובת C:\Program Files\Google\Play Games Developer
Emulator\current\emulator.
אם מפעילים גרסה אחת של adb, היא מפסיקה את הפעולה של הגרסה השנייה. המשמעות היא שאם מנוע המשחק מפעיל באופן אוטומטי מופע משלו של adb, יכול להיות שתצטרכו להפעיל מחדש ולחבר מחדש את הגרסה של adb שמגיעה עם האמולטור למפתחים בכל פעם שתבצעו פריסה.
אם אתם משתמשים בחבילת אפליקציות ל-Android, אתם צריכים להתקין את הגרסה האחרונה של Bundletool ממאגר GitHub.
נפח אחסון ייעודי לאפליקציות
Android מגרסה 11 (רמת API 30) ואילך כולל נפח אחסון ייעודי לאפליקציות, שמספק הגנה טובה יותר לנתוני האפליקציה ולנתוני המשתמשים באחסון חיצוני. בנוסף להתאמת המשחק לדרישות של נפח אחסון ייעודי לאפליקציות, צריך לבצע שלבים נוספים כדי לטעון קובצי הרחבה של APK (obb) או נתוני נכסים לתוך האמולטור למפתחים של Google Play Games למחשב. אם נתקלתם בבעיות בגישה לקבצים האלה מהמשחק, אתם צריכים לבצע את השלבים הבאים:
- יוצרים ספרייה שהאפליקציה יכולה לקרוא.
- מעבירים את קובצי ההרחבה לאמולטור.
adb shell mkdir /sdcard/Android/obb/com.example.gameadb push main.com.example.game.obb /sdcard/Android/obb/com.example.game
הרשאות גישה לחבילה
בגלל כללי הגדרות החשיפה של החבילה החדשים, אפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה נחסמות משליחת שאילתות לגבי מידע על אפליקציות אחרות שמותקנות במכשיר. המשמעות היא שהגישה של המשחק ל-Play Services נחסמת כשהוא מותקן ממקור לא ידוע דרך adb, במקום להתקין אותו דרך חנות Play. כדי לבדוק את הרכישות מתוך האפליקציה במשחק שהועלה באמצעות העברה צדדית,
צריך להוסיף שאילתה לחבילה com.android.vending בקובץ AndroidManifest.xml באופן הבא:
<manifest>
<queries>
<package android:name="com.android.vending" />
</queries>
</manifest>
התקנת המשחק בלקוח הצרכן
אי אפשר להתקין משחק בלקוח הצרכני עד שהוא מופיע בקטלוג של Play Games Services. אחרי שיש למשחק גרסה אחת, אפשר ליצור מסלול בדיקה פנימי כדי לאמת עדכונים עתידיים לפני הפרסום.
לקוח הנגן לא תומך בתכונות שמתמקדות במפתחים של אמולטור המפתחים של Google Play Games במחשב. השימוש הכי טוב בזה הוא לבדיקת איכות המשחק לפני ההשקה, כדי לבדוק את חוויית השחקן מקצה לקצה אחרי ההשקה הראשונית.