כדי להציג את המשחק ב-Google Play Games במחשב, צריך לעדכן את יכולות הגרפיקה שלו ולהוסיף תמיכה במסכים גדולים. במאמר הזה מתוארות הדרישות האלה והמלצות קשורות.
לפניכם סיכום של הדרישות וההמלצות בדף הזה:
- ככל האפשר, משתמשים בדחיסת טקסטורות (מומלץ)
- אין להשתמש בגרסת OpenGL ES גבוהה מ-3.1 (חובה)
- אם משתמשים ב-Vulkan, משתמשים רק בגרסה 1.1 ואילך (חובה)
- הגדלה או הסרה של מגבלות על קצב הפריימים (מומלץ)
- שימוש בנכסים ובטקסטורות ברזולוציה גבוהה (חובה)
- שינוי הגודל של ממשק המשתמש (חובה)
- תמיכה ביחסי הגובה-רוחב הנדרשים (חובה)
- ביצוע עדכונים דינמיים של מודעות לרשת המדיה (חובה)
דחיסת טקסטורה
מכיוון ש-Google Play Games במחשב מעביר טקסטורות דחוסות כשאפשר, כדאי להשתמש ב-DXTC
או ב-BPTC
כדי לנצל את חומרת המחשב.
לפעמים צריך לבטל את הדחיסה של הטקסטורות האלה אם צריך לבצע אמולציה של תכונות OpenGL
מטעמי תאימות, לכן תמיד צריך ליצור פרופיל של המשחק.
הדחיסה של פורמטים כמו ETC1
ו-ETC2
מתבצעת על ידי שכבת התרגום של OpenGL לפני שהם נשלחים לסטאק הגרפיקה המקורי. הם ימשיכו לפעול, אבל לא יהיו להם אותם יתרונות של יעילות זיכרון או זמן ריצה כמו בחומרה בנייד.
גרפיקה ב-API
כדי להשיג ביצועים אופטימליים, מומלץ להשתמש ב-Vulkan API ב-Google Play Games במחשב.
אם זה לא אפשרי, יש להשתמש בגרסת OpenGL ES שמפורטת בהמשך.
גרסת OpenGL ES
ב-Google Play Games במחשב יש תמיכה ב-OpenGL ES 3.1.
כדי לשמור על תאימות ל-Google Play Games במחשב, חשוב לוודא שלא מציינים בגרסה AndroidManifest.xml
גרסה גבוהה יותר מ-OpenGL ES 3.1.
גרסת Vulkan
אפליקציית Google Play Games במחשב תומכת ב-Vulkan 1.1. כדי לשמור על תאימות ל-Google Play Games במחשב, חשוב לוודא שהמשחק לא דורש גרסה גבוהה יותר מ-Vulkan 1.1.
הגדלת המגבלות על קצב הפריימים המקסימלי
חלק מהשחקנים יוכלו להפעיל את המשחק שלכם במהירות פריימים גבוהה בהרבה במחשבים מאשר במכשירים ניידים. כדי לספק לשחקנים את חוויית המשחק הטובה ביותר, מומלץ לוודא שהמגבלה היא לפחות 60fps או להסיר את המגבלות על קצב הפריימים לגמרי.
אופטימיזציה למסכים גדולים
כדי להשתמש ב-Google Play Games במחשב, נדרשים אופטימיזציות למסך גדול:
נכסים וטקסטורות ברזולוציה גבוהה
Google Play Games במחשב תומך ברזולוציות של עד 4K, ורמת הביצועים שלו תואמת למכשיר מתקדם עם Android ששוחרר ב-12 החודשים האחרונים. טקסטורות ונכסים שמיועדים למסך קטן יותר של טלפון גורמים לירידה בתפיסה של השחקן לגבי המשחק כשהוא צופה במסך גדול של 4K במחשב. כשהדבר אפשרי, חשוב לוודא שנכסים ברזולוציה גבוהה יהיו זמינים בהשקה הראשונה.
אם אתם משתמשים בקובצי OBB של Binary Blob אטומים (שנקראים גם קובצי הרחבה של APK) כדי להעביר נכסים, נכסים נוספים ברזולוציה גבוהה עלולים לגרום לגודל הכולל לחרוג ממגבלת ה-OBB של נפח ראשי של 2GB ועוד 2GB תיקון). במקרה כזה, כדאי להשתמש ב-Play Asset Delivery כדי להעביר את הנכסים.
באמצעות Play Asset Delivery, אפשר לשלוח באופן אוטומטי את הטקסטורות שתואמות לפורמט דחיסת הטקסטורה הנתמך ביותר במכשיר בלי להגדיל את המשחק. אפשר גם לטרגט מכשירים על סמך רמת הביצועים שלהם, ולהציג להם באופן אוטומטי טקסטורות ברזולוציה גבוהה או נמוכה בהתאם.
Play Asset Delivery נתמך ב-Unity 5.6 ואילך באמצעות הפלאגין Play Asset Delivery Unity, וב-Unreal Engine 4.25. למנועי חיפוש אחרים, אנחנו מספקים ערכות SDK ל-Java ול-Native.
התאמה לעומס (scaling) של ממשק המשתמש
במסך גדול יותר, יכול להיות שתצטרכו לשנות את ממשק המשתמש של המשחק כדי לוודא שכל הרכיבים בגודל המתאים. מומלץ שהתצוגות האלה יכסו לא יותר מ-20% מהמסך.
יחסי גובה-רוחב
ל-Google Play Games במחשב נדרשת תמיכה ביחס גובה-רוחב של 16:9. כדי לספק חוויית משחק אידיאלית, המשחקים צריכים לתמוך גם ביחסי גובה-רוחב של 21:9, 16:10 ו-3:2.
הדגשת דיוקן
משחקים בפריסה לאורך צריכים לתמוך רק ביחס גובה-רוחב של 9:16. אם אין במשחק תמיכה לרוחב, ב-Google Play Games במחשב מוצגות פסים שחורים במצב מסך מלא.
מודעות דינמיות לרשת המדיה
אפליקציית Google Play Games למחשב אף פעם לא משנה את הרזולוציה הלוגית, צפיפות התצוגה או יחס הגובה-רוחב של המשחק אחרי שהוא מופעל. למרות זאת, השחקנים יכולים לעבור בין מצב מסך מלא למצב חלון במשחק. במצב חלון, הנגן יכול גם לשנות את גודל החלון באלכסון באופן חופשי, כך שיחס הגובה-רוחב יישאר קבוע. המשמעות היא שהמשחק לא צריך לטפל באירועי שינוי גודל כדי להתאים לפרדיגמות רגילות של חלונות במחשב, אבל המשמעות היא גם שאי אפשר להסתמך על צפיפות התצוגה כאינדיקטור לקריאוּת של רכיבים במשחק.
בחירת רזולוציה
פלטפורמת Google Play Games במחשב מספקת למשחק את יחס הגובה-רוחב המתאים ביותר בין התצוגה הראשית של השחקן לבין התמיכה שפורסמה במניפסט של האפליקציה. רזולוציית ברירת המחדל נבחרת באמצעות שיטות ניתוח פנימיות כדי לספק לנגן את חוויית השימוש הטובה ביותר.
השחקן יכול לשנות את רזולוציית ברירת המחדל של המשחק במחשב שלו. חישוב יחס הגובה-רוחב לא משתנה, אבל מספר הפיקסלים שתבצעו להם רינדור עשוי להיות שונה בכל הפעלה של המשחק. חשוב לזכור את זה אם אתם מסתמכים על הרזולוציה שדווחה בין השקות של המשחק, למשל כשאתם קובעים אילו נכסים לשמור במטמון ולייצר להם רינדור. אמולטור המפתחים של Google Play Games במחשב יופעל מחדש אחרי שמשתמש משנה את הרזולוציה, כך שלא תצטרכו לטפל בשינוי הזה בזמן הריצה.
שיטות מומלצות
כדי להעניק לשחקנים את החוויה הטובה ביותר, כדאי לבצע את הפעולות הבאות:
- אם המשחק פועל בצורה הטובה ביותר במצב תצוגה לאורך, ויש סיכוי גבוה שהשחקנים ישחקו בו
בזמן ביצוע ריבוי משימות, כדאי להגדיר
android:screenOrientation="portrait"
. כך מובטח חלון בפורמט לאורך למשחק. - כדי להגביל את המשחק לטווח של יחסי גובה-רוחב מאומתים, מציינים את יחסי הגובה-רוחב המינימלי והמקסימלי הנתמכים באמצעות
android:minAspectRatio
ו-android:maxAspectRatio
. כדאי לבדוק ביסודיות את המשחק בטווח הזה ולשים לב למה שקורה עם יחסי גובה-רוחב רחבים, מרובעים וגבוהים במיוחד. - מערכת Google Play Games במחשב מדווחת על DPI, אבל הדיווח לא משתנה כל עוד המשחק פעיל. לכן אי אפשר לדעת מהו הגודל הפיזי של רכיב במשחק, ומומלץ למקם רכיבים במשחק על סמך יחסי גודל של המסך במקום לנסות להתאים ליחידת גודל מבוססת-פיזיקה.
- כדאי לבדוק את הקריאוּת של אלמנטים במשחק במסך של מחשב נייד ובמצב חלון.
- נותנים לשחקנים שליטה על קנה המידה של ממשק המשתמש במשחק, כדי שיוכלו לשנות את הגודל של רכיבי המשחק או הטקסט בהתאם להעדפות האישיות שלהם או לצרכים של הסביבה. כך תוכלו למנוע מהשחקנים להקטין את רזולוציית המשחק (ולכן את האיכות הגלויה) רק כדי להגדיל את הטקסט.
בדיקה של תצוגה דינמית
לאמולטור למפתחים של Google Play Games במחשב אין אמצעי בקרה נרחבים מבוססי ממשק משתמש חזותי, שבעזרתם אפשר לאמת כל שילוב פוטנציאלי של רזולוציה ויחס גובה-רוחב. כדי ליצור סימולציה של הרצת המשחק ברזולוציה ספציפית, משתמשים בפקודה wm size
במעטפת adb. לדוגמה, כדי לבדוק משחק באיכות 4K, משתמשים בפקודה הבאה:
adb shell wm size 3840x2160
אפשר לאפס את קנה המידה של המסך באמצעות הפקודה הבאה:
adb shell wm size reset