שיטות מומלצות לעבודה עם ADPF

Android Dynamic Performance Framework (ADPF) עוזר למפתחים לנהל באופן יזום את התרמיות והביצועים של המכשירים בכך שהוא מאפשר למשחקים ליצור אינטראקציה עם המערכת, לקבל תובנות תרמיות (כמו צפי לפוטנציאל) ולהשפיע על ההתנהגות. התאמה חכמה באמצעות ADPF מונעת ויסות נתונים (throttle) חמור ומאפשרת גיימפליי חלק וחלק יותר. במדריך הזה מתוארות אסטרטגיות מעשיות לשימוש יעיל ב-ADPF. הוא מתמקד בהתאמה אישית לעומס (scaling) בהתאמה אישית, שקשורה ישירות להגדרות האיכות הספציפיות של המשחק, ומבוססת על נתונים תרמיים של ADPF. על ידי יישום השיטות האלה, ניתן לנהל באופן יזום משחקים תרמיים וליצור משחקים שמניבים ביצועים טובים יותר לזמן ארוך יותר – מה שיביא לחוויה אמינה ומהנה יותר לשחקנים.

התאמה אישית של מדרגיות הביצועים

התאמת ברירת המחדל של הפלאגין ADPF עשויה לטרגט הגדרות קבועות מראש גנריות של מנוע. לדוגמה: Low, Medium ו-High. אם המשחק שלכם משתמש באפשרויות ייחודיות של איכות גרפיקה, ששונות מברירות המחדל האלה, ההנחות של הפלאגין לא יתאימו לתוכן שלכם. צריך להתאים אישית את לוגיקת ADPF כדי לשלוט באופן ישיר בהגדרות האיכות הספציפיות של המשחק לניהול תרמי יעיל, במקום להסתמך על ברירות מחדל שלא תואמות לברירת המחדל. יצירת לוגיקה פרטנית להתאמה לעומס (scaling) באמצעות נתוני ADPF לקבלת תוצאות טובות יותר:

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

בסרטון הקודם מוצגת בעיית רינדור ב-ADPF ב-Unity MegaCity Metro. מכיוון ש-ADPF מתאים את המרחק מהתצוגה בהתאם לטווח כללי של מנוע המשחק ולא לטווח שמתאים לתוכן של המשחק הספציפי, מרחק התצוגה הופך לנמוך מדי כשהמכשיר מתחמם, וזה גורם לבעיה שבה לא ניתן לראות יותר בניינים.

בידוד הגדרות הגרפיקה

לא מומלץ לבצע שינויים מהותיים שנקבעו מראש. שינוי ההגדרות של הגרפיקה הנפרדת מאפשר שליטה עדינה יותר וחוויה חלקה יותר בתגובה לתנאים תרמיים. הנה כמה טיפים לשינוי ההגדרות:

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

כאן מוסבר איך ב-Netmarble השתמשו ב-ADPF כדי לבצע אופטימיזציה של המשחק Game of Thrones: Kingsroad. הם יישמו התאמה לעומס (scaling) של רזולוציה באופן דינמי והתאמות של קצב פריימים דינמי.

הענקת שליטה למשתמשים

חלק מהשחקנים מעדיפים רכיבים חזותיים עקביים על פני שינויים דינמיים. להציג אפשרות להשבית את ההתאמה לעומס (scaling) שמבוסס על ADPF:

  • הטמעת אפשרות: מוסיפים לתפריט הגרפיקה הגדרה ברורה (למשל, 'Enable Dynamic Performance Adjustment').
  • הסבר על הבחירה: הסבירו בקצרה שהכלי מאפשר התאמות איכות אוטומטיות כדי לבצע התאמות בצורה חלקה יותר וניהול תרמי.
  • הגדרת התנהגות: כשהאפשרות הזו מופעלת (ברירת המחדל המומלצת), לוגיקת ההתאמה אישית של ADPF תפעל. כשהתכונה מושבתת, המשחק משתמש רק בהגדרות שהמשתמש בחר באופן ידני ומתעלם מנתונים תרמיים לצורך התאמה לעומס (scaling).

בדיקה במכשירים שונים

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

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

מעקב אחר ביצועים ואיטרציה

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

  • קביעת ערכי בסיס ויעדים: הגדרה של ביצועים מקובלים (FPS יעד, זמני פריימים) ומדידת ההתנהגות ללא לוגיקת ADPF.
  • שימוש בכלי הפרופיילינג: השתמשו באופן קבוע ב-Android Studio Profiler, בכלים של ספק ה-GPU ובשכבות-העל של המשחק כדי לעקוב אחרי נתוני FPS, זמני רינדור הפריים והנתונים התרמיים של ADPF במהלך המשחק.
  • התנסות וכוונון: בדיקת אסטרטגיות תגובה שונות של ADPF. משנים את גודל ההגדרות במהירות ובאגרסיביות על סמך קלט תרמי, כדי למצוא את האיזון האופטימלי למשחק.
  • בודקים סשנים ארוכים: חשוב לוודא שהבדיקה כוללת זמן הפעלה ארוך (יותר מ-15 דקות) כדי להשיג ביצועי עומסים ממושכים וייצוב תרמי כאשר ADPF פעיל.