NCSoft Lineage W הוא משחק תפקידים המוני ברשת (MMORPG) שפותח על ידי NCSoft. המשחק הזה הוא יורשו של המשחק המקורי Lineage W, והוא מציע סביבה שבה שחקנים מרחבי העולם יכולים לשתף פעולה ולהתחרות דרך שרתים גלובליים. המשחק Lineage W מתרחש בעולם פנטזיה ימי-ביניימי ייחודי, ומספק לשחקנים חוויית משחק מעמיקה באמצעות מגוון כיתות, מיומנויות ומערכות לחימה.
ב-NCSoft השתמשו ב-Android Dynamic Performance Framework כדי למקסם את האיכות הגרפית ולמנוע בעיות בביצועים שנגרמות כתוצאה מבקרת תדר תרמית.
Android Dynamic Performance Framework
Android Dynamic Performance Framework (ADPF) מספק מידע על השימוש במשאבים, ומאפשר למפתחים להגיב בזמן אמת לשינויים בביצועים, בטמפרטורה ובמצבים של המשתמשים. הוא כולל גם את ממשקי ה-API של 'מדדי חום' וגם את ממשקי ה-API של 'טיפים לשיפור הביצועים'. ממשקי ה-API לניטור טמפרטורה מספקים מידע על המצב התרמי של המכשיר, ואילו Performance Hint API מספק טיפים לשיפור הביצועים שיעזרו ל-Android לבחור את נקודת ההפעלה האופטימלית של המעבד ואת מיקום הליבה.
פלאגין ADPF של Unreal Engine
הפלאגין של Unreal Engine ADPF הוא הדרך הקלה ביותר להשתמש ב-ADPF במשחקים שמבוססים על Unreal Engine.
הפלאגין בודק את הסטטוס התרמי של המכשיר בכל שנייה. כשהמכשיר מתחמם יתר על המידה, הפלאגין משתמש בהגדרות ברירת המחדל של Unreal Scalability כדי לשנות את הגדרות איכות הגרפיקה. יש ארבע רמות, וכל רמה מותאמת למאפייני גרפיקה שונים (רזולוציה, מרחק תצוגה, עיבוד פוסט-פרודקשן וכו').
אם כבר יש לכם הגדרות במשחק (כמו איכות נמוכה, בינונית וגבוהה) שהשחקן יכול להגדיר, מומלץ להשתמש בהגדרות האלה במקום ברמות ברירת המחדל של Unreal Scalability.
הפלאגין משתמש בשתי שיטות כדי לבדוק את הנתונים התרמו-פיזיים של המכשיר: אחת היא על ידי הערכת מרווח התרמי, והשנייה על ידי בדיקת הסטטוס התרמי. נתוני מרווח הווירטואלי התרמי מספקים מידע מפורט יותר, והם מופעלים כברירת מחדל.
הפלאגין יוצר את שני הסשנים של הטיפים לשיפור הביצועים למשחק ולשרשראות הרינדור. הוא מדווח על היעד ועל משך הזמן בפועל למסגרת בכל פריים, ומסייע להשיג את יעד הפריימים לשנייה (FPS).
איך NCSoft ביצעה אופטימיזציה של הביצועים
ב-Lineage W נעשה שימוש ב-ADPF כדי למנוע בעיות בביצועים שנגרמות כתוצאה מבקרת קצב (throttling) תרמית. הם השתדלו להשתמש בצורה מקסימלית בהגדרות של איכות הגרפיקה שמספקות שיפור משמעותי בביצועים, תוך צמצום ההשפעה על מהלך המשחק בפועל. חברת NCSoft אימתה את היציבות והפעולה של כל שלב כשהתאימה את האיכות באמצעות ערך מרווח הנשימה. נדרשו בדיקות שונות כדי לספק למשתמשים חוויית משחק טובה לכל ערך מותאם של הגדרת איכות הגרפיקה.
המשחק מכוון ל-30FPS כברירת מחדל, אבל NCSoft שינתה את קצב הפריימים היעד ל-60 כדי לבדוק איך ADPF יכול לשפר את קצב הפריימים.
במהלך 30 דקות של בדיקת משחק ב-Pixel 6 עם Android 13, קצב הפריימים ירד באופן דרסטי מ-60 FPS ל-32 FPS וערך מרווח הביטחון התרמי הגיע ל-1.0f (הסף לוויסות עוצמת המנוע כתוצאה מהתחממות חמורה) אחרי 4 דקות.
כשהמשחק השתמש בפלאגין ADPF של Unreal Engine עם הגדרת ברירת המחדל של Unreal Scaleability, הוא הצליח לשמור על 60FPS במשך 15 דקות. גם קצב הפריימים הממוצע במהלך 30 הדקות האלה עלה ל-57.5FPS. עם זאת, ערכי מרווח העבודה התרמי היו דומים לאלה שלפני כן, כלומר המכשיר התחמם באופן דומה וסבל מבקרת תדר תרמית.
כדי לטפל בבעיה הזו, צוות Lineage W החליט לתת ל-ADPF יותר שליטה על פרמטרים של איכות התמונה כדי למנוע הגבלת הספק תרמית. אחרי ששילבו את הגדרות איכות הגרפיקה במשחק Lineage W עם הפלאגין ADPF של Unreal Engine, הם השיגו תוצאות אופטימליות. השילוב הזה הביא לקצבי פריימים יציבים של 60FPS תוך שמירה על ערך מרווח תרמי נמוך מ-1.0, שמצביע על ניהול תרמי יעיל.
בעזרת הגדרות האיכות במשחק של Lineage W עם ADPF, חברת NCSoft הצליחה לספק חוויית משתמש יציבה ומהנה יותר.
מאחר שכל יצרני המכשירים עם Android לא תומכים ב-ADPF באופן מלא, NCSoft הטמיעה את התכונה הזו כאפשרות במשחק 'אופטימיזציה דינמית של הביצועים', כדי שהשחקנים יוכלו להביע הסכמה לשימוש בה.
תחילת העבודה עם ADPF ועם הפלאגין של Unreal Engine
מפתחים שרוצים להשתמש ב-Android Adaptability או בפלאגין של ADPF ל-Unreal Engine צריכים לבצע את הפעולות הבאות:
- מידע נוסף על ADPF ועל הפלאגין ADPF של Unreal Engine
- אפשר להתאים אישית את הסקאלרים לתוכן המשחק במקום להשתמש ביכולת ההתאמה לעומס של Unreal Engine.
- כדאי לעקוב אחרי ביצועי המשחק כדי לוודא שהוא עומד בציפיות. כדאי להתנסות בהגדרות שונות כדי למצוא את הביצועים הטובים ביותר ואת העלייה התרמית המינימלית.
- משנים את הגדרות איכות הגרפיקה בנפרד כדי לצמצם ירידות חדות בביצועים.
לא משנה באיזה מנוע אתם משתמשים, תמיד תוכלו להשתמש ב-API ישירות. מידע נוסף זמין במאמרים התאמה ל-Android והפלאגין ADPF של Unreal Engine.