پس زمینه
NEW STATE Mobile یک بازی بتل رویال از Krafton است که در نوامبر 2021 در سراسر جهان عرضه شد و در اولین ماه عرضه به بیش از 45 میلیون دانلود رسید. KRAFTON، Inc. مجموعه ای از استودیوهای مستقل بازی سازی است که برای ایجاد تجربیات سرگرمی خلاقانه و جذاب برای گیمرها در سراسر جهان گرد هم آمده اند. این شرکت متشکل از PUBG Studios، Bluehole Studios، Striking Distance Studios، RisingWings، Dreammotion و Unknown Worlds است که هر کدام تخصص منحصر به فرد خود را دارند. NEW STATE Mobile با Unreal Engine 4 ایجاد شد و تلاش های مختلفی برای کاهش گرما و مصرف باتری ناشی از استفاده بالای GPU از ویژگی های متمایز بازی آنها انجام شده است.
گیمرها می توانند نبردهای دوربرد را انجام دهند، بنابراین موتور بازی باید بتواند صحنه ها را از فاصله بسیار دور رندر کند. همچنین، پوششهای گیاهی متعددی در میدان نبرد حضور دارند که باعث میشود برداشت بیش از حد این گیاهان تأثیر قابلتوجهی بر کاهش عملکرد داشته باشد. این تیم را به سمت Android GPU Inspector (AGI) سوق داد تا به بهینه سازی استفاده از GPU بازی و رفع تنگناها کمک کند.
شکل 1 : اسکرین شات از NEW STATE Mobile
کاری که آنها انجام دادند
NEW STATE Mobile از AGI برای دسترسی به اطلاعات شمارنده GPU و بهینه سازی استفاده از GPU بر این اساس استفاده کرد. آنها با کمک داده های پروفایل فعالیت GPU ارائه شده توسط AGI، پاس های رندر غیر ضروری را شناسایی کردند. پس از شناسایی بخشهایی که استفاده از GPU و پهنای باند حافظه را اشغال میکنند، آنها به بررسی پیشرفت بهینهسازی با استفاده از شمارنده GPU و فعالیت GPU به صورت رفت و برگشت ادامه دادند تا بررسی کنند که آیا در جهت درست حرکت میکنند یا خیر.
شکل 2 : اسکرین شات از NEW STATE Mobile
در اینجا چند چیز در مورد عملکرد بازی با استفاده از AGI یاد گرفتند:
بهینهسازی گذر پایه : پیشگذر عمق، که فناوریای است که استفاده از Early-z را افزایش میدهد، به کاهش استفاده از سایهزنی قطعه کمک کرد. پیشگذر عمق بهطور خاص برای LOD0 استفاده شد که بیشتر فضای صفحه را اشغال میکند و باری را که میتواند از تماسهای قرعهکشی اضافی ایجاد شود به حداقل میرساند. همچنین استفاده از فرمت 32 بیتی صحنه رنگ می تواند عملکرد کل رندر پاس را افزایش دهد. فرمت پیش فرض SceneColor UnrealEngine4 FloatRGBA است که 64 بیتی است. اگر از فرمت 32 بیتی استفاده شود، پهنای باند حافظه را می توان به نصف کاهش داد.
تاثیر اندازهگیری شده : پس از اعمال پیشگذر عمق، استفاده از GPU 7.5 درصد کاهش یافت. با توجه به پیش گذر عمق، قطعات بیشتری می توانند Early-Z باشند. میزان زمان مورد نیاز برای سایه زنی قطعه 2 درصد کاهش یافته است. از طریق فرمت رنگ صحنه 32 بیتی، استفاده از GPU تا 5.3 درصد کاهش یافت. Shaders Busy 2% کاهش یافت و کل GPU خوانده شده از حافظه سیستم 330 مگابایت بر ثانیه کاهش یافت. مقداری که GPU روی حافظه سیستم مینویسد 78 مگابایت بر ثانیه و خواندن حافظه بافت نیز 43 مگابایت بر ثانیه کاهش یافته است.
بهینه سازی گذر سایه : هنگامی که مش ها به عنوان کاستور سایه استفاده می شوند، استفاده از LOD چند ضلعی بالا واقعاً تفاوتی در کیفیت ایجاد نمی کند. ترجیحاً از LOD چند ضلعی کم استفاده شود که به کاهش تعداد مثلث ها کمک می کند. در Unreal Engine 4، LOD کم چند ضلعی را می توان از طریق دستور کنسول "ForceLODShadow" استفاده کرد.
اندازه گیری ضربه : تعداد مثلث های مورد استفاده برای سایه ها حدود 120000 کاهش یافت. داده های شمارنده GPU در AGI نشان داد که استفاده از GPU حدود 2٪ کاهش یافته است، مقدار حافظه GPU خوانده شده از حافظه سیستم 130MB/s کاهش یافته است، و مقدار نوشته شده از GPU به حافظه سیستم حدود 23MB کاهش یافته است.
نمونهسازی خودکار : نمونهسازی خودکار، که میتواند برای بهینهسازی shadow pass و base pass اعمال شود، به شما امکان میدهد تا همان دستورات رندر را در زمان اجرا ادغام کنید و سپس به یکباره رندر شوند. این به NEWSTATE موبایل اجازه داد تا بدون از دست دادن عملکرد، نور سراسری را روی اشیاء جداگانه اعمال کند. نمونهسازی خودکار یک ویژگی اساسی است که توسط UnrealEngine4 ارائه شده است.
تاثیر اندازه گیری شده : تماس های قرعه کشی به میزان 500 کاهش یافت. حدود 48 درصد از تماس های قرعه کشی را کاهش داد. استفاده از GPU حدود 3.5٪ کاهش یافته است. این اندازه گیری ها با استفاده از OpenGL انجام شد.
شکل 3 : داده های داخلی کاهش مصرف GPU را نشان می دهد
نتایج
با استفاده از AGI، NEW STATE Mobile استفاده از GPU خود را 22٪ کاهش داد. از پیشگذر عمقی و بهینهسازی گذر سایه، استفاده از GPU به ترتیب ۱۹ و ۳ درصد کاهش یافت. فراخوانی ها و کل حافظه خوانده و نوشته شده توسط GPU از حافظه سیستم نیز به میزان قابل توجهی کاهش یافت.
شروع کنید
با شناسایی مسائل مربوط به عملکرد و مناطقی که باید با بازرس GPU Android (AGI) بهینه سازی کنید، چگونه تأثیر بازی خود را بر دستگاه های Android تجزیه و تحلیل کنید.