האמולטור למפתחים של Google Play Games במחשב הוא אמולטור שמתמקד במפתחים של Google Play Games במחשב. בניגוד לחוויית המשתמש בנגן, אתם יכולים להתקין ולפתור באגים בחבילות משלכם. אפשר גם לדמות הגדרות שונות של נגן, כמו יחס גובה-רוחב, הדמיה של עכבר וצד לקוח של גרפיקה, כדי לוודא שהמשחק פועל כצפוי במגוון הגדרות של מחשבים.
הפעלת האמולטור
בסיום ההתקנה, יופיע בתפריט ההתחלה האלמנט 'Google Play Games Developer Emulator' (המכונה של Google Play Games למפתחים) וקיצוץ דרך לשולחן העבודה להפעלת המכונה. הסימולטור יישאר במגש המערכת כשסוגרים את החלון.
כניסה
בפעם הראשונה שתפעילו את הסימולטור, תתבקשו להיכנס לחשבון Google. משתמשים באותם פרטי כניסה שאתם מתכננים להשתמש בהם לפיתוח.
כדי לצאת מהחשבון, לוחצים לחיצה ימנית על הסמל בסרגל האפליקציות, בוחרים באפשרות אפשרויות למפתחים ואז לוחצים על אילוץ יציאה מהחשבון. לאחר מכן, הסימולטור יופעל מחדש באופן מיידי ותתבקשו להיכנס שוב לחשבון.
ניווט
אחרי ההפעלה, יוצג מסך בית אופייני ל-Android. לחיצות על לחצן העכבר הימני מתורגמות ישירות להקשות על האצבע, כמו במצב אמולציה של עכבר. משחקים שהותקנו דרך ה-Sideload לצורך פיתוח מופיעים ברשימת האפליקציות. כדי להגיע אליה, לוחצים וגוררים למעלה במחשב (חיקוי של החלקה למעלה בטלפון או בטאבלט).
בנוסף לתרגום בעכבר, באמולטור למפתחים של Google Play Games במחשב יש מקשי קיצור שיעזרו לכם לנווט:
ctrl + h : מקישים על לחצן הביתctrl + b : מקישים על לחצן החזרה אחורהF11 אוAlt + Enter : מעבר בין מצב מסך מלא למצב חלוןshift + tab : פתיחת שכבת-העל של Google Play Games on PC, כולל המיפויים הנוכחיים של המקשים ל-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 (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 למפתחים במחשב היא אמולציית מגע, במקום קלט ישיר של עכבר. כדי להפעיל קלט ישיר מהעכבר, לוחצים לחיצה ימנית על הסמל בסרגל האפליקציות, בוחרים באפשרות Developer Options ואז באפשרות PC mode (KiwiMouse).
ב-Google Play Games במחשב יש שני מצבי עכבר: מצב אמולציה שממיר לחיצות על העכבר להקשות בודדות, ומצב 'מעבר' (passthrough) שנקרא 'מצב מחשב' שמאפשר למשחקים לטפל בפעולות של העכבר באופן מקורי ולבצע צילום של הסמן. לפרטים על קלט של עכבר ב-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 (Portrait) בתפריט הנפתח כדי לראות איך הוא נראה במחשבים של השחקנים. אחרת, צריך לוודא שהמשחק פועל ביחסי הגובה-רוחב הרחבים והצרים ביותר בפורמט לרוחב שתומכים בהם במניפסט, תוך התחשבות בכך ש16:9 (ברירת המחדל) (או 9:16 (Portrait) אם המשחק הוא אנכי בלבד) נדרש לקבלת אישור מלא.
בדיקת הקצוות העורפיים של העיבוד
ב-Google Play Games במחשב נעשה שימוש ב-Vulkan כדי ליצור את הגרפיקה של המשחקים. Vulkan הוא רכיב נפוץ בסביבות Android ו-PC. שכבת ארגז חול משמשת לבידוד הסביבות של המחשב ושל Android. מאחר שעדיין יש משחקים רבים שמשתמשים ב-OpenGL ES לצורך עיבוד, ANGLE ממירה פקודות OpenGL ES לפקודות Vulkan שתואמות למחשב המארח.
באופן דומה, Google Play Games במחשב מגדיל את תאימות המשחקים ומצמצם את המאמץ של המפתחים על ידי המרה אוטומטית של פורמטים של טקסטורות שמתאימים לנייד, כמו ETC1 ו-ETC2, לפורמטים שמתאימים למחשב במהלך זמן הריצה. כדי לקבל את התוצאות הטובות ביותר, מומלץ להימנע מההמרה הזו ולהשתמש בפורמטים שנתמכים על ידי מעבדי GPU במחשבים, כמו DXTC או BPTC.
מה כדאי לבדוק
אם במשחק שלכם מופיעים פגמים בלתי צפויים ברינדור, כדאי לבדוק את הגרפיקה של המקור ולשקול לעבור לפורמט שמתאים למחשב. חשוב לשים לב במיוחד למרקמים שמשמשים להשפעות מתקדמות יותר, כי לרוב קשה יותר לזהות בעיות במפות נורמליות או במפות קוביות מאשר בעיות באלבידו.
ההמרה של פקודות OpenGL ES ל-Vulkan על ידי ANGLE תוסיף קצת זמן אחזור. מוודאים שאתם עומדים ביעדי הביצועים הצפויים, ומחליטים אם לעבור למעבד גרפיקה שמבוסס על Vulkan.
יצירת פרופיל של המשחק במחשב
מאחר שהמכונה הווירטואלית משתמשת באותה טכנולוגיה כמו לקוח הצרכן, היא סביבה מתאימה ליצירת פרופיל ביצועים.
Perfetto הוא כלי לניתוח ביצועים ב-Android. כדי לאסוף ולראות מעקב Perfetto:
בהנחיה של PowerShell, מתחילים מעקב באמצעות
adb
adb 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
, מוצגת שורה לכל חוט שמציינת מתי המצב של החוט הוא 'פעיל', 'ניתן להפעלה', 'במצב שינה' או 'חסום'. - כשמפעילים אירוע כמו
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 במחשב.
לוחצים על File (קובץ) > Attach to Running Instance (צירוף למכונה שפועלת) ובוחרים באפשרות crosvm.
ציון משתני סביבה
כדי ש-Renderdoc יפעל, צריך להוסיף או לשנות משתני סביבה ב-Windows. אפשר לשנות את משתני הסביבה באמצעות ממשק המשתמש, PowerShell או cmd.exe.
שימוש בממשק המשתמש
- מקישים על
Win+R כדי לפתוח את תיבת הדו-שיח 'הפעלה'. - מקלידים
sysdm.cpl
כדי לפתוח את החלון מאפייני המערכת. - בוחרים בכרטיסייה Advanced (מתקדם) אם היא לא פעילה.
- לוחצים על הלחצן Environment Variables.
מכאן אפשר ללחוץ על הלחצן New כדי ליצור משתנה סביבה חדש, או לבחור משתנה וללחוץ על הלחצן Edit כדי לערוך אותו.
שימוש ב-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 App Bundle, עליכם להתקין את הגרסה האחרונה של Bundletool ממאגר GitHub.
נפח אחסון ייעודי לאפליקציות
Android מגרסה 11 ואילך (רמת API 30 ואילך) כולל נפח אחסון ייעודי לאפליקציות, שמספק הגנה טובה יותר על נתוני האפליקציות והמשתמשים באחסון חיצוני. בנוסף להפיכת המשחק לתואם לדרישות האחסון המותנות, צריך לבצע שלבים נוספים כדי לטעון קובצי הרחבה של APK (obb) או נתוני נכסים למהדר למפתחים של Google Play Games במחשב. אם תיתקלו בבעיות בגישה לקבצים האלה מהמשחק, תוכלו לפעול לפי השלבים הבאים:
- יוצרים ספרייה שהאפליקציה יכולה לקרוא.
- מעבירים את קובצי ההרחבה למהדר.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb 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. אחרי שתהיה לכם גרסה אחת של המשחק, תוכלו ליצור מסלול לבדיקה פנימית כדי לאמת עדכונים עתידיים לפני הפרסום שלהם.
לקוח הנגן לא תומך בתכונות שמתמקדות במפתחים של אמולטור Google Play Games למפתחים במחשב. מומלץ להשתמש באפשרות הזו כדי לבצע בדיקות איכות של המשחק לפני ההשקה, וכדי לבדוק את חוויית המשתמש מקצה לקצה אחרי ההשקה הראשונית.