بهبود عملکرد و مدیریت حرارتی برای توسعه بازی های موفق در اندروید ضروری است. به طور سنتی، توسعه دهندگان مجبور بودند این مسائل را با کاهش وفاداری بازی یا با بهینه سازی بیشتر رندر مدیریت کنند. این تغییرات معمولاً مختص بازی هستند و اغلب می توانند انعطاف ناپذیر باشند.
چندین شرکت کننده در اکوسیستم اندروید APIهای عملکرد تطبیقی را به توسعه دهندگان ارائه می دهند. برای سادهسازی ادغام ویژگیهای عملکرد تطبیقی و کاهش پراکندگی در اکوسیستم، Google و MediaTek برای یکپارچهسازی پیشنهادات ما با یکدیگر همکاری میکنند: Android Dynamic Performance Framework (ADPF) و MediaTek Adaptive Gaming Technology (MAGT).
ADPF به توسعه دهندگان این امکان را می دهد که حجم کاری بازی را بر اساس موقعیت های حرارتی زمان واقعی تنظیم کنند و نکاتی را به سیستم عامل برای بهینه سازی عملکرد برای حجم کاری فعلی ارائه دهند. میتوانید از این سیگنالها برای تنظیم تنظیمات وفاداری و عملکرد مانند وضوح، نرخ فریم و حتی استراتژی بارگیری منابع استفاده کنید. این به شما امکان می دهد عملکرد، حرارت و وفاداری را بهتر متعادل کنید و بهترین تجربه ممکن را به گیمرهای اندرویدی ارائه دهید. اکوسیستم اندروید از این فناوری به خوبی استفاده کرده است. Ares از Kakao Games توانست با تنظیم بار کاری در زمان اجرا در پاسخ به API حرارتی، پایداری FPS را تا 96% افزایش دهد .
مدیاتک یک ارائه دهنده پیشرو SoC در اندروید است. این شرکت تعدادی تراشه مانند Dimensity 9300 جدید تولید می کند. MediaTek همچنین MAGT SDK را ارائه می دهد که از سال 2021 در دسترس است. SDK ویژگی های پیشرفته ای را برای تنظیم عملکرد در SoC های MediaTek ارائه می دهد، مانند اطلاعات دقیق در مورد واقعی عملکرد زمان و نکاتی برای افزایش بار کاری. مدیاتک علاوه بر ارائه MAGT به توسعه دهندگان، قابلیت های پیشرفته ADPF را نیز ارائه کرده است.
با استفاده از ADPF از گلوگاه حرارتی جلوگیری کنید و عملکرد را بهینه کنید
MediaTek به چارچوب ADPF اجازه می دهد تا به دمای فعلی و هدف دستگاه دسترسی پیدا کند تا از دریچه گاز شدید جلوگیری کند. با استفاده از تابع getThermalHeadroom()
ADPF، برنامهها میتوانند تخمینی از فضای سر حرارتی موجود را قبل از رسیدن دستگاه به گلوگاه شدید بدست آورند. با استفاده از این تخمین، برنامهها میتوانند بهطور پویا حجمهای کاری را تنظیم کنند تا از تحریک دستگاه جلوگیری کنند و در نتیجه تجربه کلی کاربر را افزایش دهند.
این برنامه (به عنوان مثال از نسخه ی نمایشی حمله به قایق Unity استفاده می کند) همچنین از Performance Hint Session API برای بهینه سازی عملکرد خود استفاده می کند. زمان فریم هدف و زمان فریم فعلی را برای هر فریم به ترتیب از طریق توابع updateTargetWorkDuration()
و reportActualWorkDuration()
ارائه می کند. پلتفرم MediaTek حجم کاری بین دو تماس reportActualWorkDuration()
را محاسبه می کند و ظرفیت CPU کافی را برای اطمینان از تکمیل بار کاری در مدت زمان مورد نظر اختصاص می دهد.
در نتیجه، پلتفرم مدیاتک بهطور مداوم فریمهای بهینه در ثانیه (FPS) را با مصرف انرژی متعادل ارائه میکند و تجربه کاربری روان را تضمین میکند.
نرخ فریم بهتر، کاهش مصرف انرژی و جلسات بازی طولانیتر را فعال کنید
به طور کلی، نسخه ی نمایشی Unity Boat Attack نرخ فریم را تا 8.5 فریم در ثانیه بهبود بخشید، مصرف انرژی را تا 12 درصد کاهش داد و جلسات طولانی تر بازی را 25 دقیقه یا بیشتر فعال کرد. انحراف استاندارد FPS 25٪ کاهش یافت. چنین پیشرفت چشمگیری به شما امکان می دهد وفاداری بازی های خود را افزایش دهید و جلسات بازی را برای مدت طولانی تری به روشی پایدار از نظر حرارتی اجرا کنید.
حتی بدون تنظیم تنظیمات وفاداری، فقط با فعال کردن جلسه راهنمایی عملکرد، حجم کار توانست میانگین زمان موضوع Render خود را تقریباً 10% کاهش دهد.
عملکرد تطبیقی بعدی در SoC های MediaTek چیست
ADPF در سالهای آینده با ویژگیهای جدید و افزودن ویژگیهای جدید تشخیص دستگاه از MAGT ارتقا خواهد یافت. برای توسعه دهندگانی که به دنبال استفاده بیشتر از دستگاه های مدیاتک خود هستند، MAGT SDK دارای قابلیت های پیشرفته ای است که به طور منحصر به فرد معماری چیپست مدیاتک را هدف قرار می دهد و به زودی ویژگی های اصلی ADPF را نیز ارائه می دهد.
با سازگاری اندروید شروع کنید
Android Dynamic Performance Framework اکنون برای همه توسعه دهندگان بازی اندروید برای موتورهای بازی Unity، Unreal، Cocos Creator و از طریق کتابخانه های C++ مادری ما در دسترس است.
- برای توسعه دهندگان Unity، می توانید با ارائه دهنده عملکرد تطبیقی نسخه 5.0.0 شروع کنید. توجه داشته باشید که Thermal API توسط اکثر دستگاههای اندروید از Android 11 (سطح API 30) و Performance Hint API از Android 12 (سطح API 31) پشتیبانی میشود.
- برای توسعه دهندگان Unreal، می توانید با افزونه Android Dynamic Performance Unreal Engine برای اکثر دستگاه های اندرویدی که اندروید 12 (سطح API 31) یا بالاتر را هدف قرار می دهند، شروع به کار کنید.
- برای Cocos Creator، میتوانید با Thermal API نسخه 3.8.2 و Performance Hint API نسخه 3.8.3 شروع کنید.
برای این موتورهای بازی، API های حرارتی با عملکرد تطبیقی یکپارچه شده اند تا به شما کمک کنند اطلاعات حرارتی دستگاه را بازیابی کنید، و API راهنمایی عملکرد به طور خودکار در هر Update()
یا Monitor()
بدون هیچ کار اضافی فراخوانی می شود. و در آخر، برای موتورهای سفارشی، میتوانید به نمونه اصلی ADPF C++ ما مراجعه کنید.
منابع اضافی
بیاموزید که چگونه Android Dynamic Performance Framework می تواند به شما کمک کند FPS بازی خود را تثبیت کنید و فشار حرارتی را کاهش دهید.
با فناوری بازی تطبیقی مدیاتک برای تنظیم عملکرد پیشرفته در SoC های مدیاتک آشنا شوید.