שיפור הביצועים והניהול התרמי חיוניים לפיתוח משחקים מוצלחים ב-Android. בעבר, המפתחים היו צריכים להתמודד עם הבעיות האלה על ידי הפחתת רמת הנאמנות של המשחק או על ידי אופטימיזציה נוספת של המרת הגרפיקה. בדרך כלל, השינויים האלה ספציפיים למשחק, ולרוב הם לא גמישים.
מספר גורמים בסביבת Android מציעים למפתחים ממשקי API עם ביצועים מותאמים. כדי לפשט את השילוב של תכונות ביצועים דינמיות ולצמצם את הפיצול בסביבה העסקית, Google ו-MediaTek עובדות בשיתוף כדי לשלב את המוצרים שלנו: Android Dynamic Performance Framework (ADPF) ו-MediaTek Adaptive Gaming Technology (MAGT).
ADPF מאפשר למפתחים לשנות את עומס העבודה של המשחק על סמך מצבים תרמיים בזמן אמת, ולספק רמזים למערכת ההפעלה כדי לבצע אופטימיזציה של הביצועים בהתאם לעומס העבודה הנוכחי. אפשר להשתמש באותות האלה כדי לשנות את הגדרות האיכות והביצועים, כמו הרזולוציה, קצב הפריימים ואפילו אסטרטגיית טעינת המשאבים. כך תוכלו לשמור על איזון טוב יותר בין הביצועים, הביצועים התרמו-פיזיים והאיכות, וכך לספק למשחקי Android את החוויה הטובה ביותר. אקוסיסטם Android משתמש בטכנולוגיה הזו בצורה יעילה. ב-Ares של Kakao Games הצליחו להגדיל את היציבות של FPS ל-96% על ידי התאמת עומס העבודה בזמן הריצה בתגובה ל-thermal API.
MediaTek היא ספקית מובילה של מערכי SoC ב-Android. החברה מייצרת מספר צ'יפים, כמו Dimensity 9300 החדש. MediaTek מציעה גם את MAGT SDK, שזמין מאז 2021. ה-SDK מספק תכונות מתקדמות לכוונון הביצועים ב-MediaTek SoCs, כמו מידע מפורט על הביצועים בזמן אמת והצעות להגדלת עומסי העבודה. בנוסף להצעת MAGT למפתחים, MediaTek התחילה להציע יכולות ADPF משופרות.

מניעת הגבלת הספק תרמית באמצעות ADPF ושיפור הביצועים
MediaTek מאפשרת למסגרת ADPF לגשת לטמפרטורות הנוכחיות והיעדיות של המכשיר כדי למנוע צמצום חמור של הביצועים. באמצעות הפונקציה getThermalHeadroom()
של ADPF, האפליקציות יכולות לקבל אומדן של מרווח התרמי הזמין לפני שהמכשיר מגיע לבלימת עומס חמורה. בעזרת האומדן הזה, האפליקציות יכולות לשנות באופן דינמי את עומסי העבודה כדי למנוע מהמכשיר להפעיל ויסות נתונים, וכך לשפר את חוויית המשתמש הכוללת.
האפליקציה (לדוגמה, הדגמה של Boat Attack ב-Unity) משתמשת גם ב-Performance Hint Session API כדי לבצע אופטימיזציה של הביצועים שלה.
הוא מספק את היעד לזמן רינדור פריים ואת זמן רינדור הפריים הנוכחי לכל פריים באמצעות הפונקציות updateTargetWorkDuration()
ו-reportActualWorkDuration()
, בהתאמה. פלטפורמת MediaTek מחשבת את עומס העבודה בין שתי קריאות ל-reportActualWorkDuration()
ומקצה את קיבולת המעבד הנדרשת כדי להבטיח שעומס העבודה יושלם במסגרת משך הזמן היעד.
כתוצאה מכך, פלטפורמת MediaTek מספקת באופן עקבי פריימים אופטימלי לשנייה (FPS) עם צריכת אנרגיה מאוזנת, ומבטיחה חוויית משתמש חלקה.
הפעלת קצב פריימים טוב יותר, הפחתת צריכת החשמל וסשנים ארוכים יותר של משחקים
באופן כללי, הדמו של Unity Boat Attack שיפר את קצב הפריימים ב-8.5fps, צמצם את צריכת החשמל ב-12% ואפשר להאריך את סשני המשחק ב-25 דקות או יותר. סטיית התקן של FPS ירדה ב-25%. שיפור משמעותי כזה מאפשר לכם לשפר את רמת הנאמנות של המשחקים ולהריץ סשנים של משחקים למשך זמן ארוך יותר באופן תרמי בר-קיימא.


גם בלי לשנות את הגדרות האיכות, רק על ידי הפעלת סשן של רמזים לביצועים, עומס העבודה הצליח לצמצם את זמן השרשור הממוצע לעיבוד ב-10%.
מה צפוי בהמשך בתחום הביצועים המותאמים אישית ב-MediaTek SoCs
בשנים הקרובות נוסיף ל-ADPF תכונות חדשות ותכונות חדשות של MAGT שלא תלויות במכשיר. למפתחים שרוצים להפיק את המקסימום מהמכשירים של MediaTek, MAGT SDK מכיל יכולות מתקדמות שמטרגטות באופן ייחודי את הארכיטקטורות של שבבי MediaTek, ובקרוב יוצעו בו גם תכונות ADPF ליבה.


תחילת השימוש ביכולת ההתאמה של Android
Android Dynamic Performance Framework זמין עכשיו לכל מפתחי המשחקים ל-Android במנועי המשחקים Unity, Unreal ו-Cocos Creator, ודרך הספריות המקומיות שלנו ב-C++.
- מפתחים ב-Unity יכולים להתחיל לעבוד עם Adaptive Performance provider v5.0.0. חשוב לדעת שרוב מכשירי Android מגרסה 11 (רמת API 30) ואילך תומכים ב-Thermal API, ורוב מכשירי Android מגרסה 12 (רמת API 31) ואילך תומכים ב-Performance Hint API.
- מפתחים של Unreal יכולים להתחיל להשתמש ביישומון Android Dynamic Performance Unreal Engine ברוב מכשירי Android שמטרגטים ל-Android 12 (רמת API 31) ואילך.
- ב-Cocos Creator, אפשר להתחיל להשתמש ב-Thermal API מגרסה 3.8.2 וב-Performance Hint API מגרסה 3.8.3.
במנועי המשחקים האלה, ממשקי ה-API של הטמפרטורה משולבים עם Adaptive Performance כדי לעזור לכם לאחזר מידע על הטמפרטורה של המכשיר, והקריאה ל-API של ההצעות לביצועים מתבצעת באופן אוטומטי כל Update()
או Monitor()
ללא צורך בעבודה נוספת.
לבסוף, למנועי חיפוש מותאמים אישית, אפשר להיעזר בדוגמה ל-ADPF C++.
מקורות מידע נוספים
איך Android Dynamic Performance Framework יכול לעזור לכם לייצב את קצב הפריימים של המשחק ולצמצם את הבקרה התרמית?
מידע נוסף על MediaTek Adaptive Gaming Technology לשיפור הביצועים המתקדם ב-MediaTek SoCs.